4 ⌨️ Configuration
« Un vrai sac à puces ! »
Last updated
« Un vrai sac à puces ! »
Last updated
Cherchez les informations de la version du NyBoard. Lisez le manuel d’utilisation pour NyBoard V0_1 ou NyBoard V0_2 en fonction de votre version.
Attention, une mauvaise manipulation pourrait endommager votre NyBoard.
Depuis NyBoard V0_2, nous fournissons un sélecteur de cavalier pour contourner le potentiomètre. Si vous utilisez les servomoteurs métalliques d'un kit Nybble standard, cette section peut être ignorée.
Une tension plus élevée augmenterait le couple des servomoteurs et la rapidité de déplacement de Nybble. Ce réglage présente cependant quelques inconvénients : il augmente la consommation d’électricité et l’usure des servomoteurs, réduit la durée de vie de la batterie et affecte la stabilité du circuit imprimé. Selon mes tests, le 5.5 V semble assurer une performance équilibrée.
Lors de la première installation, ne vissez pas le NyBoard car il vous faudra peut-être l’enlever pour régler le potentiomètre. Avant de calibrer plus précisément, assurez-vous que tous les servomoteurs pivotent correctement dans des conditions normales de fonctionnement.
Le commutateur I²C change le maître des dispositifs du bus I²C (gyroscope/accéléromètre, pilote des servomoteurs, EEPROM externe). Le réglage par défaut « Ar » du NyBoard utilise l’ATmega328P comme puce maîtresse. Avec « Pi », le NyBoard utilise des puces maîtresses externes connectées via les ports I²C (SDA, SCL).
Parfois, si vous ne pouvez pas passer par la phase de démarrage, il se peut que vous ayez accidentellement réglé l'interrupteur sur « Pi ».
NyBoard est conçu pour deux types de servomoteurs. Ceux en métal, et ceux en plastique (dans le cas des robots à monter soi-même). Les servomoteurs en plastique ne supportent pas une tension supérieure à 6 V. Un régulateur de tension est donc prévu pour le NyBoard. Le régulateur est calibré pour une puissance maximale de 5 A, qui ne peut être atteinte qu’après de multiples réglages et une mise au point minutieuse.
Lorsque le NyBoard fonctionne avec des servomoteurs en métal, quelques réglages sont nécessaires pour des performances optimales. Le NyBoard_V0_1 nécessite quelques soudures, suivez les instructions de ce post sur le forum. Pour le NyBoard_V0_2, vous pouvez connecter le commutateur de cavalier SW3 entre BATT et V_S. (Pour des raisons de sécurité, lorsque les servomoteurs sont en plastique, le NyBoard est livré avec un SW3 pour connecter BATT et V+)
V_S correspond à la mise sous tension des servomoteurs. Le commutateur de cavalier alimente les servomoteurs (V_S) via le régulateur de tension (V+) ou directement via la batterie (BATT). Ne connectez jamais BATT et V+ directement.
Il s'avère que le NyBoard fonctionne de manière plus stable lorsque les servomoteurs à engrenages métalliques sont alimentés directement par BATT plutôt que par V+. Cependant, si vous utilisez NyBoard pour piloter vos propres servomoteurs à engrenages en plastique, vous devez utiliser le circuit abaisseur.
Vous aurez besoin de la dernière version de l’IDE Arduino pour définir l’environnement. Les versions antérieures compilent des fichiers hex plus volumineux qui pourraient excéder les capacités de la mémoire.
Si auparavant vous avez ajouté d’autres bibliothèques logicielles et que le message d’erreur « XXX library is already installed » s’affiche, il vaut mieux les supprimer d’abord (Marche à suivre : https://stackoverflow.com/questions/16752806/how-do-i-remove-a-library-from-the-arduino-environment). En raison des différentes configurations d’installation de l’IDE Arduino, si des messages d’erreur concernant des bibliothèques manquantes s’affichent plus tard pendant la compilation, cherchez simplement sur Google comment les installer sur votre IDE.
Allez dans le gestionnaire de bibliothèques de l’IDE Arduino (Marche à suivre : {https://www.arduino.cc/en/Guide/Libraries), cherchez et installez
Adafruit PWM Servo Driver
IRremote
QList
Allez sur https://github.com/jrowberg/i2cdevlib, téléchargez le fichier zip et dézippez-le. Avec Git, vous pouvez aussi cloner le dépôt entier.
Utilisez Add .ZIP Library pour trouver Arduino/MPU6050/ et Arduino/I2Cdev/. Cliquez sur les dossiers et ajoutez-les un par un. Ils n’ont pas nécessairement besoin d’être des fichiers .ZIP.
Ouvrez la fenêtre Preferences...
Dans le champ Additional Boards Manager URLs, ajoutez https://raw.githubusercontent.com/PetoiCamp/OpenCat/master/Resources/NyBoard/boardManager/package_petoi_nyboard_index.json. Si des URL sont déjà listées dans ce champ, séparez-les par des virgules ou cliquez sur l’icône à côté du champ pour ouvrir l’éditeur et ajouter l’URL sur une nouvelle ligne.
Fermez l’éditeur Additional Boards Manager URLs, puis cliquez sur OK pour fermer la fenêtre Preferences.
Pour ouvrir la fenêtre Boards Manager... cliquez sur Tools -> Board: XXXX -> Boards Manager...
Saisissez NyBoard dans le champ Filter your search...
Sélectionnez l’entrée et cliquez sur Install.
Cliquez sur Close.
Sélectionnez ATmega328P (5V, 20 MHz) NyBoard depuis le menu Tools -> Board: XXXX (NyBoardV0_1 et NyBoardV0_2 utilisent les mêmes paramètres dans Board).
Seulement si la méthode précédente échoue
● Localisez le fichier boards.txt
Sous Mac :
/Users/UserName/Library/Arduino15/packages/arduino/hardware/avr/version#/
Ou :
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr
Faites un clic droit sur Arduino.app et sélectionnez Show Package Contents.
Sous Windows :
C:\Program Files(x86)\Arduino\hardware\arduino\avr\
ATTENTION : Si vous avez installé l’IDE Arduino via Microsoft Store, il est probable que vous n’ayez pas accès au dossier où les fichiers de configuration essentiels sont stockés. Le plus simple est de désinstaller l’IDE et de le télécharger/réinstaller directement depuis https://www.arduino.cc.
Sous Linux
Si vous téléchargez depuis le terminal ou le gestionnaire de logiciels, vous n’aurez peut-être pas la dernière version (ce qui peut poser problème). Téléchargez la dernière version sur le site d’Arduino : https://www.arduino.cc/en/Main/Software
Dézippez le dossier et utilisez le programme sudo install.sh
Les fichiers boards.txt sont stockés :
Pour Fedora : boards.txt est symlinké sous :
/etc
Pour Arch :
/usr/share/arduino/hardware/archlinix-arduino/avr/
Pour Mint :
location_of_installation/arduino/hardware/arduino/avr
Pour Ubuntu (version 18.04 lors de l’installation avec apt-get install arduino
) :
/usr/share/arduino/hardware/arduino/boards.txt
Après avoir localisé boards.txt:
● Faites une copie de vos fichiers boards.txt pour pouvoir revenir en arrière.
● Créez de nouveaux boards.txt.
Vous pouvez télécharger mes fichiers boards.txt, ou :
Modifier vos fichiers boards.txt avec les droits d’administrateur. Trouvez la section
pro.name=Arduino Pro or Pro Mini
et insérez
le bloc de code dans la section Arduino Pro ou Pro Mini comme indiqué ci-dessous. Enregistrez puis fermez l’éditeur.
● Téléchargez le chargeur d’amorçage (bootloader) ATmega328_20MHz.hex et enregistrez-le dans votre dossier Arduino ./bootloaders/atmega/. Notez la présence d'autres chargeurs d’amorçage avec l’extension .hex dans le dossier de sauvegarde.
Redémarrez votre IDE Arduino. Cliquez sur Tools->Boards et sélectionnez Arduino Pro ou Pro Mini. Vous trouverez l'ATmega328P (5 V, 20 MHz) dans le menu Processor.
Si vous ne trouvez pas la carte, il se peut que le chemin d’accès des boards.txt soit différent. Recherchez les fichiers boards.txt dans l’ensemble des dossiers de votre ordinateur pour le retrouver.
Uniquement si le chargeur d’amorçage du NyBoard ne fonctionne pas
● Qu’est-ce qu’un chargeur d’amorçage ?
Avant l'expédition, chaque NyBoard est soumis à des contrôles de fonctionnalité, de sorte à être équipé d'un chargeur d’amorçage compatible. Il n’est pas exclu que le chargeur d’amorçage soit défaillant, empêchant ainsi le chargement du programme avec l’IDE Arduino.
Toutefois, il est important de noter que le chargeur d’amorçage n’est pas nécessairement la cause des échecs du chargement :
Il se peut que votre carte USB détecte une forte consommation d’électricité provenant d’un périphérique et désactive l'ensemble des ports USB. Vous devrez alors réinitialiser la connexion USB ou redémarrer votre ordinateur ;
Installez le pilote de l’adaptateur FTDI USB 2.0 to UART ;
Vous n’avez pas sélectionné le bon port USB ;
Mauvais contacts ;
Pas de chance pour cette fois-ci. Réessayez ultérieurement !
Si vous souhaitez flasher de nouveau le chargeur d’amorçage :
Cliquez sur l'onglet Tool de l’IDE Arduino et sélectionnez le processeur ATmega328P (5V, 20 MHz).
Select your ISP (In-System Programmer). La capture d'écran ci-dessus présente les deux programmeurs les plus courants : le chargeur d’amorçage bon marché USBtinyISP (surligné en bleu), et Arduino as ISP, qui a l’avantage de fonctionner avec un Arduino ISP classique !
Connectez le programmeur au port SPI de NyBoard. Notez la direction lors de la connexion. Veillez à ce qu'ils soient correctement connectés.
Flashez le chargeur d’amorçage. Si vous le faites pour la première fois, attendez patiemment que toutes les barres de progression atteignent 100 % et qu'aucun autre message n'apparaisse dans la minute qui suit.
L'image suivante montre deux circuits FTDI classiques.
Sur le circuit intégré rouge, réglez le cavalier de sélection de tension à 5 V (et non 3.3 V) sur l'adaptateur d’Arduino. Faites correspondre la broche GND sur l'adaptateur et sur la prise 6 broches du NyBoard.
Connectez l’adaptateur FTDI (le module rouge avec 6 broches mâles) à votre ordinateur via un câble USB vers mini USB. L’adaptateur dispose de trois LED : une pour l’alimentation, et deux autres pour Tx et Rx. Une fois la connexion établie, Tx et Rx clignotent pendant une seconde pour signaler la communication initiale, puis s’éteignent. La LED d’alimentation quant à elle, reste allumée. Vous trouverez un nouveau port dans Tool->Port “/dev/cu.usbserial-xxxxxxxx” (Mac) ou “COM#” (Windows).
Sous Linux, une fois l’adaptateur connecté à votre ordinateur, vous verrez le port série « ttyUSB# » apparaître dans la liste. Il est toutefois possible qu'une erreur de port série survienne lors du chargement. Il vous faudra alors autoriser le port série. Pour ce faire, cliquez sur le lien ci-dessous et suivez les instructions : https://playground.arduino.cc/Linux/All/#Permission
Si Tx et Rx restent allumées, cela signifie que la connexion USB ne fonctionne pas correctement. Vous ne verrez donc pas le nouveau port s'afficher. Ce problème est généralement causé par la protection contre les surintensités de votre ordinateur. Il survient lorsque le NyBoard n'est pas branché à une source d'alimentation externe et que les servomoteurs fonctionnent tous en même temps.
Dans les versions ultérieures, la version de l’adaptateur FTDI peut être différente. Vérifiez les marques sur la puce et connectez-la correctement sur le NyBoard.
Vous pouvez programmer et communiquer avec Nybble via Bluetooth. Pour en savoir plus, consultez les instructions de paramétrage du Bluetooth sur le forum OpenCat (PetoiCamp). Vous pouvez également contrôler Nybble avec une application smartphone ou une API Web !
Téléchargez un nouveau dépôt OpenCat sur GitHub : https://github.com/PetoiCamp/OpenCat. Il est recommandé d'utiliser la fonction de contrôle de version de GitHub. Si ce n’est pas le cas, assurez-vous que le DOSSIER Nybble est bel et bien complet après chaque téléchargement. Les codes doivent tous être de la même version pour pouvoir fonctionner ensemble.
Vous trouverez plusieurs codes testX.ino dans le dossier ModuleTests. Vous pouvez les charger pour tester les modules séparément. Ouvrez le programme testX.ino de votre choix (avec le préfixe « test »). (Je vous recommande d'utiliser testBuzzer.ino comme premier programme de test)
Sélectionnez la carte Arduino Pro ou Pro Mini et compilez. Aucun message d’erreur n’est sensé apparaître. Chargez le programme sur votre carte, Tx et Rx devraient clignoter rapidement. Lorsque les LED cessent de clignoter, une série de messages doit apparaître dans le moniteur série. Assurez-vous que le paramétrage du débit en bauds (57 600) et de la fréquence de la carte (16 MHz ou 20 MHz) correspondent à la configuration requise.
En cas d’invites de saisie, veillez à bien définir « No line ending », faute de quoi les fonctions d'analyse ne fonctionneront pas correctement à cause des caractères invisibles « \n » ou « \r ».
Pour les machines sous Linux, le message d’erreur suivant peut apparaître :
Ainsi, vous devrez ajouter le privilège de lancement à avr-gcc pour compiler le programme Arduino :sudo chmod +x filePathToTheBinFolder/bin/avr-gcc
Vous devez également ajouter l’autorisation de lancement de tous les fichiers dans /bin, afin que la commande ressemble à : sudo chmod -R +x /filePathToTheBinFolder/bin
Avec l’adaptateur FTDI vers USB qui connecte le NyBoard et l’IDE Arduino, vous disposez de la meilleure interface pour communiquer avec le NyBoard et y modifier jusqu’au dernier octet.
J’ai configuré un ensemble de protocoles de communication série pour NyBoard :
Tous les jetons (token) commencent avec un seul caractère codé ASCII pour définir le format d'analyse. Ils sont sensibles à la casse et généralement en minuscules.
Certains jetons ne sont pas encore disponibles, comme « h ». Les jetons « i » et « l » occasionnent encore quelques bugs.
Seulement si vous utilisez Pi comme contrôleur maître. Nybble n’a pas besoin d’un Raspberry Pi pour fonctionner.
Comme indiqué dans le protocole série, les arguments des jetons pris en charge par le moniteur série de l’IDE Arduino sont tous codés en chaînes de caractères ASCII afin de les rendre visibles. Alors qu'un ordinateur pilote (un RasPi par exemple) supporte des commandes supplémentaires, qui sont le plus souvent en chaînes binaires pour un codage plus efficace. Par exemple, lors du codage d’un angle de 65 degrés :
Ascii : il faut deux octets pour stocker les caractères Ascii « 6 » et « 5 ».
Binaire : prend un octet pour stocker la valeur 65, correspondant au caractère Ascii « A ».
Qu'en est-il de la valeur - 113 ? Elle prend quatre octets comme chaîne Ascii, mais ne prend toujours qu'un octet en codage binaire, bien que le contenu ne soit plus imprimable en tant que caractère.
De toute évidence, le codage binaire est beaucoup plus efficace que la chaîne Ascii. Cependant, le message transféré ne sera pas directement lisible à l’œil. Dans le dépôt OpenCat, j'ai mis un script Python ardSerial.py qui peut gérer la communication série entre le NyBoard et le Pi.
Dans le terminal du Pi, saisissez sudo raspi-config
Dans les options de l'Interface, sélectionnez Serial. Désactivez le shell de connexion série et activez l'interface série.
Lorsque vous branchez Pi dans la prise 2x5 du NyBoard, leurs ports série sont automatiquement connectés à 3,3 V. Si ce n’est pas le cas, vérifiez les broches Rx et Tx de votre puce AI, ainsi que sa tension nominale. Le Rx de votre puce doit se connecter au Tx du NyBoard, et le Tx doit se connecter au Rx.
Si vous souhaitez l'exécuter comme une commande bash, il est nécessaire de le rendre exécutable :
chmod +x ardSerial.py
Il se peut qu’il faille changer la première ligne du chemin de votre binaire Python :
#!/user/bin/python
Le NyBoard n’a qu’un seul port série. Pour pouvoir contrôler Nybble avec le port série Pi, vous devez DÉCONNECTER l’adaptateur FTDI.
Saisir./ardSerial.py <args>
équivaut à saisir <args> dans le moniteur série d’Arduino. Par exemple, ./ardSerial.py kcr
signifie « perform skill crawl » (ramper).
Pour être à même de prendre en charge toutes les commandes série du protocole, l'ardSerial.py et la section d'analyse de Nybble.ino ont tous deux besoin de modules d'extension.
La capacité de mouvement est réduite lorsque Nybble est connecté à Pi ! Une batterie plus puissante est alors nécessaire.
En raison d’une consommation d’électricité plus importante avec Pi, Nybble aura plus de difficultés à effectuer des mouvements soutenus, comme le trot (le jeton du trot est ktr
). Nybble est alimenté par deux piles 14500 en série. Vous pouvez toutefois trouver de meilleures alternatives d'alimentation, comme l'utilisation de batteries Lipo 7.4 à haut débit, ou 2S-18650. Il y a plusieurs paramètres à prendre en compte pour garantir la meilleure performance possible, tant au niveau des logiciels que du matériel. Au vu de la petite taille de Nybble, il est préférable de se servir d'une plateforme pour lancer le système de communication et l’arbre de comportement, plutôt que d'en faire une bête de course.
Même si vous pouvez programmer le NyBoard directement avec l'adaptateur FTDI, une alimentation externe est nécessaire pour piloter les servomoteurs.
Lorsque vous utilisez le FTDI en USB comme seule source d'alimentation, le condensateur des servomoteurs se charge puis se décharge. Si vous utilisez le NyBoard dans ces conditions, la LED jaune se mettra à clignoter. Cependant, la tension de l'USB n'est pas suffisante pour que les servomoteurs fonctionnent très longtemps. Les servomoteurs doivent être alimentés par des batteries externes afin de fonctionner correctement.
Le NyBoard nécessite une alimentation externe de 7.4~12 V pour que les servomoteurs fonctionnent. La valeur par défaut utilisée pour configurer l'ensemble des paramètres système de Nybble est de 8 V. Ce qui correspond en général à deux batteries Lithium-ion ou Lithium-polymère montées en série. Une seule batterie contient 4.2 V lorsqu'elle est complètement chargée et peut fonctionner normalement jusqu'à ce que la tension descende à 3.6 V. Ce qui équivaut à environ 7.2 V avec deux batteries montées en série. Avant l'installation, réglez le potentiomètre du NyBoard en le tournant dans le sens horaire pour atteindre la puissance minimale (environ 4.5 V) puis composez-le jusqu'à ce qu'il puisse faire fonctionner le robot correctement. Avec les servomoteurs inclus dans notre kit, la connexion directe de SW3 entre BATT avec V_S fonctionne mieux et permet de contourner le régulateur de tension (et ainsi de ne pas régler le potentiomètre).
Lorsque vous achetez des piles, prenez celles qui comportent les inscriptions « 14500, 3.7 V, lithium-ion non protégé ». Notez que la protection contre les surintensités de certaines piles peut être déclenchée par l’appel de courant de crête (habituellement > 2.5 A), ce qui peut entraîner la réinitialisation ou le dysfonctionnement du NyBoard. Privilégiez les piles avec un régime de décharge plus élevé.
Consultez ce post sur le forum pour connaître les piles compatibles avec Nybble.
Le porte-piles est prévu pour des piles 14500, soit 14 mm de diamètre et 50 mm de longueur. Des piles de 51 mm peuvent aussi convenir. Ces piles ont la même taille que les piles AA, mais elles sont bien plus puissantes. Par conséquent, elles ne doivent pas être utilisées dans des appareils standard qui fonctionnent avec du AA. Pour les utilisateurs vivant aux États-Unis, nous avons testé les piles lithium-ion EBL 14500.
Vous pouvez également fabriquer un porte-piles capable de supporter des piles plus larges. Cela peut s'avérer utile si vous montez un Raspberry Pi, ou pour augmenter la vitesse de Nybble.
Veillez à bien respecter la polarité lors du branchement de l’alimentation électrique. Vérifiez que vous avez bien identifié le positif (+) et le négatif (-) sur la borne d'alimentation du NyBoard et sur votre source d’alimentation électrique.
Inverser la polarité pourrait endommager le NyBoard !
Desserrez les vis du bloc d'alimentation. Insérez les fils du porte-piles puis resserrez les vis. Lorsque vous allumez l'interrupteur, la LED bleue (puce) et la LED jaune (servomoteur) s'allument.
La pile peut tenir des heures si vous ne faites que coder et effectuer des tests. En revanche, si vous faites fonctionner Nybble sans interruption, elle durera moins de 30 minutes.
Lorsque la pile est faible, la LED jaune clignote lentement. Bien que le NyBoard puisse piloter un ou deux servomoteurs, il est très instable quand vous pilotez plusieurs servomoteurs à la fois. Cela peut occasionner de fréquents redémarrages du programme ou une mauvaise coordination des articulations. Dans de rares cas, piloter plusieurs servomoteurs à la fois peut engendrer un dysfonctionnement des bits de l'EEPROM. Il vous faudra alors télécharger et enregistrer à nouveau les codes et les constantes à rétablir.
Pour recharger vos piles, utilisez un chargeur intelligent compatible. Surveillez les piles lors de la recharge.
Pour éviter une décharge excessive, retirez les piles du porte-piles après chaque utilisation.
Il est possible de connecter l’adaptateur FTDI et la pile en même temps. Vous pouvez rentrer les commandes série lorsque la pile est insérée. Notez que le port série USB peut se désactiver de façon aléatoire. Cela est dû à une consommation élevée des servomoteurs, le système de protection contre les surintensités de l'ordinateur s’enclenche alors et désactive le port USB. Si tel est votre ce cas, vous pouvez changer de port USB, réinitialiser le bus USB ou redémarrer l'ordinateur. Il est donc recommandé d'alimenter la carte en électricité avant de brancher l’adaptateur FTDI