Amber2, sistema di sviluppo e debug embedded con QtCreator

Come in quelle storie d’amore in cui gli amanti di tanto in tanti si ri-incontrano e vivono nuove ed inaspettate passioni, nel corso degli ultimi giorni mi sono cimentato in una serie di esperimenti e test relativi ad una piattaforma embedded molto interessante con la quale è possibile realizzare progetti e applicazioni dall’indiscusso valore tecnico.

Si tratta della scheda Amber2, ovvero di una Carrier board che può ospitare i SOM prodotti dall’Isdraeliana Variscite  provvisti dell’ottimo processore NXP/Freescale Cortex-A9  IMX6.

L’Imx6 è un processore dalle alte performance a 1.0 GHz di frequenza, con 1Gb Di RAM, supporto per Video Full HD, accelerazioni grafiche e tutta una serie di periferiche, come il Bluetooth la WiFi, il supporto per le telecamere e molti altri accessori interessanti.

Varisciate rilascia per i suoi prodotti una ricca e molto ben documentata dotazione software grazie alla quale è possibile avviare e rendere operativo il sistema in tempi rapidi e senza dover essere per forza dei profondi conoscitori dei sistemi di build dei sistemi embeded.

Basta dare uno sguardo alla pagina del sito per capire subito quali sono le risorse disponibili.

Senza soffermarci troppo sulla scelta di un sistema operativo piuttosto che un altro,  diciamo subito che nelle prossime righe andremo a descrivere come realizzare un sistema di sviluppo Linux e prodotto da  Yocto e come è possibile realizzare un setup con il quale crosso compilare applicazioni basata su Qt, effettuare il deploy automatico sulla scheda targhet e come debbagare l’applicazione tramite l’ IDE del Qt Creator.
Il nostro focus sarà come configurare il sistema partendo da un roof filesystem e dall’ SDK prodotto da Yocto. In pratica quello che si vuole fare è scrivere un programma sul PC utilizzando il Qt Creator, compilarlo e mandarlo n esecuzione della scheda targhet e poterne controllare/ispezionare il funzionamento per poter migliorare e correggere il software.

Relizzeremo un setup di sviluppo denominato “linked” ovvero un Setup composta da:

  • Un PC Host, in cui è installato il sistema di sviluppo (IDE) , il cross-compilatore, il sistema di deploy e quello di debug.
  • Un sistema targhet ( la scheda Amber2 ) in grado di avviare un Linux vanilla ( senza interfaccia grafica) e tutti i servizi per poter ricevere l’applicativo sviluppato sul targhet, eseguirlo e farlo girare in modalità debug.

Per poter lavorare insieme i due sistemi devono essere provvisti delle necessarie risorse, devono in un certi senzo essere “syncronizzati” ( stesse librerie,etc..) e devono entrambi essere connessi alla rete Ethernet. Continua a leggere

Annunci

Scrivere App per Android Studio con Codice Java e C/C++ .

Lo sviluppo di applicazioni per il sistema operativo Android ha acquistato negli ultimi anni grande importanza a seguito della diffusione di tablet, telefoni e dispositivi che adottano questo sistema operativo creato da Google.
Tra i principali fattori che a mio avviso hanno favorito questa forte espansione ci sono sicuramente:

  • Il costo, non ci sono licenze da pagare.
  • La disponibilità dei codici sorgenti e la possibilità di analizzare, studiare e/o modificare ogni singola riga di codice su cui è costruito il sistema operativo.
  • Il mantenimento continuo del sistema operativo viene costantemente sviluppato da centinaia di programmatori e aziende che lo tengono aggiornato e lo arricchiscono di funzionalità.
  • La sicurezza elevata del sistema; Android è molto attento alle policy sulla sicurezza e all’accessibilità delle risorse.
  • L’affidabilità del sistema il quale è molto ben pensato e strutturato e permette sempre il recovery, il ripristino, il riavvio etc…
  • La disponibilità gratuita dei tools per lo sviluppo di applicazioni e programmi.

Per sviluppare un’applicazione Android infatti servono poche cose:
Continua a leggere

Audio Pitch Shifter for Dummies!

Grazie alla segnalazione di un’amico, nel coso degli ultimi mesi, mi sono imbattuto in uno stupendo software dal nome reTune in grado di manipolare il pitch di una frase audio in modo estremamente evoluto e potente.
Questo software sembra realizzare gran parte dei miei desideri legati alla mia attività nel campo dell’audio musicale. Oltre ad offrire la possibilità di modificare il pitch di un loop audio in tempo reale, permette infatti di riintonare i frammenti audio sulla chiave desiderata e anche di trasportare il loop da una tonalità maggiore ad una minore per esempio.
In effetti questa è la features più interessante e che potrebbe risultare molto utile a chi sino ad oggi ha fatto salti mortali per far suonare strumming audio di chitarra da adattare istante per istante, all’accompagnamento riprodotto dalla sezione MIDI.

Continua a leggere

Radio MIDI Long Range con Bluetooth BLE

In questi primi giorni di ferie estive ho trovato il tempo di realizzare un dispositivo al quale pensavo da mesi e che potrebbe essere molto utile ai miei amici fisarmonicisti “midizzati”o a tutti coloro che vogliono eliminare i cavi midi dal proprio setup strumentale.
Si tratta infatti di un sistema con il quale poter tramettere via radio ( quindi senza l’ausilio di fili e cavi ) una comunicazione MIDI in modo affidabile e su distanze ragguardevoli.
Molti penseranno che una cosa del genere già esiste ed è disponibile sul mercato;
in effetti si trovano vari dispositivi di questo tipo, ma molto spesso presentano delle limitazioni funzionali importanti ( distanza, consumo eccessivo delle batterie, etc.. ) oltre che ad un costo non sempre trascurabile.

Il sistema che ho realizzato sfrutta il protocollo di comunicazione Bluetooth Low Energy e una coppia di dispositivi Long Range della Cypress in grado di trasmettere e ricevere il segnale in un raggio nominale di 400 metri.

Cosè il Bluetooth Low Energy?
Tutti sappiamo più o meno cos’è il bluetooth “normale” ovvero un gran bel metodo con il quale possiamo connettere il nostro smartphone al nostro PC e  scambiare foto, musica e molti altri file in modo rapido e veloce. Continua a leggere

Next step!

Foto GiorgioCi sono scelte che iniziano a far male sin da quando ti sovviene la prima idea di doverle fare e che, per quanto ti sforzi di trovare un modo per rimandarle o per aggirarle, alla fine vanno fatte ed affrontate con decisione e fermezza.
Dopo tanti anni di lavoro nel mondo degli strumenti musicali, ho deciso di cambiare rotta e passare oltre. Ho deciso di iniziare un nuovo lavoro che, anche se sempre legato alla mia professione d’Ingegnere, opera in un settore molto diverso da quello nel quale ho lavorato in questi ultimi 15 anni.
E’ chiaro che con questa decisione non lascio solo “un lavoro” ma, abbandono una passione, un’interesse che nasce da lontano e da quando, ancora ragazzo, giocavo con i synth e le prime macchine dotate di accompagnamenti automatici, con i primi computer ed i primi Pc che generavano suoni e sequenze MIDI e passavo i miei pomeriggi a pensare come poter fare “quella cosa o quell’altra”.
Certo non è stato facile accettare l’idea di dover cambiare un’attività professionale  che univa “passione e professione” ma, per chi come me non è più ne tanto giovane ma neanche troppo vecchio, l’orizzonte e le prospettive per gli anni futuri non potevano essere più trascurate. Una decisione doveva essere presa; una decisione che non doveva significare l’abbandono del proprio paese (strada che più volte mi è stata suggerita ed offerta dai molti amici che comunque ringrazio), che doveva essere un nuovo stimolo per la mia professione ma sopratutto perche’ volevo riprendere in mano il mio destino e decidere in prima persona dove e con chi andare. Continua a leggere

Android Open Source Project quanto basta.

android

Android è il sistema operativo sviluppato da Google che negli ultimi anni si è diffuso su milioni di device e dispositivi elettronici probabilmente grazie alle sue indiscusse ottime funzionalità ma anche alla sua natura di progetto Open Sources.

Quando si parla di progetto Open Source si pensa sempre ad un progetto aperto, di cui si conosce ogni aspetto o in cui ogni modifica e ogni cambio di direzione sia stato condiviso e discusso da una comunità di sviluppo secondo lo schema classico e già collaudato da anni dagli sviluppatori di Linux o di uno dei tanti altri progetti Open relativi al mondo dell’ IT.

Android però differisce in molte parti da questo “schema classico di sviluppo” sia per le modalità di creazione ( Android è ed è stato sviluppato a porte chiuse dal team di Google che poi successivamente ha rilasciato e rilascia il lavoro svolto sotto forma di sorgente) sia per il modello interno dei componenti software e delle funzionalità e delle loro relative licenze di utilizzo.

Quando si legge la documentazione relativa ad Android compare sempre l’acronimo AOSP il quale stà ad indicare l’insieme del Progetto Open Source, che Google ha creato nel mettere insieme il sistema operativo Android.
Ma con quale licenza d’uso vengono rilasciati i componenti dell’AOSP e quali sono i componenti principali di Android?

Nelle righe seguente cercherò di spiegare questa complessa questione, almeno per quanto ne sono riuscito a capire io,  nella speranza di poter fare un po di chiarezza su questa spinosa materia.
Qualora nel corso della lettura rilevate delle inesattezze o delle mancanze, siete veramente pregati di segnalarmelo.

Nota per gli utilizzatori “quotidiani” di Android: la lettura di questo articolo non vi aiuterà a far funzionare meglio il vostro telefonino, al massimo può risultare interessante per gli smanettoni e per coloro che si occupano di adattare Android per i propri prodotti embedded.
Lettore avvisato, mezzo salvato!

Continua a leggere

Qt Embedded in Domande e Risposte.

QtembeddedNei giorni in cui  la Digia rilascia la versione 5.6 del suo framework, nel quale ho trovato alcune interessanti novità ma anche qualche spiacevole mancanze come il supporto per Enginio e la cancellazione del WebKit, voglio condividere con i lettori curiosi ed interessati del mondo della programmazione un documento che ho redatto nel corso della passata estate.
Nel pdf che potete scaricare da questo link, ho raccolto alcune delle domande e delle relative risposte che nel corso degli anni mi sono personalmente posto durante l’utilizzo e le fasi di apprendimento del framework Qt.
Le problematiche in esso affrontate e le relative soluzioni fornite, sono mirate alla realizzazione di interfacce grafiche su piattaforme embedded e puntano ad illustrare i passi e le nozioni di base utili alla realizzazione di applicazioni grafiche basate su widget al cui applicare un proprio Look&Fill. Oltre agli aspetti di pura programmazione e ad esempi di codice scritti in C/C++, vengono esposte le problematiche legate alle licenze d’uso e dei vincoli da rispettare per la realizzazione dei software e dei prodotti commerciali anche partendo dalla versione OpenSource del framework.
Il presente documento non vuole assolutamente essere una “guida completa” all’utilizzo di Qt, per il quale servirebbe un numero di pagine  enormemente maggiore, ma solamente essere una raccolta di spunti ed idee che possono risultare utili sia all’apprendimento di chi per la prima volta si avvicina a questo framework, sia per coloro che già lo conoscono e vogliono conoscere alcune particolarità e alcune delle sue funzionalità utili nel mondo embedded.
Spero che possa essere di vostro interesse.