{"id":4875,"date":"2025-09-27T14:22:31","date_gmt":"2025-09-27T12:22:31","guid":{"rendered":"https:\/\/www.aacmb.fr\/wordpress\/?p=4875"},"modified":"2025-10-24T11:35:59","modified_gmt":"2025-10-24T09:35:59","slug":"bottango_01","status":"publish","type":"post","link":"https:\/\/www.aacmb.fr\/wordpress\/2025\/09\/27\/bottango_01\/","title":{"rendered":"L&rsquo;animation avec Bottango ?"},"content":{"rendered":"<p>On trouve dans le commerce de nombreux \u00e9quipements \u00ab\u00a0robotis\u00e9s\u00a0\u00bb. Sous ce terme, je vais volontairement regrouper tout un ensemble d&rsquo;objets, allant de la voiture t\u00e9l\u00e9command\u00e9e avec votre smartphone, \u00e0 la grue meccano ou aux l\u00e9go technic qui vont pouvoir r\u00e9aliser seuls ou en semi-autonomie diff\u00e9rentes actions.<\/p>\n<p>Pour apprendre la robotique, il existe de nombreux kits \u00e0 monter, \u00e0 tous les prix.<\/p>\n<p>Mais n&rsquo;avez-vous jamais eu envie de r\u00e9aliser votre propre robot ?<\/p>\n<p>Il ne vous faudra finalement pas grand chose :<\/p>\n<p>&#8211; un peu de m\u00e9canique,<br \/>\n&#8211; un peu d&rsquo;\u00e9lectronique,<br \/>\n&#8211; et un peu de programmation.<\/p>\n<p>Le plus difficile est de trouver l&rsquo;id\u00e9e qui donnera \u00e0 votre robot une touche personnelle.<\/p>\n<p>Pour ce projet \u00ab\u00a0d\u00e9couverte\u00a0\u00bb, je vous propose de r\u00e9aliser des yeux animatroniques tels que ceux pr\u00e9sent\u00e9s ci-dessous.<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4883 aligncenter\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/yeux_01-e1759077802530.png\" alt=\"\" width=\"500\" height=\"305\" \/><\/p>\n<p>Ce type de produit se trouve tout fait, mais vous pouvez aussi trouver des fichiers stl \u00e0 imprimer, voire concevoir vous m\u00eame.<\/p>\n<h2>C\u00f4t\u00e9 m\u00e9canique<\/h2>\n<p>Le principe de fonctionnement m\u00e9canique est g\u00e9n\u00e9ralement le m\u00eame : les yeux peuvent se d\u00e9placer de gauche \u00e0 droite et de haut en bas gr\u00e2ce \u00e0 des servos-moteurs (2 par oeil). Les paupi\u00e8res peuvent s&rsquo;ouvrir et se fermer (1 servo par paupi\u00e8re dans mon cas). Nous aurons donc 6 servos-moteurs \u00e0 piloter.<\/p>\n<h2>C\u00f4t\u00e9 \u00e9lectronique<\/h2>\n<p>Piloter des servos-moteurs est une chose qu&rsquo;une carte arduino (ou de la m\u00eame famille) sait parfaitement faire \u00e0 moindre co\u00fbt. Pour simplifier au maximum la connectique, nous pouvons m\u00eame utiliser une carte sp\u00e9cialis\u00e9e pouvant piloter jusqu&rsquo;\u00e0 16 servo moteurs. Nous verrons cela plus en d\u00e9tail par la suite.<\/p>\n<h2>C\u00f4t\u00e9 programmation<\/h2>\n<p>Nous pourrions programmer directement notre controleur Arduino. Mais j&rsquo;ai d\u00e9couvert un outil d\u00e9di\u00e9 \u00e0 ce type de t\u00e2che (et open-source) : Bottango. Il fonctionne exactement comme un logiciel de montage vid\u00e9o, avec une timeline, mais orient\u00e9 servo-moteur. Ceci permet d&rsquo;obtenir rapidement un r\u00e9sultat, avec en plus un mode simulation qui permet d&rsquo;arriver rapidement au r\u00e9sultat souhait\u00e9.<\/p>\n<p>Le d\u00e9cor \u00e9tant maintenant fix\u00e9, \u00eates-vous pr\u00eat \u00e0 vous lancer dans ce mini-projet ? C&rsquo;est parti !<\/p>\n<h1>Chapitre 1 : L&rsquo;expression du besoin<\/h1>\n<p>Pour ce premier projet, le besoin va \u00eatre tr\u00e8s simple :<\/p>\n<p>\u00ab\u00a0je souhaite animer les yeux de la mani\u00e8re suivante :<br \/>\n&#8211; ouvrir et fermer les paupi\u00e8res r\u00e9guli\u00e8rement (un clignement toutes les 10 secondes)<br \/>\n&#8211; regarder \u00e0 gauche, puis \u00e0 droite et revenir au centre r\u00e9guli\u00e8rement.<\/p>\n<p>Le cycle se r\u00e9p\u00e8te en permanence.<\/p>\n<h1>Chapitre 2 : La programmation de l&rsquo;animation<\/h1>\n<p>Avant d&rsquo;aborder la r\u00e9alisation, il est utile d&rsquo;avoir une id\u00e9e de la fa\u00e7on dont on va r\u00e9aliser la programmation de l&rsquo;animation.<br \/>\nJ&rsquo;ai d\u00e9couvert un logiciel plut\u00f4t sympathique pour obtenir rapidement un r\u00e9sultat : \u00ab\u00a0BOTTANGO\u00a0\u00bb.<\/p>\n<p>Cet outil est un logiciel open-source que vous pouver t\u00e9l\u00e9charger \u00e0 cette adresse : <a href=\"https:\/\/www.bottango.com\/\">https:\/\/www.bottango.com\/<\/a><\/p>\n<p>A noter que si le logiciel est gratuit, le site propose aussi d&rsquo;acheter des kits tout fait.<\/p>\n<p>Une fois le logiciel install\u00e9, il se pr\u00e9sente de la fa\u00e7on suivante :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4888 aligncenter\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_01-scaled-e1759215935177.png\" alt=\"\" width=\"500\" height=\"269\" \/><\/p>\n<p>Trois grandes zones sur l&rsquo;\u00e9cran :<br \/>\n&#8211; \u00e0 gauche, la gestion des projets (celle qui va nous interresser),<br \/>\n&#8211; au centre, de la pub pour les kits,<br \/>\n&#8211; \u00e0 droite, des acc\u00e8s \u00e0 la communaut\u00e9.<\/p>\n<p>La premi\u00e8re chose \u00e0 faire est de cr\u00e9er un nouveau projet.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4889 aligncenter\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_02.png\" alt=\"\" width=\"500\" height=\"269\" srcset=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_02.png 500w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_02-300x161.png 300w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_02-350x188.png 350w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>Ce nouvel \u00e9cran repr\u00e9sente l&rsquo;environnement \u00ab\u00a0physique\u00a0\u00bb de votre futur robot. Le principe de Bottango est assez simple :<br \/>\n&#8211; on positionne les \u00e9l\u00e9ments m\u00e9caniques (par exemple un oeil),<br \/>\n&#8211; on ajoute les actionneurs ( les 2 servos moteurs),<br \/>\n&#8211; on ajoute les liaisons ( 1 servo fait bouger l&rsquo;oeil de gauche \u00e0 droite),<br \/>\n&#8211; on d\u00e9finit la timeline de l&rsquo;animation,<br \/>\n&#8211; on simule l&rsquo;animation.<\/p>\n<p>Si le r\u00e9sultat est correct, on peut transf\u00e9rer l&rsquo;animation sur notre carte Arduino.<\/p>\n<h2>\u00e9tape 1 : ajout de l&rsquo;oeil<\/h2>\n<p>Bottango permet d&rsquo;importer des mod\u00e8les, issus par exemple de FreeCAD, ou toout simplement t\u00e9l\u00e9charg\u00e9s. Il suffit d&rsquo;aller dans l&rsquo;onglet \u00ab\u00a0Import\u00a0\u00bb et d&rsquo;importer le mod\u00e8le.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4892 aligncenter\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_03-e1759251586933.png\" alt=\"\" width=\"500\" height=\"508\" \/><\/p>\n<p>Une fois tous les \u00e9l\u00e9ments m\u00e9caniques import\u00e9s (pour l&rsquo;exemple, je ne vais importer qu&rsquo;un seul oeil), on retourne dans l&rsquo;onglet \u00ab\u00a0Build\u00a0\u00bb et on clique sur \u00ab\u00a0Create Part\u00a0\u00bb. Ceci ouvre un bandeau qui sera utilis\u00e9 pour ajouter tous les \u00e9l\u00e9ments de notre animation, en particulier les objets et les servos-moteurs.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4893 aligncenter\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_04.png\" alt=\"\" width=\"500\" height=\"123\" srcset=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_04.png 500w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_04-300x74.png 300w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_04-350x86.png 350w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>Voici ce que cela doit donner :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4895 aligncenter\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_05.png\" alt=\"\" width=\"500\" height=\"380\" srcset=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_05.png 500w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_05-300x228.png 300w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_05-350x266.png 350w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>La pi\u00e8ce oeil est li\u00e9e \u00e0 un \u00e9l\u00e9ment Joint, lui m\u00eame associ\u00e9 au servo moteur.<\/p>\n<p>On peut ainsi voir une simulation des d\u00e9placements, \u00e0 gauche, au centre et \u00e0 droite.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4896 aligncenter\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_06.png\" alt=\"\" width=\"500\" height=\"476\" srcset=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_06.png 500w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_06-300x286.png 300w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_06-350x333.png 350w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4897 aligncenter\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_07.png\" alt=\"\" width=\"500\" height=\"518\" srcset=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_07.png 500w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_07-290x300.png 290w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_07-350x363.png 350w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>Nous verrons plus loin que cette simulation peut-\u00eatre reproduite en live si toute l&rsquo;\u00e9lectronique est connect\u00e9e.<\/p>\n<h2>\u00e9tape 2 : l&rsquo;animation<\/h2>\n<p>Une fois les composants positionn\u00e9s associ\u00e9s aux diff\u00e9rentes servos-moteurs, il reste \u00e0 mettre en place l&rsquo;animation.<\/p>\n<p>On passe dans l&rsquo;onglet \u00ab\u00a0Animation\u00a0\u00bb de Bottango.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4898 aligncenter\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_08.png\" alt=\"\" width=\"500\" height=\"271\" srcset=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_08.png 500w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_08-300x163.png 300w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_08-350x190.png 350w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>Pour g\u00e9rer l&rsquo;animation, il suffit d&rsquo;ajouter dans la time line les diff\u00e9rents \u00e9l\u00e9ments qui l&rsquo;on souhaite animer. Ici, pour l&rsquo;exemple, je vais rajouter le \u00ab\u00a0joint\u00a0\u00bb.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4900 aligncenter\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_09.png\" alt=\"\" width=\"500\" height=\"138\" srcset=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_09.png 500w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_09-300x83.png 300w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_09-350x97.png 350w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>Il suffit ensuite de rajouter des \u00ab\u00a0points cl\u00e9s\u00a0\u00bb &#8211; comme les images cl\u00e9s dans les logiciels de montage vid\u00e9o &#8211; et d&rsquo;affecter une valeur entre 0 et 1 (0.5 \u00e9tant la position m\u00e9diane de l&rsquo;objet).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4900 aligncenter\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_09.png\" alt=\"\" width=\"500\" height=\"138\" srcset=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_09.png 500w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_09-300x83.png 300w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_09-350x97.png 350w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>On arrive assez facilement au r\u00e9sultat souhait\u00e9.<\/p>\n<div style=\"width: 525px;\" class=\"wp-video\"><!--[if lt IE 9]><script>document.createElement('video');<\/script><![endif]-->\n<video class=\"wp-video-shortcode\" id=\"video-4875-1\" width=\"525\" height=\"295\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/Project-1.mp4?_=1\" \/><a href=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/Project-1.mp4\">https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/Project-1.mp4<\/a><\/video><\/div>\n<h2>en conclusion<\/h2>\n<p>Il est tr\u00e8s simple de \u00ab\u00a0programmer\u00a0\u00bb ainsi une animation compl\u00e8te. Voici le montage complet, avec les 2 yeux, les paupi\u00e8res et les 6 servos-moteurs de commande.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4907 aligncenter\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_10.png\" alt=\"\" width=\"500\" height=\"422\" srcset=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_10.png 500w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_10-300x253.png 300w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_10-350x295.png 350w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>On ajoute de la m\u00eame mani\u00e8re les diff\u00e9rentes pistes et les points cl\u00e9s de l&rsquo;animation.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4908 aligncenter\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_11.png\" alt=\"\" width=\"500\" height=\"122\" srcset=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_11.png 500w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_11-300x73.png 300w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_11-350x85.png 350w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>Pour arriver \u00e0 l&rsquo;animation suivante finale.<\/p>\n<div style=\"width: 525px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-4875-2\" width=\"525\" height=\"295\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/Project-2.mp4?_=2\" \/><a href=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/Project-2.mp4\">https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/Project-2.mp4<\/a><\/video><\/div>\n<h1>Chapitre 3 : le mat\u00e9riel physique<\/h1>\n<p>Pour simplifier au maximum les cablages, et parce que Bottango est nativement capable de la prendre en charge, je vias utiliser une carte PCA9685. Cette carte est capable de prendre en charge jusqu&rsquo;\u00e0 16 servos-moteurs, pour un prix tr\u00e8s modique.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4913 aligncenter\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/pca9685.png\" alt=\"\" width=\"500\" height=\"212\" srcset=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/pca9685.png 500w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/pca9685-300x127.png 300w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/pca9685-350x148.png 350w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>Dans le m\u00eame esprit, plut\u00f4t que d&rsquo;utiliser une carte arduino Uno, je vais utiliser une carte ESP32. Celle-ci est plus puissance et va permettre d&rsquo;exploiter totalement les 16 sorties de la carte PCA9685 (ll y a une limitation pour le moment avec Bottango et Arduino en nombre de servos pilotables).<\/p>\n<p>Le cablage devient donc tr\u00e8s simple : la carte PCA9685 est simplement pilot\u00e9e en I2C, les broches SCL et SDA simplement connect\u00e9es aux broches SCL et SDA de l&rsquo;ESP32.<\/p>\n<p>Le sch\u00e9ma de cabl\u00e2ge se r\u00e9sume donc \u00e0 celui-ci :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4917 aligncenter\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_12.png\" alt=\"\" width=\"500\" height=\"455\" srcset=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_12.png 500w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_12-300x273.png 300w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_12-350x319.png 350w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>Les 6 servos-moteurs seront connect\u00e9s sur les sorties de la carte PCA9685, par exemple 1 \u00e0 6.<\/p>\n<h1>Chapitre 4 : La connexion entre Bottango et le mat\u00e9riel<\/h1>\n<p>La connexion entre Bottango et le mat\u00e9riel permet principalement la mise au point des animations. Tout ce que vous effectuez comme action sur l&rsquo;interface de Bottango se trouve reproduit sur le mat\u00e9riel. On peut ainsi v\u00e9rifier les vitesses, les limites de position, etc.<\/p>\n<p>Pour effectuer cel\u00e0, Bottango va utiliser la carte micro-contr\u00f4leur (Arduino ou ESP) comme une passerelle. Il est n\u00e9cessaire pour cel\u00e0 d&rsquo;installer sur la carte un driver sp\u00e9cifique, fourni avec la distribution de Bottango.<\/p>\n<p>Pour que ceci fonctionne, il faut donc, en pr\u00e9alable, s&rsquo;assurer que la carte est bien reconnue sur le PC, et connaitre sont adresse. La solution la plus simple est d&rsquo;utiliser, avant de lancer Bottango, le logiciel Arduino IDE.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4946 aligncenter\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_13.png\" alt=\"\" width=\"500\" height=\"143\" srcset=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_13.png 500w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_13-300x86.png 300w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_13-350x100.png 350w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>On voit ici que la carte ESP32-xxx est bien identifi\u00e9e, et quelle est connect\u00e9e sur le port COM14.<\/p>\n<p><u>C&rsquo;est un pr\u00e9-requis indispensable. Si la carte n&rsquo;est pas identif\u00e9e \u00e0 ce stade, Bottango sera incapable de la piloter.<\/u><\/p>\n<p><u>Autre point important \u00e0 noter<\/u> : Arduino IDE et Bottango ne peuvent \u00eatre lanc\u00e9s en m\u00eame temps. C&rsquo;est une erreur classique de laisser Arduino IDE en t\u00e2che de fond, mais ceci va \u00ab\u00a0bloquer\u00a0\u00bb le port COM, car Arduino IDE n&rsquo;est pas partageur &#8230;<\/p>\n<p>Lorsque l&rsquo;on ex\u00e9cute Bottango \u00e0 partir de maintenant, et que l&rsquo;on ouvre un projet (ou que l&rsquo;on cr\u00e9\u00e9 un nouveau projet), nous pouvons acc\u00e9der \u00e0 cette page.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4948 aligncenter\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_14-scaled-e1761238677499.png\" alt=\"\" width=\"500\" height=\"281\" \/><\/p>\n<p>Si tout est OK, nous devons retrouver le bon port, et un statut OK sur le driver.<\/p>\n<p><u>Remarque<\/u> : Si le statut du driver n&rsquo;est pas correct, Bottango propose de recharger le driver dans la carte. Mais seuls les drivers pour les cartes Arduino sont actuellement propos\u00e9s. Pour les cartes ESP, il faudra recharger le driver depuis Arduino IDE.<\/p>\n<p>A partir de ce moment, toute action effectu\u00e9e dans Bottango, sera r\u00e9percut\u00e9e sur le mat\u00e9riel physique. Ci-dessous un exemple avec la paupi\u00e8re droite.<\/p>\n<div style=\"width: 525px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-4875-3\" width=\"525\" height=\"295\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_15.mp4?_=3\" \/><a href=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_15.mp4\">https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_15.mp4<\/a><\/video><\/div>\n<h1>Chapitre 5 : Exportation de l&rsquo;animation<\/h1>\n<p>Maintenant que votre animation est pr\u00eate et que vous l&rsquo;avez test\u00e9e en live, il va falloir l&rsquo;exporter dans la carte contr\u00f4leur afin d&rsquo;obtenir un syst\u00e8me autonome.<\/p>\n<p>Dans l&rsquo;onglet \u00ab\u00a0Animation\u00a0\u00bb, vous trouvez un bouton \u00ab\u00a0Export animations\u00a0\u00bb.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4953 aligncenter\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_16.png\" alt=\"\" width=\"356\" height=\"343\" srcset=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_16.png 356w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_16-300x289.png 300w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_16-350x337.png 350w\" sizes=\"auto, (max-width: 356px) 100vw, 356px\" \/><\/p>\n<p>Il suffit de suivre ensuite les diff\u00e9rentes \u00e9tapes.<\/p>\n<h2>Etape 1<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4954 aligncenter\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_17.png\" alt=\"\" width=\"500\" height=\"369\" srcset=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_17.png 500w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_17-300x221.png 300w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_17-350x258.png 350w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>Dans Bottango, vous pouvez cr\u00e9er plusieurs animations diff\u00e9rentes, qui pourront \u00eatre ex\u00e9cut\u00e9es s\u00e9quentiellement ou conditionnellement (nous verrons cel\u00e0 plus loin). La premi\u00e8re \u00e9tape consiste donc \u00e0 s\u00e9lectionner les animations \u00e0 exporter.<\/p>\n<h2>Etape 2<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4955 aligncenter\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_18.png\" alt=\"\" width=\"500\" height=\"374\" srcset=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_18.png 500w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_18-300x224.png 300w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_18-350x262.png 350w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>Bottango propose aussi de s\u00e9lectionner les composants concern\u00e9s par l&rsquo;animation. On pourrait en effet imaginer cr\u00e9er une animation complexe, et d\u00e9ployer cette animation sur plusieurs controleurs synchronis\u00e9s.<\/p>\n<h2>Etape 3<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4956 aligncenter\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_19.png\" alt=\"\" width=\"500\" height=\"367\" srcset=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_19.png 500w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_19-300x220.png 300w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_19-350x257.png 350w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>C&rsquo;est une \u00e9tape importante ! Elle conditionne en effet le mode d&rsquo;ex\u00e9cution de l&rsquo;animation :<\/p>\n<ul>\n<li>l&rsquo;animation doit-elle d\u00e9marrer \u00e0 la mise sous tension de la carte ?<\/li>\n<li>l&rsquo;animation s&rsquo;ex\u00e9cute-t-elle en boucle ?<\/li>\n<li>par quelle animation commence-t-on (si plusieurs animations export\u00e9es) ?<\/li>\n<li>existe-t-il des conditions d&rsquo;ex\u00e9cution ?<\/li>\n<\/ul>\n<p>Bottango est correctement document\u00e9, je ne rentrerais pas ici dans les d\u00e9tails des conditionnements.<\/p>\n<h2>Etape 4 (et derni\u00e8re)<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4958 aligncenter\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_20.png\" alt=\"\" width=\"500\" height=\"373\" srcset=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_20.png 500w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_20-300x224.png 300w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2025\/09\/bottango_20-350x261.png 350w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>Il faut choisir dans cette \u00e9tape le format d&rsquo;exportation.<\/p>\n<p>Comme expliqu\u00e9, le choix va d\u00e9pendre principalement du type de contr\u00f4leur utilis\u00e9 et de la taille de l&rsquo;export. Un autre crit\u00e8re de choix peut-\u00eatre li\u00e9 \u00e0 la fr\u00e9quence de changement de l&rsquo;animation. Il sera en effet plus simple de remplacer une carte SD que de re-flasher le contr\u00f4leur.<\/p>\n<p>En ce qui concerne la g\u00e9n\u00e9ration en fichier JSON, je ne connais pas l&rsquo;usage.<\/p>\n<p>Si l&rsquo;on conserve le choix par d\u00e9faut, \u00e0 savoir la g\u00e9n\u00e9ration d&rsquo;un script \u00ab\u00a0Driver Code\u00a0\u00bb, Bottango va g\u00e9n\u00e9rer, dans le r\u00e9pertoire de votre choix, 3 fichiers :<\/p>\n<ul>\n<li>GeneratedCodeAnimations.cpp<\/li>\n<li>GeneratedCodeAnimations.h<\/li>\n<li>HowToUseThisCode.txt<\/li>\n<\/ul>\n<p>Le mode op\u00e9ratoire est d\u00e9crit dans le fichier .txt, avec de nombreuses autres informations.<\/p>\n<p>En r\u00e9sum\u00e9, il suffit de copier\/coller les 2 fichiers (.cpp et .h) dans le r\u00e9pertoire BottangoArduinoDriver (cr\u00e9\u00e9 lors de l&rsquo;installation de Bottango) , d&rsquo;ouvrir avec Arduino IDE le fichier .ino contenu dans ce r\u00e9pertoire, et de le t\u00e9l\u00e9verser dans la carte.\u00a0 Les fichiers g\u00e9n\u00e9r\u00e9s pour l&rsquo;animation seront automatiquement pris en charge.<\/p>\n<h1>En conclusion<\/h1>\n<p>Avec ce premier article DIY, je voulais vous montrer la facilit\u00e9 (relative) \u00e0 imaginer votre futur robot. La documentation de Bottango, tr\u00e8s compl\u00e8te, pourra vous guider pour aller plus loin, en particulier en personnalisant le fichier du driver fourni, afin d&rsquo;\u00e9tendre les possiblit\u00e9s.<\/p>\n<p>Dans le prochain article DIY, je vais vous proposer la r\u00e9alisation d&rsquo;une carte plus polyvalente, qui int\u00e9grera &#8211; en plus du pilotage des servo-moteurs &#8211; la prise en compte d&rsquo;\u00e9v\u00eanements ext\u00e9rieurs, la g\u00e9n\u00e9ration d&rsquo;effets lumineux et sonores, ainsi que des sorties de puissance.<\/p>\n<p>Bonne d\u00e9couverte de Bottango !<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>On trouve dans le commerce de nombreux \u00e9quipements \u00ab\u00a0robotis\u00e9s\u00a0\u00bb. Sous ce terme, je vais volontairement regrouper tout un ensemble d&rsquo;objets, allant de la voiture t\u00e9l\u00e9command\u00e9e avec votre smartphone, \u00e0 la grue meccano ou aux l\u00e9go technic qui vont pouvoir r\u00e9aliser seuls ou en semi-autonomie diff\u00e9rentes actions. Pour apprendre la robotique, il existe de nombreux kits &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.aacmb.fr\/wordpress\/2025\/09\/27\/bottango_01\/\" class=\"more-link\">Continuer la lecture<span class=\"screen-reader-text\"> de &laquo;&nbsp;L&rsquo;animation avec Bottango ?&nbsp;&raquo;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[125],"tags":[],"class_list":["post-4875","post","type-post","status-publish","format-standard","hentry","category-diy"],"_links":{"self":[{"href":"https:\/\/www.aacmb.fr\/wordpress\/wp-json\/wp\/v2\/posts\/4875","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.aacmb.fr\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.aacmb.fr\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.aacmb.fr\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.aacmb.fr\/wordpress\/wp-json\/wp\/v2\/comments?post=4875"}],"version-history":[{"count":0,"href":"https:\/\/www.aacmb.fr\/wordpress\/wp-json\/wp\/v2\/posts\/4875\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.aacmb.fr\/wordpress\/wp-json\/wp\/v2\/media?parent=4875"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.aacmb.fr\/wordpress\/wp-json\/wp\/v2\/categories?post=4875"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.aacmb.fr\/wordpress\/wp-json\/wp\/v2\/tags?post=4875"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}