è 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.
Durante il normale funzionamento di un FPGA (se si è fortunati, quando ancora il dispositivo è in fase di test e debug) può capitare talvolta di trovarsi davanti ad un errore transitorio e sporadico che non è stato possibile catturare in fase di simulazione RTL del codice, per quanto bene si possa essere riusciti a riprodurre nell’ambiente di simulazione gli stimoli che consentono di osservarlo on-board. Errori di questa natura sono di norma associati ad una violazione di timing che è possibile individuare tramite una Static Timing Analysis oppure, nel caso in cui il design includa più di un …
GENERAZIONE PRECISA DI RITARDI CON AVR Ecco una utilissima libreria per AVR studio contenente una funzione di ritardo estremamente precisa. La funzione deve essere chiamata con _waste_us n dove n è un valore intero compreso tra i valori 1000000/F_CPU (F_CPU è una costante definita) e 25769803779/F dove F è la frequenza della CPU espressa in MHz. La macro genererà un ritardo compreso tra 1ms e 25769803779ms. La precisione è dell’ordine di 1/F [ms]. Per utilizzare il codice (riportato nel listato 1) è necessario selezionare il corretto valore di F_CPU (togliendo il relativo “;” che lo rende un commento), salvare il file …
I chip della Analog Devices serie ADuC7000 rappresentano un’ottima scelta per lo sviluppo di sistemi embedded mixed-signal. Dotati di un core ARM7®TDMI 32-bit RISC sono in grado di raggiungere velocità di campionamento fino a 1MSPS. La famiglia dei Microconverter della Analog Devices unisce al microcontrollore ed alla flash embedded, periferiche analogiche di elevata precisione, come i 12 ADC, i DAC, un riferimento di tensione a bandgap ed un sensore di temperatura. Essi si suddividono in due principali categorie, di cui una per applicazioni di basso e medio livello, l’altra destinata ad applicazioni professionali in cui si richiede maggiore velocità e di memoria. …
PIC: OTTIMIZZARE LA VELOCITÀ CON IL COMPILATORE HI-TECH C Ecco alcuni consigli su come ottimizzare la velocità di esecuzione del codice nella programmazione dei microcontrollori PIC: La fase di inizializzazione del PIC è piuttosto lunga in termini di tempo di esecuzione; per aumentare al massimo la velocità è consigliato inizializzare per primi i registri nel bank 0 quindi quelli nel bank 1 e così via; Ricordarsi che non tutte le variabili necessitano di essere inizializzare; Ove possibile riordinare gli operatori aritmetici in modo da minimizzare l’uso da parte del compilatore del registro W o di locazioni temporanee; Per evitare …
Pensiamo alle possibilità che il Cloud offre per i sistemi embedded. Che ne direste se fosse possibile sviluppare i sistemi embedded e IoT sfruttando il cloud anziché hardware locale? Oppure avvalersi di un sistema Cloud flessibile anziché di schede fisiche? Cosa significherebbe tutto questo per l'efficienza del vostro sviluppo? Utilizzare piattaforme virtuali implementate nel cloud spalanca le porte a nuove possibilità per qualunque sistema! Gli sviluppatori potrebbero scrivere codice, eseguire test, completare integrazioni e condividere sistemi e risultati all'interno di un laboratorio virtuale residente nel cloud. L'accesso a hardware e tool sarebbe istantaneo ed immediato, senza richiedere installazioni locali …
Le prove e le esercitazioni sul linguaggio C effettuate fino ad ora sono state svolte su uno schermo grezzo in bianco e nero. Le visualizzazioni si sono succedute sequenzialmente ed in modo discendente risultando, diciamolo pure, un po' brutte a vedersi. La lezione di oggi verte proprio su tale argomento. Vedremo come abbellire le nostre videate, dando loro un certo ordine di posizionamento. Impareremo anche a colorare l'output, a posizionare il cursore in qualunque posizione, a modificare gli attributi del video e a conferire all'intero schermo di console un aspetto graficamente più gradevole, restando tuttavia in modalità testuale. Tutto …
I sistemi C-Control si basano sulla serie dei microcontrollori Atmel (ora Microchip) Mega 32 e Mega 128, impiegati in varie applicazioni dall’elettronica di consumo fino alle macchine domestiche. C-Control Pro offre una tecnologia all'avanguardia per risolvere i problemi di automazione. Varie interfacce hardware e sistemi bus consentono il collegamento con sensori e attuatori. Uno dei punti di forza è la flessibilità nell’espansione con vari moduli presenti in commercio. La vasta gamma di accessori disponibili consente di perfezionare il sistema C-Control con numerose opzioni, in particolare il convertitore di interfaccia RS232/USB, il modulo di espansione e l'unità System Mega 32. …
Quanti di noi non hanno mai effettuato una ricerca sul proprio smartphone parlando al browser invece di digitarne l'argomento? Questo appena fatto, non è che un esempio dell'utilizzo quotidiano di una tecnologia oramai largamente diffusa che va sotto il nome di "speech recognition". Per chi si fosse chiesto quali artifici si nascondano dietro tale prodigio della tecnica, questo è l'articolo da leggere per scoprirlo. Nel prosieguo illustreremo al lettore i fondamenti della tecnologia conosciuta in italiano come "riconoscimento vocale", soffermandoci sugli aspetti maggiormente interessanti dal punto di vista scientifico. Il Problema del riconoscimento vocale Il riconoscimento vocale automatico, abbreviato …
Continuiamo ad approfondire molti aspetti fondamentali della programmazione. Con le spiegazioni di questa puntata sarete in grado di realizzare del software sempre più sofisticato, compatto ed efficiente. Anche in questo caso, i concetti studiati sono presenti anche in altri linguaggi di programmazione, con le opportune differenze. Ricordiamo sempre che quanto studiato, prepara la strada alla programmazione definitiva di sistemi che interagiscono con le porte di I/O, per poter comandare dispositivi elettrici ed elettronici. Introduzione Nella scorsa puntata si è visto come realizzare alcuni programmi dotati di "vita propria", capaci di prendere decisioni ed effettuare compiti ripetitivi. Questa volta tratteremo …
La Wearlab V0 è una scheda di sviluppo per dispositivi wearable derivata dalla demoboard Hexagon CPU Board XMC4200 Actuator CPU_42A-V1 di Infineon basata su microcontrollore ARM Cortex M4. Il sistema base è stato ampliato con alcune periferiche specifiche per sviluppare applicazioni indossabili. Sono stati quindi inseriti un RTC, un MEMS a 3 assi ultra low power, ed un sensore di pressione, umidità e temperatura. Inoltre è stato inserito un modulo bluetooth (BLE) per comunicare direttamente con lo smartphone nel tipico utilizzo di questo tipo di applicazioni (dispositivo indossabile che acquisisce e trasmette i dati e l'app dello smartphone che …
Il pulsiossimetro (o pulsossimetro o ossimetro) è un’apparecchiatura non invasiva che permette di stimare la quantità di emoglobina legata al sangue di un paziente. Il principio di funzionamento si basa sulla tecnologia sviluppata da una società giapponese che consiste in un fascio di luce nel rosso/infrarosso che penetra nella cute e a seconda dell’assorbimento si riesce a stimare la quantità di emoglobina. In generale, lo strumento permette di visualizzare la saturazione, la frequenza cardiaca e l'intensità della pulsazione, modelli più sofisticati permettono anche di visualizzare l’andamento della pulsazione (curva pletismografica) e registrare gli eventi su schede SD o memorie …
Il linguaggio C è di gran lunga usato nella programmazione dei sistemi embedded ed esistono numerosi volumi che ne illustrano la semantica e la sintassi. Molto più raro è invece trovare una trattazione che illustri le regole principali sull’ottimizzazione degli algoritmi in modo da rendere il codice molto più veloce e compatto. Ecco una breve raccolta di suggerimenti pratici per AVR usando il compilatore AVR-GCC. Introduzione Il C è un linguaggio di alto livello il che significa che non è riferito ad un particolare hardware quindi il programmatore non deve accedere alle risorse del microcontrollore come i registri interni, lo stack ecc… Questo, …
L’algoritmo TEA è stato sviluppato da David Wheeler e Roger Needham al Computer Laboratory dell’Università di Cambridge ed è uno dei più veloci ed efficienti algoritmi di crittografia dati esistenti. TEA: un semplice ma efficace algoritmo di Encryption Implementato su un PIC16F877 a 8MHz, un ciclo di cifratura/decifratura avviene in 32 iterazioni in poco più di 10ms. Le risorse occupate sono 946 byte di ROM e 33 Byte di RAM. Su un PIC18F452 a 32MHz il tempo necessario scende sotto i 2ms con un’occupazione di 1548 byte di ROM e 37 byte di RAM. Nel listato 3 le funzioni per l’implementazione dell’algoritmo. Il codice …
CuBox è una serie di mini-computer di forma cubica ideata dalla SolidRun, con varie versioni ma tutti con una impostazione hardware base e dimensioni di 5 cm di lato. L’hardware base prevede un’architettura i.MX6 Single, Dual o Quad core basata su un Cortex-A9 1 GHz con RAM da un minimo di 512 MB fino a 4GB. Supporta varie distribuzioni Linux (Ubuntu, Fedora, Arc Linux, Gentoo) e il sistema operativo Android Jelly Bean. E’ dotata di varie porte di comunicazione, dalla HDMI alla Gigabit Ethernet passando per due USB 2.0 e un ricevitore IR. Le connettività Wi-Fi e bluetooth sono …
Lo scopo di questo articolo per raccontare l'elettronica a chi non la conosce. Tra studenti, appassionati e tanti altri, esiste la necessità di condividere esperienze ma anche e soprattutto di indirizzare verso il meglio. State cominciando con l'elettronica non sapete come procedere? Vi piacerebbe realizzare un sistema complesso ma siete ancora in certi suoi primi passi? In questo articolo vediamo alcune schede che sicuramente potranno aiutarvi, tutto l'inizio, tra caratteristiche e motivi per cui scegliere l'uno o l'altra. Siete pronti?
La chiavetta Renkforce Jak abilita il collegamento di Smartphone e Tablet con l’autoradio, TV e altri dispositivi stereo USB enabled. Nella modalità autoradio viene gestita in maniera totale la playlist desiderata, il tutto attraverso la porta USB in dotazione. Il collegamento in modalità Wireless permette al guidatore di viaggiare tranquillamente ed avere un pieno controllo digitale del proprio smartphone in totale sicurezza. Il dispositivo accetta un massimo di 20 collegamenti simultanei e sfrutta la tecnologia Wi-Fi per trasmettere i file musicali/video al dispositivo collegato, offrendo nello stesso tempo un'ottima qualità a differenza della classica connessione bluetooth. Requisiti minimi di …
Poiché i prezzi dell'energia sono aumentati nel corso degli ultimi decenni, il risparmio energetico è diventato un problema sempre più preoccupante. Il riscaldamento (e raffreddamento) è spesso il più grande contributore al consumo di energia in ambienti commerciali e residenziali. Per questo motivo molti sforzi di conservazione si concentrano sull'aggiunta d’isolamento e di tenuta a perdite di aria in vecchi edifici, e la sponsorizzazione di campagne di informazione per ricordare ai clienti l’utilità di impostare i loro termostati in maniera adeguata. Gli impianti di riscaldamento a radiatori (termosifoni) rappresentano una soluzione tecnica affermata per fornire calore, riscaldando e facendo …
AVR Studio® 4 è una passata versione, ma ancora molto diffusa, dell’ ambiente di sviluppo integrato di Atmel dedicato alla stesura e al debug software di applicazioni per microcontrollori della serie Atmel AVR® nei sistemi operativi Windows® 98/XP/ME/2000. L’architettura modulare di AVR Studio® 4 permette di utilizzare la medesima interfaccia grafica sia per la Simulazione che per l’Emulazione, semplificando di molto il processo di sviluppo e, in definitiva, permettendo al progettista di contenere considerevolmente il time-to-market. INTRODUZIONE L’interfaccia utente è stata studiata al fine di semplificarne l’utilizzo e per fornire nel contempo una completa panoramica informativa. L’ambiente contiene una sezione …
Questo progetto utilizza un economico encoder incrementale per immettere dati numerici su un sistema a microcontrollore, un’alternativa molto compatta ed economica rispetto ai tastierini. Dopo una breve introduzione sul principio di funzionamento degli encoder assoluti e incrementali e loro caratteristiche, ci si sofferma sull’economico encoder elettromeccanico e il suo uso, non tanto come sensore angolare, ma come mezzo d’immissione di dati. Nel programma d’esempio è anche usato il comodo pulsante incorporato per rendere ancora più veloce l’immissione di numerose cifre. Introduzione Dopo aver illustrato i risultati di alcune prove di laboratorio, si passano in rassegna le varie tecniche hardware/software per …
È uscito il nuovo numero di Firmware! Scopriamo insieme gli articoli di questo mese: innanzitutto la copertina è dedicata alla software substitution. Abbiamo poi scoperto come implementare un convertitore time-to-digital in un contatore dell’acqua ad ultrasuoni e cos’è un servomotore. Ci siamo soffermati sulla realizzazione di un Dongle USB IEEE 802.15.4; abbiamo fornito una panoramica sul power design con dispositivi DC-DC Digital; discusso di caricabatterie wireless e dei relativi standards e svelato come rilevare il tono audio con uno PSoC. Buona lettura! La copertina di Firmware n.121 Il sommario di Firmware n.121 Software Substitution: punto di rottura? …