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

Amber board, gestione GPIO.

Click Here to Read the English version.

Una delle esigenze più comuni degli sviluppatori che realizzano un apparati elettronici è quella di gestire le uscite e gli ingressi digitali per attivare interruttori, acquisire lo stato di uno o più pulsanti o in generale interagire con altre periferiche per mezzo delle linee digitali d I/O (GPIO) messe a disposizione dai dispositivi utilizzati. Controllare da codice lo stato o il livello di un pin del microprocessore è una delle prime cose che si imparano quando si lavora con il codice e credo che la quasi totalità degli sviluppatori abbia almeno una volta nella loro vita realizzato il classico progetto del LED che lampeggia o della classica sequenza di luci che si accende in modalità “super-car”.
Quando si lavora con il firmware è infatti abbastanza semplice scrivere o leggere lo stato di un pin del proprio dispositivo; per compiere questa semplice operazione, il più delle volte è sufficiente scrivere o leggere un bit nel registro di I/O dedicato o aspettare lo scatenarsi del relativo interrupt se opportunamente configurato.
Cosa succede e nel nostro sistema gira un sistema operativo evoluto tipo Linux?
Possiamo ancora accedere alle linee di I/O della nostra CPU direttamente dalla nostra applicazione utente?
La risposta è ovviamente affermativa anche se la modalità può dipende dal sistema che stiamo utilizzando e dalla sua configurazione. In generale possiamo controllare e accedere allo stato dei GPIO ma dobbiamo farlo con metodologie diverse da quelle seguite nella programmazione di basso livello e con le regole e le limitazioni imposte dal sistema operativo.
Continua a leggere