Update on Stephen Wolfram's 13-year-old son's Maker Faire quadcopter demo

I mentioned a few weeks ago that Stephen Wolfram (Mathematica genius) and his 13-year-old son Christopher presented after us at Maker Faire NYC this year, and Christopher did a very impressive AR.Drone demo (with even more impressive on-stage debugging). Now Stephen hasposted with more info about that:

Christopher has been an avid Mathematica user for years now. And he likes hooking Mathematica up to interesting devices—with two recent favorites being Arduino boards and quadricopter drones.

And so it was that last Sunday I walked onto a stage with him in front of a standing-room-only crowd of a little over 300 people, carrying a quadricopter. (I wasn’t trusted with the Arduino board.)

Christopher had told me that I shouldn’t talk too long—and that then I should hand over to him. He’d been working on his demo the night before, and earlier that morning. I suggested he should practice what he was going to say, but he’d have none of that. Instead, up to the last minute, he spent his time cleaning up code for the demo.

I must have given thousands of talks in my life, but the whole situation made me quite nervous. Would the Arduino board work? Would the quadricopter fly? What would Christopher do if it didn’t?

I don’t think my talk was particularly good. But then Christopher bounced onto the stage, and soon was typing raw Mathematica code in front of everyone—with me now safely off on the side (where I snapped this picture):

Christopher Wolfram on stage at Maker Faire

His demo was pretty neat. He had a potentiometer hooked up on the Arduino board. And he’d set it up so that all he had to do was type a command intoMathematica to get its value:

ArduinoAnalogRead[0]

357

Then it was Dynamic[ArduinoAnalogRead[0]], and Mathematica is dynamically displaying the value in real time as he adjusted the potentiometer.

Then he makes it into a gauge (er, that’s actually from a future version ofMathematica, but Christopher is a keen user of internal development builds):

Dynamic[AngularGuage[ArduinoAnalogRead[0], {0, 1023}], UpdateInterval -> 0]

Gauge dynamically displaying the value

And then he says he’s going to make a dynamic plot of it. And pretty soon he’s typing the Mathematica program, confidently presses Shift-Return—and it actually works:

data = {}; Dynamic[rawdata = ArduinoAnalogRead[0]; AppendTo[data, rawdata]; ListLinePlot[data,Filling -> Axis, ImageSize -> 500], UpdateInterval -> 0]

Plot of potentiometer data

Then he’s on to using an ultrasound sensor, and having it produce musical notes based on distance.

And then he’s on to the quadricopter. He’d been going back and forth with someone at our company for a few days before, trying to get the kinks out of the interaction with the quadricopter‘s API. I had seen the quadricopter fly that morning, but I knew Christopher had changed the code quite a bit since then.

His plan was to have a single line of Mathematica code that would make the quadricopter fly a specified 3D path. He had a list of points for a square, entered the line of code, and pressed Shift-Return, and… nothing happened!

I guess Christopher has debugged quite a lot of code in his 13 years. And now he set about doing it in front of the audience. A missing function definition. A missing command to connect to the device. He was finding quite a few things. And I was getting ready to call out that he should just give up.

But then… the sound of quadricopter blades, and up the quadricopter goes… flying its loop on the stage, and landing.

It had actually worked! It was pretty neat, being able to just type one line of code into Mathematica, and then having some physical object fly around in the pattern one had specified:

ARDroneFlyPathGraphics[Table{Sin[u], Sin[2u], {u, 0, 2π, π/5}]]

Path for the quadricopter

After another flight, the audience had questions. One person asked if the quadricopter could respond to its environment. Which set Christopher off on some more “spectator programming”. And actually, it took him only a line of code to get the real-time video from the flying quadricopter, and feed it through simple Mathematica image processing:

Christopher Wolfram on stage with the quadricopter flying

I was pretty impressed that all this worked (here is the full video). And, yes, Christopher was clearly right that his topics were very relevant to Maker Faire. In fact, it seemed like Arduino and quadricopters were two of the three main technical themes of the show. The third was 3D printing.

Views: 1773

Comment by Will Snodgrass on November 12, 2012 at 1:41am

I hope the kid appropriately cleared a safe and protected area for the drone, otherwise as soon as he opens a website hes going to be relentlessly trolled.

Comment by Philipp P. on November 12, 2012 at 2:37am

Very impressive !

Getting sensor values and print them immediatly to a grafic reminds me of larch introduction at europython 2012

(bad audio but worth having a look at 11:20 , easy for trying out too(the jar)).

Looks very cool, in mathematica and larch!

Comment by Jack Crossfire on November 12, 2012 at 3:08am

Watching the segment at 20:30 again, it didn't actually fly the pattern successfully & it relied purely on delays instead of position data, but it is more about the headline.

Comment by Tim - Arduino for Visual Studio on November 12, 2012 at 8:12am

I love the confidence of these young chaps. However it's quite frightening when, at such a young age, they now more than some of us older folk :)


Developer
Comment by Rob_Lefebvre on November 12, 2012 at 6:39pm

I actually loved the fact that there were problems in the demo.  It demonstrated his ability to work through problems, and that his wasn't just a "science fair project" that was actually done by his dad and he was just coached to present.

Comment by Tim - Arduino for Visual Studio on November 12, 2012 at 6:55pm

I agree, Big time!

Comment by Me109 on November 13, 2012 at 4:45pm

He's lucky no one in the audience didn't take advantage of the no root password for ARDrone. Just telnet to 192.168.1.1 over wifi (connect to the drones wifi first) and you're in as root...if one is flying over your house go in as root and reboot ;]

Comment by Me109 on November 13, 2012 at 4:46pm

Very nice to see a kid who's interested in these things though. Like the guy said his other kids have no interest. 

Comment by Me109 on November 13, 2012 at 4:47pm

I'm curious, did no one demo arducopter flying the same way? Surely it should be able to fly better than an ARDrone right? 

Comment by Will Snodgrass on November 13, 2012 at 6:35pm

I doubt he was using the OEM Wifi to control anything. He had an arduino board in there so he was probably communicating with it to control the AR

Comment

You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2014   Created by Chris Anderson.

Badges  |  Report an Issue  |  Terms of Service