Eu pedi um par de Moteinos, e espero que consiga fazer melhorias nos próximos dias.
Johannes Ernst
Respostas:
6
A melhor e mais fácil solução que encontrei é usar o Bluefruit EZ-Link da Adafruit. Eles têm um módulo que você conecta nos pinos Serial / Power / Reset ( link aqui ) ou uma blindagem para o uno ( link aqui ). Eles também têm uma ótima descrição e um guia de instruções ( link aqui ) que é muito bom. Ele basicamente aparece como um link serial bluetooth no arduino IDE e você o programa normalmente. Ele tem o benefício adicional de ser útil não apenas para programação, mas também para enviar e receber dados.
Implementamos atualizações remotas em um Arduino Pro Mini (ATMega328P), colocando um comando "boot" no firmware normal. Como funciona é:
O host envia o comando "boot" para o Arduino remoto.
O Arduino salta para o carregador de inicialização (endereço de programa 0x3C00 para o Pro Mini)
O host envia o novo firmware pelo link usando avrdude (protocolo AVR109)
Isso não requer um novo carregador ou hardware de inicialização. Porém, não é uma boa solução para dispositivos comerciais, como se o firmware carregado estivesse corrompido, a placa não poderá ser colocada no modo carregador de inicialização sem uma reinicialização completa.
Alguns dispositivos de comunicação sem fio, como o XBees, possuem GPIO que pode ser alternado remotamente. Conectá-lo ao pino de redefinição do Arduino permitirá que a placa seja redefinida no carregador de inicialização.
O Arduino Yun pode ser remotamente atualizado (via wifi ou cabo de rede): você terá que selecionar seu endereço IP no menu "Ferramentas> Placas" do Arduino IDE e pressionar o botão de upload como de costume.
É possível escrever um gerenciador de inicialização executando na RAM (ou mesmo no Flash, talvez em um bloco de inicialização especial - depende do microcontrolador).
Este carregador de inicialização deve ser capaz de estabelecer a comunicação sem fio, entender o protocolo e apagar / gravar memória Flash.
Existem basicamente duas abordagens para atualização de software:
O carregador de inicialização procura na inicialização um comando "atualização de software". Se for recebido, aguarda a sequência de programação. Se não for recebido, inicia o aplicativo.
O aplicativo pode receber esse comando e, então, fornece controle ao carregador de inicialização.
Qual protocolo você escolhe é quase irrelevante. Apenas verifique se há recursos suficientes para mantê-lo na RAM / Flash. Em um Arduino Due - por exemplo - existem recursos mais que suficientes para qualquer implementação desse tipo.
Respostas:
A melhor e mais fácil solução que encontrei é usar o Bluefruit EZ-Link da Adafruit. Eles têm um módulo que você conecta nos pinos Serial / Power / Reset ( link aqui ) ou uma blindagem para o uno ( link aqui ). Eles também têm uma ótima descrição e um guia de instruções ( link aqui ) que é muito bom. Ele basicamente aparece como um link serial bluetooth no arduino IDE e você o programa normalmente. Ele tem o benefício adicional de ser útil não apenas para programação, mas também para enviar e receber dados.
fonte
Implementamos atualizações remotas em um Arduino Pro Mini (ATMega328P), colocando um comando "boot" no firmware normal. Como funciona é:
Isso não requer um novo carregador ou hardware de inicialização. Porém, não é uma boa solução para dispositivos comerciais, como se o firmware carregado estivesse corrompido, a placa não poderá ser colocada no modo carregador de inicialização sem uma reinicialização completa.
Alguns dispositivos de comunicação sem fio, como o XBees, possuem GPIO que pode ser alternado remotamente. Conectá-lo ao pino de redefinição do Arduino permitirá que a placa seja redefinida no carregador de inicialização.
fonte
O Arduino Yun pode ser remotamente atualizado (via wifi ou cabo de rede): você terá que selecionar seu endereço IP no menu "Ferramentas> Placas" do Arduino IDE e pressionar o botão de upload como de costume.
fonte
É possível escrever um gerenciador de inicialização executando na RAM (ou mesmo no Flash, talvez em um bloco de inicialização especial - depende do microcontrolador).
Este carregador de inicialização deve ser capaz de estabelecer a comunicação sem fio, entender o protocolo e apagar / gravar memória Flash.
Existem basicamente duas abordagens para atualização de software:
Qual protocolo você escolhe é quase irrelevante. Apenas verifique se há recursos suficientes para mantê-lo na RAM / Flash. Em um Arduino Due - por exemplo - existem recursos mais que suficientes para qualquer implementação desse tipo.
fonte
Sim, isso pode ser feito. Lowpowerlab.com possui Moteino, que pode ser programado OTA.
fonte
As placas Spark.io também são muito boas para dispositivos do tipo Arduino programáveis OTA. Eu tenho um e achei bastante fácil trabalhar com ele.
https://www.spark.io/
fonte