BLDC controller made with IRF3205 mosfets and IR2101 mosfets drivers. BLDC PWMs are generated from 18F2550.
Both BLDC controllers are commanded from a main board with another 18F2550 which can be accessed from Android(USB/WIFI) or PC(USB).
One more time this can be controlled in long distance through WebRTC by mounting the Android statically and accessing to it from another mobile or PC, allowing to view through the statically mobile camera.
The server can control multiple client devices by P2P (camera, TCP/USB device)
Control multiple USB/TCP devices in the distance. Create a RTC_Host using RTC_Host_App and connect to it through RTC_Client_App. Then connect some TCP/USB device to mobile where RTC_Client_App is running and prepare the desired responses to the received commands from TCP/USB device. Customize this responses with the value to receive from RTC_Host_App. RTC_Host_App will detect the available commands for the control of TCP/USB device connected to RTC_Client_App and will put a control interface like switchs, potenciometers or a joystick. RTC_Host_App can activate the RTC_Client_App camera too.
Multiple clients can control the server by P2P (camera, TCP/USB device)
USB devices connected to single RTC_Host_App can be handled by multiple RTC_Client_App. From RTC_Host_App the number of players with device access allowed in a single round and when next round should be triggered can be configured. Clients can view the scene with the server webcam.
Robot controlled by WebRTC from PC (4G router) to mobile device. Is not under wifi. I can to controll this from kilometers. Mobile communicate with MCU by USB or ESP8266 (to have the mobile connected to a power bank) Using a free TURN server to avoid CGNAT in both (Robot & PC).
I maked remote control for the vehicle using WebRTC.
I have a website hosted in Glitch where I've running NodeJS+WebRTC.
First user that enter in website application acts as WebRTC server and this have controls to drive the client vehicle.
JETSON in vehicle has connected a WIFI adapter and this adapter is connected to mobile ISP data.
When Jetson verify for internet connection opens Chromium and load the Glitch website as second user (client). Then it make P2P pair with server, share webcam connected to Jetson and then active WebUSB to communicate Chromium with the microchip MCU by USB.
Server can previsualize the client webcam and send commands to it by WebRTC DataChannel.
Now the vehicle has the following functions:
- Automated drive by detecnet pursuing silhouettes.
- Short distance remote control by two ESP8266 modules (Access point in remote controll and Station in vehicle)
- Long distance remote control by WebRTC and the ISP data.
Now I need to see how I going to attach batteries (which I don't have) :)
If some day we are confined again (I hope that doesn't happen) I will be able to see what happens in the street xDDD
Remote control ready and setted to RC or USB modes only. I thinked I can drive a big vehicle sitting using remote control directly and I don't need two manual controls separately.
I try to divide the work as much as possible so that the master only has to listen to the data of its associated sensor from the slaves and send it all via WIFI to the PC. And receive the action also via WIFI and indicate it to the slave that has that action associated with it.
Even one of the 3 MCUs of the slaves is just to coordinate the other two which are one MCU for the gyroscope and the other MCU for the servo. So that the information is quickly available and flows without much of a jam in making calculations when the master requests things from the slaves. I have activated PLL to achieve 48MHz too
The idea of using multiple small MCUs instead of big one always was on my mind. The hardest part is to get them talk to each other.