Embedded:

è la categoria relativa all’elettronica embedded. Troverete articoli relativi ai sistemi embedded sia lato hardware che software con particolare riferimento appunto a tutti quei sistemi rivolti ad una specifica applicazione. Tratteremo anche Linux embedded ed altri sistemi operativi leggeri in grado di “girare” su schede embedded a microcontrollore.

Le soluzioni IC Time-of-Flight (ToF) per il gesture recognition

Il riconoscimento dei gesti (gesture recognition) è la capacità di un dispositivo di identificare una serie di movimenti del corpo umano. La tecnologia elettronica si basa sull’ausilio di una telecamera e dispositivi IC per l’identificazione e la scansione della scena in un profilo 2D o 3D. La tecnica Time-of-Flight (ToF) consiste nell’invio di un fascio infrarosso sul target da analizzare con conseguente riflessione del segnale processato per mezzo di un’elettronica di ricezione. Le varie soluzioni IC, con l'ausilio di algoritmi software per il riconoscimento dei gesti, creano una mappa di profondità delle immagini ricevute, rispondendo in real time ai …

L’integrità dei dati

In questo articolo utilizzeremo il sistema CRC (Cyclic Redundancy Check) per realizzare un programma che permette di controllare il trasferimento di una nostra applicazione. In realtà questo programma è costituito da due parti: una parte residente su host, un normale personal computer, e l’altra su target. La necessità di utilizzare sistemi che permettono di garantire il trasferimento  corretto di programmi è un’esigenza stringente anche per via dell’integrazione delle applicazioni embedded con internet e, in genere, per esigenze di sicurezza; infatti, in questa maniera possiamo essere sicuri che il nostro file presente sulla memoria del nostro target non potrà essere modificato, in modo arbitrario, da nessuno. Utilizzando …

Corso di programmazione Python su Flip&Click: GPIO, interfaccia seriale e PWM

Nell'ultimo mese vi abbiamo raccontato Python attraverso una scheda di prototipazione che ha delle potenzilità davvero notevoli: Flip&Click. Con oggi, il nostro corso di Python si arricchisce di una struttura più precisa per spiegarvi nel merito i comandi principali, le funzioni elementari e punta a darvi gli strumenti per poter scrivere codice efficiente ed essenziale. Nella puntata di oggi parleremo dell'interfacciamento seriale, della gestione dei GPIO e del PWM in ambiente Python. E per contestualizzare il tutto ancora meglio, faremo dei riferimenti anche alla specifica scheda con cui abbiamo avuto a che fare. Sappiate fin d'ora, comunque, che quello che diremo …

La scheda embedded BeagleCore BCS1

Il BeagleCore Starter Kit BCS1 è una delle opzioni di sviluppo e di debug per il BeagleCore BCM1 system on module (SoM). Esso combina una BeagleCore baseboard e il modulo BCM1 in grado di fornire le opportunità di espansione e di collegamento per sviluppare prototipi nell’ambito dell’Internet of Things (IoT). Il BeagleCore BCM1 è un modulo computer miniaturizzato rivolto per applicazioni industriali o commerciali che copre tutte le funzionalità di base della BeagleBone black. È stato progettato per far fronte alle richieste della comunità Open Source nell’ambito dei dispositivi embedded, offrendo loro un dispositivo a basso costo basato su …

Libreria per la gestione di un display grafico

L’interfaccia video grafica è ormai molto  diffusa su tutte le apparecchiature elettroniche. Il display grafico migliora l’estetica del prodotto  e ne semplifica l’utilizzo, le informazioni  infatti  vengono presentate in modo  completo  e intuitivo. Sviluppare il firmware per la gestione del display grafico potrebbe però occupare una parte consistente del tempo di sviluppo dell’intero progetto. Si devono realizzare le procedure per gestire il testo, per visualizzare bitmap, per creare animazioni…In realtà il mercato offre delle valide alternative come i moduli grafici dell’austriaca Demmel.   Moduli   “intelligenti”  che  includono tutte le funzioni per la configurazione del controller grafico e il disegno e …

Tecniche di Generazione di Numeri Casuali

I recenti dispositivi utilizzati nel campo dell’elettronica embedded offrono capacità di elaborazione e risorse sempre maggiori, a prezzi sempre più bassi. Questo rende possibile eseguire calcoli ed algoritmi  notevolmente complessi, in molti casi impensabili fino a poco tempo fa. Però a fronte di queste capacità esiste un compito che risulta ancora piuttosto difficile da implementare in maniera ottimale: la generazione di numeri casuali di buona qualità. La generazione di numeri casuali è un argomento spesso trascurato e poco conosciuto, ma di grande importanza pratica. In questo articolo verranno presentate alcune delle più comuni tecniche per la generazione di numeri casuali, che …

Firmware n. 129 – Speciale Aerospace & Defence

È uscito il nuovo numero di Firmware! Scopriamo insieme gli articoli di questo mese: innanzitutto il focus è dedicato alle innovazioni nel settore Aerospace & Defence. Ecco gli articoli che troverete al suo interno: la tecnologia delle Microonde nell’Ingegneria Aerospaziale; le misure dei segnali radar con il Vector Signal Analyzers e strumenti a larga banda; i test nei sistemi Radar; considerazioni progettuali sull’ESD nel design di circuiti elettronici; la simulazione in tempo reale per lo sviluppo di sistemi embedded; control loop design per l’ottimizzazione delle batterie agli ioni di litio; Beacons. Buona lettura! La copertina di Firmware n. 129 …

DOXYGEN: generazione automatica della documentazione

Doxygen è uno strumento per la generazione automatica della documentazione. Chi si occupa di programmazione sa che, oltre a produrre un programma secondo le specifiche del cliente, occorre anche documentare il proprio lavoro e questo ha un peso rilevante: chi, poi, ha utilizzato Java nella  stesura del  codice  ha  certamente utilizzato JavaDoc. Per fare questo lavoro Doxygen introduce il concetto di TAG, particolari commenti inseriti nel codice sorgente: il linguaggio può essere C o anche C++, mentre il file che si ottiene in uscita può arrivare fino ad un vero e proprio manuale in html e in pdf. INTRODUZIONE Questo tool  estrae …

Compatibilità Elettromagnetica e Circuiti Integrati

L’elettronica è diventata sempre più pervasiva non solo nell’industria ma nelle nostre tasche, borse, automobili, case, città. La velocità operativa di microcontrollori e microprocessori, spesso cuore delle applicazioni citate, cresce tendendo a raggiungere le prestazioni delle cpu dei nostri personal computer. In questo articolo introdurremo le problematiche di compatibilità elettromagnetica a livello di circuiti integrati. Parlando di compatibilità elettromagnetica, vengono in mente antenne, fulmini, aeroplani, automobili e motori. Non si pensa normalmente alla compatibilità elettromagnetica a livello di componenti elettronici. Vedremo nel primo paragrafo di questo articolo come questo stia invece diventando una necessità. Inizieremo rivedendo brevemente alcuni concetti …

Corso C su Raspberry PI partendo da zero: La gestione delle stringhe

In questa puntata del corso del linguaggio C con il Raspberry PI (per le puntate precedenti consulta il seguente link) affrontiamo un tema molto importante, quello della gestione delle stringhe. Si tratta di una prerogativa comune a tutti i linguaggi di programmazione esistenti, ma quella del C è approcciata in maniera leggermente diversa, più a basso livello (verso la macchina), se vogliamo. Esempi, prove esperimenti e considerazioni per comprendere a fondo, e in maniera indolore, questo importante tassello della programmazione. Introduzione Normalmente, una stringa è un insieme, o sequenza di caratteri, rappresentata come costante o memorizzata in una variabile. …

Comunicazione dati su bus USB

La comunicazione tramite Universal Serial Bus (USB) è ormai molto diffusa ed è diventata un’interfaccia “obbligatoria” per tutti  i dispositivi embedded che devono essere  collegati ad un personal computer. Senza dubbio  un  pregio  dell’USB è  la  funzione plug&play che permette di riconfigurare automaticamente il bus USB all’aggiunta  o rimozione di una periferica. Una panoramica generale del bus USB, del suo funzionamento e del protocollo: tutte le informazioni necessarie per implementare il protocollo USB su un dispositivo embedded. L’UNIVERSAL SERIAL BUS Pregi e difetti Al bus si possono facilmente collegare un certo numero di dispositivi e, entro certe condizioni, le periferiche …

Le applicazioni sensibili al rumore richiedono regolatori LDO con livelli ultrabassi di rumore

I regolatori lineari sono circuiti integrati che riducono il valore di una tensione senza bisogno di un induttore. Il regolatore lineare LDO (low dropout) ricade in una particolare tipologia di regolatori lineari, in cui la caduta di tensione – la differenza tra le tensioni di ingresso e uscita necessaria per assicurare la regolazione – in genere è minore di 400mV. I primi progetti di regolatori lineari offrivano cadute di tensione pari a circa 1,3V, così che per un ingresso di 5V, la massima uscita ottenibile era uguale a soli 3,7V affinché il dispositivo rimanesse nel campo di regolazione. Più …

Neppure le specifiche USB 3.0 riusciranno a sostituire gli standard di dati seriali come RS-232

RS-232 ha superato i 50 anni ma resta parte integrante di tanti nuovi prodotti, nonostante la presenza di standard più aggiornati, come i connettori Universal Serial Bus (USB). Esperti diversi, opinioni diverse. Generalmente però si concorda sul fatto che la familiarità che i tecnici hanno con la RS-232 giochi un ruolo decisivo. Sin dalla sua introduzione nel 1962, la RS-232 è stata definita anche come EIA RS-232, EIA 232 e TIA 232 (rispettivamente acronimi di Electronic Industries Alliance e Telecommunications Industry Association).  Sul sito web di Mouser una semplice ricerca sui prodotti RS-232 (per un approfondimento consultare il seguente …

Ottimizzazione del codice con ARM

Il codice generato dal compilatore dipende molto dalla bontà del compilatore stesso, ma anche dal microprocessore impiegato. In questo articolo si vuole mettere in evidenza il codice generato da ARM ricorrendo ai due diversi operatori incrementali e decrementali. In ogni caso, per le nostre valutazioni ci siamo basati sull’ambiente cross arm-elf-gcc, nella versione 2.95.2. Questa distribuzione utilizza l’ambiente di lavoro GNU C compiler, gcc, ed è liberamente disponibile. In ogni caso, le considerazioni che seguono valgono indipendentemente dall’ambiente di cross-compilazione. Cicli con operatori incrementali Il  listato 1 mostra un esempio di una routine scritta in C che incrementa una variabile locale con il contenuto di un array, di 128 …

Considerazioni progettuali sull’Elettro Static Discharge (ESD) nel design di circuiti elettronici

La scarica elettrostatica è il rilascio di elettricità statica quando due corpi si avvicinano e il relativo potenziale sovrasta la rigidità dielettrica del mezzo: esempi familiari includono lo shock che riceviamo dopo essere scesi dall'automobile. In generale, possiamo distinguere due tipi di scariche, quella prodotta dall'apparecchiatura e quella provocata dall'operatore. Alla base di tutto c'è il fenomeno fisico relativo all'accumulo di elettricità attraverso l'induzione elettrostatica e l'effetto triboelettrico. Quando una carica statica si sposta da una superficie all'altra, diventa ESD ( Elettro Static Discharge). ESD è un fulmine in miniatura che si muove tra due superfici che hanno potenziali …

Corso di programmazione Python su Flip&Click: impariamo a scrivere il codice

Bentornati al nostro Corso di Python. Nella scorsa puntata abbiamo gettato le basi per iniziare a studiare questo linguaggio di programmazione, abbiamo spiegato le funzioni base ed i metodi più efficaci per lavorare subito su schede a microcontrollore. A partire dall'inclusione delle librerie, fino a qualche esempio pratico applicato, il nostro corso oggi affronta la programmazione guardando al microcontrollore, ai pin di I/O e a molto altro ancora. Faremo riferimento ad esperimenti basati su una scheda targata mikroElektronika di cui vogliamo continuare a farvi scoprire le potenzialità, la Flip&Click. Dopo avervi mostrato casi applicativi come il Fartalyzer, da oggi …

Soluzioni FIXED-POINT per AVR

Prima regola: “non usare aritmetica in virgola mobile con un AVR a meno che non sia strettamente necessario”. L’aritmetica in virgola mobile è deleteria per le applicazioni con i micro AVR sia in termini di tempo di esecuzione del programma, sia in termini di occupazione delle risorse. In questa trattazione verrà illustrato come effettuare una moltiplicazione tra numeri fixed-point in meno di 60 microsecondi e, in casi particolari, anche in meno di 20 microsecondi con cicli istruzione di 4MHz. Come fare? La maggior parte delle operazioni in virgola mobile possono essere effettuate usando numeri interi: il  punto decimale è solo una …

La simulazione in tempo reale per lo sviluppo di sistemi embedded

Chi opera in campo elettronico o dell’automatica spesso segue metodi di progettazione che impiegano modelli matematici dei circuiti o dei sistemi sotto osservazione. Le moderne tecniche di progetto basate sull’uso sistematico dei modelli dinamici per l’analisi ed il progetto dei sistemi di controllo vanno sotto il nome di “Model Based Design” o “Model Based System Engineering”.  La simulazione dei sistemi dinamici è stata presentata in vari articoli in cui sono stati mostrati degli strumenti software dedicati come, ad esempio, il Simulink. Abbiamo visto come e soprattutto perché simulare il comportamento di un sistema. In questo articolo vedremo una particolare forma …

Control loop design per l’ottimizzazione delle batterie agli ioni di litio

Il risparmio energetico e la tutela ambientale giocano un ruolo importante nella vita quotidiana delle persone, con l’introduzione di sistemi che fanno sempre di più affidamento alle energie alternative (pensiamo ai sistemi fotovoltaici con accumulatori per sopperire alla mancanza di energia). Le tecnologie utilizzano grandi quantità di batterie ricaricabili, efficienti ed in genere agli ioni di litio. In un primo storico approccio la loro capacità di storage venne vista come un notevole vantaggio rispetto all’efficienza migliorata poi nel corso del tempo. Un tipico goal al risparmio energetico è quello di immagazzinare energia durante i periodi di non di punta …

Una libreria in C per la gestione di dispositivi 1-wire con AVR

Una libreria per la gestione di dispositivi 1-wire con AVR. La libreria è scritta in C per WinAVR (AVR GCC). Per la gestione dei dispositivi 1-wire ecco una libreria in C per l’inizializzazione, l’invio e la ricezione dei dati. La funzione di inizializzazione init_1W() non richiede parametri e predispone il dispositivo 1-wire alla trasmissione/ricezione dati. La trasmissione verso il dispositivo viene effettuata con la funzione send_1W(char) alla quale deve essere passato come parametro il carattere da inviare. La ricezione di un dato avviene con la funzione get_1W() che non richiede parametri e ritorna il carattere ricevuto. Le tre funzioni si appoggiano ad una …

Send this to a friend