Only this pageAll pages
Powered by GitBook
1 of 12

🇫🇷Français

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Useful Links 🕸

Instructions d’assemblage pour Nybble

Traduction, révision, intégration : UBO Master 2 Rédaction/Traduction 2019-2020 ; A. Pennors ; N. Luce

You can write to [email protected] to discuss the translation work!

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 : ou envoyez-les à .

Une campagne de financement participatif est en cours sur Indiegogo : . 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

https://www.petoi.com/forum
[email protected]
igg.me/at/nybble

2 🧩 Contenu du kit

« 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.

2.1. Détacher les pièces du corps des planches en bois

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.

2.2. Enlever les échardes

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.

2.3. Vis

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 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, .

● 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).

2.4. Ressorts

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.

2.5. Servomoteurs

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.

Haut voltage (jusqu’à 8V)

Sans cœur

Oui

Non brossé

Pièce

Signal

Protocole

Voltage

Moteur

Roulement

Plastique

Analogique

PWM

5V

Brossé

Aucun

Métal

Numérique

les vidéos d’assemblage
utilisez la vis D pour pré-tarauder

Série

1 🧘‍♂️ Outils et Préparation

« Un projet bien préparé est à moitié réalisé ! »

1.1. Préparation

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.

1.2. Outils et accessoires

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’

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

9 👨‍🎓 Comprendre OpenCat.h

« Vendez la mèche... de poils de chat ! » 🧞‍♂️

🔬Cela nécessitera un autre guide

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.

10 🛠 Jouer avec le code et le logiciel

« 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.

Multimètre

Pour tester et corriger

Oscilloscope

Pour tester et corriger

Pistolet à colle / super glue

À éviter. OpenCat est conçu pour être souple !

À 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

Pour souder la LED décorative au capteur d’ultrasons

Module Bluetooth HC-05

Pour charger vos programmes et communiquer sans fil

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

IDE Arduino

5 🔌 Brancher les fils électriques

« Tout est connecté. » 🤝

5.1. Plan des articulations

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 :

5.2. Brancher les servomoteurs

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é.

5.3. Connecter les fils

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.

5.4. Connecter le capteur d’ultrasons

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) :

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.

7 🕹 Jouer avec Nybble

« Vous ne pouvez pas contrôler le vent, mais vous pouvez contrôler la voile. » ⛵️

7.1. Contrôler avec l’IDE Arduino

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.

7.2. Contrôler avec la télécommande infrarouge

7.2.1. Schéma des touches

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.

7.2.2. Mouvements intégrés

  • 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

  • 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.

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.

  • 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. (^=◕ᴥ◕=^)

  • VCC

    Trigger

    Echo

    Ground

    Côté capteur

    Côté NyBoard

    Vcc

    D8

    Trigger

    D9

    Echo

    D10

    GND

    GND

    (NyBoard V0_1 avant) (NyBoard V0_1 arrière)
    NyBoard V0_1
    NyBoard V0_2
    NyBoard avec Raspberry Pi

    3 🏗 Assembler le corps

    « Le tout est plus que la somme de ses parties. » 🔩

    3.1. Tête et cou

    3.1.1. Liste des pièces

    3.1.2. Préparer le capteur d’ultrasons

    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.

    3.1.3. Découper les servo-bras pour fixer les servomoteurs

    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é.

    3.1.4. Assembler la tête

    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.

    3.2. Corps

    3.2.1. Liste des pièces

    • 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.

    3.2.2. Fixer le porte-piles ajustable sur le ventre

    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.

    3.2.3. Assembler le corps

    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.

    3.3. Pattes

    3.3.1. Liste des pièces

    3.3.2. Attacher le caoutchouc au bout des pattes

    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.

    3.3.3. Insérer les servomoteurs dans la fente des pattes

    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.

    3.4. Cuisses

    3.4.1. Liste des pièces

    Dans les versions ultérieures, nous utiliserons des pièces en plastique pour cuisse2.

    3.4.2. Découper les servo-bras pour fixer les servomoteurs.

    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.

    3.4.3. Assembler les cuisses

    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.

    3.5. Queue

    3.5.1. Liste des pièces

    3.5.2. Assembler la queue

    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.

    8 👨‍🏫 Apprendre de nouvelles compétences à Nybble

    « Donnez du poisson à un chat, il mangera pendant une journée, apprenez-lui à pêcher et il mangera pour le restant de ses jours. » 🎣

    8.1. Comprendre les compétences dans Instinct.h.

    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é.

    8.2. Exemple de code Instinct.h

    8.2.1. Constantes définies

    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.

    8.2.2. Structure des données relatives à l’ensemble des compétences

    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.

    8.2.3. Suffixes indiquant un Instinct ou une Newbility

    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.

    8.3. Définir de nouveaux comportements et compétences

    8.3.1 Modifier le modèle de compétences existant

    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.

    8.3.2. Découvrir plus de compétences cachées dans Instinct.h

    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.

    8.3.3 Automatisation

    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 !

    6 📐 Calibrage

    « 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 :

    1. Écrire les constantes dans le tableau.

    2. Mettre le circuit sous tension, laisser les servomoteurs tourner librement jusqu'à l'angle/état de calibrage nul.

    3. Fixer les pièces du corps aux servomoteurs.

    4. Régler les compensations dans le logiciel.

    Retrouvez sur le forum OpenCat.

    6.1. Définir les constantes

    6.1.1. Il existe trois types de constantes à enregistrer dans le NyBoard :

    1. 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 ;

    2. 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 ;

    3. 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 !

    6.1.2. Charger et lancer WriteInstinct.ino.

    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.

    6.2. Paramétrer le mode calibrage

    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 :

    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.

    6.3. Visser la tête, la queue et les jambes

    6.3.1. Coordonner le système

    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.

    6.3.2. Comprendre les divisions d’angle

    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.

    6.4. Trouver et sauvegarder les compensations de calibrage idéales

    6.4.1. Régler précisément le calibrage dans le logiciel

    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.

    6.4.2. Équerre en « L »

    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.

    6.4.3. Validation

    Une fois le calibrage terminé, validez en saisissant « d » ou « kbalance ». Les mouvements des membres de Nybble sont maintenant symétriques debout comme assis.

    6.4.4. Centre de gravité

    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.

    //a short version of Instinct.h as example
    
    #define WalkingDOF 8
    #define NUM_SKILLS 6
    #define I2C_EEPROM
    const char cr[] PROGMEM = { 
    26, 0, -5,
     35, 37,-46,-53,-23,-32, -3, 12,
     40, 28,-42,-59,-24,-28, -4, 12,
     ...
     33, 39,-47,-51,-22,-32, -3, 11,
    };
    const char stair[] PROGMEM = { 
    54, 0, 30,
     44, 90,-39,-38, 10,-32,-10, 32,
     45, 90,-32,-46, 16,-38,-16, 38,
     …
     43, 90,-44,-32,  6,-26, -6, 26,
    };
    const char pu1[] PROGMEM = { 
    1, 0, 0,
      0,-30,  0,  0,  0,  0,  0,  0, 20, 20, 60, 60, 60, 60,-55,-55,};
    const char pu2[] PROGMEM = { 
    1, 0, 0,
      0, 10,  0,  0,  0,  0,  0,  0, 60, 60, 40, 40,-45,-45,-55,-55,};
    const char rest[] PROGMEM = { 
    1, 0, 0,
    -30,-80,-45,  0, -3, -3,  3,  3, 60, 60,-60,-60,-45,-45, 45, 45,};
    const char zero[] PROGMEM = { 
    1, 0, 0,
      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,};
    #if !defined(MAIN_SKETCH) || !defined(I2C_EEPROM)
    const char* skillNameWithType[] =
    {"crI", "stairN", "pu1I", "pu2I", "restI", "zeroN",};
    const char* progmemPointer[] = 
    {cr, stair, pu1, pu2, rest, zero, };
    #else
    const char* progmemPointer[] = {stair, zero};
    #endif
    const char rest[] PROGMEM = { 
    1, 0, 0,
    -30,-80,-45,  0, -3, -3,  3,  3, 60, 60,-60,-60,-45,-45, 45, 45,};
    const char cr[] PROGMEM = { 
    26, 0, -5,
     35, 37,-46,-53,-23,-32, -3, 12,
     40, 28,-42,-59,-24,-28, -4, 12,
     ...
     33, 39,-47,-51,-22,-32, -3, 11,
    };
    const char* skillNameWithType[] =
    {"crI", "stairN", "pu1I", "pu2I", "restI", "zeroN",};
    const char* progmemPointer[] = 
    {cr, stair, pu1, pu2, rest, zero, };
    const char zero[] PROGMEM = { 
    1, 0, 0,
      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,};

    15

    Compensation

    -1

    -1

    -1

    -1

    -1

    -1

    -1

    -1

    -1

    -1

    -1

    -1

    -1

    -1

    -1

    Indice

    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    plus de détails à propos du calibrage

    14

    -1

    4 ⌨️ Configuration

    « Un vrai sac à puces ! »

    4.1. NyBoard

    4.1.1. Lire le manuel d’utilisation

    Cherchez les informations de la version du NyBoard. Lisez le manuel d’utilisation pour ou en fonction de votre version.

    Attention, une mauvaise manipulation pourrait endommager votre NyBoard.

    4.1.2. Régler le potentiomètre dans le sens horaire sur la tension la plus basse

    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.

    4.1.3. Régler le commutateur I²C (SW2) sur Ar

    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 ».

    4.1.4. Ajuster NyBoard pour des performances optimales

    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 . 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.

    4.2. Téléchargements et installations

    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 : ). 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.

    4.2.1. Installer avec le gestionnaire de bibliothèques

    Allez dans le gestionnaire de bibliothèques de l’IDE Arduino (Marche à suivre : {), cherchez et installez

    • Adafruit PWM Servo Driver

    • IRremote

    • QList

    4.2.2. Installer avec la bibliothèque ZIP

    Allez sur , 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.

    4.2.3. Ajouter l’assistance de NyBoard à l’IDE Arduino (un grand merci à !)

    1. Ouvrez la fenêtre Preferences...

    2. 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.

    3. Fermez l’éditeur Additional Boards Manager URLs, puis cliquez sur OK pour fermer la fenêtre Preferences.

    4.2.4. Installation manuelle

    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 .

    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 :

    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 , 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) 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.

    4.2.5. Flasher le chargeur d’amorçage

    Uniquement si le chargeur d’amorçage du NyBoard ne fonctionne pas

    ●

    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 ;

    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 !

    • Connectez le programmeur au port SPI de NyBoard. Notez la direction lors de la connexion. Veillez à ce qu'ils soient correctement connectés.

    4.2.6. Connecter l’adaptateur FTDI

    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 :

    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.

    4.2.7. Connecter le Bluetooth à l’adaptateur (optionnel)

    Vous pouvez programmer et communiquer avec Nybble via Bluetooth. Pour en savoir plus, consultez les sur le forum OpenCat (PetoiCamp). Vous pouvez également contrôler Nybble avec une ou une !

    4.2.8. Télécharger le pack OpenCat

    • Téléchargez un nouveau ​dépôt OpenCat sur GitHub : . 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.

    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

    4.3. Utiliser l’IDE Arduino comme interface

    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.

    4.4. Utiliser le port série Raspberry Pi comme interface

    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.

    4.4.1. Configurer le port série Raspberry 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.

    4.4.2. Modifier l'autorisation du

    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

    4.4.3. Utiliser ardSerial.py pour contrôler Nybble

    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.

    4.5. Alimentation électrique

    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.

    4.5.1. Voltage

    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 pour connaître les piles compatibles avec Nybble.

    4.5.2. Dimensions

    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.

    4.5.3. Branchement

    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.

    4.5.4. La durée de vie de la pile dépend de l'utilisation

    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.

    4.5.5. Recharge

    Pour recharger vos piles, utilisez un chargeur intelligent compatible. Surveillez les piles lors de la recharge.

    4.5.6. Après utilisation

    Pour éviter une décharge excessive, retirez les piles du porte-piles après chaque utilisation.

    4.5.7. Interférence du signal

    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

    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).

  • Mauvais contacts ;
  • Pas de chance pour cette fois-ci. Réessayez ultérieurement !

  • 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.

  • 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 ».

  • NyBoard V0_1
    NyBoard V0_2
    post sur le forum
    https://stackoverflow.com/questions/16752806/how-do-i-remove-a-library-from-the-arduino-environment
    https://www.arduino.cc/en/Guide/Libraries
    https://github.com/jrowberg/i2cdevlib
    A-Ron
    https://www.arduino.cc
    https://www.arduino.cc/en/Main/Software
    boards.txt
    ATmega328_20MHz
    .hex
    Qu’est-ce qu’un chargeur d’amorçage ?
    Arduino ISP classique
    https://playground.arduino.cc/Linux/All/#Permission
    instructions de paramétrage du Bluetooth
    application smartphone
    API Web
    https://github.com/PetoiCamp/OpenCat
    Voici un tutoriel complet du site Instructables
    ardSerial.py
    post sur le forum
    ## Arduino Pro or Pro Mini (5V, 20 MHz) w/ ATmega328P
    ## --------------------------------------------------
    pro.menu.cpu.20MHzatmega328=ATmega328P (5V, 20 MHz) NyBoard
    
    pro.menu.cpu.20MHzatmega328.upload.maximum_size=30720
    pro.menu.cpu.20MHzatmega328.upload.maximum_data_size=2048
    pro.menu.cpu.20MHzatmega328.upload.speed=57600
    
    pro.menu.cpu.20MHzatmega328.bootloader.low_fuses=0xFF
    pro.menu.cpu.20MHzatmega328.bootloader.high_fuses=0xDA
    pro.menu.cpu.20MHzatmega328.bootloader.extended_fuses=0xFD
    pro.menu.cpu.20MHzatmega328.bootloader.file=atmega/ATmega328_20MHz.hex
    
    pro.menu.cpu.20MHzatmega328.build.mcu=atmega328p
    pro.menu.cpu.20MHzatmega328.build.f_cpu=20000000L
    
    ## Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328P
    ## --------------------------------------------------
    ##############################################################
    pro.name=Arduino Pro or Pro Mini
    
    pro.upload.tool=avrdude
    pro.upload.protocol=arduino
    
    pro.bootloader.tool=avrdude
    pro.bootloader.unlock_bits=0x3F
    pro.bootloader.lock_bits=0x0F
    
    pro.build.board=AVR_PRO
    pro.build.core=arduino
    pro.build.variant=eightanaloginputs
    
    ## Arduino Pro or Pro Mini (5V, 20 MHz) w/ ATmega328P
    ## --------------------------------------------------
    pro.menu.cpu.20MHzatmega328=ATmega328P (5V, 20 MHz) NyBoard
    
    pro.menu.cpu.20MHzatmega328.upload.maximum_size=30720
    pro.menu.cpu.20MHzatmega328.upload.maximum_data_size=2048
    pro.menu.cpu.20MHzatmega328.upload.speed=57600
    
    pro.menu.cpu.20MHzatmega328.bootloader.low_fuses=0xFF
    pro.menu.cpu.20MHzatmega328.bootloader.high_fuses=0xDA
    pro.menu.cpu.20MHzatmega328.bootloader.extended_fuses=0xFD
    pro.menu.cpu.20MHzatmega328.bootloader.file=atmega/ATmega328_20MHz.hex
    
    pro.menu.cpu.20MHzatmega328.build.mcu=atmega328p
    pro.menu.cpu.20MHzatmega328.build.f_cpu=20000000L
    
    ## Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328P
    ## --------------------------------------------------