Amber2 CAN Bus System

The Controller Area Network (CAN) is a multi-master bus communication system able to connect a distributed electronic systems requiring a high-security level, signal integrity, and strictly real-time functionality.
It was originally developed by the company Bosch and it’s now been standardized a series of ISO standards.
It’s widely used in vehicle systems but it’s also being used for a number of other applications in embedded systems, industrial applications and different types of medical devices. For example in a typical car, you could find as many as 70 CAN devices.
The information is transmitted by two twisted wires that connect all system modules. Each node is able to send and receive messages and the bus is able to handle an infinite ( theoretically ) node devices.


It is designed for a vehicle type environments the bit rates are up to about a megabit for second within a 40-meter size limit.
Each node is able to send and receive messages and intercepts the messages destined to it.
It decrypts the packets and extracts the identifier in the data string.  Only when is required and the bus is free, a node can start to transmit data.
In another word, In a CAN network, all nodes are not set with a pre-fixed “address”; this feature allows to add or remove nodes into the bus in a very easy way.

Continua a leggere

Global Positon System with Amber2

The global position system (GPS) it’s a system able to provide geographic position expressed in spatial coordinates and based on radio signal received from artificial satellites orbiting the Earth. We really think this is one of the most interesting and useful technology introduced in the last Years: officially up and running since 1994. Initially developed and in use just for U.S.A. military environment, it has been extended to civil purposes very soon (sjust some years later). What we mostly know, born thanks to that technology, is for sure ‘the car navigator’: maybe younger people don’t even think possible to have a car without it. So, how GPS works and how it could be possible to use it to have exact geographic position expressed in coordinates and useful for our personal app?


Without going into too much detail, let’s say that the operating principle is based on a spherical positioning method. The GPS receiver ‘receives’ signals emitted by the different satellites and, based on the temporal information and their time difference of reception (due to the different sources’ distance), the GPS device can determine its geographical position with a series of triangulations and mathematical calculations.

Continua a leggere

Amber2, sistema di sviluppo e debug embedded con QtCreator

Come in quelle storie d’amore in cui gli amanti di tanto in tanto gli amanti 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.

Variscite 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.

Realizzeremo 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 certo senso essere “syncronizzati” ( stesse librerie,etc..) e devono entrambi essere connessi alla rete Ethernet. 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

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.

 

Internet delle Cose: idee ed esempi.

Lightbulb-0add8b56e2c9c54fce60e57a28f991c4E già da molto tempo che nel mondo dei sistemi embedded e del software ad esso relativo si parla di Iot ovvero di “Internet of things” che tradotto in italiano sarebbe: “Internet degli oggetti”.
Quanti di voi conoscono il significato di questo termine e soprattutto, quanti di voi possiede un oggetto di questo tipo?
Forse resterete sorpresi ma, secondo il report “The Internet of Things: The Future of Consumer Adoption ” sembrerebbe che almeno il 30% dei consumatori possegga già un dispositivo che rientra in questa categoria, ma il più delle volte non ne è consapevole.

Ma cosa sono gli oggetti IoT e cosa fanno?

Con il termine Internet of things si indica l’insieme delle tecnologie e degli oggetti, anche senza alcuna vocazione digitale, con possono essere connessi alla rete internet.
In altre parole, si tratta di tutti gli oggetti tecnologici in grado connettersi ad internet e dialogare con un server; rientrano in questa categoria le TV smart, i termostati intelligenti della vostra casa, gli orologi e bracciali indossabili (oggetti “wearable”) , i Google Glass o perchè no, anche il vostro ultimo strumento musicale digitale che avete da poco acquistato.

In effetti molti dei dispositivi elettronici che possedete ( anche i vostri elettrodomestici, o la vostra nuova centralina d’allarme), potrebbero avere le capacità di collegarsi ad internet, anche se in alcuni casi, queste funzionalità, non sono troppo evidenti o magari non vengono proprio utilizzate..

Il report di Acquity Group ha infatti rilevato una certa mancanza di interesse verso i dispositivi IoT, sia da parte degli utilizzatori che da parte dei produttori.
La domanda sorge spontanea: ma perchè se un dispositivo ha internamente le potenzialità per connettersi, per dialogare con un server, per essere controllato da un browser, l’azienda che lo produce non dovrebbe sfruttare a pieno questa possibilità e perchè gli utenti non dovrebbero trovare queste funzionalità “attraenti” o motivarne maggiormente il suo acquisto?

Continua a leggere