BeagleBone For Dummies (2015)
The Part of Tens
Visit www.dummies.com/cheatsheet/beaglebone to be introduced to ten software packages to install in your BeagleBone.
In this part …
· Ten amazing projects for the BeagleBone
· Ten resources to give you a pleasant experience with the BeagleBone
Ten Amazing Projects for the BeagleBone
In This Chapter
Discovering some extremely cool projects featuring the BeagleBone
Replicating some amazing projects
Getting the motivation you need to take on projects of your own
The BeagleBone is an outstanding tool for so many programs because … well, it has pretty much everything. It operates at a very high frequency; it features all the most popular communications ports; it can be set to consume very little energy; it can be programmed in a wide array of programming languages. It isn’t an overstatement to say that the BeagleBone offers boundless possibilities in many areas, from fast-reacting systems and processing-heavy programs to low-consumption vehicles.
This book explores the virtually unlimited possibilities that the BeagleBone has to offer. The BeagleBone is truly an outstanding device, capable of significantly narrowing the gap between having an idea and actually building an apparatus.
This chapter is here to stir your imagination. It suggests ten amazing projects for you to consider. Each description includes a link where you can find information about these projects. In some cases, the links provide instructions so you can replicate the projects.
Underwater Exploration Robot
As its name suggests, OpenROV is a tiny yet awesome-looking (just look at Figure 16-1!) underwater exploration robot. The OpenROV website is very well organized and provides a great deal of information, such as where to buy an OpenROV and how to assemble one yourself. All the code and instructions for building the robot are provided, and the company welcomes anyone (including you!) to join its mission to explore the ocean.
Photo courtesy of OpenROV
Figure 16-1: OpenROV, the underwater exploration robot.
On the website’s Documentation page is an extremely detailed guide to making your own OpenROV, including how to assemble the chassis and how to mount the motors, the camera, an Ethernet adapter, and all other necessary electronics. You can download all the software from the same page and add your own twist to the code. Visit www.openrov.com to find out more. This project is also featured on the BeagleBoard website at http://beagleboard.org/project/openrov.
Autonomous Sailboat to Tame the Seas
FASt (see Figure 16-2) stands for FEUP Autonomous Sailboat — an 8.2-foot (2.5-meter) unmanned and fully autonomous sailing boat created by a group that Luís was part of at the Faculty of Engineering of the University of Porto.
The sea is a harsh and unstable environment for operating robotic boats. Even though sailing boats typically are slow vehicles, the data acquired from the navigation sensors has to be read and processed quickly to actuate the outputs so that the boat sails where it’s supposed to. At the same time, the boat has to be able to make the appropriate maneuvers and choose the best route to the destination. FASt automatically adjusts its sail and rudders by reading data from sensors that measure the wind, water speed, orientation, GPS satellites, and other sensors. A BeagleBone Black is the main brain of the whole operation, running all the software that handles the sensors and actuators, and making the navigation decisions in a clever way.
Figure 16-2: FASt, the autonomous sailboat.
The great thing about sailing robots is that they’re full green devices; they don’t require motors that eat up huge amounts of energy. Because its computer is powered by solar cells and its electronic system is designed to consume as little energy as possible, FASt can theoretically stay in the sea forever, taking on many missions, from performing ocean sampling or surveillance to tracking sea mammals. Interested? Take a look at the website at www.roboticsailing.pt.
Autonomous Robot for BeagleBone Black
Jon Hoffman decided to start playing around with the BeagleBone Black and ended up creating a robotic rover. It’s a very interesting ongoing project. Hoffman’s blog includes step-by-step instructions that cover everything from assembling the rover to coding it. The goal is to control the rover remotely, as well as have it drive itself to a destination autonomously.
For such a task, the rover features five rangefinder sonars placed all around it that precisely and quickly detect its position relative to the objects around it. The rover also includes a Bluetooth adapter so that it can be controlled remotely.
This project is interesting and fun, and has many degrees of complexity. The best part is that you can implement the basics — just having the rover drive around a little bit can spark a great feeling of realization — and then add to the project incrementally. Hoffman decided to add the sonars, and he still keeps working to improve the rover with every blog post.
Check out this project at the BeagleBoard website at http://beagleboard.org/project/FirstRobot. You can also visit Jon Hoffman’s blog at http://myroboticadventure.blogspot.de.
When programming the BeagleBone, it’s quite probable that you use BoneScript extensively. It allows you to use many useful capabilities to write some interesting programs. By providing many intuitive, simple-to-use functions, BoneScript makes it possible for even the newest programmers to control complex components. We thought it would be interesting to let you in on the BoneScript project itself so you can understand how Jason Kridner created a language that brings simplicity to digital electronics.
BoneScript is an interesting — and ongoing — project that provides an excellent platform for input/output programming. Because all its functions are asynchronous, BoneScript is an excellent library in which to create applications that rely on fast responses to events. In addition, BoneScript provides great support for applications that interact with the physical world and the web at the same time.
To find out more about what’s happening behind the scenes for this programming language, visit Kridner’s GitHub page at https://github.com/jadonk/bonescript. This project is also featured on the BeagleBoard website at http://beagleboard.org/project/bonescript.
Multimedia Center with Kodi
Kodi, formally named as XBMC, is a full-featured, award-winning multimedia center that’s capable of running on several platforms and in several operating systems. It’s an open-source entertainment hub that you could install on your BeagleBone.
When you connect the BeagleBone to the television set through HDMI, watching videos alone or with your family becomes the easiest thing ever. Just sit comfortably on the couch, and use Kodi’s remote-controlled user interface. (You can even use a smartphone as the remote control!) You can use Kodi to play and view most videos, music, podcasts, and digital media in general from local and network storage, as well as from the Internet.
The wiki and forums are full of helpful material to make sure you have an enjoyable experience using Kodi, whether you want to develop for it or simply use it. The website provides everything you need to get Kodi up and running and to get the most out of it; if you’d like to get involved with the project, you can see how at their website. Visit http://kodi.tv to find out more. This project is also featured on the BeagleBoard website at http://beagleboard.org/project/XBMC.
Kodi is quite a heavy application for the BeagleBone. Make sure that you have very few other programs running to have a smooth experience.
BeagleBone Gaming Console
Max Thrun decided to bring together many existing open-source BeagleBone capes to create GamingCape (see Figure 16-3), a handheld game console that features a BeagleBone Black and is reminiscent of the classic Nintendo Game Boy.
Photo courtesy of Max Thrun
Figure 16-3: BeagleBone GamingCape.
GamingCape is truly a marvelous piece of work. Electronics, software, and a little bit of materials knowledge have been brought together to create a handheld emulator that features several classic games for NES, Sega, and Game Boy systems. It can even run the good old Doom because it has all the necessary components: a color LCD, a joystick, and two thumb buttons, as well as plugs for headphones and a microphone. Max Thrun, the creator of the GamingCape, says, “Just drop in 4 AAA batteries and you’ll be playing your favorite games
discretely at work in no time”.
Visit Thrun’s blog at http://bear24rw.blogspot.pt/2013/07/beaglebone-gamingcape.html to find out more about this project.
BeagleBone As Super Nintendo
A guy named Andrew Henderson thought that it would be a good idea to turn his BeagleBone into a Super Nintendo — and we couldn’t agree more. With the BeagleBone Black, you have a chance to take a trip down Memory Lane by creating your own game system.
The so-called BeagleSNES project is an entire Linux file-system image that turns the board into a stand-alone console, enabling you to play game titles for Super Nintendo by using an emulator and an HDMI port or an LCD3 cape.
Naturally, a Super Nintendo console and the BeagleBone Black have quite different hardware. The BeagleBone Black runs at 1 GHz, for example, whereas the SNES runs at 3.58 MHz, which is much, much slower. This difference in the frequency at which they run allows each hardware instruction that would take place on the SNES to be emulated in the software of the BeagleBone Black, even if the BeagleBone Black requires many instructions to translate just one instruction from the SNES. Because the BeagleBone Black is much faster, it has plenty of time to run the extra instructions.
The BeagleSNES website features some very neat trailers as well as complete documentation and links to download all the source code. Whether you want to hack the code to make your own thing or you just want to play some of the old games you remember from years gone by, everything you need is at http://beaglesnes.sourceforge.net/. This project is also featured on the BeagleBoard website at http://beagleboard.org/project/beaglesnes.
BeagleBone Cape for Drones
Ron and Traci Battles started their website as a simple hobbyist blog. Now the site is a full-fledged business. The couple love to create products that extend the capabilities of open-source platforms such as the BeagleBone.
One project, the BeagleDrone, is an autopilot project that uses a BeagleBone and an Inertial Measurement Unit (IMU) cape. The IMU cape provides a three-axis magnetometer, accelerometer, gyroscope, and barometer — everything necessary for you to know the exact position of a device along a three-axis referential.
Additionally, two of the BeagleBone’s UARTs (Universal Asynchronous Receiver/Transmitter) have connectors for external modules such as GPS and telemetry. The BeagleDrone also features a voltage regulator, which makes it possible for power to come from a Reverse Capacity (RC) battery, keeping the voltage at 5V DC. Consequently, you can power the BeagleBone, the communication modules, and any servo motors. All this hardware makes the BeagleDrone a perfect device for any flying project in which you want to invest your time and creativity.
The BeagleBone’s powerful 32-bit microcontroller and Linux’s extensive libraries provide the foundation for this project and have very few limitations, allowing your imagination to soar as high as your project (lame pun?).
You can check out this project at http://andicelabs.com/beagledrone. The project is also featured on the BeagleBoard website at http://beagleboard.org/project/BeagleDrone.
You should drop by the Battles’ website — http://andicelabs.com — to see more interesting stuff!
Desktop Five-Axis CNC Mill
A CNC (computer numerical control) mill is a machine that’s used to create pretty much everything. It operates by cutting a piece of material to the desired shape. CNC mills have been around for industrial purposes for a long while, but over the past decade, there has been remarkable growth in people’s desire to build things themselves. This growth has created a new market for personal CNC mills that can sit on a desktop.
Normally, these machines cut material in the three translational axes of motion: X, Y, and Z. Matt Hertel and his crew decided to go one step further by creating Pocket NC (see Figure 16-4), a desktop five-axis CNC mill that allows for the manufacture of complex parts. Among desktop CNC mills, five-axis capability is quite an innovation.
Photo courtesy of Pocket NC
Figure 16-4: Desktop CNC mill.
A BeagleBone Black handles the computational prowess of motion control, running extremely precise software that decides how the Pocket NC operates to cut the material to the desired shape. For the electronics part, Hertel’s team designed a custom-made cape for the BeagleBone. The board runs a Linux distribution specially created for this kind of job: LinuxCNC. Head over to www.pocketnc.com if you want to find out more. This project is also featured on the BeagleBoard website at http://beagleboard.org/project/pocketnc.
BeagleBone 3D Printer
Elias Bakken, Tom Andersson, and Øyvind Dahl at Intelligent Agent AS came up with the phenomenal idea of creating a 3D printer featuring either the BeagleBone or the BeagleBone Black. They named their printer Replicape.
Replicape is an open-source 3D printer cape for the BeagleBone. It’s extremely fast; its source code can be altered for customization; and it provides access to the Internet.
The Replicape website provides a lot of documentation, including a wiki, and many interesting videos. We suggest that you watch the short video at www.thing-printer.com/product/replicape not only to hear about this project from Bakken himself, but also to watch it in action. This project is featured on the BeagleBoard website at http://beagleboard.org/project/Replicape.