Comment faire fonctionner le robot Ergo Jr sur Raspberry Pi 3

Mise à jour le 3 octobre 2016
Après des tests plus approfondis, nous avons remarqué que le robot Ergo Jr fonctionnnait bien sur Rapberri Pi 3 mais que ses mouvements étaient très saccadés. La réponse courte est que nous utilisions un UART logiciel, moins performant que l’UART matériel (celui-ci étant utilisé pour le bluetooth). Vous pouvez lire l’explication complète dans l’article « Configuring The GPIO Serial Port On Raspbian Jessie Including Pi 3 » du site Spellfoundry.

Des utilisateurs des forums nous ont signalé qu’ils avaient rencontré des problèmes en voulant utiliser une Raspberry Pi 3 pour leur robot Ergo Jr.

Des changements entre les Raspberry Pi 2 sur l’interface série empêchent le code de l’Ergo Jr de fonctionner sur une Raspberry Pi 3. La bonne nouvelle est que c’est quelque chose de plutôt simple à réparer, et une image prête à être utilisée avec une Raspberry Pi 3 est téléchargeable. N’oubliez pas de sauvegarder vos projets Snap! ainsi que vos notebooks Jupyter avant de flasher la carte SD !

Si vous ne souhaitez que mettre à jour le code présent sur votre robot ou que vous ne faites qu’un changement d’une Raspberry Pi 2 vers une Raspberry Pi 3, les instructions qui suivent vous aideront à le faire.
Notez cependant qu’en fonction des modifications que vous avez apportées à votre robot, les instructions peuvent ne pas fonctionner correctement. Si tel était le cas, n’hésitez-pas à demander de l’aide dans la catégorie support des forums.

  1. Installez le paquet raspi-config officiel:

    sudo apt-get update && sudo apt-get install -y raspi-config
    
  2. Exécutez l’utilitaire sudo raspi-config, puis activez la caméra et désactivez l’option Advanced Options > Disable shell and kernel messages on the serial connection.

  3. Vérifiez que le fichier /boot/config.txt contient les lignes enable_uart=1 et dtoverlay=pi3-miniuart-bt, ou ajoutez-les si besoin.

  4. Faites en sorte que la dépendance python poppy_ergo_jr mentionne /dev/ttyS0 à la place de /dev/ttyAMA0 (c’est précisément ce qui pose problème et bloque la communication):

    Si vous avez déjà fait la modification barrée ci-dessus, il faut la défaire :

    sed -i -- 's/ttyS0/ttyAMA0/g' /home/poppy/miniconda/lib/python2.7/site-packages/poppy_ergo_jr/configuration/poppy_ergo_jr.json
    
  5. Redémarrez la Raspberry Pi 3, et amusez-vous bien !


Crédit photo : desmodex