Teknologia-projekti: RC-auton moottorien kontrollointi Raspberry pi-tietokoneella

Aapo Harju, Arttu Mattila ja Matti Heikkinen

Otaniemen lukion Fablabissa on radio-ohjattavia (Radio Controlled) autoja, joissa voimanlähteenä on harjaton tasavirtamoottori (Brushless DC Motor). RC-auton “reverse engineering”-projektin tavoitteena on tutkia, kuinka voidaan itse kontrolloida sekä harjattoman moottorin ohjausignaalia että renkaiden ohjauksessa käytetyn servo-moottorin ohjausta. Videossa projektissa toteutetun auton demonstraatio.



Kuvassa on näkyvissä radio-ohjattavan auton perusrakenne: Auton sydän on  ESC-ohjausyksikkö, jonka avulla ohjataan eturenkaiden kääntämisessä käytettävää servo-moottoria, sekä harjatonta moottoria, jonka voima jeataan neljälle renkaalle. Auton päälle on teipattu raspberry pi tietokone ja servo-ohjain.

rc-auto

Sähkömoottorien toiminta perustuu (Linkki tarkistettu 26.5.2021: https://fi.wikipedia.org/wiki/Tasavirtamoottori) moottorin sisällä pyörivän käämin eli roottorin ja moottorin ulkokehän eli staattorin väliseen magneettiseen voimavaikutukseen.  Perinteisissä harjallisissa tasavirtamoottoreissa pyörivä käämi magnetisoidaan syöttämällä sähkövirtaa käämiin juuri sopivassa vaiheessa kommutaattorin virtaharjan avulla. Mekaaninen hankaus pyörivän akselin ja hiiliharjan välillä aiheuttaa moottorin sisäistä kitkaa, kuumenemista ja lyhentää moottorin kestoikää. 

Harjattomissa moottoreissa ei ole virran synkronointiin ja oikea-aikaiseen syöttöön tarvittavia hiiliharjoja, joten moottorit ovat tehokkaita, kestäviä, ja hiljaisempia. Harjattoman sähkömoottorin pyörintänopeuden eli käämeille syötetyn sähkövirran oikea-aikainen ohjaus on toteutettu sähköisesti ECS-yksikön (Electronic Speed Control) avulla, eli taajuusmuuntajan avulla. Lisäksi harjattomissa mooottoreissa on usein Hallin ilmiöön perustuva pyörimisnopeussensori, joka mahdollistaa sähkövirran oikea-aikaisen syöttämisen moottorille.

Helsingin sanomien artikkelissa (Tarkistettu 27.5.2021: https://www.hs.fi/teknologia/art-2000007870097.html) on nostaa esille harjattomien moottorien edut tulevaisuuden sähköautojen väännön lähteenä. Jutussa on myös rakennekuvat harjattomasta ja harjallisesta sähkömoottorista.  Videossa on selostettu harjattomien moottorien toimintaperiaate.

Videossa on selostettu harjattoman tasavirtamooottorin toimintaperiaate.

Kuvassa auton ohjaukseen tarvittavat osat: Servo-ohjainkortti ja Raspberry pi-tietokone. Ohjelmointikielenä käytettiin pythonia.

Otaniemen lukion RC-Auton eturenkaiden ohjaus on toteutettu servo-moottorilla eli viisarimoottorilla, jonka ohjaamiseksi autoon on liitetty Servo-ohjainkortti, jonka resuluutio on 12 bittiä eli moottorille akusta syötetyt jännitteen arvot 0V…7V arvot voidaan 60 Hz:n taajuudella (jaksonaika 1/60 = 17 ms)  jakaa lineaarisesti 2^12 = 4096 erilliseen askelmaan. Esimerkiksi kun servolle syöttää jännitettä 3% jaksonajasta 17ms (eli pwm-arvon 0.03*4096= 123) , niin servo kääntyy kulmaan 0 astetta. Vastaavasti kun servolle syöttää jännitettä 13% jaksonajasta (eli pwm-arvon 0.13*4096=530), niin servon viisari kääntyy kulmaan 180. Muut kulmat ovat tällä välillä. Kokeilamalla löysimme, että renkaat ovat suorassa kun servo-moottorille syötetään pwm-arvo 370, suurin sallittu ohjauskulma vasemalle on pwm-arvo 530 ja oikealle 370. Lisätietoja pwm-ohjauksesta.

Tarkistettu 26.5.2021: https://www.arduino.cc/en/Tutorial/Foundations/PWM

Auton moottorin ESC-ohjausyksikön pwm-arvojen etsiminen oli hankalampaa, koska ESC-yksikön ohjauksessa käytetyistä pwm-arvoista  ei löytynyt dokumentaatiota ja ESC-moottorin täydellinen hallinta on vaaativa ohjelmoinnin näkökulmasta. Kokeilemalla ja googlaamalla löysimme pyörimissuunnan vaihtuvan pwm-arvolla 400, joka samalla resetoi ESC-yksikön.  Täysikaasu eteenpäin on arvo 600 ja taaksepäin 200, eli moottorin kaasun ääriarvot  ovat harjattoman  moottorin ohjausyksikölle ovat 5% ja 15%.

Kuva: Rasperryssä oli picamera, jonka avulla oli mahdollista streamata auton perspektiivistä kuvaa.

Kuva Ohjaimena käytettiin pelkistettyä kännykkä-sovellusta.

Lähdekoodi:

https://github.com/Aapeli123/RaspberryPI-Car