“AI” e processori intelligenti.

Le modalità di progettazione dei dispositivi embedded e apparecchiature per l’IOT ha visto negli ultimi anni una profonda e radicale rivoluzione dovuta principalmente alla comparsa sul mercato di una serie di fenomenali moduli “Smart” che hanno permesso la progettazione e la successiva realizzazione di apparecchiature estremamente complesse, in modo relativamente semplice ed immediato.
Utilizzando questi nuovi dispositivi, è possibile progettare e realizzare un proprio smartphone, un tablet o un computer industriale provvisto di ampio display grafico, interfaccia SD card, fotocamera, USB, WiFi, connessione LTE e tanto altro, in modo veloce e ad un costo relativamente contenuto.
Android è il sistema operatovo di riferimento, ma esistono anche implementazioni e moduli che consentono di lavorare con Linux o altri sistemi operativi evoluti.

La progettazione classica, quella che prevedeva di partire dalla scelta della CPU, la selezione delle periferiche per le connessioni e comunicazione a corto e a lungo raggio per poi passere alla selezione ed integrazione delle interfacce e porte esterne, sembra essere oramai soppiantata dall’arrivo di questi nuovi moduli integrati in cui tutto è già compreso e funzionante.

Continua a leggere

Operazione memoria: Museo del Synth Marchigiano

Venerdì 20 Ottobre è stato inaugurato a Macerata il Museo del Synth Marchigiano (e italiano) ed ovviamente io, da vecchio appassionato del settore, non potevo certo mancare.
Nella bella location messa a disposizione dal Comune di Macerata, l’infaticabile Paolo Bragaglia ed il suo team, ha realizzato un’attenta e ricca esposizione che raccoglie tanti strumenti musicali elettronici del passato prodotti nella nostra regione.

Tra i tanti modelli esposti troviamo il mitico Compact Duo della Farfisa, molti modelli della Crumar tra cui il synth DS2 ma, anche pezzi unici e rari come l’ELKA Syntex o la Eko Computer Rhythm.

Organo Farfisa con il quale hanno suonato gruppi come i Pink Floyd, i Beatles e tanti altri.

 

Si tratta principalmente di un’operazione per tenere viva la memoria sull’oramai compianto “distretto musicale” che a cavallo degli anni 60 e 70 vide nascere, crescere e purtroppo anche morire, decine e decine di aziende e marchi rimasti nel cuore e nella storia di molti musicisti ed appassionati.

Continua a leggere

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

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

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

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