Tutorial: Come controllare un motore brushless con Raspberry PI

Sabato scorso e’ stato il grande giorno: primo brushless mosso! E mosso con rpi!!!

Per ora non ho voluto mischiare troppe cose, per cui rpi e’ alimentato da USB e collegato via cavo col pc.

wiring_2

Questi nel dettaglio i passaggi necessari.

  1. Monta il motore ben fissato ad un sostegno.IMPORTANTE: Ricorda che si muovera’,fissalo bene !
  2. Collega i cavi del motore all’ESC.Il motore che ho io,ha 3 cavi, nero,rosso e giallo. Io ho deciso di collegare sempre il nero al cavo centrale ,mentre invertiro’ il rosso col giallo per ottenere rotazioni orarie o antiorarie.
  3. NON collegare ancora i cavi di potenza dell’ESC alla batteria
  4. Collega il cavo segnale  di 0v (nero) dell’ESC al ground di rpi (per esempio pin 25)
  5. Collega il cavo segnale PWM (bianco) ad un output di rpi (nella mia prova l’ho collegato col pin fisico 11,corrispondente a GPIO17. Questo valore (17) sara’ usato poi nel programma.
  6. Collega cavo Ethernet
  7. Collega USB per alimentare rpi.motor_test_setup

Passiamo ora al lato sotware.E’ necessario che su rpi sia istallata la libreria RPIO.Se non ancora fatto, qui trovi la descrizione dell’ istallazione SW.

  1. Scarica la cartella motor_test che contiene motor_test.py e motor.py e posizionala nella cartella home/python/motor_test del tuo pc.
  2. Dal terminale del pc  usa il comando per copiare la cartella su rpi(chiedera’ password di rpi):
    scp -r python/motor_test  pi@10.42.0.63:./python
    password : raspberry
  3. Dal terminale del pc  usa il comando per connettersi con rpi.Il terminale del pc ora e’ diventato il terminale del rpi
    ssh pi@10.42.0.63
    password : raspberry
  4. Infine lancia il programma motor_test.Importante: la sequenza di avvio dell’ESC varia da modello a modello. Vedi la pagina dell ESC per i dettagli.
    cd python/motor_test 
    sudo python motor_test.py
  5. Segui le istruzioni del programma.

motor_test

Dopo il primo ENTER il PWM viene settato al massimo (un impulso lungo 2000us ogni 20ms). A questo punto occorre collegare i cavi di potenza del ESC.Se tutto va a buon fine (tensione corretta,numero di celle della batterie corrette) l ESC e’ pronto a pilotare il motore.Viene settato il PWM a 1000us, il minimo. A questo punto e’ possibile alzare e abbassare la velocita del motore ed il motore si muovera’. Il mio motore comincia a muoversi sopra il 5%, cioe’ 1050us.Questo dipende dall’inerzia del motore,dagli attriti  e dal livello di carica della batteria

3 pensieri su “Tutorial: Come controllare un motore brushless con Raspberry PI

  1. Fabrizio d'orazio

    Ciao sto cercando di replicare il tuo progetto ma con un arm m4. Volevo farti alcune domande. l’ampiezza del segnale pwm deve essere di 5v o bastano 3.3v? potresti spiegare meglio il controllo dell’esc tramite pwm?? da quel che ho capito il periodo deve essere di 20 ms e quindi di 50hz e duttycicle variabile da 1 ms a 2 ms? quindi dal 5% al 10%?? ti ringrazio

    Rispondi
    1. solenerotech Autore articolo

      Ciao Fabrizio, io uso raspberry per comandare ESC, per cui un’uscita a 3,3V.
      Per l’esc che uso c’e una procedura di inizializzazione che permette di definire qual’e’ il valore min e max gestibile.(e’ quella riportata nel tutorial).Potrebbe essere che il tuo esc ne abbia una diversa.

      Nel mio caso un segnale di 1ms equivale a 0% ed un segnale di 2ms equivale a 100%. l’incremento possibile e’ di 10 nanosec (=0.010 millisec).

      Ricorda che il motore di solito non parte all’1% ma varia a seconda dei valori min e max inizializzati nell’esc.

      il mio esc non inizializzato, iniziava a muovere i motore solo se lo settavo al 1,200 milli sec (=20%). Dopo che l’ho inizializzato si muove a 1,050 millisec=5%).
      Oscar

      Rispondi
      1. Manuel Fregolent

        Complimenti, bel progetto. Mi voglio anche io cimentare nella costruzione di un quadricottero controllato da raspberry, da portare all’esame di maturità l’anno prossimo…mi sono reso conto lavorandoci su che cha una potenza di calcolo che supera enormemente tutti i micro che utilizziamo normalmente in classe.
        Ho solo una precisazione: questo metodo di pilotare un ESC non è il PWM, ma il PPM. Nel PWM si varia il duty cycle di un’onda quadra (se non ricordo male gli esc vogliono una frequenza di 8 kHz). Il metodo che hai applicato te è il PPM, che consiste nel variare la durata dell’impulso, ed è il segnale che viene utilizzato dalle riceventi per modellismo.
        E’ proprio un’altro tipo di modulazione, il PWM si basa sulla larghezza d’impulso, mentre il PPM sulla fase dell’impulso.

        Ciao
        Manuel

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...