So You Want to Make Things That Do Stuff

Michelle Easter
10 min readNov 30, 2015

--

I really want to make a _____ that does _____.” As an engineer with a background in mechatronics, I hear some version of this statement, filled with various things and stuff, pretty often. I meet so many people who have really creative ideas that they want to turn into physical reality, but they don’t know where to start. I was asked recently by an intern at work, “How did you learn how to write code that makes motors move and stuff?” I don’t care about word choice, technical or not, I am always happy to hear anyone get interested in learning skills that I find so fun and empowering. That’s why it means so much to me to be able to spread what I’ve learned with others, through outreach or teaching, because making things that do stuff is awesome and I love sharing that feeling.

But sharing the excitement of technology isn’t necessarily quick and easy. As someone who made a somewhat mid-life career change from being an uneducated fashion model to an engineer at NASA’s Jet Propulsion Laboratory , I know what it means to start trying to learn this stuff later in life with literally zero experience. It isn’t easy by any definition, but if anything I hope to be some sort of proof to you that it is totally possible for you to learn or do anything. Technology advances so rapidly that spending years out of the academic or tech worlds will definitely leave you feeling like an oblivious outsider, which is exactly how I felt when I started studying as an adult, having forgotten all basics of math, with the last of my formal educational experience coming from life in the pre-Google era.

All of this being said, my aim is to organize a bunch of resources that have helped me learn my way into the engineering world to share with people (like you). I’ve found that the main obstacles you will face if you want to get into robotics-type projects when coming straight out of left field are:

  1. There are tons of complicated-sounding and alienating vocabulary words you need to learn just to talk about engineering concepts.
  2. Theory isn’t enough; you need to get your hands into a project for things to really make sense.
  3. It’s much easier and more motivating to learn when someone is there to help answer questions and explain things to you, face to face.

Everything you need to address items 1 & 2 above can be found on the wonderful worldwide web. For those, I’d like to make the following suggestions to get started with embedded coding and system design, or making things that do stuff, from a total outsider’s standpoint. Item 3 is a bit trickier, but at the very least there are online communities and courses which can be a start, which is discussed later.

Electrical (The Blood)

First, let’s assume you don’t know anything about electricity or circuits. There are some fundamentals that you need to know in order to be able to follow basic tutorials and work safely with electricity. I recommend checking out a few useful tutorials from Sparkfun, which is an electronics retailer that is open-source and very supportive of education. Here are a few of their helpful electrical tutorials for total beginners:

Voltage, Current, Resistance, and Ohm’s Law

What is a Circuit?

Analog vs. Digital

How to Use a Breadboard

There are a bunch more tutorials they have that are super helpful. You can read away by clicking links under the subtitles “Suggested Reading” and “Resources and Going Further” from each of the links above. The more you read, the better prepared you will be. Most importantly, pick one of the example circuits you find in one of the tutorials and actually build it. It’s really fun when the light illuminates that first time, and it only gets more fun as the circuits grow in complexity.

Embedded Programming & Microcontrollers (The Brains)

Next, let’s assume you don’t know anything about programming. I want to start by saying that if you want to write embedded code you really need to learn C/C++. That’s a whole challenge in itself but programming skills are so valuable that its 100% worth it to learn. See Isis Anchalee’s post, So You Want to Learn How to Code, for some great links to tools for learning about algorithms (and web-based programming, for making websites and apps and stuff). I learned C/C++ by taking a series of proper computer science classes at my first university and it was a great experience (especially because my professor was so awesome) that I would highly recommend, since it’s nice to break up the constant computer-time with human interaction. In the meantime, check out this set of tutorials to get a basic understanding of code structures, variables and whatnot.

If you just want an introduction or want to jump more quickly into a project, Arduinos are really great microcontrollers to get started with for embedded coding. You can plug all sorts of things into an Arduino and program it to make the things do basically whatever you want. They are very popular “open-source” microcontrollers, which means there’s a whole community of people on the internet that develop code for all kinds of applications and post all their information and code online for anyone to use for free. The Arduino website is here, where you can buy Arduinos, download free software to program and connect to them (the IDE, or integrated development environment), get your Arduino set up, follow tutorials and even engage in extensive forums, with more questions answered than you can imagine. Arduinos are programmed in a simpler C++ type language with a bunch of pre-written subroutines (also called functions) that you can use (all documented on their Language Reference page) which makes them an easy but relevant starting point to program for people with all different backgrounds.

Sparkfun’s introductory Arduino tutorials can be found here:

What is an Arduino?

Installing Arduino IDE

Also, the series of 18 Arduino introduction tutorials from Adafruit are really great. They cover everything from installing the IDE to controlling motors. More on the awesomeness of Adafruit later.

Mechanical Design (The Brawn)

Once you get comfortable with circuits and some programming, you might want to design parts for a project, either to hold things together or to build a mechanism that moves and does stuff. I don’t want to oversimplify this, so I will say that there’s a lot to learn in the Mechanical Engineering realm, from integrity of a part’s design (what will and won’t break it), material properties, dynamics of motion of the system and more. Understanding this stuff takes some math background mixed with basic sciences (mostly physics and some chemistry). You’ve got to start somewhere though and for small projects without high power or large forces you can usually get away with using pre-made parts or kits or if things are simple enough, designing your own parts without crazy analysis. (Disclaimer: I am not liable for anyone injuring themselves..!)

CAD (computer aided design) software can be used to design 3D stuff, and although usually this software is expensive there are free alternatives. One is Onshape, which has a bunch of forums where the internet community helps you solve your CAD problems and tutorials to get you started with 3D modeling in no time. Getting your designs made without access to a machine shop or a 3D printer is pretty easy thanks to places like Shapeways, who will 3D print and mail you your parts using materials ranging from plastic to platinum. If you want to make thin, planar parts, like plates to mount things together with, you can get designs laser cut out of plastic, metal, wood and more, from Pololu. Spend some time on YouTube watching videos of laser cutting and 3D printing and you will quickly see how much is possible if you learn how to make CAD drawings.

Another important mechanical aspect for making things do stuff (like move) is obviously the motor. There are a lot of tutorials you can start with which indicate the particular motor type and size for that project, but as you advance you may want to pick your own motor. Sparkfun’s tutorial, Motors and Selecting the Right One, is a great explanation of how brushed, brushless and stepper motors work and what are their pros and cons. I definitely recommend reading the other tutorials under Resources and Going Further on that page. Again, the more you read, the better prepared you will be. Adafruit’s Motor Selection Guide is another motor must-read, which also talks about gear trains, servos and all-important motor controllers, which vary in complexity but are basically electronics that help your microcontroller to move your motor.

Components and Projects

Once you read enough to get some vocabulary down and you want to try out some projects, the following sites are great resources for getting your hands into things:

Adafruit — A really cool electronics retailer that sells lots of components with great documentation, has really fast shipping, and has tons of tutorials/guides and video demos and is run by a total badass, pink-haired female engineer from MIT. They sell, among other things, the Adafruit Motor Shield, which is a component for the Arduino that makes it really easy to control motors.

Instructables — A site with endless step-by-step tutorials for all sorts of projects, posted by people from all over. They have a whole section of the site dedicated to Arduino projects, and also have tutorials for seriously anything else you might need to know.

Sparkfun- Again, Sparkfun is a great electronics store with lots of resources and tutorials. One of their tutorials which is great when it comes time to buy parts is How to Read a Data Sheet. You will find data sheets to be your new best friends when you are picking out parts for a project.

Maker Media- I haven’t used their site nearly as much as the others, but they are definitely worth mentioning because this is the community that is responsible for the worldwide Maker Faires. They have all sorts of tutorials and, naturally, a bunch of Arduino project tutorials.

If you get into this point, you will definitely want a multimeter (which you can learn how to use here), a soldering iron (which you can learn about here), a set of jewelers/precision screwdrivers and some wire strippers as staple electronics tools.

Communities for Support

Back to item 3 on my list above. Working with other people is a hugely important part of engineering, and it sure makes learning a lot easier and more fun, too. There are lots of online communities that you may find helpful while working on projects. Here are just a few different types of community support you may find helpful:

Adafruit’s YouTube Channel- Here, you can join others online for a weekly show and tell and a weekly Ask-An-Engineer session. They also have tons of helpful how-to videos and demos of new components they receive.

Stack Exchange- This is a website that is great for debugging code in general, and has a whole section devoted to Arduino projects (which is linked). A community of users works together to answer each others questions, and chances are, if you’re having a coding problem of some sort, someone else has probably had and solved the same problem and posted all the details.

FIRST- If you are a student in grades K-12, you can join a FIRST team. FIRST is a super fun worldwide program dedicated to getting kids into robotics and tech. I am a FIRST Robotics team mentor and there are countless amazing engineers that show up in classrooms all over the world to help guide kids as mentors in FIRST.

More Structured Learning

If you really want to learn with more structure there are great options for that as well. One resource I have used heavily is MIT OpenCourseWare. On this site, MIT provides content and materials from 2260 of their courses, including Mechanical, Electrical and Computer Engineering, for free. Coursera has a 6-course specialization created for beginners by UC Irvine, An Introduction to Programming the Internet of Things (IoT) that costs money but definitely seems worthwhile, considering it covers theory for embedded programming and includes a project.

However, if you find yourself especially curious about or engaged with these concepts, I honestly suggest actually going to engineering school. It is a huge commitment and a lot of work, but my formal education totally changed my life for the better, and gave me the building blocks to become a full-time engineer, which is an incredibly rewarding job. It also gave me lifelong meaningful connections, including my academic mentor, Professor Godfrey Gumbs, who profoundly affected me through continuous support in the forms of teaching me, advising me, and providing me with life-changing academic opportunities. The value of mentorship while pursuing something as challenging as a STEM education is immeasurable.

One of my favorite ever advertisements, from LEGO, 1981. Basically my inner little kid.

I love the mechatronics and robotics fields because they are extremely innovative and empowering functional art forms. You can take some problem, and design your own solution out of thin air using your creativity and some technical know-how. It sounds broad and vague because it is- you are only limited by your imagination and the current state of technology. The even cooler thing is that when you pursue science and engineering, you can actually expand what that current state of technology is for others.

I am truly grateful to stand on the shoulders of giants in this world, including the people who produced all of the content cited above. To quote Isis Anchalee’s perfect conclusion, “Everyone has a different path, so my hope is that you can use these resources the best way that suites you. Remember, Google is your new best friend. The answer to your question has probably been asked before, you just need to know how to search for it.

Happy mind-making!

Michelle Easter

--

--

Michelle Easter

Former model turned NASA JPL mechatronics engineer, comp sci nerd and physics junkie