RASPBERRY Pi - LEARNING HOW TO MAKE YOUR ROBOT WORK
ANTICS - ARDUINO - ARMOUR - ARTWORK - BIOLOGY - BLACK BOX - COMPUTERS - ELECTRONICS - ENERGY - FRAME - HEAD - JAWS - JIMMY WATSON - KITS - LEGS - MECHANICS - MOTORS - MOVIE - PHOTOGRAPHY - RASPBERRY Pi - R/C DRONE - SENTRY - SOFTWARE - SOUND PROOFING - SPEED - SUSPENSION - TAIL - WEAPONS - WARGAMING
NECK JOINT - Let loose in the robot store, a young engineer checks out the range of movement of Dino's head mountings. Plug and Play computers do not need students to know much about structural design, welding or other engineering problems, they can just concentrate on learning how to make machines obey digital commands. The engineering grunt comes after the intellectual workout.
You might think it strange that the makers of so-called educational computers are so busy trying to maintain their market share that they failed to see the logic of working to the same basic voltage in selecting their architecture, so as to be more compatible with one another. If they were compatible they would be more efficient and the world would be slightly more sustainable in the reduction of energy and time used by humans to create robots for a better world. KISS
ABOUT RASPBERRY Pi and ARDUINO COMPUTERS
The Arduino is a wonderful platform for handling the lower level work of a robot - reading sensors, driving servos, and blinking lights. There is a fair amount of RAM on board, and it is programmable in C++, so you can write decent amounts of code, and basic autonomous robot behavior is well within its capabilities.
While it is extensible, meaning that you can add to and expand upon the basic board with future potential built in - you can buy Arduino shields to do a wide variety of things - it doesn't have an Operating System (OS) per se. Arduino has a great deal of support for accessing the board and driving servos, etc., but it is limited and doesn't provide what an OS provides, e.g., multiple processes or threads of execution, signals, IPC and so on.
IPC - In computer science, 'Inter Process Communication' (IPC) refers specifically to the mechanisms an operating system provides to allow processes it manages to share data. Typically, applications can use IPC, categorized as clients and servers, where the client requests data and the server responds to client requests. Many applications are both clients and servers, as commonly seen in distributed computing. Methods for achieving IPC are divided into categories which vary based on software requirements, such as performance and modularity requirements, and system circumstances, such as network bandwidth and latency.
Signal, or Asynchronous System Trap (AST) is a system message sent from one process to another, not usually used to transfer data but instead used to remotely command the partnered process, hence IPC. This is more common in robotics where we are using machines to do things based on what the machine knows about its surroundings.
MOTORS - We need two separate motors to power our ant robot, one motor for each side of the giant insect. This will allow us to steer the DinoBot. Slowing down one set of legs will cause Dino to turn in the direction of the legs working the slowest. The motor and gearbox that Ryan is inspecting is a 500 watt unit more commonly used to propel electric cycles. It's a teensy bit more powerful that the Lego or other VEX, STEM plug and play systems and way too expensive to learn with, but once beginners have mastered the basics using low powered robots, they may want to stretch their imaginations with projects that can do useful things in the real world. This hexapod platform could be the basis of a rescue robot, to carry humans from dangerous crash sites, or compromised nuclear plants where uneven surfaces might defeat a tracked vehicle.
ARDUINO + POINTS - When you think of Arduino, think of a great platform for hooking up sensors and servos, and the like, and getting access to a wonderful library of functions that make reading sensors and driving servos very easy.
RASPBERRY Pi + POINTS - The Pi provides Input and Output ( I/O) lines but no supporting library per se like you get with Arduino. You can do much of what you want in terms of reading sensors and driving servos from the Raspberry Pi, but it is probably better done on the Arduino.
What Raspberry Pi can provide that is out of reach of Arduino
is an operating system of the stature of Linux (Fedora and others), and with that all the support that Linux provides for non-trivial devices like USB Ethernet, USB cameras, etc. It also gains you access to the wide array of powerful libraries written for Linux like OpenCV for image processing and
hundreds (thousands) of others - pretty much anything that you would find on a desktop system is going to be available or portable in theory to Linux running on Raspberry Pi. It also provides orders of magnitude more processing power and memory, which will help in doing that tasks that a more sophisticate robotics application will need to perform.
The basic architecture of a Raspberry Pi/Arduino robot would be something like this:
1. Logic for interacting with robot hardware on the Arduino, and the brains of the robot on Raspberry Pi.
2. Add an Ethernet shield and send messages between the two (sensor status from Arduino to Raspberry Pi, and control commands (e.g., servo commands) from Raspberry Pi to Arduino).
Or wire together the serial lines and send commands and data over serial
(preferred, since it uses less power and probably less code to implement).
ROBOT INSECT PARTS - Ryan checks out the 2kW hour 48 volt lithium battery pack and the electronic speed controllers for the two 500 watt 2/3rd horsepower motors. That means that combined, this robot hexapod will have the power of 1.34 horses. Of course that all depends on the efficiency of the motors and drive train. In reality it will be more like a half a horse. A horse is a much bigger animal that our DinoBot.
COMPATIBILITY - A 3.3V I2C component can be connected directly to the Arduino, by using the 3.3V of the Arduino board, and using two 4k7 pull-up resistors to the 3.3V, but you have to know the risks. The Arduino boards use AVR microprocessors, most of which run at run at 5 Volts, and most of those Arduino Boards have a voltage regulator for 3.3 V which can be used for those components that need it.
OTHER INCOMPATIBILITY ISSUES
Raspberry Pi is great tool for embedded engineers but it lacks ADC. One more draw back is all of its IO’s are 3.3V level. On the other side Arduino is good at sensing the physical world using sensors. To get benefits of both the systems one may want to interface them.
SPI is an synchronous interface that uses a dedicated clock signal. The device considered the 'Master' provides a clock signal used to synchronize data transactions between the two devices.
The main problem arises when we try to make physical connection between the two boards because they are working on different voltage levels. We need to use level shifters to avoid any damage to the Raspberry Pi and to get expected results.
There is a nice blog on arduino forms. You can build level shifters by looking at this blog. Once we have a physical connection between the two micro computers, they can start talking to each other. On Pi side you can use any of your favorite programming languages.
Learning how to program a computer to control a moving object, react to sound or other moving objects, tell the time or measure temperature is not as difficult as it first seems using the latest educational aids from several different manufacturers, even if there are compatibility issues. And why are there so many different programming languages? Once again, we are building in difficulties for ourselves and wasting human lives writing code again and again to achieve the same outcome. For a bunch of clever people, computer engineers are quite stupid. Keep It Simple Stupid.
RASPBERRY Pi STARTER KITS
NATURAL VARIATION - Despite their reputation as pests, the trillions of insects, bugs, and spiders that inhabit Planet Earth can make some of the most fascinating and dramatic close-up photography subjects and some of the best robots in the world.
GUARDIAN 12 DECEMBER 2016
MAKEBLOCK - This is a more advanced version of the Lego Mindstorms Brick concept, mixed in with a bit of Meccano thinking and it looks good. These robot kits use Arduino and Raspberry Pi computers to navigate their world and perform simple tasks.
THE GUARDIAN 26 NOVEMBER 2015
The British-made computer is as comfortable in the classroom as on the kitchen table – we want to hear about your successful (and not so!) projects.
RASPBERRY Pi - Your computer board and other electronic components should come in protective plastic packets to prevent static electricity damage. A stand with clamps and magnifying glass will help you when it comes to fiddly soldering. Make life easier by using these low cost items in your laboratory, classroom or on your kitchen table. Sorry Mum!
LINKS & REFERENCE
BOX - COMPUTERS - ELECTRONICS - ENERGY - FRAME -
HEAD - JAWS -
WATSON - KITS -
LEGS - MECHANICS
- MOTORS - MOVIE
- R/C DRONE -
SENTRY - SOFTWARE -
PROOFING - SPEED -
SUSPENSION - TAIL
ANTICS - ARDUINO - ARMOUR - ARTWORK - BIOLOGY - BLACK BOX - COMPUTERS - ELECTRONICS - ENERGY - FRAME - HEAD - JAWS - JIMMY WATSON - KITS - LEGS - MECHANICS - MOTORS - MOVIE - PHOTOGRAPHY - R/C DRONE - SENTRY - SOFTWARE - SOUND PROOFING - SPEED - SUSPENSION - TAIL - WEAPONS - WARGAMING
This webpage is Copyright © 2017 Jameson Hunter Limited. The name DinoBot™ in relation to educational robotic kits is a trademark, though these articles on insects and hard and software is not-for-profit and may be freely quoted with or without a back-link but that a credit would be appreciated. All other trademarks are hereby acknowledged. The design of the Robot Ant on this series of pages is design copyright © December 23 2016, all rights reserved - Jameson Hunter Ltd.