Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Learn programming with NodeCopter

Learn programming with NodeCopter

This is talk the I gave at Webmontag in Frankfurt on July 8th 2013. It's about how you can start to learn programming using NodeCopter.

Thank you for the invitation again, really loved to talk about this

Robin Mehner

July 08, 2013
Tweet

More Decks by Robin Mehner

Other Decks in Technology

Transcript

  1. Hi!

    View Slide

  2. Robin Mehner
    @rmehner
    I’m Robin from Berlin, @rmehner on Twitter and GitHub.

    View Slide

  3. A quick shout out to flinc for sponsoring the trip for me. You should check them out on flinc.org and share your rides!

    View Slide

  4. So about me: I’m running small development & consulting company.

    View Slide

  5. I'm also running BerlinJS & friends. In fact I help to organize quite a lot meetups so people tend to call me "usergroupie".

    View Slide

  6. SEPTEMBER 12, 2013
    http://rejectjs.org
    BerlinJS leads to an annual full blown conference - Reject.JS, which will happen on September 12th this year. Right before the amazing JSConf.eu

    View Slide

  7. I'm also helping out a bit at CSSConf.eu. Bring all your designers to the yard!

    View Slide

  8. SEPTEMBER 13, 2013
    http://nodecopter.com
    And of course running this thing: NodeCopter.

    View Slide

  9. Programming Flying Robots
    With JavaScript
    a.k.a.: Programming flying robots with JS
    I'm gonna talk about what NodeCopter is, how to get started
    and why it’s a great educational tool

    View Slide

  10. What is NodeCopter?
    So what is NodeCopter?
    Well, NodeCopter was born in Berlin last year on my balcony with a lot of Whiskey and ClubMate.
    The four of us, that is Felix Geisendörfer, Tim Koschützki, Thorsten Ball and me, asked ourselves what would happen if you ...

    View Slide

  11. combine:
    * an old swimming bath with very high ceilings
    * a lot of drones
    * interested people who're eager to hack them

    View Slide

  12. combine:
    * an old swimming bath with very high ceilings
    * a lot of drones
    * interested people who're eager to hack them

    View Slide

  13. combine:
    * an old swimming bath with very high ceilings
    * a lot of drones
    * interested people who're eager to hack them

    View Slide

  14. • Full day event of programming flying robots
    • Also a community on the internet
    • open source everything (code & organization)
    Turns out the result is a full day event of programming flying robots, but it's also a community in the internet.
    Open Source and community driven is one of our core principles, everything is open source
    and we put as much as we can on our website. That includes guides on how to organize your
    own NodeCopter.

    View Slide

  15. That’s how it looks like

    View Slide

  16. View Slide

  17. It’s a movement
    • Spawned a lot of events since it’s birth
    • 13+ events in 12+ cities all over the world
    • at least 7 events coming up
    It’s not only an event, it’s a movement these days with over 13 events in more than 12 cities all over the world
    And it’s still going strong, we have at least 7 events coming up and there are constantly popping up.

    View Slide

  18. Ingredients
    So what do you need for NodeCopter?

    View Slide

  19. Well, obviously the drone:
    * Parrot AR Drone 2.0
    * 300 bucks on Amazon and comes with everything you need to start
    * So we’re not building our own awesome robots like NodeBots (which is a great event run by friends of us!), but use
    an existing platform to have an easy start

    View Slide

  20. JavaScript
    To program the drones we use JavaScript. If you don’t know JavaScript: It’s the language of the web. It’s built-in in every major web browser
    and is used on nearly every website. If you ever used Gmail, Facebook, YouTube or other big websites, you’ve used JS in the background already.
    That means a lot of devs know and speak JS already. We are using NodeJS as platform, which also available everywhere and is pretty well known too.

    View Slide

  21. Any language
    But in fact: We don’t care. Bring your own language.
    GoCopter, Ruby, PHP, well even Shellscript.
    It’s about fucking flying robots, not about some stupid language flame war ;)

    View Slide

  22. You
    The last missing ingredient is: You!

    View Slide

  23. It’s easy
    • no previous knowledge required
    • no electronics, no wires, no soldering
    • drones are pretty stable, but easy & cheap to repair
    Don’t be afraid, it’s easy!
    You do not need any previous knowledge with robotics.
    And you don't even have to know anything about electronics, wires or have to solder anything.
    And if you crash a drone, which are pretty stable, they're easy & cheap to repair.
    Pro-Tip: Have a Amazon Prime subscription for fast delivery of spare parts
    Not even deep programming knowledge needed.

    View Slide

  24. Demo
    Don’t believe me? Well, let’s have a look at some code. It’s really easy.
    First off all, when you start the drone it opens up a WiFi. Connect to it with your computer and you’re ready to go
    fly_my_little_drone_fly.js (https://gist.github.com/rmehner/5957875)
    Just 16 lines of codes. Clear names and super easy to grasp. And it invites you to play around with it, just by
    changing names, adding a new method or changing the numbers. You’ll see some crashes, but that’s also fun. And
    as I said: It’s easy to repair.
    Let me show you another project, which is the result of some freetime hacking invested by some amazing people (Bernhard, Tim and more)
    drone-browser (https://github.com/tim-kos/drone-browser, checkout the vidstream branch for real video stream)
    Bit more complex, it involves websockets, video processing, sensors and more, but still
    totally doable within a short timeframe the code is not too complex as well.
    ---
    Also a lot of other great stuff done at our events...

    View Slide

  25. Face detection, so the drone followed a certain person (that’s why he had to wear that helmet)

    View Slide

  26. Matador! Finds the red towel and tries to hunt it down.
    And many, many more:
    * Kinect, Leapmotion
    * Own controllers using arduino
    * object detection
    * robots dancing to dubstep
    * ...

    View Slide

  27. Guide to Programming
    • crash stuff
    • figure out why it crashes
    • fix it
    The demos we’ve seen drawing an pretty accurate picture on how programming really is.
    First you fiddle around and crash stuff. Then you figure out why it crashes and then you
    fix it eventually. Rinse, repeat.

    View Slide

  28. Why drones?
    • Survival
    So off all things you can do to start programming, why drones?
    Well, the most important thing: To survive the upcoming drone invasion!

    View Slide

  29. Why drones?
    • easy and fun to get started with
    • programming in groups, helping each other out
    • it’s also a toy!
    For beginners. Playful intro to programming techniques.
    NodeCopter events are always in groups, so when you’re stuck, you’ll always have people able to help you out.
    Yep, NodeCopter makes friends. We’ve seen people stay in contact with each other after meeting at NodeCopter events for the first time ever to hack on drones.
    Well, it’s a toy. That helps on the “fun” side.

    View Slide

  30. Why drones?
    • thinking outside of the box
    • gaining a new perspective on known things
    • playing around with interesting (new) technologies
    Even seasoned programmers can learn a lot things:
    * They’re forced to think outside their usual box they’re coming from, because your day job most likely doesn't involve hacking robots. Which is a shame btw. ;)
    * New perspectives on already known things: proper error handling for example. If you don’t handle errors in a proper way, the drone will crash. No safety net.
    * Learn new programming languages, or about computer vision, or hardware sensors
    * Or just use fresh technologies that you can’t use in your day job yet (WebGL, Websockets etc.)

    View Slide

  31. Why drones?
    • hack a great drone project
    • ???
    • Profit!
    There’s even a business behind drones. We’re often contacted by companies, startups, art projects and individuals with great ideas for drone-related products or projects.
    There are startups doing stuff with drones already.

    View Slide

  32. Learn programming
    • better communication & understanding
    • untapping creativity
    • programming is everywhere, you just have to see it
    As mentioned NodeCopter is a great platform to get started as programmer, but why should
    you bother learn programming?
    Well, it leads to better communication and understanding as programming is everywhere these days. For example: Are you a project manager? Learn to code, it’ll help to make better
    estimates and it’ll help you to communicate your needs in a better way to your developers.
    It’s also there to untap creativity that might be within you or others. Take fashion as example: Shirts with LEDs that can show texts or react to their environment can be found on all the big
    fashion shows over the world. That’s programming! Build your own thing, don’t be afraid because it’s too “hard”. It’s not.
    It’s really everywhere and you just have to see it. And as soon as you see what's possible your head will explode with ideas.

    View Slide

  33. Start your engines!
    • NodeCopter at schools
    • CoderDojo, RailsGirls, BlackGirlsCode
    • and many more
    So you’re hooked and want to start programming? You’re lucky, it’s the perfect time to do so!
    We had NodeCopter at schools: Matthew from Microsoft and Chris Williams of JSConf.us took NodeCopter and got into schools
    to get students excited for programming by showing them the hackable drones.
    There are more movements, like the excellent CoderDojos. They gather groups of kids and build all kinds of awesome stuff, from iPhone Apps to robots to web applications.
    Also there is RailsGirls, but I won’t go into detail of that too much, except it’s really freaking awesome and you should be excited for the next talk!
    I could talk about about these a lot more, there is BlackGirlsCode, OpenTechSchool etc. pp. Fuck yeah!
    If you more on the “I’d love to learn that stuff on my own sofa” side of things (which I doubt because then you wouldn’t be here), there are also a lot of great courses online.

    View Slide

  34. Programming is not rocket science!

    View Slide

  35. Programming is drone science!
    Drones are a good way to get started, as they give you a fun and playful way to explore the possibilities and give instant visible results.
    Also you’ll be able to survive the drone invasion.

    View Slide

  36. Go and build stuff!
    This is my plea to you: Go and build stuff. Don’t let someone tell you “It’s too hard”. It’s not.

    View Slide

  37. You don’t have to be an
    experienced programmer to
    build great stuff and enrich the
    world with your creativity.

    View Slide

  38. Thank you!
    Thank you for listening and check out http://nodecopter.com we’ve put everything we know about running these events on this website.

    View Slide