A remote controlled car with a camera attached. Communication between opeator and car happens over the internet.
You might want to read the blog posts about this project. Start with: DIY World wide remote access to the Raspberry Car (Part 8).
This rewrite uses Nats.io for communication between car and operator since
- our Nats.io infrastructure is in place
- it comes with authentication
- Nats.io for communication between car and client
- Python on the car
- balenaCloud for deployment to the car
- Dev-Script-Runner for custom dev-tools
- Tauri for the client desktop app
- run
dev setup
You can work with the actual car or an emulated one.
- (if working with real car) Place Raspberry Car in stand, such that wheel do not touch the ground.
- (if working with real car) TODO: balena stuff
- Now you can use the
dev
scripts.
- Code for the operator of the car resides in operator-app.
- Code for the car in car.
# local start
dev up_operator_app
dev up_car_emulator
dev fake_second_operator
…
dev down
# switch configuration profile
dev profile_local_activate # Activates the configuration for a purely local development (default)
dev profile_sandstorm_nats_activate # Activates the configuration using the prod Nats server for communication
dev profile_prod_activate # Activates the production configuration using the real car with ID=1
# more commands
dev help
# enter Car
dev balena_enter # through cloud
ssh -p 22222 root@<ip> # through LAN
The operator and car communicate voa Nats.io:
- server: nats://localhost:4222 for local dev, tls://natsv1.cloud.sandstorm.de:32222 for production
- topic: de.sandstorm.raspberry.car.ID with ID being the ID of the car
The operator sends commands to the car and the car sends its camera feed back.