Siamo ormai arrivati alla lezione 14 e mi piace in questa fase proporvi più che un tutorial, un percorso basato sulla sperimentazione, sull’errore  e (anche a rischio di rompere Raspberry…ma meglio di no), sull’elettronica !

Ho acquistato da tempo dei motori Dc , per intenderci sono quei motorini presenti nelle macchinine giocattolo, e che di solito si azionano con una batteria da 9V e vengono utilizzati per attività anche alla primaria quali Scarabot o robot morbidi ( http://www.lafucinadellescienze.it/wordpress/archives/3469 ) .

Già solo la fisica di un motore siffatto (si chiama DC motor in inglese) meriterebbe un articolo a se stante, ma qui invece vogliamo imparare ad azionarlo e vogliamo farlo con Scratch e Raspberry, magari anche regolando la frequenza di rotazione (una volta azionato un motore si possono fare tante cose, non solo ventilatori,.. .).

 

Armiamoci di pazienza e leggiamo cosa dicono le caratteristiche del mio motorino (o di altri simili): tensione di funzionamento da 1.5 a 9V, e fin qui ci siamo!

Un gpio eroga 3.3 V , lo collego ad un morsetto …quindi potrebbe funzionare subito

metto l’altro morsetto a massa e…..e pongo quel GPIO alto…in pratica è come se accendessi e spegnessi un led…ma…ma….

 

non accade nulla!!!

 

il problema sta nella corrente: non è che è troppo bassa per far muovere il motorino?

Cerchiamo di capire quanta corrente viene erogata da un pin/Gpio di Raspberry…

Anche qui ci viene in aiuto internet: la corrente massima sul GPIO è di 50mA

Provo a misurarla con un tester , ponendo un pin alto e rilevo correnti intorno ai 40/50 mA.

Bene! ecco perchè il motorino non va: dalle caratteristiche scopro che può funzionare con correnti da 0.5 Ampere a max 2 Ampere.

In pratica non ho sufficiente potenza (corrente bassa anche se la tensione è ok, la potenza lega corrente e tensione erogata nel tempo) .

Leggo che il pin da 5Volt può erogare al massimo 750mA e così attacco un polo direttamente lì (l’altro sul ground)..

scintille e luce…la batteria soffre un poco, ma tutto funziona, ma non è una buona scelta perché sul Pin da 5V non posso agire con alcuna programmazione.

 

Resta allora il problema: come faccio ad amplificare la mia corrente sul pin? o meglio vorrei che sul pin non andasse più di 50mA ,ma dentro il motorino almeno 1 Ampere sì…

Qui ci viene incontro l’elettronica ed un oggetto che è valso il premio Nobel ai suoi creatori. Questo oggetto, un componente elettronico, si chiama TRANSISTOR (http://aulascienze.scuola.zanichelli.it/ieri-oggi-scienza/la-banalita-del-genio-john-bardeen-e-la-scoperta-del-transistor/ ) .

Un transistor è assimilabile ad una coppia di led consecutivi (ma se usate due led non creerete un transistor!) che hanno un piedino in comune.

Non sto a dilungarmi sul suo funzionamento (qui trovate delle spiegazioni molto belle e chiare  http://digilander.libero.it/nick47/trns.htm

http://www.progettiarduino.com/transistor-cosa-sono-e-come-funzionano.html

) quello che mi interessa è che esso oltre ad essere usato come interruttore, oltre ad essere fondamentale per la realizzazione di porte logiche, è sostanzialmente un amplificatore di corrente. In pratica la corrente passa dal primo “led” giunture del transistor e poi risulta amplificata.nel secondo passaggio: è come se si verificasse una somma di calci al pallone .

Ma perchè usare un transistor se in rete trovo dei dispositivi che si attaccano a Raspberry (e simili anche per Arduino, si chiamano driver motor) che fanno il lavoro che mi serve?

Perchè dentro questi oggetti misteriosi e già pronti vi sono dei transistor, perchè mi piace dare ai miei studenti non scatole nere e inaccessibili, ma piuttosto trasparenti anche se fai da te!

 

Cosa serve?

Un transistor PN2222

una resistenza da 1kOhm

Un motore Dc

Un raspberry

e cavi M/F

Ecco lo schema elettrico:

Potete decidere voi di porre il Pin dove volete, ma sappiate che una resistenza alta farà diminuire la corrente dentro il motorino (il fattore di amplificazione detto beta è circa 1000).

Sto cercando di non complicare troppo la cosa, ma se volete proporre questa attività ai vostri studenti, allora non potete non spiegare il funzionamento base di un transistor, che resta una grande conquista dell’elettronica e non solo!

Programmare con Scratch non è complesso, in sostanza si tratta di configurare il pin come PWM , come facemmo per la regolazione di intensità luminosa di un led RGB nelle prime lezioni.

Ecco il codice (ho messo tutto su GPIO2, ovvero Pin 3):

 

 

Cosa farci con un motorino del genere?

sicuramente tante cose, dai moti circolari, a ingranaggi meccanici e robot che si muovono…

uhm.. robot…

ma allora devo trovare un sistema per cambiare il verso di rotazione del motorino!

COme fare?

Questa può essere una bella sfida per noi: la cosa più semplice è pensare ad un meccanismo che mette ciò che è sul ground come alto e ciò che è sul pin come basso…

Ho provato allora a usare 2 pin , ovvero ponendo il GND su un pin a piacere e cambiare le intensità…

provate, ma attenti alle correnti sui pin……e usate le resistenze…

Il problema è stato risolto con quello che si chiama Hbridge…è qualcosa di complicato ma non troppo. Se siete curiosi ecco il link .

Pilotare un motore DC tramite ponte ad H

Al prossima lezione!

 

 

Vai alla barra degli strumenti