Types of Concepts we will be working with in this project.
- Serial communication between the pi and the Arduino
- How to get and use information from a GPS
- How to get and use information from an IMU
- How to control speed controllers with PWM
- How to control servos with PWM
- How to use the information from a GPS/IMU to calculate how much we need to turn
Brief and Component Requirements
These series of posts will explain the process and the technology behind autonomous vehicles, large and small in addition to the concepts of how to make them drive themselves.
To start, you will need a list of components. I will list each one, and give a detailed explanation as to why they are needed. At the bottom of the page I will list those items with part numbers and links to buy them, I will also list the concepts we will be learning in this project.
1: Raspberry pi.
A raspberry pi is needed because it will act as our systems brain, it has a large amount of processing power and also leaves lots of room to grow for other more advanced and processing hungry capabilities such as path-finding obstacle avoidance, generating a path around an obstacle and towards the destination target, as well as machine learning capabilities.
2: Arduino Mega
The main purpose of the Arduino Mega is to receive commands from the raspberry pi through serial ports, either USB or UART pins. Then use those commands to control the Servos and Speed Controllers with PWM, additionally if anything happens, it is another layer to protect the PI. We use the Arduino because it will supply a correct wave form in PWM because unlike the raspberry pi where multiple operating system tasks are running at the same time, the Arduino only runs the compiled code and thats it, meaning we get an uninterrupted PWM.
we will need a GPS unit so that we know the position of the system in the coordinate system, this can in theory with a raspberry pi be a USB GPS, so long as it sends its data in SERIAL it will work. otherwise you can just get a GPS breakout board.
An inertia measurement Unit or IMU typically consists of a accelerometer, magnetometer and a digital gyroscope. we will use this so that the system will know which direction north is. This is useful to know as we will know our direction relative to the GPS coordinate system. We could get this from just the GPS using a couple of known locations and track the movement to get a heading, however we want a exact and accurate heading, especially because the vehicle could be small.
Servos are great, they are controlled through PWM and for small tasks such as an rc boat/car we dont need any stepper motors, meaning motor position control is all handled within the servo, so when we set the servo to 90 degrees, it will always go to exactly 90 degrees.
6: Speed Controller
Most speed controllers for RC cars/boats/planes are controlled through PWM, this is great as we can just tap into it to safely control our potentially high amperage motors without risking our hardware.
This series is still in development.