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.

Machine learning e deep learning

Nel senso più fondamentale, Machine Learning (ML) è un modo per implementare l'intelligenza artificiale (AI o IA). Simile all'IA, l'apprendimento automatico è una branca dell'informatica che studia la progettazione di algoritmi che hanno la capacità di apprendere da vari eventi. Algoritmi, set di dati, apprendimento automatico, apprendimento approfondito, calcolo cognitivo, big data e intelligenza artificiale: espressioni IT che hanno assunto il linguaggio di molte realtà industriali. ML è una delle tecnologie più eccitanti che si sarebbero mai potute incontrare. Come è evidente dal nome, dà al computer ciò che lo rende più simile agli umani: la capacità di apprendere. …

Audio facile con il SOMO-14D

Riprodurre file audio non è mai stato così facile con il SOMO-14D. Dotare il proprio sistema embedded di funzionalità audio può spesso rappresentare un’interessante possibilità. Non sempre tuttavia, soprattutto nel caso delle soluzioni più semplici ed economiche, il microcontrollore a bordo dispone delle periferiche necessarie per la memorizzazione e la riproduzione dei contenuti audio. In questo caso può risultare utile impiegare dei moduli standard di espansione. Uno di questi è il SOMO-14D, commercializzato dalla 4D System. Il dispositivo è ideale per applicazioni a basso costo nel settore, ad esempio, dell’automazione domestica, dei sistemi di allarme o dei navigatori GPS o …

La Cpu V850: architettura e prestazioni

Caratteristiche, architettura e prestazioni della CPU V850 di Renesas, la quarta generazione di microcontrollori per applicazioni automotive basati su  CPU V850. Realizzati in tecnologia flash MONOS a 90 nm (Metal-Oxide-NitrideOxide-Silicon), i dispositivi garantiscono una capacità di calcolo di 2.5 DMIPS/MHz e supportano una massima frequenza di clock di 200 MHz. La famiglia guarda al segmento di dispositivi high-end (figura 1) ed estende il portafoglio di soluzioni Renesas basate su CPU V850, che già includeva soluzioni di fascia bassa e ASSP (Application Specific Standard Product). In generale, i microcontrollori delle serie V850 si caratterizzano per le elevate prestazioni nel segmento di riferimento, bassa …

Piattaforma low-cost con PLD

La progettazione di una piattaforma hardware deve considerare parecchi aspetti e il gestore della piattaforma deve essere scelto con cura. Sempre più piattaforme utilizzano delle PLD per la gestione, il perché è facile da capire. Il controllo della sequenza di powerup, le espansioni dei pin di input/output, le traslazioni di livello e gli adattamenti di interfaccia, sono solo alcune, ma tra le più diffuse, funzioni che trovano applicazione nei dispositivi per il mercato telecom, per i server e per le applicazioni industriali. Per queste e altre applicazioni, i progettisti si stanno sempre di più orientando all’utilizzo di logiche programmabili non volatili (PLD) per i …

Memory barrier, come ottimizzare gli accessi in memoria nei processori Cortex-M

Nei vecchi processori ARM l'esecuzione di un determinato programma combaciava esattamente con l'effettivo ordine delle istruzioni, un simile comportamento per quanto possa sembrare lineare e semplice non sempre ottimizzava i tempi di esecuzione. Se per esempio si effettuava una LOAD da una locazione di memoria non presente nella cache, recuperare i dati dalla memoria poteva richiedere diversi cicli d'istruzione, i nuovi processori ottimizzano così l'esecuzione proseguendo con le istruzioni in caso non dipendano dalla precedente. Questa modalità di esecuzione chiamata out-of-order execution  può portare ad errori indesiderati nei processori moderni, per cui è necessario modificare il codice per ripristinare l'esecuzione …

Machine Learning con Python: introduzione al progetto

Negli ultimi anni il linguaggio di programmazione Python ha visto un sempre maggiore utilizzo nella realizzazione di progetti legati al Machine Learning. L'apprendimento automatico consiste nell'utilizzare i dati per fare in modo che una macchina prenda decisioni intelligenti. Ad esempio, è possibile creare un algoritmo di rilevamento dello spam in cui l'apprendimento delle regole dai dati avviene esaminando le mail precedenti. In questo articolo andremo a descrivere la prima parte della realizzazione passo passo di un progetto di machine learning utilizzando il linguaggio di programmazione Python. Introduzione L'apprendimento automatico non è altro che riconoscere i modelli nei dati. Sviluppare procedure …

Veicoli a guida autonoma

Il veicolo autonomo è destinato a cambiare la vita quanto l'invenzione dell'autoveicolo stesso. Le città moderne sono state modellate in gran parte dalla mobilità che viene raggiunta attraverso veicoli a motore, fornendo servizi di trasporto a persone e merci allo stesso modo e supportate dalle principali reti stradali in tutto il mondo. I progressi nella comunicazione, nei controlli e nei sistemi integrati ora spianano la strada alla rete di veicoli intelligenti. Un'auto è ora una formidabile piattaforma di sensori che assorbe le informazioni dall'ambiente e altre auto che la alimentano per assisterla nella navigazione sicura, nel controllo dell'inquinamento e …

Le nuove frontiere dell’audio digitale

Un accordo di cooperazione tra Atmel e la società danese Bang & Olufsen ICEpower, specializzata nella realizzazione di amplificatori in classe D, ha portato all’ingegnerizzazione di un progetto di riferimento destinato ai progettisti impegnati nell’assemblaggio del puzzle dell’audio digitale. L'introduzione, avvenuta 130 anni fa, del fonografo di Edison che utilizzava cilindri incisi, ha segnato l’inizio dell’era della distribuzione dell’intrattenimento su un mezzo fisico. Inutile a dirsi, quest’epoca sta iniziando a concludersi nel momento in cui la distribuzione e la riproduzione di brani musicale attraverso dispositivi portatili e connessi in rete stanno divenendo sempre più convenienti sia per i consumatori sia per i …

Programmare in real-time con VisualRTXC

VisualRTXC di Quadros system Inc. è un tools di sviluppo versatile e semplice da utilizzare, non richiede una conoscenza approfondita di programmazione, e lascia libertà d’utilizzo da parte del programmatore. In quest’articolo ne sveleremo pregi e difetti, cercando di gettare le basi per un utilizzo senza problematiche. Ogni progettista o hobbista che si rispetti, sa benissimo che con l’implementazione nel proprio circuito di un dispositivo programmabile, oltre ad accrescerne le potenzialità, ne aumenta anche le possibilità di errore e la complessità stessa. Lo schema elettrico risulta più snello e comprensibile, ma a fronte di qualche migliaia di righe di codice, si …

Lo stack TCP/IP di Microchip

Microchip è sicuramente molto famosa per via dei processori della serie PIC e dei suoi moduli software che distribuisce e di questi, certamente, lo stack TCP/IP è uno degli oggetti più interessanti. Lo Stack TCP/IP di casa Microchip si compone di una suite di programmi e codice sorgente in grado di offrire servizi per applicazioni basate sul protocollo TCP/IP, ovvero HTTP Server, mail client con il protocollo SMTP e, successivamente, con SNMP. A questo proposito la tabella 2 pone in evidenza i diversi RFC applicabili. L’approccio di Microchip è davvero interessante, tanto da favorire la portabilità delle applicazioni scritte per differenti piattaforme. In …

Programmare un MSP430 via JTAG

Una semplice discussione sull’interfaccia JTAG della famiglia MSP430 di Texas Instruments, con tanto di analisi del protocollo di comunicazione e introduzione al progetto “Replicator” che permette, tramite un MSP430, di programmare un altro MSP430 attraverso la JTAG. Ormai l’interfaccia JTAG è diventata l’interfaccia principe nelle applicazione di programmazione e debug nel mondo embedded. Ormai quasi tutti i microcontrollori, partendo da quelli di fascia alta per finire con quelli di fascia bassa, sono equipaggiati con la JTAG. Il microcontrollore MSP430 di Texas Instruments non è da meno. Attraverso la JTAG è possibile accedere alla memoria flash interna per eseguire operazioni di cancellazione, programmazione e verifica. Negli ultimi anni due …

Una libreria per applicazioni touch-sensing

Come trasformare le MCU S08 e V1 ColdFire di Freescale in sensori touch-sensing. Di recente, il mercato ha visto una crescente diffusione delle soluzioni touch sensing, non soltanto in ambito consumer ma anche nel settore industriale. E’ sempre più frequente trovare dispositivi con tastiere, rotary switch o slider di  tipo capacitivo piuttosto che meccanico. Tra i vantaggi principali delle tecnologie touch sensing vi sono una riduzione dei costi di progetto e di materiale, la maggiore affidabilità (è possibile, ad esempio, sigillare l’apparecchiatura dall’ambiente esterno in presenza di condizioni ostili), oltre ad una migliore facilità di utilizzo ed una attrattiva maggiore per …

Interfaccia SCT per camere a 8 bit

Acquisire immagini attraverso videocamere è al giorno d'oggi cosa comune e essenziale in determinati tipi di applicazioni. Riuscire a progettare un'interfaccia di acquisizione ad alte prestazioni, caratterizzata anche da un basso consumo, è ciò a cui si punta per ottimizzare l'efficienza del dispositivo. Attraverso un'interfaccia di tipo SCT (State Configurable Timer) si riesce ad ottenerne una molto potente caratterizzata da 16 eventi, 32 stati, 8 input, 16 output con la capacità di acquisire e visualizzare video; questa interfaccia riesce, quindi, facilmente a acquisire ed esportare complesse forme d'onda in parallelo, ma per fare ciò serve anche un processore in grado …

I.B.I.S.

Non si intende parlare qui dell’animale sacro agli Antichi Egizi, naturalmente, ma di uno strumento per verificare la Signal Integrity dei nostri progetti senza costruire prototipi. IBIS è infatti l’acronimo di I/O Buffer Information Specification. Nella vastissima gamma di Note Tecniche,  Application  Notes, Whitepapers rilasciate ogni mese da tutti i produttori di componenti elettronici, strumentazione e sistemi, si nascondono a volte piccole “gemme”, documenti preziosi per la loro chiarezza o per il contenuto particolarmente interessante. Certo, lo scopo è sempre contribuire, più o meno direttamente, alla vendita dei propri componenti, ma non di rado il valore formativo ed informativo di alcuni di questi componenti va …

Automazione industriale: in attesa del 5G

Da molti anni argomento tra i più "caldi" nel settore delle telecomunicazioni, il 5G è in dirittura d'arrivo: già nel 2018 alcuni operatori statunitensi come Verizon e AT&T hanno avviato le prime reti commerciali 5G, mentre la Corea del Sud ha attivato i primi servizi nel 2019 e la maggior parte degli operatori europei inizierà a proporre le proprie offerte a partire dal 2020. Introduzione Anche se con enfasi forse eccessiva alcuni commentatori prevedono che sarà uno dei più importanti sviluppi della storia dell'umanità, il 5G avrà comunque un profondo impatto su molti aspetti della vita quotidiana, consentendo lo …

Smart city e automazione

L'automazione è un tema chiave emergente per le aziende di ogni tipo. Oggi assistiamo a un'ondata di trasformazioni digitali che investono industrie come la produzione, l'energia, i trasporti e altro ancora. Tecnologie avanzate come l'intelligenza artificiale (AI), il deep learning e le comunicazioni machine-to-machine promettono di trasformare l'ambiente industriale. Mentre le città sembrano diventare più intelligenti, molti stanno esplorando come possono trarre vantaggio da queste stesse funzionalità per gestire al meglio le proprie risorse e operazioni. Ad esempio: come possono applicare al meglio i principi alla base dell'automazione digitale e della connettività onnipresente dell'internet degli oggetti (IoT) per affrontare …

Cable replacement in 422/485 con Bluetooth

 Una delle principali applicazioni del Bluetooth in campo industriale è sicuramente il cable replacement in connessioni RS422/485. Ecco la soluzione Sena Technologies per questo tipo di applicazione. Con l’avvento della tecnologia Bluetooth sono apparsi sul mercato numerosi dispositivi in grado di effettuare una conversione RS232-Bluetooth in modo trasparente grazie al profilo SPP (Serial Port Profile) previsto dalle specifiche Bluetooth. Un pò più rari i convertitori RS422/485-Bluetooth e uno di questi è appunto il Parani SD1100 prodotto da Sena Technologies. L’SD1100 è un adattatore seriale/Bluetooth v.2.0 di Classe 1 che supporta nativamente una distanza di trasmissione wireless di 100 metri in spazio libero, che può essere estesa …

EEPROM emulator library for PIC32

Il nome PIC, inizialmente acronimo di Programmable Intelligent Computer (Calcolatore Intelligente Programmabile), è diventato successivamente, grazie a Microchip, PICmicro. Oggi non viene più utilizzato come un acronimo, anche se usualmente viene definito come Programmable Interface Controller (Regolatore Programmabile dell’Interfaccia). Come tutti i nostri lettori ben sanno, il PIC è una famiglia di circuiti integrati a semiconduttore con funzioni di microcontrollore. I PIC sono molto popolari agli sviluppatori e agli hobbisti grazie al loro basso costo, ad una grandissima disponibilità, una base di utenza molto ampia, moltissime note di applicazione, possibilità re-programming e di programmazione di serie con la memoria istantanea. …

Debugging avanzato LINUX embedded

Soluzioni per il debug di sistemi Linux multicore e Android. L’esigenza  di adottare architetture di CPU multicore nasce dal tentativo di risolvere i problemi di consumo energetico e conseguente dissipazione di calore che si presentano quando si aumenta la frequenza di lavoro di una CPU a singolo core. Inoltre, la tendenza tecnologica a ridurre la geometria di un chip, aumenta sempre più i problemi di progetto, dovuti al manifestarsi di fenomeni parassiti (effetti capacitivi, correnti di dispersione, ecc...). Una prima risposta a questi problemi consiste nel definire nuove architetture di CPU, dotate, per esempio, di superpipeline oppure di tipo superscalare. Nel …

L’intelligenza artificiale per la prevenzione dei terremoti

Blockchain e l'intelligenza artificiale sono in grado di creare rapidamente e facilmente un sistema di registrazione indipendente che potrebbe essere la chiave per fornire un aiuto più rapido e più efficace alle persone colpite da un'emergenza. Non c'è nulla di artificiale nel cambiamento climatico. I modelli meteorologici che vediamo in tutto il pianeta, dalle colossali inondazioni agli incendi catastrofici alla devastante siccità, non ci sono dubbi sul fatto che abbiamo bisogno di utilizzare tutte le risorse del nostro pacchetto tecnologico per combattere disastri naturali o causati dall'uomo. Uno di questi progressi è l'Intelligenza Artificiale (AI) codiauvata dalla blockchain, che …

QorlQ P4040 Multicore Processor

Scopo di questo articolo, è quello di analizzare le caratteristiche del processore P4040, il primo processore con quattro core presente all’interno della famiglia P4 di QorlQ, e presentare anche una panoramica relativa agli strumenti di sviluppo e prototipazione offerti da Freescale. QorlQ di Freescale rappresenta non solo una famiglia di processori ad elevate prestazioni, ma costituisce, soprattutto, una piattaforma hardware orientata spiccatamente alle applicazioni nel campo delle telecomunicazioni, ed è la naturale evoluzione della consolidata architettura PowerQUICC. I processori QorlQ sono tutti progettati e fabbricati utilizzando core ad elevate prestazioni basati su PowerArchitecture e sono destinati a giocare un ruolo fondamentale nella nuova era …

Host Controller USB le soluzioni Renesas

Una panoramica delle soluzioni proposte da Renesas per applicazioni USB Host. USB (Universal Serial Bus) è un protocollo di comunicazione per dispositivi periferici introdotto nel 1994 da un gruppo di compagnie, tra cui Intel, IBM e Microsoft. Inizialmente orientato al mercato dei Personal Computer, ha in realtà trovato rapida diffusione anche in applicazioni embedded tanto da essere adottato oggi pure in telefoni cellulari, PDA, console di gioco. Nel 2008 è stata superata la soglia dei 2 bilioni di dispositivi USB venduti per anno; ad oggi sono stati immessi sul mercato oltre 10 bilioni di componenti. Il protocollo di comunicazione ha …

La Virgola Mobile

In questo articolo si vedrà come gestire i numeri in virgola mobile, in un sistema sprovvisto di librerie matematiche decimali o floating-point. L’applicazione principale esaminata sarà quella della conversione di un valore digitale proveniente da un ADC ad un valore analogico in virgola mobile visualizzabile. Nella programmazione dei microcontrollori, le operazioni matematiche (anche semplici) sono quelle più coinvolte. Se i dati numerici da trattare sono relativamente piccoli e, soprattutto, di tipo intero, non esistono particolari problemi nella gestione. Infatti, tutti i compilatori, di qualsiasi linguaggio, ben supportano le librerie di numeri interi che, peraltro, sono anche implementati nell’architettura interna del sistema. Purtroppo non tutti i compilatori …

Riconoscimento facciale con il Raspberry Pi

Il riconoscimento facciale, o face detection, è sicuramente una tra le tecniche di intelligenza artificiale maggiormente apprezzata e in grado di destare interesse o curiosità tra i maker. In questo articolo mostreremo come, con un normale Raspberry Pi 3 equipaggiato di telecamera, sia possibile realizzare in pochi semplici passi un’applicazione di riconoscimento facciale Introduzione Il riconoscimento facciale non è più una novità: questa tecnica viene ad esempio normalmente utilizzata da numerosi modelli di telecamere IP, con finalità di sorveglianza e controllo antintrusione. La stessa funzionalità può essere attivata su alcuni smartphone di ultima generazione ed esistono comunque numerose app …

Un’applicazione con Webcam USB

Il bus USB (Universal Serial Bus) si sta diffondendo rapidamente nel settore delle applicazioni multimediali. Si tratta di una tecnologia che può essere utilizzata per archiviare immagini statiche o video su memorie Flash, oppure per trasferire ed elaborare flussi video in tempo reale. La realizzazione di una semplice applicazione di una webcam, come quella descritta in questo articolo, è probabilmente un caso che molti progettisti troveranno interessante. Spesso per realizzare una webcam si  utilizza un  microprocessore affiancato da un circuito integrato dedicato alla ricetrasmissione sul bus USB. Sfortunatamente, questo tipo di progetto spreca uno spazio considerevole sulla scheda e richiede un numero di componenti relativamente elevato. Una soluzione …