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.

Programmiamo ESPertino con MicroPython

Proseguiamo la nostra panoramica sui diversi ambienti di sviluppo per ESPertino occupandoci in questo articolo di MicroPython, l’implementazione della versione 3.x del noto linguaggio di scripting rivolta ai microcontrollori e ai sistemi embedded. Anche questa volta ESPertino non finirà di stupirci, offrendo un modo alternativo ma molto efficiente e istruttivo per creare nuove interessanti applicazioni Introduzione MicroPython è un’implementazione lineare ed efficiente della versione 3.x del noto linguaggio di scripting Python. Il sistema include un sottoinsieme delle librerie standard del linguaggio, ed è ottimizzato per essere eseguito su microcontrolli, o in generale su sistemi embedded in cui, come noto, …

Ottimizzazione del codice firmware

Le skills dello sviluppatore non sono solo le abilità nello scrivere codice sorgente, ma un bravo sviluppatore deve possedere anche capacità di analisi critica su ciò che sta progettando, realizzando. La tecnica di ottimizzazione più efficace, infatti, è l’individuazione a priori dei colli di bottiglia del proprio software/firmware. A maggior ragione quando stiamo lavorando ad un firmware per una applicazione embedded o real-time, dove le risorse a disposizione sono limitate e bisogna sempre tener d’occhio i costi del prodotto. Capire quale porzione di codice consuma maggiormente le risorse a disposizione non è un compito facile, anzi è molto arduo …

Virtualizzazione nei sistemi embedded

Gli ambienti di virtualizzazione rappresentano le risposte più decise ai requisiti di sicurezza e di affidabilità: elementi essenziali e richiesti sempre con maggiore insistenza dal mercato. La virtualizzazione, in sé, è un concetto già presente nella realtà; in effetti, i sistemi operativi, e in modo particolare quelli di ultima generazione, prevedono nella loro architettura interna la presenza di meccanismi in grado di assicurare il funzionamento di macchine virtuali, ossia nel simulare uno spazio di memoria maggiore di quello fisicamente presente o nella garanzia di conciliare codice legacy con i nuovi requisiti di sicurezza. Il tutto è garantito grazie all’uso di dispositivi hardware, quali MMU, in una gestione più efficiente dei processi presenti in memoria e nella presenza …

Realizziamo un orologio per gli scacchi con ESPertino

Le partite ufficiali al gioco degli Scacchi necessitano dell'uso di speciali orologi (meccanici o elettronici) per misurare e assicurare equamente il tempo impiegato dai due giocatori per effettuare le proprie mosse. Anche se il mercato mette a disposizione modelli molto belli ed eleganti a prezzi competitivi, nulla toglie il piacere di poterlo realizzare in casa con la nostra scheda ESPertino. Di cosa si tratta? E' un orologio speciale che ha lo scopo di tenere la traccia del tempo utilizzato da ciascun giocatore durante una partita ufficiale di scacchi. Il suo funzionamento è molto semplice: l'orologio del Bianco inizia a …

Un web server per Arduino

Un web server si può vedere come l’unione funzionale di due differenti applicazioni: in effetti, grazie alla presenza di un server composto da hardware e software di base possiamo, attraverso un particolare strato software, ricevere o inviare informazioni sulla rete. Con sempre maggiore incisività si stanno diffondendo applicazioni che richiedono servizi remoti perché garantiscono scalabilità e manutenibilità con significativi risparmi in termini economici (vedi figura 2). In effetti, in questo contesto diverse schede che gestiscono differenti servizi possono scambiarsi tra loro informazioni per meglio gestire la singola applicazione: ogni scheda utilizza un microcontrollore per comunicare, grazie alla presenza di una libreria software di rete, con i dispositivi presenti nella rete. Una libreria …

Realizziamo un Sensore di tocco con un Microcontrollore

L’immenso e variegato mondo dell’elettronica embedded è sempre più orientato ad utilizzare il microcontrollore come  uno “Standalone Application Device”. La sempre più crescente potenza di integrazione dei microcontrollore, rende questi componenti in grado di svolgere intere complesse applicazioni. Un’applicazione infatti, per definizione, è un insieme di elementi costituito da hardware esterno, hardware intrinseco al microcontrollore, ovvero blocchi funzionali quali timer, DAC, comparatori, clock ecc…, periferiche I/O d’interfaccia utente, e da moduli software per la gestione e il funzionamento dell’applicazione.  Introduzione Il sensore di tocco viene normalmente utilizzato come elemento atto a realizzare una commutazione (touch-sensitive switch), intendendo per commutazione, …

La tecnologia dei sensori nel settore medico è il cuore della sanità moderna

Oggi, quando i pazienti entrano in ospedale, devono affrontare non solo dottori e infermieri, ma anche una serie di strumenti medici analitici e diagnostici sofisticati. Numerosi dispositivi vengono utilizzati per monitorare i loro parametri vitali, quali la temperatura del corpo, il battito cardiaco, la pressione sanguigna, il livello di ossigeno nel sangue ecc. L’interfaccia tra i pazienti e questi strumenti medici è rappresentata da una serie di sensori medici altamente affidabili. La società di ricerche di mercato MarketsandMarkets prevede che il mercato dei sensori medici registrerà un tasso di crescita annuo cumulato (Compound Annual Growth Rate, CAGR) dell’8,5% tra …

Code Composer Studio

Parliamo del ormai diffusissimo ambiente di sviluppo di Texas Instruments. L’obiettivo di questo articolo è fornire una breve presentazione sull’argomento a quanti ancora non conoscono questo praticissimo strumento. A seguire un semplice progetto di esempio basato su microprocessore MSP430. Code Composer Studio è la versione dell’ambiente di sviluppo di Texas Instruments, ora basato sul software framework open source Eclipse. Questo framework è utilizzato da moltissime applicazioni ma originariamente è stato sviluppato proprio per creare ambienti di sviluppo, per questo motivo Texas Instruments, così come molti altri produttori di software embedded, ha deciso di utilizzare Eclipse. Solitamente si abbrevia la nomenclatura del Code …

Serial Port Interface: come utilizzarla con un controllore low-cost

Ci sono dispositivi come i convertitori analogici-digitali della Analog Devices che al power-up del sistema hanno bisogno di essere caricati con una configurazione di parametri. Alcune volte l’applicazione è tale per cui si possono utilizzare i parametri di default caricati sul componente. Altre volte, vuoi perché si hanno situazioni implementative differenti (stesso circuito da utilizzare per sistemi con caratteristiche diverse), vuoi perché c’è l’esigenza di un aggiornamento correttivo della configurazione, i suddetti parametri di default devono essere modificati. A questo scopo, Analog Devices ha inserito sui propri componenti "high speed converter", una porta seriale (SPI- Serial Port Interface)  per il …

Xtrinsic Sensing: La tecnologia di Freescale/NXP

Analizzare il movimento, ecco l’obiettivo che si è posta Freescale/NXP con Xtrinsic Sensing. Freescale, allo scopo di offrire soluzioni innovative nel campo della tecnologia Xtrinsic Sensing, ha realizzato tempo fa una vasta famiglia di accelerometri, inclusa la linea MMA845xQ, dove, oltre a proporre una discreta scelta in fatto di risoluzione (da 10 e fino a 14 bit), sono particolarmente indicate per le applicazioni di tipo embedded; in effetti, permettono di eseguire un’analisi accurata del movimento: cosa senza dubbio apprezzata nelle applicazioni di tipo automotive. Secondo le informazioni offerte dal costruttore, gli accelerometri MMA845xQ permettono di rilevare il movimento in tempo …

PCBWay: il partner ideale per la prototipazione elettronica

La progettazione di schede e dispositivi elettronici impone oggi un'elevata flessibilità e tempi di consegna sempre più ristretti. In un mercato caratterizzato da una forte spinta innovativa, con time-to-market sempre più brevi, è essenziale per i progettisti elettronici contare su servizi di prototipazione e assemblaggio PCB che siano rapidi, affidabili ed economicamente convenienti Introduzione Lo sviluppo di nuove applicazioni elettroniche ha ricevuto negli ultimi anni un notevole impulso, determinato principalmente dalla diffusione di nuove tecnologie come Internet of Things (IoT), Industry 4.0 e dispositivi "smart". Come effetto, abbiamo assistito al proliferare di soluzioni innovative in tutti i principali settori dell'elettronica: …

Le periferiche del micro AVR UC32

Una panoramica delle periferiche presenti a bordo dei microcontrollori Atmel AVR UC32. UC3 è la famiglia di microcontrollori AVR  a  32  bit di Atmel per sistemi ad elevate prestazioni nei più diversi ambiti di applicazione, che vanno dal controllo nei settori industriale ed automotive, alle apparecchiature consumer portatili. I microcontrollori si basano su CPU RISC a 32 bit che dispone di istruzioni dedicate per operazioni DSP, accessi read-modify-write e  manipolazione di  singoli bit, garantendo così una capacità di calcolo di 1.51 DMIPS/MHz. Una matrice di connessione multi-livello controlla lo scambio dati con le periferiche, eventualmente mediante controller DMA a più …

Processore ARM Cortex A9

Il processore ARM Cortex-A9 si distingue per un livello di prestazioni e di efficienza energetica senza precedenti, proponendosi come la soluzione ideale per tutte le applicazioni in cui sono richieste elevate performance, bassi assorbimenti e bassi valori di dissipazione termica. La famiglia di processori ARM Cortex offre una vasta gamma di soluzioni adatte a soddisfare anche le richieste più esigenti in termini di funzionalità e di prestazioni. La famiglia ARM Cortex comprende al suo interno tre serie di processori, tutti basati sull’architettura ARMv7 e sull’implementazione del set di istruzioni Thumb-2. La tecnologia Thumb-2 si basa su un innovativo set di istruzioni in grado di …

Conversione digitale-analogico in PWM

Con la tecnica del PWM si possono ottenere molti risultati. In questo articolo si vedrà come convertire un valore digitale in analogico, ovvero come ottenere un qualsiasi valore di tensione analogica, partendo da un dispositivo digitale. In un convertitore Digitale-Analogico (DAC) si ottiene la conversione di un segnale digitale (rappresentato da un insieme finito di numeri), in una segnale analogico. Di solito tale grandezza è una tensione, da usarsi secondo le più disparate esigenze. Un DAC è contraddistinto da alcune proprietà, come, ad esempio, il valore massimo e minimo di tensione ottenibili e, soprattutto, la risoluzione, ovvero la quantità di bit usati per …

Sicurezza e Android

Sistemi embedded e mobile device: una comune architettura per due particolari segmenti di mercato ognuno con peculiari caratteristiche tecniche ma dove è possibile trovare tutti i problemi noti in fatto di sicurezza. Dalla difficoltà di garantire livelli minimi di protezione con Javascript a quella di realizzare sistemi intrinsecamente sicuri nella compilazione dinamica con JIT compiler, fino ad arrivare a garantire la corretta esecuzione del browser  contenuto  all’interno del modulo WebKit: ecco perché le piattaforme mobile non possono non trascurare gli aspetti legati alla sicurezza e definire, di conseguenza, una corretta impostazione dei livelli minimi. I sistemi embedded sono piattaforme di lavoro costituiti da un processore, …

Lavorazione CNC di materie plastiche

Attualmente nell'industria largamente intesa i dispositivi programmabili, caratterizzati da un'elevata ripetibilità e affidabilità, svolgono un ruolo di elevata importanza. Se si desidera eseguire un elemento di precisione (o una serie di tali elementi), ad esempio un profilo angolare o una boccola, sarà necessario non solo progettarlo con precisione, ma anche eseguirlo. Da qui l'elevata popolarità delle macchine utensili CNC (Computerized Numerical Control), che consentono un'esecuzione rapida e, soprattutto, a buon mercato di questi elementi. Che cos'è la lavorazione CNC Questo termine specifica tutte le operazioni relative alla lavorazione del materiale mediante dispositivi a controllo numerico, che comprendono principalmente fresatrici …

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 …