Scrivere un programma C al di fuori di Arduino IDE?


12

Mi piace l'idea di utilizzare l'IDE di Arduino per progetti semplici e per iniziare con Arduino, ma il consenso che ho ottenuto finora è che è per coloro che sono nuovi ad Arduino e / o alla programmazione in generale.

La mia comprensione è che è possibile scrivere un programma C da zero, completamente al di fuori dell'IDE di Arduino, e quindi utilizzare uno strumento come AVRDUDE per caricarlo su un MCU Arduino. Questa opzione, sebbene interessante e interessante, mi lascia con alcune preoccupazioni:

  • Quali librerie Arduino avrebbero bisogno di essere importate / collegate da un tale programma "raw C"? Suppongo che quando un programma basato su IDE di Arduino esegue un programma digitalWrite(...), in realtà sta chiamando un C lib, probabilmente fornito da Arduino, sotto il cofano. Sono preoccupato di assicurarmi che tutte queste "librerie sottostanti" vengano incluse nel mio programma C. Pensieri?
  • Qualcos'altro è "perso" volando da solo e avventurandosi fuori dall'IDE di Arduino? Qualche funzionalità / funzionalità che ora dovrei "creare da solo"?

arduino.stackexchange.com/questions/9538/… Le risposte alla mia domanda mi hanno aiutato a configurarlo. Puoi sostituire / tralasciare qualsiasi cosa da Arduino. Puoi: -Fare la tua tavola. -Usa il tuo IDE. -Utilizza le tue librerie.
Paolo,

Risposte:


4

Ecco due simpatici articoli su come Arduino funzioni effettivamente in background. Come ha rimosso l'attrito dalla programmazione del microcontrollore.

  1. A Tour of the Arduino Internals: come funziona effettivamente Hello World?
  2. Arduino e GCC, compilando e caricando programmi usando solo makefile

È stato anche discusso qui C'è un modo o tutorial per convertire il codice Arduino in codice C?


Grazie @Michal Foksa (+1) - Immagino di essere scioccato dal fatto che la risposta a questa domanda non sia molto più conosciuta! Avrei pensato che l'IDE Arduino aveva, diciamo, un lib/qualche directory sotto la root di installazione che ha avuto le cose come arduino-core.dll, arduino-io.dlle così via
smeeb

@smeeb: hai ragione, l'installazione IDE di Arduino deve - deve - includere librerie delle funzioni di runtime di base più quelle fornite dall'utente. A metà della pagina del link 2, nel makefile, il simbolo LIBS indica loro. Non sono .dlls (che in Windows sono chiamati in fase di esecuzione); sono file oggetto (.o in sistemi unix-like, probabilmente lo stesso in Windows) che sono staticamente collegati ai file oggetto compilati in (in definitiva) un file di caricamento .hex, che è l'immagine del caricatore completo. ...
JRobert,

... È ben noto alle persone che scrivono programmi per vivere, ma i progettisti di strumenti di Arduino (marchio) hanno deliberatamente nascosto quanti più dettagli disordinati possibile per rendere l'applicazione dell'elettronica digitale disponibile alle persone senza che debbano diventare di livello professionale programmatori e ingegneri per farlo. Nella misura in cui trovi queste informazioni difficili da trovare nella comunità di Arduino, hanno avuto successo!
JRobert,

Sfortunatamente, per motivi legacy, costruisci il software Arduino in modo diverso rispetto al modo standard accettato. Nel "rimuovere l'attrito" per renderlo semplice, hanno creato un'enorme comunità incompatibile. Ogni "plugin" IDE è un tentativo di far funzionare qualcosa di non standard in modo quasi standard. Tienilo a mente mentre incontri dei problemi.

5

Hai assolutamente ragione sulla necessità di collegarti ad altre librerie. Tuttavia, non devi necessariamente preoccuparti di tutti i dettagli, a meno che tu non voglia / debba fare qualcosa di insolito. Diversi IDE alternativi supportano già Arduino, in genere tramite plug-in che gestiscono automaticamente molti dettagli.

Normalmente raccomando Eclipse in quanto IDE molto utilizzato per vari scopi. Tuttavia, ci sono molte altre possibilità. Vedi questa domanda per ulteriori informazioni:


Grazie @Peter R. Bloomfield (+1), tuttavia sto davvero cercando una risposta incentrata su non IDE. Non che io abbia nulla contro gli IDE, è solo che per comprendere il "panorama bibliotecario" di Arduino, mi sento come se gli IDE fossero solo un inutile intermediario. Detto questo, suppongo che ci siano 1+ "librerie di base" a cui TUTTE le app Arduino devono collegarsi e che ci sono quindi librerie opzionali di cui potresti avere bisogno o meno, a seconda di ciò che fa effettivamente la tua app. Puoi indicarmi un elenco di queste "librerie di base", nonché di altre opzionali? Grazie ancora!
smeeb

E per qualificare ciò che stavo dicendo sopra sugli IDE come "intermediari non necessari", ciò che intendo davvero è: dovrei essere in grado di scrivere un'app C al di fuori di qualsiasi IDE (Arduino, Eclipse o altro), link alle librerie Arduino che la mia app ha bisogno e ancora compilare / distribuire l'app sull'hardware Arduino. Mi chiedo cosa siano quelle librerie e dove posso trovare la documentazione su di esse.
smeeb

@smeeb Dato che Arduino è rivolto ai principianti, non credo che ci sia molta (se presente) documentazione ufficiale in tal senso. Mi aspetto che il modo migliore per ricercare sarebbe cercare online esempi di makefile di Arduino. Ci sono alcuni vecchi esempi nella parte inferiore di questa pagina .
Peter Bloomfield,

@smeeb: Come te, non sono un fan degli IDE. Esistono alcuni makefile generici di Arduino che galleggiano sul Web. Che, fondamentalmente, deve compilare la libreria di base di Arduino in libore.a, quindi compilare il file .ino con -x c++ -include Arduino.hper il compilatore per capirlo (più un po 'di -D, -Ie così via) e il collegamento con libcore.a.
Edgar Bonet,

0

Sì, puoi scrivere un programma al di fuori di Arduino IDE. Ad esempio, ho provato Eclipse IDE con plug-in AVR e ora mi attengo ad AVR Studio. Naturalmente, non avrai alcune funzioni che potresti usare di solito quando scrivi in ​​Arduino IDE e anche alcune librerie. Ma perché non provare a implementare cose. Perché limitarti a funzioni e librerie create da altri quando puoi imparare e scrivere le tue, forse meglio di quelle esistenti.


-3

ESP8266 + Arduino IDE 1.6.4 Portable - Guida di installazione rapida completa www.instructables.com /.../ ESP8266-Arduino-IDE-164-Portable-F ...

Tutti i file Arduino IDE v 1.6.4, inclusa l'estensione ESP8266, schizzi, librerie installate, ecc. Dovrebbero trovarsi solo nella nuova cartella "arduino-1.6.4" creata.


Questa non è una risposta molto utile. Il collegamento non è un collegamento reale. E anche se lo fosse, Stack Exchange aggrotta le sopracciglia solo per le risposte di solo collegamento, poiché il sito collegato può andare giù. Si prega di espandere la risposta.
Nick Gammon
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.