Previously in Queer Your Tech, Ali mentioned Jewelbots, which are programmable friendship bracelets described as an “open source wearable for teens.” I am a big fan of the “internet of things,” a blanket term for physical, programmable objects with the ability to connect with one another through networked communication, for several reasons. Projects like Jewelbots have incredible potential to engage a broad range of people in programming, technology, and innovation. If the success of the this Kickstarter is any indication (over 4x the funding goal reached), teenage girls have plenty of interest in programming when it is applied to a problem or device that is interesting and valuable to them.
This idea can be extended far beyond Jewelbots and teenage girls; what if anyone who wanted to could buy a small computer at a very low cost and program it to solve their problems? Not only does the availability of this hardware teach more people to program, it also opens up incredible potential for innovation. If you have an idea for a new device and can build it with $40 and basic programming skills, you can actually just build that device. I personally am excited and hopeful for a future where folks from a much, much broader range of backgrounds are creating new technology. I HAVE SOLD YOU ON THIS IDEA, I CAN TELL.
But how do you get started? There’s a wide range of devices available for consumer purchase, each requiring slightly different skills. Here’s a roundup of some options, what they can do, and how you can get going programming one!
Up first is the Raspberry Pi, a credit-card sized computer and the first and most widely-distributed small, programmable device in the world. Originally released in 2012, the Raspberry Pi took off among hobbyists, educators, and even serious programmers as a low cost device for tinkering, inventing, and teaching programming. The original model is $21 on amazon, and all that’s required to get started is a keyboard and some sort of external display, such as a TV, laptop, or monitor. A starter kit can also be purchased that includes cables, a charger, a wifi chip, additional storage, and other nice-to-haves. There are several different models of the computer available, nicely broken down in this chart. The great thing about Raspberry Pi is that it’s backed by the Raspberry Pi Foundation, a non-profit dedicated to advancing computer science education in schools, so purchasing one supports this effort.
Once you’ve purchased a Raspberry Pi, there is a decent amount of setup required, and then you are able to begin programming the device using Python, which comes preloaded on the device. I wrote up a gentle introduction to Python, and the Raspberry Pi foundation has some great resources for learning the basics as well. Once you get started, the possibilities for what you can make are pretty much endless.
Arduino is the main Raspberry Pi alternative for small, programmable computers, with the main difference being the Arduino is substantially simpler and less computationally powerful. The set up is much easier for an Arduino, which can make it a better choice for absolute beginners. The Arduino, because of its simplicity, is also easier to hook up to other devices, such as LED lights, sensors, etc, and so might be a better choice if you’re looking to learn and use the basics of electronic circuits. Price-wise, the Arduino is similar with a basic board costing $25 and a full starter kit at $54. Arduino can be programmed using its own “Arduino Programming Language,” essentially C with some C++ niceties. I personally find this a little bit harder to get going with than Python, but there are numerous online tutorials available and lots of examples for getting started.
For more advanced programmers, there are a surprising number of affordable Android devices for sale, i.e. low cost tablets and even phones for under $50. The advantage of purchasing a phone or tablet is that you already have a high level of software/hardware integration to get started with, including bluetooth, wifi, battery power, motion/light sensors, and a camera. Android runs on Java, which as programming languages go, is a happy medium between Python and C. The Android Development Manual offers some good jumping off points for getting going with Android, but there is quite a bit of initial setup involved, and so I would steer absolute beginner programmers away from this option. You can do some really cool things once you get going, though, for example automate your home or you can literally build a robot.
Bonus Project Ideas
- Build your own open source smartwatch
- Be the most dapper nerd with this internet controlled light up tie
- Measure your own water use; probably save the world in the process
- This is a programmable menorah which I fully intend on building before Hannukah this year
- This is a tiny arcade. Do I need to even write anything else, ever?
This has been the one-hundred-fortieth installment of Queer Your Tech with Fun, Autostraddle’s nerdy tech column. Not everything we cover is queer per se, but we talk about customizing this awesome technology you’ve got. Having it our way, expressing our appy selves just like we do with our identities. Here we can talk about anything from app recommendations to choosing a wireless printer to websites you have to bookmark to any other fun shit we can do with technology. Header by Rory Midhani.