Voici quelques jours que je travaille à une modification de l'architecture du projet afin de supprimer la liaison filaire entre les capteurs de barre, et la station au sol. Ce fil était en effet assez gênant, et un point de fragilité.
Le supprimer permettra d'avoir des mesures plus facile des ordres de barres d'une personne pilotant le kite manuellement et pouvant se déplacer.de quelques mètres autour de la station au sol.
Voici l'ancienne architecteture :
Joystick
|
|
v
GCS <-->Raspberry Pi <--> Arduino Uno-->Sabertooth-->Motors
^ ^ ^
/ | \
/ | \
Telemetry Line tension sensor Bar sensor
^
:
:
Telemetry
^
|
Arduino Nano
^
|
IMU
Et voici la nouvelle architecture, où la liaison filaire entre les capteurs au niveau de la barre et de la ligne a été remplacé par une liaison sans fil.
Cela me fait remarquer que je n'ai pas fait de tests d'interférence...
Joystick
|
|
v
GCS <-->Raspberry Pi <--> Arduino Uno->Sabertooth-->Motors
^ ^
/ |
/ RF 433MHz
Telemetry ^
^ :
: RF 433 MHz
: ^
Telemetry |
^ Arduino Nano
| ^ ^
Arduino Nano | \
^ Line tension sensor Bar sensors
|
IMU
Cela n'a (comme toujours) pas été aussi simple qu'envisagé.
Je voulais d'abord envoyer ce nouveau message sous forme de message mavlink afin d'essayer d'avoir une cohérence dans les messages, et de pouvoir utiliser des outils de log existants.
J'ai donc simplement essayer de faire un code émetteur envoyant un bit de vie avec mavlink, et un code récepteur le décodant et renvoyant une info sur le port série. Malheureusement pour une raison que j'ignore encore, je n'y suis pas arrivé. J'arrive bien à décoder le message venant de l'émetteur et à exécuter une action (allumer une led), mais impossible de faire des écritures sur le port série.
Le problème arrivait lors de l'appel de la fonction mavlink_parse_char.
Je suis finalement reparti vers quelques choses de plus simple, en modifiant les exemples de base d'envoi de trame pour envoyer des données numériques au lieu d'une chaîne de caractère.
J'ai ensuite réintégré le code permettant de venir lire le capteur d'angle de barre et le codeur linéaire.
J'ai eu des problèmes au niveau de la lecture de ce capteur. J'ai d'abord cru que c'était encore des problèmes de charge. Mais au final, je crois que les problèmes étaient liés à la lumière du soleil qui arrivait directement sur les capteurs des fourches optiques, perturbant le signal. Un peu problématique pour une utilisation prévue en extérieur, il va falloir réfléchir à utiliser un cache si mes conjectures sont bonnes.
Il me reste encore à vérifier l'intégration de la mesure de tension, à faire des tests d'interférence entre les deux émetteurs en 433MHz, à améliorer la connectique, puis à faire une intégration mécanique du tout, probablement avec de l'impression 3D ou de la découpe laser.
Aucun commentaire:
Enregistrer un commentaire