TL; DR -
Vous avez le choix entre BlueTooth ou XBee (entre autres: IR, par exemple?) Pour le téléchargement sans fil. Cependant, je pense qu'une seule carte peut être téléchargée à la fois, vous devrez donc parcourir les cartes une par une, voir Programmation de plusieurs ATMegas / Arduinos à la fois .
Lorsque vous téléchargez une esquisse ou utilisez un programmeur (pour une esquisse ou un chargeur de démarrage), le logiciel n'écrit pas seulement le code, il communique en fait avec le microcontrôleur.
Vous ne pouvez pas tous les programmer en même temps. Mais vous pouvez les programmer un par un de manière automatique.
Votre question est très intéressante et pose une question à laquelle je suis sûr que je n'aurais jamais pensé, mais qui serait extrêmement utile et qui permettrait d'économiser du travail, surtout si l'on a, comme moi, de nombreux points de capteur contrôlés par Arduino situés autour du maison. Voici une solution plutôt inélégante qui mérite d'être essayée.
Matériel de téléchargement sans fil
Si vous utilisez BlueTooth pour télécharger sans fil vos croquis, cette solution peut être utile, programme de téléchargement sans fil vers Arduino sans câble USB . Notez que cette solution bloque les broches D0 et D1:
Mais attention, il n'est peut-être pas compatible avec certains projets qui doivent utiliser le D0 et le D1 comme matériel UART TX, RX. Parce que le programmateur sans fil doit occuper en permanence les deux broches.
En le regardant, il utilise un programmeur sans fil Arduino personnalisé , auquel vous avez peut-être fait référence dans votre question. Cependant, ne vous laissez pas berner par le nom, c'est simplement un bouclier Bluetooth. Il s'agit essentiellement d'un appareil BT HC-05 (ou similaire), boulonné sur un Arduino, voir également Bluetooth Wireless Upload .
Alternativement, au lieu de BlueTooth, vous pouvez utiliser des appareils XBee , voir Programmation sans fil d'Arduino . L'avantage d'utiliser XBees est que vous n'auriez pas à passer par la nouvelle boucle d'appairage d'appareil (voir ci-dessous), qui serait requise lors de l'utilisation de BT. Au lieu de cela, vous n'auriez qu'à parcourir les ID réseau XBee.
Cependant, en plus de cela, vous devrez automatiser la commutation des appareils BT, sélectionner le port approprié et télécharger à tour de rôle sur chaque Arduino, car vous ne pouvez pas diffuser de croquis . (Si je me trompe, quelqu'un pourra-t-il me corriger).
Sélection du port et téléchargement de l'esquisse
Vous pouvez utiliser un script avec la version en ligne de commande de l'IDE Arduino, pour sélectionner le port auquel le périphérique BT est connecté, avant chaque téléchargement. La façon dont vous procédez varie en fonction de la plate-forme sur laquelle vous compilez, voir Compilation et téléchargement d'Arduino en ligne de commande? Cela peut être fait en utilisant la variable d'environnement ARDUINO_COMPORT
(voir la construction de la ligne de commande Windows éventuellement obsolète ) ou l'option de ligne arduino cmd --port <portname>
(voir la page de manuel ). L'esquisse serait ensuite téléchargée à l'aide de l'option --upload <filename>
. Vous pouvez le faire d'un seul coup:
arduino --upload --port <portname> FILE.ino
Notez que sous Windows, vous devez utiliser arduino_debug.exe
.
Ou vous pouvez utiliser Ino , si vous n'utilisez pas de PC Windows ... mais cela pourrait rendre la partie suivante, qui traite du bouclage plus complexe que nécessaire.
Sélection de chacun des Arduinos (c'est-à-dire les appareils BT)
Ensuite, vous devez ajouter une boucle au script, qui associe tour à tour le PC à chaque périphérique BT et appelle ensuite l'IDE Arduino, pour la sélection du port et le téléchargement. Malheureusement, cela ne serait pas du tout indépendant de la plate-forme et nécessiterait une solution différente pour la plate-forme que vous utilisez. Jetez un œil à Bluetooth depuis la ligne de commande , mais pour Windows, vous auriez probablement besoin de la suite d'outils de ligne de commande Blue Tooth .
Sur OS X, il vaut mieux utiliser AppleScript, voir Se connecter à un périphérique Bluetooth (iPhone) via la ligne de commande sur MacOSX , car les outils de ligne cmd pour contrôler BT semblent un peu rares - il y a BlueUtil , voir Comment contrôler le Bluetooth sans fil radio depuis la ligne de commande? mais cela ne semble que désactiver le BT. Cependant, boulonner AppleScript au reste du script de contrôle Arduino IDE rend rapidement les choses plus complexes, bien que vous puissiez simplement placer la commande Arduino dans AppleScript, je suppose.