J'aimerais pouvoir mettre à niveau le logiciel sur un arduino sans toucher physiquement l'appareil ou enfiler un câble. Peut-on le faire?
Choisira un protocole sans fil qui rend cela plus facile.
J'aimerais pouvoir mettre à niveau le logiciel sur un arduino sans toucher physiquement l'appareil ou enfiler un câble. Peut-on le faire?
Choisira un protocole sans fil qui rend cela plus facile.
Réponses:
La solution la meilleure et la plus simple que j'ai trouvée consiste à utiliser le Bluefruit EZ-Link d'Adafruit. Ils ont un module que vous branchez sur les broches Serial / Power / reset ( lien ici ) ou un blindage pour l'uno ( lien ici ). Ils ont également une excellente description et un guide pratique ( lien ici ) qui est assez bon. Il apparaît essentiellement comme un lien Bluetooth série dans l'IDE Arduino et vous le programmez comme d'habitude. Il a l'avantage supplémentaire d'être utile non seulement pour la programmation, mais aussi pour l'envoi et la réception de données.
Nous avons implémenté des mises à jour à distance sur un Arduino Pro Mini (ATMega328P) en mettant une commande "boot" dans le firmware normal. Comment cela fonctionne:
Cela ne nécessite pas de nouveau chargeur de démarrage ou matériel. Ce n'est pas une bonne solution pour les appareils commerciaux, car si le firmware téléchargé est corrompu, la carte ne pourra pas être mise en mode chargeur de démarrage sans réinitialisation matérielle.
Certains appareils de communication sans fil, tels que les XBees, ont un GPIO qui peut être basculé à distance. La connexion à la broche de réinitialisation Arduino permettra à la carte d'être réinitialisée dans le chargeur de démarrage à la place.
L' Arduino Yun peut être reflasher à distance (via wifi ou câble réseau): vous devrez sélectionner son adresse IP dans le menu "Outils> Cartes" de l'IDE Arduino puis appuyer sur le bouton de téléchargement comme d'habitude.
Il est possible d'écrire un chargeur de démarrage fonctionnant en RAM (ou même en Flash, peut-être dans un bloc de démarrage spécial - dépend du microcontrôleur).
Ce chargeur de démarrage doit pouvoir établir la communication sans fil, comprendre le protocole et effacer / écrire la mémoire Flash.
Il existe essentiellement deux approches pour la mise à niveau logicielle:
Le protocole que vous choisissez est presque hors de propos. Assurez-vous simplement qu'il y a suffisamment de ressources pour le garder en RAM / Flash. Sur un Arduino Due - par exemple - il y a plus que suffisamment de ressources pour une telle implémentation.
Les cartes Spark.io sont également très agréables pour les appareils de type Arduino programmables OTA. J'en ai un et je l'ai trouvé assez facile à travailler.