In generale, se non interessa l'elettronica o non si ha una passione per questa materia, di solito sconsiglio di approcciarsi all'Arduino.
E' un oggetto che va di moda tra i "nerd", molto conosciuto e apprezzato, ma spesso lo si compra senza nemmeno sapere a che cosa serve.
In particolare, un programmatore che non ha interesse nell'elettronica, se proprio vuole sviluppare su un dispositivo embedded, troverà sicuramente più soddisfazione in piattaforme come BeagleBoard, che pur essendo un sistema embedded è votato più alla programmazione di sistema (sviluppo sistemi operativi) che alla realizzazione di progetti hardware.
Arduino, invece, è perfettamente adatto all'hobbista di elettronica che vorrebbe realizzare progetti dotati di microcontrollore, ma ha delle basi di informatica troppo scarse e non ha interesse nell'approfondire troppo la programmazione. In tal senso Arduino è la scelta perfetta perchè consente di sviluppare un semplice firmware sfruttando solo una piccola percentuale di quello che realmente potresti fare con il C++.
Infatti molto banalmente è sufficiente copiare delle librerie già sviluppate e scrivere poche righe di codice "collante" per mettere insieme le varie funzioni, senza quindi approfondire la programmazione vera e propria, con tutto ciò che essa comporta (algoritmi, complessità computazionale, ingegneria del software, analisi di progetto, design patterns, ecc...).
Su un sistema come BeagleBoard, invece, hai a disposizione una CPU molto potente, un sistema embedded che non richiede complessi interfacciamenti con il mondo esterno (si tratta sostanzialmente di un prototipo di scheda madre di un tablet/smartphone), e puoi usare complesse tecniche di programmazione su sistemi operativi esistenti (Linux, FreeRTOS, Symbian, Windows CE, Android, VxWorks, altro...) oppure approcciarti allo sviluppo di sistema, partendo proprio da zero a costruire un OS minimale (l'architettura ARM è molto più semplice di quella x86, ed è più facile scrivervi il primo strato di un OS).
|