Após desenvolver o programa, é possível compilar gerando um arquivo com a extensão .hex e gravá-lo no Arduino.
Para projetos profissionais é uma maneira de manter seu código fonte seguro, podendo enviar para gravação nas placas sem compartilhar o desenvolvimento da lógica de programação.
Gerar o arquivo compilado:
Na barra de menus da IDE Arduino, em Sketch \ Exportar Binário compilado, ou com as teclas de atalho Ctrl + Alt + S.
Na barra de menus da IDE Arduino, em Sketch \ Exportar Binário compilado, ou com as teclas de atalho Ctrl + Alt + S.
Serão gerados dois arquivos .hex no mesmo diretório do arquivo .ino.
Um possui somente código fonte, o outro possui o bootloader compilado junto.
Quando o microcontrolador é energizado, o primeiro programa a ser
executado é o bootloader, e após a sua finalização que é executado a
função setup() e depois loop() e as demais.
Gravar o arquivo compilado no Arduino:
Para efetuar o upload do arquivo .hex no microcontrolador encontrei algumas - poucas - opções, baseadas em um front para simplificar a utilização do AVRDUDE.
Fiz minha própria versão e deixo aqui para compartilhar com vocês.
É possível efetuar o upload do arquivo .hex para as versões de Arduino Uno, Nano, Pro Mini, Mega e Gemma (Attiny85).
Ao selecionar o modelo da placa, os demais campos já serão preenchidos automaticamente.
O download do HexArduino pode ser feito através dos links:
https://www.4shared.com/zip/KVBTCuuVea/HexArduino.html
https://mega.nz/file/7Z1xmQpQ#9LQLCqNcOMIbB111AFgHW9pJbV2bUwt2oht_93sdPtk
Para mim é útil e, espero que possa ser útil para outras pessoas também!
Abraços!
O anti virus detecta como virus
ResponderExcluirBom dia!
ExcluirPor segurança o anti-vírus costuma bloquear qualquer arquivo executável. Basta selecionar a opção para liberar a execução.
Abraços!
Olá. Qual o software que vc usou para fazer o frontend? Aqui ele funcionou belezinha.
ResponderExcluirBoa tarde!
ExcluirVisual Basic .NET
Ótimo que funcionou!
Abraços!
Funciona para ESP32?
ResponderExcluirBom dia!
ExcluirSomente para Arduino, por enquanto.
obrigado pelo front , se funcionar com o mega vai ser uma mão na roda pra atualizar o arduino de impressora 3D com o notebook fraquinho ... só levar o hex compilado e mandar flashear sem ter que ficar recompilando , show !
ResponderExcluirBom dia! Espero que tenha funcionado e ajudado!
ExcluirAbraços!
Olá, sabe me dizer se funciona para o arduíno Pro Micro?
ResponderExcluirBoa tarde! Nessa versão, somente para Arduino Uno, Nano, Pro Mini, Mega e Gemma (Attiny85).
ExcluirAbraços!
Tem algum que funcione com o arduino pro micro para me indicar? Ou teria a possibilidade de andicionar essa opção ao seu front end?
ExcluirValeu mesmo cara, estava procurando um proraminha desses e vc salvou bacana... Obrigado mesmo
ResponderExcluirFeliz por ter ajudado, Luciano! Abraços!
ExcluirEste comentário foi removido pelo autor.
ResponderExcluirTentei usar o frontend para gravar o .hex num arduino nano (old bootloader), não deu certo e agora quando tento gravar pelo modo tradicional (ide do arduino) retorna os seguintes erros:
ResponderExcluirOcorreu um erro enquanto o sketch era carregado
avrdude: verification error, first mismatch at byte 0x00c4
0x7d != 0x09
avrdude: verification error; content mismatch
O que será que aconteceu? Tem como reverter? O duro é que é um dispositivo que está lá no cliente e ele não pode me esperar que eu faça outro pra ele.
Bom dia, Ismael!
ExcluirA IDE Arduino utiliza o programa AVRDUDE para enviar o arquivo compilado para o microcontrolador. O front que deixei disponível, utiliza o mesmo programa que a IDE Arduino, apenas com uma tela amigável que executa o AVRDUDE com as linhas de comando para envio ao microcontrolador.
Alguns problemas que podem estar ocorrendo:
- Dispositivo USB no Windows não foi reconhecido corretamente. Tente utilizando outra porta USB, ou remova o dispositivo através do 'gerenciador de dispositivos do Windows' e adicione novamente.
- Cabo USB com algum mal contato. Durante a transmissão ocorre falha acarretando no erro. Verificar com outro cabo.
- O conversor USB/TTL da placa Nano pode estar queimado. O fonte no microcontrolador segue rodando normalmente (Arduino funciona), mas o circuito da comunicação serial queimou. Nesse caso, é possível utilizar os pinos ICSP para novo upload e seguir utilizando o mesmo arduino no projeto.
- Verificar se realmente é Old Bootloader que está gravado ou se é o Bootloader mais novo. Tentar realizar o upload tanto com novo quanto com antigo.
São algumas das possibilidades que podem estar ocorrendo.
Lembro que o front disponibilizado apenas faz a chamada de execução do AVRDUDE, assim como a IDE Arduino.
Abraços!
Olá, bom dia! Possuo uma dúvida... Há possibilidade de modificar os fuses através do seu software? Pois você informou que "o outro possui o bootloader compilado junto.", selecionei esse arquivo, porém não foi com as configurações que deixei no bootloader...
ResponderExcluirBom dia!
ExcluirNo software não há a possibilidade de alterações nos fuses.
Me recordo que ao exportar o arquivo hex, o software Arduino utiliza o bootloader padrão que possui salvo em seu diretório.
Ah entendi! Alterei no arquivo "Boards" os fuses... No caso o caminho seria: Hardware - Arduíno - avr - boards. Seria esse o padrão de bootloader? Ou teria outro meio de alterar os fuses no diretório do arduíno e depois exportar e utilizar seu software?
ResponderExcluirO caminho acho que seria dessa forma mesmo. Ir no diretório que citou e alterar por lá.
ExcluirAbraços!
ola amigo muito show seu programa parabens deixa te perguntar teria como adicionar tbem para ele gravar junto o arquivo epron obrigado abraços.
ResponderExcluirBom dia, Marconato!
ExcluirQue bom que gostou e que o programa foi útil! Abraços!!
seu programa consigo enviar usando o modulo cp2102 porem so envia o hex precisaria que enciasse os dois arquivos no USBasp usaria esse comando.. veja se pode me ajudar obrigado..
ResponderExcluirREM Writing Flash + EEPROM + Fuses (L=F7, H=D9, E=FC)
avrdude -c USBasp -P usb -p m328p -e -U flash:w:"master.hex":a -U eeprom:w:"master.eep":a -U lfuse:w:0xF7:m -U hfuse:w:0xD9:m -U efuse:w:0xFC:m
Marconato, vou verificar a possível alteração para adicionar o arquivo junto. Abraços!
Excluir