RCVehiclePy
RCVehiclePy copied to clipboard
Control steering and throttle of a R/C car via MQTT with Raspberry Pi 3B
RCVehiclePy
This is a Tool to Control steering and throttle of a R/C car via MQTT with Raspberry Pi 3B.
Table of Contents
- Prepare Hardware
- Getting Started
- Demo
- Acknowledgments
- License
Prepare Hardware
Setup Raspberry Pi 3B
- You can read my simple instruction at here.
Build a car

- Hardware is almost same as a Donkey Car.
- I bought below parts. The cost is about $130.
Access point
We have several ways to connect Host PC and Raspberry Pi in outside.
- Setting Raspberry Pi as an access point. (documentation)
- Put a smart phone on a R/C car, and tethering both of them.
- Put a mobile wifi router on a R/C car.
Getting Started
Connect to Pi via SSH
After setup access points,
$ sudo ssh [email protected]
Setup momo
Momo is a powerfuil WebRTC Native Client. You can follow my instraction at here.
Clone Repository
$ cd ~/
$ git clone https://github.com/shirokunet/RCVehiclePy
Update pip3 (optional)
$ sudo apt-get remove python-pip python3-pip
$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python3 get-pip.py
Setup Prerequisites
- Python 3.5.x
- numpy 1.16.1
- PyYAML 3.12
$ cd ~/RCVehiclePy/
$ sudo pip3 install -r requirements.txt
$ sudo apt-get install python3-numpy
$ sudo apt-get install python3-yaml
Check Pi's IP address
$ ifconfig
wlan0: flags=4163 mtu 1500
inet xx.xx.xx.xx netmask 255.255.255.0
Setup config file
Then chenge config file
$ cd ~/RCVehiclePy/
$ vi config.yml
pi_ip: 'xx.xx.xx.xx'
Lunch MQTT publisher on the Raspberry Pi
$ cd ~/RCVehiclePy/
$ python3 pi_main.py
Set environment on the host PC
Same as the step of the Raspberry Pi.
- Clone Repository
- Setup Prerequisites
- Setup config file
Lunch MQTT publisher on the host PC
$ cd ~/RCVehiclePy/
$ python3 pc_main.py
Send command to Pi from the host PC
Just push key "UP" or "DOWN" or "LEFT" or "RIGHT" on the terminal.
Stop Program
Type 'Ctrl' + 'c' in both terminals.
Demo
The latency is about 100~300msec. It can be controlled easily even if you watch only the camera streaming.
Acknowledgments
- Actuator layer is built upon autorope/donkeycar. Thank you!
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details