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.

Tecniche di Generazione di Numeri Casuali

I recenti dispositivi utilizzati nel campo dell’elettronica embedded offrono capacità di elaborazione e risorse sempre maggiori, a prezzi sempre più bassi. Questo rende possibile eseguire calcoli ed algoritmi  notevolmente complessi, in molti casi impensabili fino a poco tempo fa. Però a fronte di queste capacità esiste un compito che risulta ancora piuttosto difficile da implementare in maniera ottimale: la generazione di numeri casuali di buona qualità. La generazione di numeri casuali è un argomento spesso trascurato e poco conosciuto, ma di grande importanza pratica. In questo articolo verranno presentate alcune delle più comuni tecniche per la generazione di numeri casuali, che …

Firmware n. 129 – Speciale Aerospace & Defence

È uscito il nuovo numero di Firmware! Scopriamo insieme gli articoli di questo mese: innanzitutto il focus è dedicato alle innovazioni nel settore Aerospace & Defence. Ecco gli articoli che troverete al suo interno: la tecnologia delle Microonde nell’Ingegneria Aerospaziale; le misure dei segnali radar con il Vector Signal Analyzers e strumenti a larga banda; i test nei sistemi Radar; considerazioni progettuali sull’ESD nel design di circuiti elettronici; la simulazione in tempo reale per lo sviluppo di sistemi embedded; control loop design per l’ottimizzazione delle batterie agli ioni di litio; Beacons. Buona lettura! La copertina di Firmware n. 129 …

DOXYGEN: generazione automatica della documentazione

Doxygen è uno strumento per la generazione automatica della documentazione. Chi si occupa di programmazione sa che, oltre a produrre un programma secondo le specifiche del cliente, occorre anche documentare il proprio lavoro e questo ha un peso rilevante: chi, poi, ha utilizzato Java nella  stesura del  codice  ha  certamente utilizzato JavaDoc. Per fare questo lavoro Doxygen introduce il concetto di TAG, particolari commenti inseriti nel codice sorgente: il linguaggio può essere C o anche C++, mentre il file che si ottiene in uscita può arrivare fino ad un vero e proprio manuale in html e in pdf. INTRODUZIONE Questo tool  estrae …

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 …

Send this to a friend