Contrôleur pour conduire https://github.com/jakkra/mars-rover. Page Web pour consulter les graphiques télématiques sur le téléphone https://github.com/jakkra/rover-mmission-ctrentrol.
Configure un AP, le Rover se connectera automatiquement s'il est dans la plage. Le Rover est contrôlé en envoyant un joystick et un état de commutation sur Lora ou un WebSocket. Si le rover n'est pas connecté à l'AP, les données seront envoyées sur Lora à la place. Il y a un commutateur pour remplacer ce comportement et toujours envoyer des données sur Lora même si le rover est connecté à l'AP.
Lorsque le Rover est connecté à l'AP local, il enverra des données télématiques sur WebSocket, ou sur Lora si le Rover est en dehors de la gamme WiFi. Les données sont ensuite transmises à un téléphone si l'on est connecté. Lorsque le rover est proche par la télématique arrivera à environ 10/s / s sur le WiFi, si la gamme de gamme, les télématiques sont transportées sur Lora. Comme les modules LORA ne peuvent pas effectuer de véritable transfert de données duplex, nous devons basculer entre l'envoi et la réception, ce qui signifie que les télématiques envoyées par le Rover pendant que nous envoyons des données de joystick seront perdues. D'après l'expérimentation, Lora Telematics arrive environ toutes les 500 ms.
Un téléphone peut se connecter au contrôleur AP pour afficher les télématiques du Rover. Le téléphone ouvre une connexion WebSocket au contrôleur et reçoit les données de télématisation que le Rover envoie. Le site Web de la télématique peut être trouvé ici: https://github.com/jakkra/rover-mission-control.
Le projet complet Fusion 360 se trouve dans le dossier CAD .
Pour Pinmapping Voir: https://github.com/jakkra/rovercontroller/blob/master/main/controller_input.c#l46





Suivez l'instruction sur https://github.com/espressif/esp-idf pour configurer l'ESP-IDF, puis exécutez idf.py build ou utilisez l'extension VScode.
TBD sur demande.
Exécutez git apply esp-idf-patch/no_delay.patch dans votre dossier ESP-IDF. Cela diminue le décalage pour TCP car il rincera les tampons après chaque écriture au lieu de la tampon LWIP des données TCP pour les envoyer en morceaux.