[PYTHON] Rendre le serveur de contrôle PLEN compatible avec ViVi PLEN2

J'avais l'habitude de calibrer ViVi PLEN directement avec une commande via la communication TCP, mais c'était tellement déroutant que j'ai essayé de voir si cela pouvait être fait avec un véritable serveur de contrôle PLEN. Il y a eu quelques essais et erreurs, mais j'ai réussi à le faire fonctionner, alors je l'ai enregistré.

Qu'est-ce que PLEN Control Server: PLEN2 utilise la communication série BlueTooth pour la communication sans fil, mais il semble que le développement d'applications puisse être facilité en entreprenant la communication et en agissant comme un serveur Web.

Il existe deux types, la version de l'application et la version Python, mais bien sûr la version de l'application ne fonctionne pas. J'ai donc supprimé la version Python de Github et jeté un coup d'œil au contenu. https://github.com/plenprojectcompany/plen-ControlServer

De la conclusion, si je corrige les trois points suivants, cela fonctionne pour le moment.

  1. Rechercher le périphérique «Arduino Micro» et établir une connexion pour établir une communication série entre Control Server et PLEN2. Puisque la connexion avec ViVi Plen est une série câblée, la valeur de retour (dans mon environnement) est "COM3".
  2. Le paramètre de vitesse de communication n'est pas ajusté automatiquement. Il a été décidé à 115200.
  3. Correction de la différence qui semble être due au fait que mon environnement de développement était Python3. Syntaxe d'impression Changé en Str car la valeur donnée à Serial.write () renvoie une erreur dans UTF. Serial.write (str.encode ())

Cependant, un problème se produit ici. Le PLEN2 actuel et le ViVi PLEN semblent avoir des versions de base différentes, et je n'ai même pas pu essayer d'obtenir ViVi pour télécharger le fichier de mouvement.

Envisagez de porter la partie pertinente de la ferme PLEN2 vers ViVi PLEN.

2020/05/10 postscript ViVi PLEN traite les fichiers de mouvement comme des fichiers SPIFFS. Puisqu'il utilise 2 Mo et que d'autres fichiers utilisent un total de 8 Ko, il est nécessaire de sécuriser 3 Mo de FS dans les paramètres Arduino IDE.

2020/05/16 PostScript firmware.ino Modification de l'affectation en m_header_tmp dans void setMotionHeader () pour correspondre à l'original

Protocol.cpp 30, // MOTION HEADER À 35, // MOTION HEADER changer en

JointController.cpp Selon les instructions de montage, la position de la broche et la position du servo ne correspondaient pas, donc const unsigned char servo_map[PLEN2::JointController::SUM] = {16, 7, 6, 5, 4, 3, 2, 1, 0, 18, 19, 20, 17, 8, 9, 10, 11, 12, 13, 14, 15, 21, 22, 23}; Échangez les 3ème et 4ème valeurs de const unsigned char servo_map[PLEN2::JointController::SUM] = {16, 7, 5, 6, 4, 3, 2, 1, 0, 18, 19, 20, 17, 8, 9, 10, 11, 12, 13, 14, 15, 21, 22, 23};

Maintenant, le serveur de contrôle PLEN et ViVi sont connectés via série.

Recommended Posts

Rendre le serveur de contrôle PLEN compatible avec ViVi PLEN2
Rendre le serveur de calcul sans disque avec LTSP
[Python] Rendons matplotlib compatible avec le japonais
Rendre pyautogui [super-approprié] compatible avec l'environnement multi-affichage Partie2
Rendre pyautogui [super-approprié] compatible avec l'environnement multi-affichage Partie 1
Comment créer un serveur HTTPS avec Go / Gin
Serveur TFTP avec Docker
Créer des couches Lambda avec Lambda
Créez un Yuma avec Discord.py
Serveur proxy avec Docker
Créer des diapositives avec iPython
Serveur local avec python
Contrôler les scripts avec des exceptions