David Lang, something of a reluctant maker, is on a journey, intensively immersing himself in maker culture and learning as many DIY skills as he can, through a generous arrangement with our pals at TechShop. He’s regularly chronicling his efforts in this column — what he’s learning, who he’s meeting, and what hurdles he’s clearing (um… or not). –Gareth
If you go to a Maker Faire or read MAKE, it’s hard not to constantly encountering Arduino. In fact, the MAKE site here has created an entire section on the Arduino Revolution. It really is a great story of a small team, of largely artist, no less, creating something that’s easy enough to understand, is open to improvement (open source), and that has a wide-ranging and passionate community rallied around the design. I had the chance to see the Arduino team speak at World Maker Faire in New York, and they really were the rock stars of the Faire. At one point, Eric Stackpole, my partner-in-crime on the OpenROV project, came back to our booth, smiling ear to ear because he’d just gotten a picture with the team. Looking down at his iPhone at the commemorative photo, he shook his head in disbelieving excitement and muttered, “my roommates are going to be so jealous!”
So, given all that, learning how to program Arduino was a must-do for my Zero to Maker process. For a beginner like me, this turns out to be an easier thing to say than to do. I wanted to learn it right and really understand what I was doing, which meant – and I’m really going to expose the Zero in me here – starting with basic electronics: soldering, circuit testing, and understanding fundamentals like Ohm’s Law. The “Soldering and Electronics Basics” course at TechShop was exactly the right place for me. Gregg Gemin (also my welding instructor) started us off soldering paper clips into little stick figures and eventually moving on to a printed circuit board with a simple blinking LED. The relatively easy project was a great way to gain a more confident grip on the soldering iron, but it also exposed how much of my electronics education was missing or forgotten. With the goal of eventually programming an Arduino, I knew I’d need to do a little more homework. Luckily, I had already ordered a copy of Make: Electronics, based on a recommendation from Gareth Branwyn, MAKE’s online Editor in Chief (who was also involved in creating that book). The book has been a great resource to fill in my knowledge gaps – filled with “Enough to be Dangerous” information and organized in a way that’s easy for a new maker to pick up and run with. If you’re starting with an electronics education deficit like me, this book is a great tool to have on hand.
Even though my electronics eduction was still very much a work-in-process, I decided to enroll in the Arduino courses, which were taught on back-to-back nights. The first class, building the actual Bare Bones Arduino board, was basically an advanced soldering course. Alex May, our instructor, guided us through the process – allowing enough space for us to figure it out from the directions but also swooping in when we wandered off track, like when I accidentally over-soldered the USB connection. After we completed the board assembly, Alex ran a quick test to see if they worked and would be ready for the following evening’s class: Programming and Using the Arduino. Of the six people who took the first course, only two of us had the time to come back the following night. Between Alex and the other student, who had a lot of experience in software programming, I was able to ask a ton of questions and really dig into anything I didn’t fully understand. In the three-hour class though, we only managed to get a small taste of what’s possible with Arduino: blinking LED sequences, installing a button and potentiometer, controlling servos, and one of Alex’s programs that gave us an opportunity to play with some serial data. It was all very much surface-scratching stuff, but it was revelatory for me to learn the inner workings of a process that had been so foreign and simultaneously so crucial to our project, OpenROV.
The Parallax Propeller-based OpenROV Board
After completing the courses, I set my sights on a very difficult project by my standards – the embedded system for OpenROV. The first step was to pick the brain of the design genius who created the board for the model that was presented at World Maker Faire: Matteo Borri of Robots Everywhere. Matteo has been a critical contributor to the OpenROV prototype. In fact, the project was partially stalled until Matteo began hacking on a prototype that Eric left at his house. Matteo called him a week later with the news that he had created a custom Parallax Propeller board. Eric helped explain that the board had 12 General Purpose Input/Output (GPIO) pins which can be configured to work as servo outputs to drive motor controllers, but can also be used as inputs for sensors, connecting a serial device (like an Arduino), or turning things on and off light LED lights. The board does all of this by either taking in commands through an audio port that could be plugged into something like an Android phone, or by connecting to an Ethernet connection with the added Ethernet breakout board. In addition to all of this, the Propeller chip also hosts an IP address that can be logged into for controlling the ROV, so the user doesn’t even need to download any software!
I convinced Matteo to spend an afternoon showing me around his OpenROV board as well as providing any other micro controller advice he could offer. I was in way over my head, but in a healthy, inspired-to-keep-learning kind of way. The first thing Matteo explained is that Arduino wasn’t the only game in town – he thought it was really important I get an understanding of all types of microcontrollers so I knew to pick the most appropriate one for the job. For example, the Parallax Propeller was what he had chosen to accomplish the needs of the ROV at the lowest cost. Matteo showed me around a number of different projects and boards he had created (Parallax, Arduino, Picaxe, etc), and was always kind enough to answer my questions like “what exactly is a shield? What does that mean?”
Like many of my other Zero to Maker experiences, I ended up with a greater understanding of what I didn’t know and what I need to do to reach my goal. The process of creating an embedded system for the OpenROV has really just begun. In fact, I’d love any input or advice you may have, whether that be on programming the Parallax board that Matteo developed or an Arduino design idea that can accomplish the same goals. We’ve started a discussion over on the OpenROV forum or feel free to leave ideas in the comments below.
More: Follow David’s Zero to Maker journey