Raspberry Pi è una scheda basata su processore con architettura ARM progettata per ingegneri elettronici e hobbisti. Il PI è una delle piattaforme di sviluppo di progetti più affidabili attualmente disponibili. Con una maggiore velocità del processore e 1 GB di RAM, il PI può essere utilizzato per molti progetti di alto profilo come l'elaborazione delle immagini e Internet of Things.
Per fare uno qualsiasi dei progetti di alto profilo, è necessario comprendere le funzioni di base di PI. Tratteremo tutte le funzionalità di base di Raspberry Pi in questi tutorial. In ogni tutorial discuteremo una delle funzioni di PI. Entro la fine di questa serie di tutorial Raspberry Pi, sarai in grado di realizzare progetti di alto profilo da solo. Segui i tutorial seguenti:
- Guida introduttiva a Raspberry Pi
- Configurazione Raspberry Pi
- LED lampeggiante
- Interfaccia pulsante Raspberry Pi
- Generazione PWM Raspberry Pi
- Controllo del motore CC utilizzando Raspberry Pi
In questo tutorial, controlleremo la velocità di un motore passo-passo utilizzando Raspberry Pi. In Stepper Motor, come dice il nome stesso, la rotazione dell'albero è in forma Step. Esistono diversi tipi di motore passo-passo; qui useremo il più popolare che è il motore passo-passo unipolare. A differenza del motore CC, possiamo ruotare il motore passo-passo a qualsiasi angolo particolare dandogli istruzioni adeguate.
Per ruotare questo motore passo-passo a quattro fasi, forniremo impulsi di potenza utilizzando il circuito del driver del motore passo-passo. Il circuito di pilotaggio accetta trigger logici da PI. Se controlliamo i trigger logici, controlliamo gli impulsi di potenza e quindi la velocità del motore passo-passo.
Ci sono 40 pin di uscita GPIO in Raspberry Pi 2. Ma su 40, è possibile programmare solo 26 pin GPIO (da GPIO2 a GPIO27). Alcuni di questi pin svolgono alcune funzioni speciali. Con GPIO speciale messo da parte, ci rimangono solo 17 GPIO. Ciascuno di questi 17 pin GPIO può fornire una corrente massima di 15 mA. E la somma delle correnti da tutti i pin GPIO non può superare i 50 mA. Per saperne di più sui pin GPIO, segui: LED lampeggiante con Raspberry Pi
Ci sono + 5V (Pin 2 e 4) e + 3.3V (Pin 1 e 17) pin di uscita di potenza sulla scheda per collegare altri moduli e sensori. Questi binari di alimentazione non possono essere utilizzati per azionare il motore passo-passo, perché abbiamo bisogno di più potenza per ruotarlo. Quindi dobbiamo fornire la potenza al motore passo-passo da un'altra fonte di alimentazione. Il mio motore passo-passo ha una tensione nominale di 9 V, quindi utilizzo una batteria da 9 V come seconda fonte di alimentazione. Cerca il numero di modello del tuo motore passo-passo per conoscere la tensione nominale. A seconda della valutazione, scegliere la fonte secondaria in modo appropriato.
Come affermato in precedenza, abbiamo bisogno di un circuito di pilotaggio per azionare il motore passo-passo. Progetteremo anche un circuito di pilotaggio a transistor semplice qui.
Componenti richiesti:
Qui stiamo usando Raspberry Pi 2 Model B con Raspbian Jessie OS. Tutti i requisiti hardware e software di base sono stati discussi in precedenza, puoi cercarli nell'introduzione di Raspberry Pi, oltre a quello di cui abbiamo bisogno:
- Perni di collegamento
- Resistenza da 220Ω o 1KΩ (3)
- Motore passo-passo
- Bottoni (2)
- Transistor 2N2222 (4)
- Diodo 1N4007 (4)
- Condensatore: 1000uF
- Tagliere per il pane
Spiegazione del circuito:
Il motore passo-passo utilizza 200 passi per completare la rotazione di 360 gradi, significa che ruota di 1,8 gradi per passo. Poiché stiamo guidando un motore passo-passo a quattro stadi, dobbiamo dare quattro impulsi per completare un singolo ciclo logico. Ogni passo di questo motore completa 1,8 gradi di rotazione, quindi per completare un ciclo abbiamo bisogno di 200 impulsi. Quindi 200/4 = 50 cicli logici necessari per completare una singola rotazione. Controlla questo per saperne di più sui motori passo-passo e le sue modalità di guida.
Piloteremo ciascuna di queste quattro bobine da un transistor NPN (2N2222), questo transistor NPN prende l'impulso logico dal PI e pilota la bobina corrispondente. Quattro transistor stanno prendendo quattro logiche da PI per pilotare quattro stadi del motore passo-passo.
Il circuito del driver del transistor è una configurazione complicata; qui dobbiamo fare attenzione che un collegamento errato del transistor potrebbe caricare pesantemente la scheda e danneggiarla. Controllare questo per comprendere correttamente il circuito del driver del motore passo-passo.
Il motore è un'induzione e quindi durante la commutazione del motore, si verificano picchi induttivi. Questo picco riscalda pesantemente il transistor, quindi utilizzeremo Diode (1N4007) per fornire protezione al transistor contro il picco induttivo.
Per ridurre le fluttuazioni di tensione, collegheremo un condensatore da 1000uF all'alimentatore come mostrato nello schema del circuito.
Spiegazione di lavoro:
Una volta che tutto è collegato come da schema elettrico, possiamo accendere il PI per scrivere il programma in PYHTON.
Parleremo di alcuni comandi che useremo nel programma PYHTON, Stiamo per importare il file GPIO dalla libreria, la funzione sottostante ci consente di programmare i pin GPIO di PI. Stiamo anche rinominando "GPIO" in "IO", quindi nel programma ogni volta che vogliamo fare riferimento ai pin GPIO useremo la parola "IO".
importa RPi.GPIO come IO
A volte, quando i pin GPIO, che stiamo cercando di utilizzare, potrebbero svolgere altre funzioni. In tal caso, riceveremo avvisi durante l'esecuzione del programma. Il comando seguente indica al PI di ignorare gli avvisi e procedere con il programma.
IO.setwarnings (False)
Possiamo fare riferimento ai pin GPIO di PI, sia per numero di pin a bordo che per numero di funzione. Come "PIN 35" sulla scheda è "GPIO19". Quindi diciamo qui o rappresenteremo il pin qui con "35" o "19".
IO.setmode (IO.BCM)
Stiamo impostando quattro pin GPIO come output per pilotare quattro bobine del motore passo-passo.
IO.setup (5, IO.OUT) IO.setup (17, IO.OUT) IO.setup (27, IO.OUT) IO.setup (22, IO.OUT)
Stiamo impostando GPIO26 e GPIO19 come pin di input. Rileveremo la pressione del pulsante da questi pin.
IO.setup (19, IO.IN) IO.setup (26, IO.IN)
Nel caso in cui la condizione tra parentesi graffe sia vera, le istruzioni all'interno del ciclo verranno eseguite una volta. Quindi, se il pin GPIO 26 diventa basso, le istruzioni all'interno del ciclo IF verranno eseguite una volta. Se il pin 26 GPIO non si abbassa, le istruzioni all'interno del ciclo IF non verranno eseguite.
if (IO.input (26) == False):
Questo comando esegue il ciclo 100 volte, x incrementato da 0 a 99.
per x nell'intervallo (100):
Mentre 1: viene utilizzato per il ciclo infinito. Con questo comando le istruzioni all'interno di questo ciclo verranno eseguite continuamente.
Abbiamo tutti i comandi necessari per ottenere il controllo della velocità del motore passo-passo con questo.
Dopo aver scritto il programma e averlo eseguito, non resta che utilizzare il controllo. Abbiamo due pulsanti collegati a PI. Uno per incrementare il ritardo tra i quattro impulsi e l'altro per diminuire il ritardo tra i quattro impulsi. Il ritardo stesso parla di velocità; se il ritardo è maggiore il motore frena tra ogni passo e quindi la rotazione è lenta. Se il ritardo è vicino allo zero, il motore ruota alla massima velocità.
Qui dovrebbe essere ricordato che, dovrebbe esserci un certo ritardo tra gli impulsi. Dopo aver dato un impulso, il motore passo-passo impiega alcuni millisecondi per raggiungere la sua fase finale. Se non vi è alcun ritardo tra gli impulsi, il motore passo-passo non si muoverà affatto. Normalmente un ritardo di 50 ms va bene tra gli impulsi. Per informazioni più accurate, guarda nella scheda tecnica.
Quindi con due pulsanti possiamo controllare il ritardo, che a sua volta controlla la velocità del motore passo-passo.