Raspberry Pi for Arduino Users
Leverage your Arduino skills in the Raspberry Pi world and see how to cross the two platforms into sophisticated programs.
The Arduino and Raspberry Pi communities overlap more than you might think. Arduinos can be expanded to have network capabilities with a variety of “shields,” all of which increase the cost and complexity of the system. By contrast, Raspberry Pis all run Linux, which is a very network-competent platform. The newest Pi, the Raspberry Pi Zero W, is WiFi and Bluetooth capable, and costs around $10 U.S. For network enabled gadgets, it makes far more sense to cross to the Raspberry PI platform, if only someone would make it easy to do. That's what this book is about.
You'll learn some survival level Linux system administration, so you know how to set the machine up and how to establish at least minimal security for your gadget. You''ll set up and learn the Geany IDE on your Pi, which is fairly similar to the Arduino IDE.
Where the two platforms overlap the most is the GPIO system. You'll see that several projects use and explain the WiringPi system. This is is deliberately similar to the Arduino's 'Wiring' functionality, which is how sketches interact with GPIO pins. You'll learn the differences between the GPIO pins of the two devices, and how the Pi has some limitations on those pins that the Arduino does not. As a final project, in an effort to escape some of those limitations, you'll attach an AtMEGA 328P to the Raspberry Pi and configure it as a real, 8MHz Arduino with the Arduino IDE running on the Pi, and learn how to have the two platforms communicate, giving you the best of both worlds.
What You'll Learn
- Establish security with Linux system administration
- Set up the Apache webserver
- Write CGI programs so other computers can connect to your Pi and pull data in from it.
- Use C/C++ from Arduino sketches to write programs for the Pi
The Arduino user who's been through all the tutorials and is comfortable writing sketches and connecting hardware to their Arduino.