Visualizzazione post con etichetta arduino. Mostra tutti i post
Visualizzazione post con etichetta arduino. Mostra tutti i post

giovedì 2 gennaio 2020

Arduino Cli

Se, come me, usate Arduino fuori dall'Ide e vorreste poter compilare i vostri progetti via batch (e magari in un processo DevOps), finalmente stanno sviluppando Arduino CLI .

lunedì 15 gennaio 2018

Arduino Visual Studio Code Extension

Tra i vari IDE per Arduino è stata creata anche un'estensione per Visual Studio Code.
L'estensione è creata direttamente da Microsoft.

Il plugin richiede che l'IDE Arduino sia installato ed ha, fra gli altri tool, un monitor seriale integrato.

Ho fatto un test con un progetto che avevo, funzionante su Arduino IDE e che usa la porta seriale, e posso dire che funziona perfettamente. Le modifiche da fare sono ben poche, aggiungere la directory .vscode ed i 2 files settings.json ed arduino.json

Sembra anche che ci sia un debugger integrato, un bel plus, ma al momento non sembra che funzioni su tutte le board

venerdì 15 dicembre 2017

Arduino in the real world: Controllino

E finalmente Arduino va nel mondo reale, con una soluzione già pronta per essere installata!
http://controllino.biz/

sabato 16 settembre 2017

Arduino: splittare il programma in più sorgenti

Prima di dire come splittare un programma Arduino in più sorgenti è necessario capire come funziona il processo di build dei sorgenti.
In particolare, il preprocessing concatena tutti i files .ino nella directory, e crea un singolo file con estensione .cpp.
A questo file viene aggiunta la direttiva #include che contiene tutte le librerie necessarie ad Arduino.
Quindi, volendo aggiungere un altro sorgente al principale, basta aggiungere un file .ino nella directory, e il compilatore farà il resto.
In alternativa, se si sta usando l'IDE Arduino, per aggiungere un nuovo sorgente basta fare click nell'angolo in alto a destra e selezionare "New Tab" (come descritto qui)
Se invece si usa un IDE tipo AtmelStudio tutto questo processo viene a cadere, perché i sorgenti non hanno più l'estensione .ino, ma sono puri e semplici files .cpp, e ci sarà un makefile esplicito che farà la compilazione.

domenica 3 settembre 2017

Arduino: comunicare via seriale

Tutte le schede Arduino hanno a bordo almeno una porta seriale.
Questo è uno tra i sistemi più usati per colloquiare con l'esterno.
Proprio per questo motivo la libreria che gestisce la scheda seriale è integrata nella libreria di base (Arduino.h)
Il principio della seriale è semplice: nella funzione setup() va inizializzata ed aperta tramite la funzione Serial.begin(): a quel punto è possibile leggere e scrivere sulla seriale. Per un semplice e veloce debug è possibile usare il monitor seriale presente sull'Arduino IDE.
Quindi, oltre la funzione begin(), le 2 funzioni più usate sono print() e read()


domenica 27 agosto 2017

Arduino: linguaggi e tool alternativi

Oltre che con Arduino IDE, è possibile scrivere programmi per Arduino con vari IDE.
Alla fine, è sempre C++ !

Dal sito, si ha una bella lista di Dev Tools, gratuiti e non, open o meno, con cui sbizzarrirsi.

Personalmente ne ho provati vari, ma quello che preferisco è Atmel Studio.
Atmel è il produttore dei chip che vengono montati su Arduino: questo già mi da la garanzia che il compilatore farà il suo dovere.
L'IDE è basato su Visual Studio 2015, e questo già da un'interfaccia conosciuta agli sviluppatori C++, e un buon debugger.

Ovviamente, per semplici progetti Arduino IDE è perfetto, facile, light, con un sacco di librerie pronte da usare, ma quando si passa a far cose più complicate per sfruttare a pieno la potenza della nostra board, penso che Atmel Studio sia quello che fa al caso.
E ci fa anche capire quello che Arduino IDE maschera, cioè il main loop!

domenica 15 gennaio 2017

Arduino: prime impressioni

Ebbene si, mi sono fatto un Arduino.
Perché?, mi son chiesto. Perché volevo capire con mano come funzionava.
Ed eccolo qua, il mio bell' Arduino nuovo con il kit di Sunfounder!

E quindi, all'opera!
A parte il fatto che non so nulla o quasi di elettronica, ho usato i circuiti proposti negli esempi per capire come si potessero scrivere i programmi, e mi sono concentrato sulla scrittura dei programmi.
Ed ho installato Arduino IDE, come suggerito.
Fatto questo, tutto risulta molto semplice, lo scheletro di ogni programma risulta essere fatto di 2 funzioni

  • void setup() che serve per inizializzare il programma
  • void loop() che contiene il loop principale del programma
Ma.... e qui cominciano i ma...
supponiamo di voler controllare contemporaneamente 2 led, e di volerli far accendere e spengere con tempi diversi, come si può fare?
Facile, mi sono detto, si scrivono 2 thread ed ognuno controllerà un led in maniera indipendente!
Peccato che il processore di Arduino sia sfacciatamente monothread, e che quindi non sia assolutamente possibile scrivere programmi multithread in Arduino....

E allora che si fa?
La risposta si chiama protothreading: in pratica si simula il multithread attraverso un timer e usando funzioni che impegnino per poco tempo il processore.
Fortunatamente la documentazione di Arduino spiega molto bene come fare, vedi qui

Armato di questa conoscenza studierò un qualcosa di complesso da mettere su, e vedrò quali difficoltà si possono incontrare strada facendo