Corso C su Raspberry PI partendo da zero: introduzione

Inizia con questo articolo una lunga serie di puntate, dedicate alla programmazione del Raspberry PI con il linguaggio C. Si tratta, a tutti gli effetti, di un corso completo, pensato e dedicato, soprattutto, ai principianti e ai neofiti. Semplici lezioni, esempi e tanto altro chiariranno perfettamente le idee ed illustreranno, in maniera estremamente semplice e chiara, i fondamenti della programmazione, abbinata agli utilizzi pratici dei sistemi embedded. Si consiglia vivamente di seguire cronologicamente le lezioni che seguiranno, senza fretta e impazienza nel terminare subito il corso, ma con la consapevolezza di maturare i concetti gradatamente nel tempo.

Introduzione

La tecnologia e l'elettronica hanno seguito continui progressi. Inizialmente esistevano due sole figure professionali legate ad esse, dedicate allo sviluppo dei sistemi e delle automazioni:

  • Una figura di progettista elettronico, con mansioni di creatore dei prototipi;
  • Una figura di programmatore informatico, con mansioni di ideatore di software.

Le due figure erano diametralmente opposte e senza alcun legame tra loro. Le esigenze del mercato e, soprattutto, quelle dei sistemi, hanno portato gradatamente alla fusione e all'integrazione delle due figure. Ai giorni d'oggi non si può progettare un sistema elettronico senza conoscere la programmazione algoritmica. L'elettronica moderna è basata interamente su dispositivi intelligenti e programmabili. A questo grandioso risultato si è arrivati nel corso di vari decenni di ricerca e sviluppo.

Le esigenze delle porte di I/O

Dalla comparsa dell'elettronica digitale, le porte logiche di comunicazione hanno avuto un'importanza enorme. Anche questo aspetto ha dovuto transitare negli anni, adattandosi a ciò che la tecnologia offriva. Possiamo dire che ci sono stati quattro momenti differenti, in cui le porte di comunicazione (I/O) hanno subito un diverso trattamento, secondo diversi metodi di utilizzo.

Primo periodo: porte logiche non intelligenti

Nel primo periodo (dal 1950 circa in poi) le porte logiche erano pilotate esclusivamente da altre porte logiche o da componenti discreti. Le scelte decisionali dei comportamenti dei vari sistemi erano effettuate elettronicamente e, in pratica, l'intero circuito elettronico sovrintendeva a tutto. Non esistevano firmware e nemmeno sistemi operativi che comunicavano con la circuiteria. Se occorreva cambiare il comportamento del prototipo, anche di poco, si doveva modificare l'intero schema elettrico o alcuni valori dei componenti utilizzati. Inoltre erano richiesti numerosissimi componenti elettronici, anche per semplici applicazioni (Figura 1).

periodo01

Figura 1: Circuito elettronico con diversi IC come porte logiche

Secondo periodo: computer con porte adattate

Dal 1980 in poi, i computer erano dotati di alcune porte logiche che avevano scopi esclusivi. Ad esempio, esse potevano azionare e scambiare dati con stampanti, scanner, modem, ecc. Ma non esistevano vere e proprie porte dedicate alle applicazioni personalizzate. Ad esempio, un PC non poteva essere collegato direttamente ad una lampada esterna per venir comandata a piacimento tramite un software. Si potevano utilizzare le suddette porte, adattandole eccezionalmente ai propri scopi, per poter raggiungere il risultato (chi ricorda come si pilotava con il GW-Basic la porta parallela 0D888 (ox378) alla quale c'era un diodo Led collegato?). Tutto ciò causava alcuni svantaggi:

  1. Il numero di I/O era estremamente limitato;
  2. Un problema al carico (o un suo corto circuito) avrebbe causato irrimediabilmente la distruzione della scheda madre del PC.

In ogni caso, anche con i PC obsoleti,  si riusciva a realizzare dei piccoli sistemi di "domotica" capaci di pilotare le periferiche più disparate.

Terzo periodo: porte logiche intelligenti

Con l'alta integrazione dei circuiti, dal 1990 in poi le aziende sono riuscite a produrre dispositivi programmabili, con tanto di RAM e CPU. Parliamo dei microcontrollori (MCU), piccoli circuiti integrati dotati di tutta la logica di controllo. Con gli MCU l'utente non solo aveva a disposizione tante porte di I/O, ma poteva deciderne il funzionamento, semplicemente modificando il firmware in esso contenuto (Figura 2).

periodo03

Figura 2: Microcontrollore PIC16F677A

Quarto periodo: i sistemi Embedded

E finalmente, ai nostri giorni, si affacciano i sistemi embedded: veri e propri computer, di dimensioni estremamente ridotte, dotati di un Sistema Operativo, di una memoria molto grande (sia volatile che non), di periferiche di Input e di Output ma, soprattutto, di tante porte logiche elettriche di I/O, dedicate all'utilizzo personalizzato. Ognuna di queste porte può venir pilotata da un programma scritto ad-hoc e può comandare un Led, un display o un carico maggiore, attraverso opportuni transistor o relè (Figura 3).

periodo04

Figura 3: Esempio di scheda Raspberry collegata ad un LED

Chissà cosa ci riserva il futuro: sicuramente dispositivi fantascientifici, comandati direttamente dal cervello o altre diavolerie simili. Al momento gustiamoci questo interessantissimo corso, sicuri di far piacere a tutti gli hobbisti, principianti e, perché no, ai tecnici più esperti ed esigenti.

Panoramica generale sul Raspberry Pi

Non sprecheremo pagine e pagine di trattazione sulla teoria del Raspberry Pi e sulle sue caratteristiche tecniche, la Rete ne è colma. Ovviamente qualche piccola delucidazione è d'obbligo, semplicemente per non costringere il lettore a cercare altrove alcune informazioni tecniche. Il Raspberry Pi è un computer a tutti gli effetti. Quando uscì sul mercato il primo modello era praticamente impossibile entrarne in possesso [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2273 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.

Scarica subito una copia gratis

30 Commenti

  1. Maurizio 5 Gennaio 2016
    • Giuseppe Silano 5 Gennaio 2016
  2. ThiTamTan 5 Gennaio 2016
  3. fabio.stranieri.1 5 Gennaio 2016
    • Emanuele 6 Gennaio 2016
  4. Ik4mec 5 Gennaio 2016
  5. Fabrizio Bianchini 6 Gennaio 2016
  6. L0cutus 6 Gennaio 2016
  7. Giovanni Di Maria 7 Gennaio 2016
  8. alessandro.riva27 7 Gennaio 2016
    • Maurizio 7 Gennaio 2016
    • Maurizio 9 Gennaio 2016
  9. AndreaBrozzetti 10 Gennaio 2016
  10. taddeus 17 Gennaio 2016
  11. arx 19 Gennaio 2016
  12. Massimo Spiezia 25 Gennaio 2016
  13. William 30 Gennaio 2016
  14. fabrizio1966 2 Febbraio 2016
  15. fabrimor 2 Febbraio 2016
  16. adriano51it 7 Febbraio 2016
  17. William 8 Febbraio 2016
  18. William 8 Febbraio 2016
  19. adriano51it 8 Febbraio 2016
  20. elettrone800 3 Maggio 2016
  21. Andrea1965 5 Settembre 2019
    • Giovanni Di Maria 8 Settembre 2019
      • Andrea1965 8 Settembre 2019
        • Giovanni Di Maria 9 Settembre 2019

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend