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.

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 …

Beacons: dalla teoria alle applicazioni

Ormai quasi tutti hanno preso confidenza con l'acquisto online, grazie anche all'incremento della fiducia e della sicurezza con i pagamenti online grazie a colossi dell'e-commerce. Ciò di fatto ha ridotto gli introiti dei negozi fisici, che purtroppo devono ricorrere al riparo pensando a nuove soluzioni e tecniche. La differenza sostanziale tra un negozio fisico e un e-commerce sta nella tipologia di interazione che in gergo viene detta customer-experience. In un negozio, il commesso o l'operatore deve essere in grado di soddisfare le esigenze del cliente, ma la difficoltà più grande è come attirare un nuovo cliente. In genere ad …

Corso C su Raspberry PI partendo da zero: scrivere le proprie funzioni

Le possibilità offerte dal linguaggio C sono infinite, soprattutto quando c'è da gestire, in modo ordinato e preciso, i propri algoritmi. Scrivere una propria funzione, e riutilizzarla, è una prerogativa di quasi tutti i linguaggi di programmazione, ma il C lo fa in modo esemplare. L'articolo che segue affronta il tema con estrema chiarezza, approfondendo anche l'argomento del passaggio e del ritorno dei parametri e dei valori. Introduzione Il mio primo linguaggio di programmazione fu il Basic per lo ZX81 Sinclair, uno dei primi Home Computer. La sua memoria era estremamente limitata, solo 1Kb di Ram (avete letto bene, …

Firmware n. 128 con LoRa, display HMI, oscilloscopi digitali, MEMS e molto altro!

È uscito il nuovo numero di Firmware! Scopriamo insieme gli articoli di questo mese: innanzitutto la copertina è dedicata LoRa, la nuova tecnologia wireless. Abbiamo poi proseguito con: alimentazione per i dispositivi wireless remoti; come arricchire i progetti embedded con display HMI; il design con gli oscilloscopi digitali; i giroscopi MEMS nei sistemi di controllo feedback; la certificazione in Safety dei sistemi avionici sulle architetture di processori multi-core; Voltage Reference nel sensing dei processi industriali di controllo. Buona lettura! La copertina di Firmware n. 128   Il sommario di Firmware n. 128   LoRa: una Wide Area Network per …

Come arricchire i progetti embedded con display HMI

Le modalità con cui gli utenti accedono e utilizzano i dati in formato grafico sono in continua evoluzione. Il display più adatto al vostro particolare progetto e il chipset che è necessario implementare dipendono dai requisiti tecnici del vostro prodotto e dalle aspettative del mercato relative al vostro segmento/target. Nell’era attuale, caratterizzata dalla presenza di dispositivi elettronici sempre più sofisticati e intelligenti, i sistemi embedded hanno realmente bisogno di un display digitale ? E se sì, di che tipo? Analizziamo alcuni degli aspetti che stanno alla base di queste domande che probabilmente sorgono spontanee nella mente di ogni progettista …

Corso di programmazione Python su Flip&Click: Introduzione

Inizia oggi una serie di articoli dedicati alla programmazione ed allo sviluppo nonché alla prototipazione rapida. Solo che questa volta non parliamo del "solito" Arduino ma di qualcosa che gravita nella sua orbita, ovvero di una scheda di prototipazione rapida che prende il nome di Flip & Click, e di un linguaggio di programmazione che si dimostra assolutamente versatile e facilmente utilizzabile su diverse piattaforme; stiamo parlando di Python. Abbiamo un'agenda piuttosto fitta per questo corso per cui prima di tutto vogliamo parlarvi di quali saranno gli argomenti che tratteremo. Introduzione Python è un linguaggio di programmazione che si …

Gesti, touch, voce, come interagiremo con la tecnologia?

Le interfacce uomo-macchina ci permettono di comunicare in maniera semplice ed elegante con la tecnologia. Attualmente ci stiamo affacciando verso ulteriori interfacce di gesture recognition o riconoscimento gesti, touch e riconoscimento vocale, che cambieranno totalmente il nostro modo di interagire con la tecnologia. Intelligenza artificiale e computer a 5 sensi contribuiranno ad un deciso passo per migliorare la tecnologia del prossimo futuro, forse non troppo lontano. I nuovi dispositivi indossabili e smartwatch dovranno far affidamento inevitabilmente a nuove soluzioni di interfacce, evitando qualsiasi contatto fisico con il dispositivo. Queste dovranno migliorare non solo l'interazione con la tecnologia, ma fornire …

Corso C su Raspberry PI partendo da zero: Ottimizzazione

Con il termine ottimizzazione ci riferiamo a tutte le tecniche di miglioramento di un programma, sotto diversi aspetti: ottimizzazione del codice, di velocità, di spazio occupato in memoria, eccetera. L'articolo tratta, in maniera semplice ed esaustiva, dei metodi per rendere il proprio programma più performante ed affidabile, secondo le diverse esigenze del programmatore e, soprattutto, dell'utente che lo deve utilizzare. Introduzione Un programma, come abbiamo anche visto nelle puntate precedenti, può essere scritto ed organizzato in tantissimi modi diversi. Non esiste una soluzione migliore in assoluto ma ci sono, sicuramente, dei casi in cui il software risulta funzionante, ma …

L’hardware per il riconoscimento vocale embedded

Il chip RSC-4128, prodotto molti anni fa dalla Sensory, è un microcontrollore  ad 8 bit dotato  di ADC, DAC, preamplificatore  microfonico, RAM, ROM, 24 GPIO (General Purpose Input Output) e 4 timer. Il chip implementa (tramite un apposito firmware precaricato, il FluentChipTM) algoritmi basati su reti neurali e DTW per consentire il riconoscimento vocale Speaker Independent (SI) e Speaker Dependent (SD), anche in ambienti fortemente rumorosi. INTRODUZIONE Il chip RSC-4128 è basato su un core con istruzioni a lunghezza variabile (e comunque non superiori ai 3 byte), il cui set di istruzioni risulta molto simile a quello dell’8051. Il micro …

Send this to a friend