Since we have some idea about what we will build, we need to plan how all communication between the user, server and robot will work.
1. Main server
The main server will be responsible for keeping authentication data, robot connection data (IP and port) and call record. It will be basically a node.js application which will use koa as URL router. At our database, we plan to use our old friend mysql.
2. User interface
This one will be a little bit complicated. Our robot will be controlled by xbox controllers, so we need one bluetooth adapter, node.js library and we need to show some information about user’s controller. Also, the user interface must have connection to the main server in order to show the bot list
3. Bot interface
This is our big boy.
Our bot interface will need to…
- Receive connection data
- Receive movement data from the xbox controller
- Receive/send audio and video
- Send movement data to Arduino
In the next post we will begin coding our user interface, which probably will use:
- Electron, because we want a desktop app but i’m a web developer with no time to learn javaFx and .NET will force our users to work on windows and we don’t want that.
- React, mostly because I only know angular and I really want to learn how React works, but React’s component-oriented way of thinking seems to be easier than Angular’s way of thinking.
- WebRtc, because we need audio and video
- A little bit of luck because we have almost no time to plan it all and everything will be done on the fly