Escrevendo programa C fora do IDE do Arduino?

12

Eu gosto da idéia de usar o Arduino IDE para projetos simples e para começar a usar o Arduino, mas o consenso que obtive até agora é que é para quem é novo no Arduino e / ou programação em geral.

Meu entendimento é que é possível escrever um programa C a partir do zero, completamente fora do IDE do Arduino e, em seguida, usar uma ferramenta como AVRDUDE para carregá-lo em um MCU do Arduino. Essa opção, embora atraente e interessante, deixa-me com algumas preocupações:

  • Quais bibliotecas do Arduino precisariam ser importadas / vinculadas por um programa "C" bruto? Suponho que quando um programa baseado em IDE do Arduino executa um, digitalWrite(...)ele está realmente chamando uma lib C, provavelmente fornecida pelo Arduino, sob o capô. Estou preocupado em garantir que todas essas "bibliotecas subjacentes" sejam incluídas no meu programa em C. Pensamentos?
  • Há algo mais "perdido" voando sozinho e se aventurando fora do IDE do Arduino? Quaisquer recursos / recursos que eu agora teria que "rodar sozinho"?
smeeb
fonte
arduino.stackexchange.com/questions/9538/… As respostas da minha pergunta me ajudaram a configurá-lo. Você pode substituir / deixar de fora qualquer coisa do arduino. Você pode: -Fazer seu próprio quadro. -Use seu próprio IDE. -Use suas próprias bibliotecas.
Paul

Respostas:

4

Aqui estão dois bons artigos sobre como o Arduino realmente funciona em segundo plano. Como ele removeu o atrito da programação do microcontrolador.

  1. Um tour pelos componentes internos do Arduino: Como o Hello World realmente funciona?
  2. Arduino e GCC, compilando e carregando programas usando apenas makefiles

Também foi discutido aqui. Existe uma maneira ou tutorial para converter o código do Arduino em código C?

Michal Foksa
fonte
Obrigado @Michal Foksa (+1) - Acho que estou chocado que a resposta para isso não seja muito mais conhecida! Eu teria pensado que o Arduino IDE tinha, digamos, um lib/em algum diretório sob sua raiz de instalação que tinha coisas como arduino-core.dll, arduino-io.dll, etc.
smeeb
@smeeb: Você está correto, a instalação do Arduino IDE inclui - tem que - incluir bibliotecas das funções básicas de tempo de execução, além das fornecidas pelo usuário. No meio da página do link 2, no makefile, o símbolo LIBS aponta para eles. Eles não são .dlls (que no Windows são chamados em tempo de execução); eles são arquivos de objeto (.o em sistemas tipo Unix, provavelmente o mesmo no Windows) que estão estaticamente vinculados aos seus arquivos de objeto compilados em (finalmente) um arquivo de carregamento .hex, que é a imagem completa do carregador. ...
JRobert
... É bem conhecido pelas pessoas que escrevem programas para ganhar a vida, mas os projetistas de ferramentas do Arduino (marca) ocultaram deliberadamente o máximo de detalhes confusos possível para tornar a aplicação de eletrônica digital disponível para as pessoas sem que elas precisem se tornar em nível profissional programadores e engenheiros para fazê-lo. Na medida em que você encontra essas informações difíceis de encontrar na comunidade do Arduino, elas foram bem-sucedidas!
JRobert 5/05
Infelizmente, por motivos legados, você constrói o software Arduino de maneira bem diferente da maneira padrão aceita. Ao 'remover o atrito' para simplificar, eles criaram uma enorme comunidade incompatível. Todo 'plugin' do IDE é uma tentativa de fazer algo não padrão funcionar quase da maneira padrão. Tenha isso em mente ao encontrar problemas.
5

Você está absolutamente certo sobre a necessidade de vincular-se a outras bibliotecas. No entanto, você não precisa necessariamente se preocupar com todos os detalhes, a menos que queira / precise fazer algo incomum. Vários IDEs alternativos já suportam o Arduino, normalmente por meio de plugins que lidam com muitos detalhes automaticamente.

Eu normalmente recomendo o Eclipse, pois é um IDE muito usado para vários propósitos. No entanto, existem várias outras possibilidades. Veja esta pergunta para mais informações:

Peter Bloomfield
fonte
Obrigado @ Peter R. Bloomfield (+1) - no entanto, estou realmente procurando por uma resposta não centrada no IDE. Não que eu tenha algo contra IDEs, é só que, para entender o "cenário das bibliotecas" do Arduino, sinto que os IDEs são apenas um intermediário desnecessário. Dito isso, eu diria que existem mais de uma "biblioteca principal" com a qual TODOS os aplicativos do Arduino devem se vincular e que existem bibliotecas opcionais que você pode ou não precisar, dependendo do que o aplicativo realmente faz. Você pode me indicar uma lista dessas "principais bibliotecas", bem como outras opcionais? Obrigado novamente!
Sueeb 5/05
E para qualificar o que eu estava dizendo acima sobre os IDEs serem "intermediários desnecessários", o que realmente quero dizer é: eu deveria conseguir escrever um aplicativo C fora de qualquer IDE (Arduino, Eclipse ou outro), vincular-se às bibliotecas do Arduino que meu aplicativo precisa e ainda compila / implanta o aplicativo no hardware do Arduino. Gostaria de saber o que são essas bibliotecas e onde posso encontrar documentação sobre elas.
Smeeb
@smeeb Dado que o Arduino é voltado para iniciantes, acho que não há muita documentação oficial (se houver) nesse sentido. Espero que a melhor maneira de pesquisar seja pesquisar online exemplos de makefiles do Arduino. Existem alguns exemplos antigos na parte inferior desta página .
Peter Bloomfield
@smeeb: Como você, eu não sou fã de IDEs. Existem alguns makefiles genéricos do Arduino flutuando na Web. Você tem basicamente para compilar a biblioteca núcleo Arduino em libore.a, em seguida, compilar o arquivo .ino com -x c++ -include Arduino.ho seu compilador para entendê-la (mais um monte de -D, -I, etc) e por relação com libcore.a.
Edgar Bonet
0

Sim, você pode escrever um programa fora do Arduino IDE. Por exemplo, tentei o Eclipse IDE com plug-in AVR e agora uso o AVR Studio. Obviamente, você não terá algumas funções que normalmente usa quando escreve no Arduino IDE e também em algumas bibliotecas. Mas, por que não tentar implementar coisas. Por que limitar-se a funções e bibliotecas criadas por outras pessoas quando você pode aprender e escrever suas próprias, talvez melhores que as existentes.

23ars
fonte
-3

ESP8266 + Arduino IDE 1.6.4 Portable - Guia completo de instalação rápida www.instructables.com /.../ ESP8266-Arduino-IDE-164-Portable-F ...

Todos os seus arquivos do Arduino IDE v 1.6.4, incluindo a extensão ESP8266, esboços, bibliotecas instaladas etc. devem estar localizados apenas na nova pasta "arduino-1.6.4" criada.

SMILEA
fonte
Esta não é uma resposta muito útil. O link não é um link real. E mesmo que fosse, o Stack Exchange desaprova as respostas somente de link, pois o site vinculado pode cair. Por favor, expanda sua resposta.
Nick Gammon