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

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend