TL; DR -
Você tem as opções de BlueTooth ou XBee (entre outras: IR, por exemplo?) Para upload sem fio. No entanto, acredito que apenas uma placa pode ser carregada para, de cada vez, então você precisará percorrer as placas uma por vez, consulte Programando vários ATMegas / Arduinos de uma só vez .
Ao fazer upload de um esboço ou usar um programador (para esboço ou carregador de inicialização), o software não apenas escreve o código, mas também se comunica com o microcontrolador.
Você não pode programá-los todos de uma vez. Mas você pode programá-los um por um de maneira automática.
Sua pergunta é muito interessante e faz uma pergunta que eu tenho certeza que nunca teria pensado, mas seria extremamente útil e economizaria trabalho, especialmente se você tiver, como eu, muitos pontos de sensores controlados pelo Arduino localizados ao redor do casa. Aqui está uma solução bastante deselegante que vale a pena tentar.
Hardware de upload sem fio
Se você usar o BlueTooth para fazer upload de seus esboços sem fio, esta solução poderá ser útil, programa de upload sem fio para o Arduino sem cabo USB . Observe que esta solução amarra os pinos D0 e D1:
Mas tenha cuidado para que ele talvez não seja compatível com alguns projetos que precisam usar o D0 e o D1 como hardware UART TX, RX. Porque o programador sem fio precisa ocupar permanentemente os dois pinos.
Olhando para ele, ele emprega um programador sem fio Arduino personalizado , ao qual você pode estar se referindo na sua pergunta. No entanto, não se deixe enganar pelo nome, é simplesmente um escudo Bluetooth. É basicamente um dispositivo BT HC-05 (ou similar), parafusado em um Arduino, veja também Bluetooth Wireless Upload .
Como alternativa, no lugar do BlueTooth, você pode usar dispositivos XBee , consulte Programação sem fio do Arduino . A vantagem de usar o XBees é que você não precisaria passar pelo emparelhamento do novo loop do dispositivo (veja abaixo), que seria necessário ao usar o BT. Em vez disso, você apenas teria que percorrer os IDs de rede XBee.
No entanto, além disso, você precisaria automatizar a comutação dos dispositivos BT, selecionando a porta apropriada e fazendo o upload para cada Arduino por vez, pois não é possível transmitir esboços . (Se eu estiver errado, alguém por favor me corrija).
Selecionando a porta e carregando o esboço
Você pode usar um script junto com a versão da linha de comando do Arduino IDE, para selecionar a porta à qual o dispositivo BT está conectado, antes de cada upload. Como isso varia de acordo com a plataforma em que você está compilando, consulte Linha de comando do Arduino compilando e baixando? Isso pode ser feito usando a variável de ambiente ARDUINO_COMPORT
(consulte a compilação da linha de comando do Windows possivelmente desatualizada ) ou a opção de linha do cmd do arduino --port <portname>
(consulte a página de manual ). O esboço, então, ser carregados usando a opção --upload <filename>
. Você poderia fazer isso de uma só vez:
arduino --upload --port <portname> FILE.ino
Observe que no Windows você deve usar arduino_debug.exe
.
Ou você pode usar Ino , se você estiver não usando um PC com Windows ... mas isso pode fazer a parte seguinte, que lida com o looping mais complexo do que precisa ser.
Selecionando cada um dos Arduinos (ou seja, os dispositivos BT)
Em seguida, você precisará adicionar um loop ao script, que emparelhe o PC com cada dispositivo BT e, posteriormente, chame o IDE do Arduino, para a seleção e o carregamento da porta. Infelizmente, isso não seria independente da plataforma e exigiria uma solução diferente para qualquer plataforma que você esteja usando. Dê uma olhada no Bluetooth na linha de comando , mas para o Windows você provavelmente precisará do conjunto de ferramentas Blue Tooth Command Line .
No OS X, é melhor recorrer ao AppleScript, consulte Conectar ao dispositivo bluetooth (iPhone) via linha de comando no MacOSX , pois as ferramentas de linha cmd para controlar o BT parecem um pouco escassas - existe o BlueUtil , consulte Como controlar o Bluetooth sem fio rádio a partir da linha de comando? mas isso apenas parece ativar o BT. No entanto, aparafusar o AppleScript ao restante do script de controle do Arduino IDE rapidamente torna as coisas mais complexas, embora você possa colocar o comando do Arduino no AppleScript, eu acho.