This project is about how to drive rc car online ,global web site , with video streaming.
Video demonstration https://www.youtube.com/watch?v=uDFz4vNO7RU
Used hardware : uvc fpv camera usb receiver,fpv camera, wltoys rc car , esp32 dev board ,nrf24l01 wireless module
- Flash micropython firmware on esp32 dev board
- Put "main.py", "rc.py","regs.py" and "server.py" from "wltoys-v202-micropython" directory to esp32 board with micropython firmware
- Connect nrf pins correctly(we use software spi) 'miso': 32, 'mosi': 33, 'sck': 25, 'csn': 26, 'ce': 27
- Upload "httpserver" directory to server
- run "python2 httpserver/src.server.py",its start webserver which listening on 80 port
- Set your server ip adress in "camstreamer/main.c" and compile project
- Connect uvc fpv camera usb receiver to yor pc
- Turn on yor fpv camera
- Run "camstreamer/server" on your pc to start video streaming to global website
- Connect flashed and ready esp32 board to power
- Run "httpserver/src/udp_gateway.py" to your pc
- There are two mode inside "udp_gateway.py"
- mode 0 ,esp32 works as gateway between car and your computer,you need free wifi adapter for that
- mode 1 ,esp32 works as gateway between car and server
- Go to your global website and start driving
- Webserver is multi user so many user can go to website same time
- Drivers will by queueing to drive car.each driver have 60 sec to drive, after 60 sec driver will be next user.
- Users ordered by consecutive
- Users also can chat with each other
Used libraries
-
Broadway - for front side h264 decode and play
-
libuvc - for capture frames from uvc fpv camera usb receiver
-
libswscale - for converting frame from yuyv to YUV420p
-
libx264 - for encode YUV420p frame to .h264
-
tornado - python module for web server,it can handle websocket and webrequests same time