è 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.
Microchip Technology offre due nuove soluzioni in ambito dello sviluppo di programmi con l’obiettivo di ridurre il time-to-market. La piattaforma MPLAB Xpress cloud-based è il modo più semplice per iniziare con i microcontrollori PIC senza requisiti di download particolari. Offre un set di funzionalità che comprende una libreria di codici, interfaccia per MPLAB Code Configurator (MCC) 3.0 e la generazione automatica del codice, il supporto per il debugger e 10 GB di storage online sicuro con un account myMicrochip. Inoltre, la Community MPLAB Xpress consente agli sviluppatori di condividere il loro codice, idee e conoscenze progettuali. Una vasta libreria …
Gli smartwatch stanno diventando sempre più popolari, grazie al loro prezzo sempre più abbordabile e alla disponibilità di API semplici e complete per gli sviluppatori. Inoltre, sono molto semplici e comodi da utilizzare nella vita di ogni giorno. Con un Raspberry Pi e uno smartwatch Pebble è possibile realizzare un progetto che permette l'apertura a distanza delle porte, in modo semplice e comodo. Introduzione Qualche tempo fa è stato pubblicato il progetto Open Sesame il cui scopo era quello di controllare l'apertura delle porte tramite uno smartphone. In questo nuovo progetto, l'autore propone un'applicazione analoga, ma questa volta basata sull'impiego di un …
Dopo aver studiato le modalità per il controllo del video, in questo articolo affrontiamo un argomento che dà tanto timore ai principianti. Parliamo dei puntatori, utilizzati con molta frequenza nei programmi più efficienti e veloci. Come vedremo, le paure a questa tipologia di dati saranno infondate e, approcciandole nel modo corretto, consentiranno di realizzare dei software estremamente efficaci. Il segreto per una loro buona comprensione è quello di procedere con estrema cautela e molta calma, e proseguire con gli approfondimenti solo quando si è compreso alla perfezione il tassello precedente. Introduzione Benché il linguaggio C permetta, in teoria, di …
La sfida dell’elettronica è quella di massimizzare il risparmio energetico senza compromettere le prestazioni del sistema o di un IC quale un ADC, FPGA e così via. I progettisti possono scegliere il funzionamento a batteria e nello stesso tempo ridurre il fattore di forma con la necessità di trovare delle modalità al fine di ridurre il calore. Nell’ambito di un sistema di acquisizione high speed, una possibilità per ridurre il consumo energetico è quella di ottimizzare l'alimentazione per il convertitore di dati. I recenti progressi nella progettazione e la relativa tecnologia di processo, hanno permesso agli ADC di essere …
Il "digital signage" (segnaletica digitale) è una forma di comunicazione che sta trovando spazio in molti ambiti commerciali grazie anche all'evoluzione tecnologica attraverso monitor e display. Le ricerche di vari analisti segnano un deciso trend positivo, dimostrando il forte interesse per una progressiva diffusione di questi nuovi sistemi di comunicazione ed intrattenimento. Gli aspetti che evidenziano il principale interesse sono la facilità e flessibilità di programmazione, attraverso l'utilizzo di schermi LCD ed ePaper di varie dimensioni. La semplicità è la chiave del futuro del digital signage. L'interattività è senza dubbio l'aspetto più intrigante nelle forme di comunicazione, ed è …
L’INSTALLAZIONE DEL COMPILATORE GNU GCC PER AVR Cosa serve: Per installare la piattaforma di sviluppo completa GCC-AVR sono necessari i seguenti componenti: GCC: la Gnu Compile Collection, configurata e compilata per utilizzare gli AVR come target. La suite è ottenibile da http://gcc.gnu.org. BinUtils: il pacchetto BinUtils è disponibile su http://www.gnu.org/directory/binutils.html. Il pacchetto deve avere l’opzione AVR abilitata. AVR LibC: sono le librerie C necessarie per la compilazione per AVR. Sono disponibili su http://www.nongnu.org/avr-libc/. Infine è necessario un programmatore per scaricare il programma compilato nella memoria del micro. Pacchetti di installazione: Se si è in possesso di una distribuzione in …
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 …