Traduction, révision, intégration : UBO Master 2 Rédaction/Traduction 2019-2020 ; A. Pennors ; N. Luce
Pour que ces instructions soient simples à comprendre, je me concentre sur l’assemblage sans trop entrer dans les détails.
Pour connaître le « pourquoi du comment », posez directement vos questions sur notre forum : https://www.petoi.com/forum ou envoyez-les à info@petoi.com.
Une campagne de financement participatif est en cours sur Indiegogo : igg.me/at/nybble. Retrouvez-nous sur les réseaux sociaux (Instagram/Twitter/Facebook/GitHub) : @PetoiCamp. Utilisez les hashtags #nybble #petoi ou #opencat pour partager votre construction avec nous, nous reposterons vos publications !
Last Updated: 02/02/2020
« Un projet bien préparé est à moitié réalisé ! »
Installez-vous sur un plan de travail propre et munissez-vous de petites boîtes avant d’ouvrir le paquet. Prenez une photo du contenu du kit au cas où vous perdriez un élément par la suite.
Il est préférable de vous installer dans une pièce sans tapis, ni motif ou relief au sol. De petites vis ou ressorts pourraient s’y dissimuler s’ils venaient à tomber par terre.
Outil | Remarque |
Cutter | Pour couper les languettes des pièces en bois |
Tournevis plats et cruciformes | Pour les vis M2 (diamètre = 2 mm) |
Ordinateur doté de l’IDE Arduino | Installez la dernière version de l’IDE Arduino |
Câble USB vers mini USB | Pour connecter l’adaptateur à l’ordinateur. Pas de micro-USB |
Deux piles rechargeables lithium-ion 14500 3.7 V | À ne pas confondre avec les piles standard AA (1.5 V). Capacité totale de ~800 mAh. |
Chargeur de piles intelligent | Attention : l'utilisation d'un mauvais chargeur est potentiellement dangereux ! |
Outil | Remarque |
Fer à souder et ses accessoires | |
Module Bluetooth HC-05 | |
Palette de couleurs | Pour que votre Nybble soit unique |
Imprimante 3D et ses accessoires | Pour créer vos propres formes |
Kit Arduino ou Raspberry Pi | Pour que Nybble ait encore plus d’options |
Multimètre | Pour tester et corriger |
Oscilloscope | Pour tester et corriger |
Pistolet à colle / super glue | À éviter. OpenCat est conçu pour être souple ! |
« La vie est comme un kit Nybble... » 🔍
Le contenu du kit et l’emballage sont susceptibles d’être modifiés au fur et à mesure de l’amélioration du produit. Les espaces de noms restent cohérents tout au long de ces instructions.
Des résidus de résine provenant de la découpe au laser peuvent subsister sur les pièces en bois. Nettoyez les planches en bois à l’aide d’un chiffon humide.
Les pièces sont fixées aux planches en bois par des languettes prédécoupées. Afin d’éviter d’endommager les pièces en bois, nous vous recommandons d’utiliser un cutter pour découper le verso des languettes, où les fibres de bois sont perpendiculaires à celles en surface. Ne détachez pas les pièces à la main.
Après avoir détaché toutes les pièces, vous pouvez plier et casser ce qui reste des planches, pour mieux comprendre les propriétés physiques du contreplaqué (anisotropie, élasticité, etc.). Vous serez ainsi plus sûr de vous lors des manipulations à venir.
Utilisez l'éponge abrasive pour ôter les éventuelles échardes des pièces en bois. Ne poncez pas trop pour ne pas endommager l’étanchéité des articulations.
5 types de vis sont utilisés dans ce kit. Comme illustré ci-dessous, elles ont chacune une couleur différente en fonction de leur emplacement. Toutes les vis ne sont pas nécessaires pour l’assemblage de Nybble. Les trous des pièces en bois ne sont pas tous destinés à recevoir des vis. Regardez attentivement les vidéos d’assemblage pour savoir où les placer.
● A sert à fixer les servo-bras. D (bout pointu) sert à attacher les servomoteurs au corps. Les vis A et D se trouvent dans la pochette d’accessoires de chaque servomoteur, avec les servo-bras en plastique.
● B sert à fixer les servo-bras/circuit imprimés au corps.
Afin de simplifier le contenu du kit, cette vis pourrait être remplacée par C dans les versions ultérieures. Dans ce cas, si le trou est trop étroit pour le bout plat de la vis C, utilisez la vis D pour pré-tarauder.
● C (bout plat) sert à fixer les cuisses.
● E (vis la plus longue) sert à attacher le porte-piles.
Pour les kits plus anciens, B, C et E se trouvent dans la planche en bois qui contient les pattes, à l’intérieur des blocs percés (voir ci-dessous).
Ce kit comprend trois types de ressorts : F, G et H.
● Le gros ressort F assure l’élasticité entre les cuisses. Une pièce de rechange est fournie.
● Le petit ressort rigide G sert pour le cou.
Il est remplacé par le ressort F dans les versions ultérieures.
● Le petit ressort souple H sert à attacher le porte-piles.
Nous avons récemment changé de fournisseur de servomoteurs. Auparavant, les MG92B étaient utilisés pour les articulations des quatre épaules, tandis que les MG90D étaient utilisés pour les autres articulations.
Les nouveaux servomoteurs disposent de fils plus longs. Des fils plus courts sont utilisés pour les articulations du cou, de la queue et des quatre épaules. Les fils plus longs sont utilisés pour l’articulation de la tête et des quatre genoux.
Les amateurs de servomoteurs remarqueront quelques différences.
Dans le kit Nybble, nous utilisons des engrenages métalliques ODMed, un PWM numérique, des servomoteurs à haut voltage avec roulement et des moteurs avec cœur en acier brossé. D’autres servomoteurs peuvent également fonctionner avec le système OpenCat, mais nécessiteront sans doute plus d’essais et d’erreurs pour fonctionner correctement.
Pièce | Signal | Protocole | Voltage | Moteur | Roulement |
Plastique | Analogique | PWM | 5V | Brossé | Aucun |
Métal | Numérique | Série | Haut voltage (jusqu’à 8V) | Sans cœur | Oui |
Non brossé |
« Le tout est plus que la somme de ses parties. » 🔩
L’algorithme d’évitement d’obstacles, qui fonctionne avec le capteur d'ultrasons, n’est pas encore intégré au code. L’installation ci-après est un bon point de départ mais n’est pas obligatoire.
Le capteur est connecté au NyBoard à l’aide d’un fil à quatre broches.
Souder la LED au capteur d’ultrasons (optionnel)
Cette LED RVB peut être soudée aux quatre broches du capteur d’ultrasons (voir les instructions) pour indiquer son statut, ou peut être programmée comme lumière décorative.
Pliez les broches du capteur d'ultrasons pour les installer ultérieurement.
Souder les quatre broches de l’embase du capteur d'ultrasons au NyBoard
Le capteur d’ultrasons est connecté aux broches GPIO apparentes situées sur le côté opposé du circuit imprimé du connecteur TTL. Vous pouvez personnaliser les définitions des broches dans OpenCat.h. Pour les définitions par défaut, soudez l’embase de connexion du capteur d’ultrasons dans les trous « D8 D9 D10 GND » comme indiqué ci-dessous.
La plupart des servo-bras du modèle sont conçus à partir du bras I en croix. Pour vous entraîner, vous pouvez commencer à couper les côtés les plus longs des bras qui ne seront pas utilisés.
Vous pouvez également chauffer la lame d’un couteau pour couper les pièces en plastique. Prévoyez un peu de marge, car le bord du plastique fondu sera arrondi.
Notez la différence de largeur entre les deux longs côtés des servo-bras I, et repérez bien la zone de découpe (les trous des vis servent de repères).
Comme nous avons changé de fournisseur de servomoteurs, les servo-bras ont également changé légèrement (comme indiqué ci-après). Pour éviter toute confusion, le servo-bras I peut être utilisé pour la plupart des articulations s’il est coupé de manière appropriée. Le servo-bras K est utilisé pour la queue, tandis que le servo-bras J peut être mis de côté.
N’assemblez que partiellement la tête pour pouvoir la calibrer plus tard. Dans le cas contraire, il sera particulièrement difficile d’insérer le servomoteur entre les pièces du cou. Observez comment le fil électrique est disposé par rapport à la tête. Suivez les instructions de la vidéo pour assembler les éléments de la tête.
NE CONNECTEZ PAS la tête au cou avant d’avoir calibré le mécanisme d’inclinaison du servomoteur de la tête.
NyBoard uniquement
Notez que sans le Raspberry Pi, le NyBoard est fixé sur le dessous de y1, les branchements des servomoteurs placés vers le bas. Dans les versions ultérieures, la pièce y1 est conçue pour être symétrique afin que les deux extrémités disposent de deux trous de vis.
NyBoard avec Raspberry Pi
Utilisez y1Pi pour remplacer y1 et ajoutez le support pour Pi. Soyez attentifs à l’emplacement des pièces roses. Avec le Raspberry Pi, le NyBoard est monté sur y1Pi.
Dans les versions antérieures du NyBoard, le fabricant utilisait des broches de cavalier plus grandes que prévues, rendant nécessaire le pliage des broches ou la modification du NyBoard afin d’y placer un Pi et d’utiliser le Pi Stand. Ci-joint une liste des solutions trouvées sur le forum : https://www.petoi.com/forum/clinic/placement-of-raspberry-pi-3b
Autres régulateurs
Cinq écrous de 6,4 mm sont également inclus pour monter d’autres circuits imprimés.
Pliez la charnière du porte-piles à 90 degrés pour qu’elle forme un L. L’extrémité doit être le long de la paroi externe du porte-piles (voir photo). La charnière fonctionne comme un interrupteur. Insérez la longue vis E dans le rivet pour une manipulation simplifiée. Insérez le rivet dans le trou du porte-piles en poussant, comme indiqué sur la photo. Soyez attentifs à l’emplacement des trous.
Les ressorts du porte-piles servent à modifier le centre de gravité pendant la mise au point des allures de Nybble.
Le porte-piles est prévu pour des piles standard AA (1.5 V). Cependant, Nybble fonctionne avec des piles rechargeables lithium-ion 3.7 V.
Soyez attentifs aux longues broches du récepteur infrarouge et du port FTDI. Elles sont conçues pour être pliées dans un certain sens. Ne pliez pas les broches trop souvent pour ne pas fatiguer le métal. Si vous souhaitez monter le Raspberry Pi, imprégnez-vous de la configuration adaptée.
Assemblez le corps comme dans la vidéo.
Il est possible que la colonne soit plus épaisse que la fente de l’épaule. Commencez par l’insérer de l’extérieur pour compresser l’embout et élargir la fente, puis insérez-la de l’intérieur.
Le bout dentelé des pattes est immédiatement fonctionnel pour la marche. L’ajout du caoutchouc est optionnel. Il sert à réduire les frottements et à amortir chaque pas.
Vous devez prendre en compte la direction dans laquelle le fil est tordu. La petite entaille sur le long côté est prévue pour accueillir le fil. Les quatre pattes doivent être symétriques. Suivez la vidéo d’assemblage pour assembler la patte.
N’INSTALLEZ PAS la vis A du servomoteur pour l’instant.
Dans les versions ultérieures, nous utiliserons des pièces en plastique pour cuisse2.
La zone de découpe est indiquée dans la section Tête et cou. La partie découpée du servo-bras la plus étroite doit être insérée dans le ressort F.
Avant de fixer les cuisse1 et cuisse2, glissez le fil électrique à travers la fente située au milieu de chacune d’elles. Les quatre pattes doivent être symétriques.
Une fois que cuisse1 et cuisse2 sont vissées ensemble, le servo-bras doit coulisser dans la glissière de cuisse2 avec une légère friction. Vous pouvez régler la friction en serrant ou desserrant la vis C. Pour mieux contrôler la friction :
Grattez la glissière avec un tournevis plat pour réduire la friction.
Pour augmenter la friction, appliquez un peu de colle à papier dans la glissière et laissez sécher.
Suivez les instructions de la vidéo pour assembler la cuisse.
NE VISSEZ PAS le cou et les pattes au servomoteur du corps pour l’instant.
La vis D est située dans le troisième trou à partir du centre du servo-bras K. Soyez attentif à l’ordre dans lequel les pièces sont empilées. Le rouet (queue2) doit pouvoir tourner avec une légère friction et la queue devrait s’incliner faiblement.
Suivez les instructions de la vidéo pour assembler la queue.
NE RACCORDEZ PAS la queue au corps pour l’instant.
« Un vrai sac à puces ! »
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
« Tout est connecté. » 🤝
Les servomoteurs de Nybble connectés symétriquement aux broches PWM (MLI) sont comparables aux nerfs situés le long de la moelle épinière. Bien que Nybble n'ait pas de degré de liberté (DDL) pour le roulement des épaules, ces indices (4~7) sont dédiés à la structure complète de l'OpenCat une fois assemblée.
Les broches PWM du NyBoard V0_1 et V0_2 ne sont pas dans le même ordre, bien que la connexion aux servomoteurs reste la même. Tous les réglages s'effectuent par le biais du logiciel.
Utilisez h pour la tête, t pour la queue, r pour l'articulation de l'épaule, s pour l'axe de l’articulation de l'épaule, k pour l'articulation du genou, F pour l'avant, H pour l'arrière, L pour la gauche et R pour la droite. Le plan complet des articulations de l’OpenCat est :
Référez-vous au modèle de connexion pour brancher correctement les servomoteurs aux broches PWM. Veillez à bien faire correspondre les fils. Le fil marron du servomoteur correspond au GND, tandis que les GND du NyBoard V0_1 se situent le long de la ligne centrale. Ils sont inversés sur le NyBoard V0_2.
Contrôlez rapidement tous les fils marron : ils doivent passer au-dessus des deux autres fils. Pour NyBoard V0_2, les fils jaunes doivent être au-dessus des deux autres fils.
Notez que l'emplacement des fils des servomoteurs reste le même pour le NyBoard V0_2, bien que l’ordre des couleurs soit inversé.
Après le calibrage, la résolution des problèmes et l'assemblage final, il est temps de connecter les fils électriques pour soigner l’apparence de votre Nybble. Sur votre Nybble, plusieurs emplacements sont prévus pour laisser passer les fils. N'hésitez pas à faire preuve de créativité lors de la connexion de vos futurs accessoires. Assurez-vous que les fils ne gênent pas le mouvement des servomoteurs.
Vous trouverez ci-dessous l'organisation de mes fils.
Si vous ne l'avez pas encore fait, branchez le fil à 4 broches, veillez à bien faire correspondre la couleur des fils et les signaux. Lorsque vous regardez Nybble dans les yeux, les connexions sont (de gauche à droite) :
VCC | Trigger | Echo | Ground |
Raccordez la seconde extrémité du fil à l'embase que vous avez soudée au début de l'assemblage à l’aide du tableau suivant.
Côté capteur | Côté NyBoard |
Vcc | D8 |
Trigger | D9 |
Echo | D10 |
GND | GND |
« Un coup manqué, même de peu, reste un coup manqué ! » 🎯
Le calibrage est indispensable au bon fonctionnement de Nybble.
Jusqu'à présent, nous n'avons fait que préparer les pièces du corps, mais nous ne les avons pas encore vissées aux servomoteurs. Si les servomoteurs ne sont pas calibrés avant d'être fixés, ils peuvent tourner dans tous les sens et rester coincés, ce qui peut endommager les servomoteurs ou les pièces du corps.
Le calibrage comporte quatre étapes :
Écrire les constantes dans le tableau.
Mettre le circuit sous tension, laisser les servomoteurs tourner librement jusqu'à l'angle/état de calibrage nul.
Fixer les pièces du corps aux servomoteurs.
Régler les compensations dans le logiciel.
Retrouvez plus de détails à propos du calibrage sur le forum OpenCat.
Les définitions relatives à l'assemblage, comme la correspondance des articulations, le sens de rotation et le brochage du capteur d’ultrasons. Elles sont relativement précises et l’essentiel est présenté dans OpenCat.h. Elles sont compatibles avec les robots à venir ;
Les paramètres liés au calibrage, notamment les compensations du MPU6050 et le réglage des articulations, sont mesurés en temps réel et enregistrés dans l'EEPROM embarquée. Cette mesure ne s'effectue qu'une seule fois ;
Les données relatives aux mouvements, comme les postures, la démarche et les comportements préprogrammés sont principalement définies dans Instinct.h. Il est également possible d’ajouter de nouvelles compétences personnalisées à votre Nybble !
WriteInstinct.ino écrit des constantes dans la mémoire morte embarquée ou I²C EEPROM et enregistre les valeurs pour le calibrage. Par la suite, le programme principal Nybble.ino l’écrasera.
Vous devez changer les options par défaut * sur#define NyBoard_V*_*
dans Instinct.h en fonction de la version de votre NyBoard. La version que vous utilisez est indiquée sur le côté gauche du terminal vert de la batterie.
Une fois le chargement de WriteInstinct.ino terminé, lancez le moniteur série. Plusieurs questions vous seront posées :
Reset all joint calibration? (Y/n)
(Souhaitez vous réinitialiser tous les calibrages des articulations ?)
Si vous n’avez jamais calibré les articulations, ou si vous souhaitez les réinitialiser, saisissez « Y ». ATTENTION : le « Y » est sensible à la casse !
Do you need to update Instincts? (Y/n)
(Avez-vous besoin de mettre à jour Instincts ?)
Si vous avez modifié Instinct.h de quelque manière que ce soit, saisissez « Y ». Cependant, une fois que vous aurez une meilleure compréhension du fonctionnement de la mémoire, vous verrez que ce n'est pas toujours nécessaire.
Calibrate MPU? (Y/n)
(Souhaitez-vous calibrer le microprocesseur ?)
Si vous avez déjà calibré le MPU6050, c’est-à-dire le capteur de l’accélérateur / du gyroscope, saisissez « Y ».
Il arrive que le programme s’interrompe à l’étape de connexion. Si tel est le cas, fermez puis lancez à nouveau le moniteur série ou appuyez sur le bouton de réinitialisation sur NyBoard pour le redémarrer.
L'état de calibrage correspond au point médian de la portée du servomoteur. Le calibrage des servomoteurs peut être fait dans WriteInstinct.ino ou Nybble.ino. En cas de problème avec les constantes, je vous recommande de le faire sous WriteInstinct.ino.
Pour un calibrage efficace, branchez TOUS les servomoteurs et la batterie. Puis, saisissez « c » dans le moniteur série pour lancer le calibrage. Les servomoteurs tourneront successivement à intervalles irréguliers avant de s’arrêter. Selon la direction initiale de l’arbre, certains pourront former des angles plus grands jusqu’à s’arrêter au point médian. Le système d’engrenage des servomoteurs devrait alors faire du bruit. Référez-vous à la table de calibrage :
La première ligne représente les indices d’articulation, la deuxième ligne correspond à leurs compensations de calibrage :
Indice | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Compensation | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
Les valeurs de départ sont « -1 » ou « 0 » et devront être modifiées par un calibrage ultérieur.
Les servomoteurs possèdent un potentiomètre qui contrôle la variation de rotation. En position statique, ils génèrent une tension autour de l’angle de l’axe de sortie. Après une courte période d’utilisation, une vibration se fera sentir. Elle ne vous posera pas de problèmes en mouvement continu. Des servomoteurs de meilleure qualité peuvent vous éviter ce genre d’inconvénients, mais ils coûtent également 10 fois plus cher.
Une fois que vous avez saisi « c » et que tous les servomoteurs sont en position initiale, vissez les éléments précédemment préparés (tête, queue et pattes) au corps de votre Nybble. Ils devraient être perpendiculaires à la partie du corps qui leur est associée. Évitez de faire pivoter l’arbre du servomoteur pendant la procédure.
La rotation des membres dans le sens antihoraire à partir de leur position initiale donnera une valeur positive (comme les coordonnées polaires). L’angle d’inclinaison de la tête est l’unique exception. Dans le cas d’une rotation dans le sens horaire, vous obtiendrez une position « tête haute » plus naturelle.
En regardant de plus près l’arbre du servomoteur, vous remarquerez qu’il contient plusieurs dents, qui servent à visser les servo-bras tout en évitant de glisser dans le sens de rotation. Dans l’exemple ci-dessous, les engrenages sont divisés en 20 secteurs sur 360 degrés, chacun de 18 degrés. Par conséquent, on ne peut pas toujours obtenir une installation perpendiculaire parfaite. Faites de votre mieux pour qu’ils soient le plus proche possible de la position initiale. Utilisez la vis A pour attacher les membres sur les servomoteurs.
La commande de calibrage est programmée comme suit cIndex Offset
(référez-vous aux protocoles de communication série pour NyBoard). Vous remarquerez qu’il y a une espace entre l’Indice et la Compensation.
Par exemple, c8 6
signifie que le huitième servomoteur est compensé de 8 degrés. Trouvez la compensation qui rapprochera le plus possible le membre de sa position initiale.
Veuillez noter que si votre valeur de compensation absolue est supérieure à 9, alors le membre n’est pas vissé au plus près de sa position initiale. Par conséquent, la portée du servomoteur sera diminuée de chaque côté. Retirez le membre et faites-le pivoter d’une dent. La compensation sera plus petite et inversée.
Par exemple, si votre valeur de calibrage est de -13, retirez-le membre, faites-le pivoter d’une dent et vissez à nouveau. Le nouveau calibrage devrait être de 5 sachant que le total doit systématiquement être de 18. Évitez de pivoter l'arbre du servomoteur pendant la procédure.
Une fois le calibrage effectué, n’oubliez pas d’enregistrer vos compensations en saisissant « s », sans quoi vos compensations seront perdues une fois le mode calibrage fermé. Il est également possible d’effectuer un enregistrement après le calibrage de chaque servomoteur.
En fonction de l’angle de vue, la perception ne sera pas la même. C’est pourquoi on lit directement au-dessus de la règle lorsque l’on mesure une longueur.
Il est important de conserver une perspective parallèle lorsque vous calibrez Nybble. Pour éviter les erreurs de lecture, utilisez l’équerre en « L » comme point de repère parallèle. Alignez les extrémités de l’équerre avec le milieu des vis situées dans les articulations des épaules et des genoux et le petit trou sur le bout du pied. Regardez le long de l’axe parallèle aux centres. Pour chaque patte, calibrez d’abord les servomoteurs de l’épaule (indices 8~11), puis les servomoteurs du genou (indices 12~15). Lors du calibrage du genou, assurez-vous que votre alignement est parallèle en utilisant les trous triangulaires présents sur l’équerre et la patte.
Une fois le calibrage terminé, validez en saisissant « d » ou « kbalance ». Les mouvements des membres de Nybble sont maintenant symétriques debout comme assis.
Essayez de comprendre comment Nybble garde son équilibre même lorsqu’il marche. Si vous souhaitez ajouter de nouveaux accessoires sur Nybble, essayez de répartir au mieux la charge de chaque côté de la colonne. Il se peut que vous ayez besoin de pousser le porte-piles en avant ou en arrière afin de trouver le bon équilibre.
« Vous ne pouvez pas contrôler le vent, mais vous pouvez contrôler la voile. » ⛵️
Essayez les commandes série suivantes dans le moniteur série :
« ksit »
« m0 30 »
« m0 -30 »
« kbalance »
« ktr »
« ktrL »
« d »
Les guillemets indiquent que ce sont des chaînes de caractères. Ne saisissez pas les guillemets dans le moniteur série.
Seule la position des boutons compte, bien que ces symboles pourront vous aider à vous rappeler des fonctionnalités. Je vais définir les symboles associés aux positions pour me référer à ces touches.
Je me sers des abréviations afin de réduire l’utilisation de la mémoire SRAM. Je change souvent les définitions pour m’amuser.
Le schéma ci-dessous n'est qu'une illustration. Référez-vous à String translateIR(){...} dans Nybble.ino pour obtenir les vraies définitions de touches. Tu peux également les personnaliser selon tes envies.
Le bouton 1 arrête les servomoteurs et éteint Nybble. Il est plus prudent de cliquer dessus si Nybble se comporte bizarrement. Vraiment. Il y a encore quelques zones d'ombre dans le système que je ne comprends pas totalement.
Le bouton 2 active la position debout statique. Nybble peut se coucher sur le flanc ou lever les pattes arrière et la queue. Testez son équilibre sur une surface en mouvement. En réalité l’équilibre est effectif dans la plupart des postures et démarches.
Prenez Nybble par le milieu de la colonne et soulevez-le afin que ses pattes ne soient plus posées et qu’elles puissent bouger librement. Chaque bouton de la télécommande infrarouge correspond à une action, essayez-les tous. Placez ensuite Nybble sur une large surface plane et essayez-les à nouveau. La démarche et les gestes ne seront pas les mêmes, en fonction de la surface. Les petites jambes de Nybble ne sont pas faites pour marcher sur de la moquette. Mais il peut ramper dessus (commande kcr).
Vous pouvez baisser le porte-piles et le faire glisser dans le sens de la longueur du ventre. Le centre de gravité sera mieux défini pour une meilleure démarche. Si ce n’est pas fait, il risque de tomber régulièrement.
Nybble est capable de monter ou descendre une pente légère (moins de 10 degrés)
Si vous souhaitez que Nybble arrête l’action qu’il effectue, placez-le à la verticale comme un chat qu’on attrape par le cou.
Si Nybble émet toujours un bip après avoir exécuté Nybble.ino, avec des chiffres indiqués (autour de 500) sur le moniteur série, c’est que l’alarme de basse tension est déclenchée. Il vous faut alimenter NyBoard avec deux batteries Lithium-Ion / Lithium-Polymère de 3.7 V chacune pour que le test soit réussi.
« FIFO overflow! Using last reading! » est une correction de l’algorithme d’origine MPU6050 du moniteur série. Ce n’est pas un bug.
Les servomoteurs ont été conçus pour être actionnés par des engrenages internes. Évitez de les faire pivoter trop rapidement par vous-même.
N’utilisez pas Nybble pendant trop longtemps. Le système électronique risquerait de surchauffer et la durée de vie des servomoteurs serait considérablement réduite. Il est pas possible de reconfigurer NyBoard V0_1 pour prolonger la durée de fonctionnement de Nybble.
Il peut arriver que le programme s’arrête en raison d’une variation de voltage. Vérifiez si la pile est faible (moins de 3.5 V chacune ou moins de 7 V en série). Appuyez sur le bouton de réinitialisation se trouvant sur le NyBoard pour redémarrer le programme.
Nybble est acrophobe ! Si vous le soulevez et le faites tourner au-delà d'un certain degré, son mouvement actuel sera interrompu. Pour ne pas effrayer Nybble, ne le retournez pas !
Soyez gentils avec Nybble comme avec un vrai chaton. (^=◕ᴥ◕=^)
« Donnez du poisson à un chat, il mangera pendant une journée, apprenez-lui à pêcher et il mangera pour le restant de ses jours. » 🎣
Un ensemble d'angles d'articulation définit une posture statique, tandis qu'une série d’ensembles définit un mouvement régulier, habituellement une démarche.
L’EEPROM est limitée à 1 000 000 cycles d’écriture. Je décide donc de minimiser les opérations d’écriture.
Il existe deux sortes de compétences : Instincts et Newbility. Les chemins sont tous deux écrits sur l’EEPROM embarquée (1 KB) dans la table de références, mais les données réelles sont stockées à différents emplacements de la mémoire :
La mémoire I²C EEPROM (8 KB) stocke les Instincts.
Les Instincts sont des compétences déjà programmées et perfectionnées. On peut les comparer à une « mémoire musculaire ». La plupart des Instincts sont écrits de manière linéaire une seule fois sur la mémoire I²C EEPROM avec WriteInstinct.ino. Leurs chemins sont générés et enregistrés dans la table de références sur l’EEPROM embarquée lors de l’exécution de WriteInstinct.ino.
PROGMEM, (qui partage la mémoire vive 32 KB avec le programme) stocke la Newbility.
Une Newbility est une nouvelle compétence expérimentale qui nécessite de nombreux tests. Elle n’est ni écrite sur l’I²C, ni sur l’EEPROM embarquée, mais elle est conservée sur la mémoire vive sous un format PROGMEM. Il doit être téléchargé comme le serait un composant d’un programme Arduino. Son chemin est également défini pendant l'exécution du code, bien que la valeur change rarement si le nombre total de compétences (y compris tous les Instincts et Newbilities) reste inchangé.
define WalkingDOF 8
Indique que le nombre de DDL pour marcher est de 8 sur Nybble.
define NUM_SKILLS 6
Le nombre devrait être le même que dans la liste const char* skillNameWithType[]
.
define I2C_EEPROM
Indique que NyBoard contient une mémoire I²C EEPROM pour enregistrer les Instincts.
Si vous construisez votre propre circuit imprimé qui n’en contient pas, il n’est pas nécessaire de le préciser sur cette ligne. Les deux sortes de compétences sont maintenant enregistrées sur la mémoire vive sous le format PROGMEM. De toute évidence, cela réduira l'espace flash disponible pour les codes fonctionnels. S'il y avait trop de compétences, cela pourrait même dépasser la taille limite pour le chargement du programme.
Regardez bien les deux compétences suivantes :
Elles sont formatées ainsi :
Une posture ne correspond qu’à un seul mouvement, tandis qu’une allure correspond à plusieurs mouvements.
Vous devez charger WriteConst.ino pour écrire les compétences dans l’EEPROM pour la première fois.. Voici les informations qui seront utilisées :
Vous remarquerez l’emploi des suffixes I ou N sur les chaînes d’appellation de la compétence. Ils indiquent au programme où stocker les données relatives aux compétences et quand définir leurs chemins.
Plus tard, si tous ces facteurs sont réunis, le programme n’aura besoin que de ce repère pour se référer à la listeconst char* progmemPointer[] = {stair, zero};
afin d’exploiter au mieux les compétences prédéfinies.
Il existe déjà une compétence appelée « zeroN » sur Instinct.h. Il s'agit d'une posture non définie qui n’attend plus qu’on la configure.
Vous pouvez tout d’abord utiliser la commande mIndex Offset
pour bouger les articulations dans la position de votre choix, puis remplacer les angles d’articulation (en gras) en une seule fois :
Vous pouvez simplement charger Nybble.ino chaque fois que vous changez le tableau (sans avoir à charger WriteInstinct.ino) puisqu’il est considéré comme une Newbility et n’a pas besoin d’être écrit sur la mémoire morte I²C EEPROM. Pour déclencher la nouvelle posture, appuyez sur le bouton 7 de la télécommande infrarouge ou saisissezkzero
dans le moniteur série.
Vous pouvez renommer cette compétence mais n’oubliez pas de mettre à jour le schéma des touches de la télécommande infrarouge.
Davantage de compétences sont cachées dans Instinct.h et peuvent être utilisées via le moniteur série avec la commande liée au jeton « k ». Par exemple, kcd1
permettra à Nybble de passer dans la posture « cd1 », qui signifie « se pencher en avant ».
Vous pouvez également écrire des programmes courts pour que Nybble effectue plusieurs compétences à la suite, de la même manière que les « pompes » dans Nybble.ino. Par exemple, en connectant les postures « cd1 » et « cd2 » comme séquence en boucle, vous pouvez faire en sorte que Nybble se penche en avant, regarde de gauche à droite, puis de droite à gauche.
Jusqu'à présent, Nybble est contrôlé par la télécommande infrarouge, vous permettant de prendre les décisions concernant son comportement.
Vous pouvez connecter Nybble avec votre ordinateur ou votre smartphone et les laisser envoyer des instructions automatiquement.
En ajoutant des capteurs (notamment sensoriels) ou des modules de communication (à l’image d’un module de contrôle vocal), vous pouvez apporter une nouvelle perception à Nybble, et lui apprendre de nouvelles capacités. Vous pouvez donc intégrer de nombreux comportements automatiques et potentiellement rendre Nybble autonome !
« Vendez la mèche... de poils de chat ! » 🧞♂️
Le système de contrôle de Nybble est OpenCat, que je développe depuis un certain temps. Vous pouvez lire d'autres histoires via mes publications sur Hackster.io.
Cela représente beaucoup de travail pour l'instant 🤷🏻♂️ mais vous êtes les bienvenus pour en discuter avec moi sur le forum ou par email. La bonne nouvelle, c'est que je garderai le code compatible avec les futurs modèles d'OpenCat, et même avec vos propres robots faits maison ! J'espère que la documentation sera complétée au cours des processus.
« Plus rapide, plus intelligent et plus mignon que jamais ! » 🦾
Pour qu'il 👉 VOUS ressemble !
Partagez vos connaissances et votre créativité avec notre communauté sur https://www.petoi.com/forum.