Styra motorer med L298-kort, Raspberry Pi och RaspiRobotBoard-biblioteket

OBS! Motorerna vi använder i denna guide ska drivas med högst 6V, och batteripacket skickar ut 6*1,5V = 9V. Det bör gå bra eftersom koden kör motorerna på halvfart, men mycket högre än så ska man nog inte gå.

L298, 2WD-robotkit, batteripack
L298, 2WD-robotkit, batteripack

I ett tidigare inlägg tittade vi på att styra elmotorer med Raspberry Pi och RaspiRobotBoard v2. Den är bestyckad med en L293-kontroller, och har ett smidigt kodbibliotek att jobba med. Men vi säljer ju en L298-kontroller utan allt lul-lul också. Funkar RRBv2-biblioteket på denna också, måntro?

Vi börjar med den enkla delen, ansluta batteripack och motorerna till L298:an. Motorerna ansluts till de två terminalerna på vardera sida av kortet. Till kortets GND ansluts en av GND-portarna från RPins GPIO tillsammans med batteripackets svarta kabel, som alltså ska sitta i samma. Till +12V ansluter man batteripackets röda kabel, och till +5V ansluts en av 5V-portarna på RPins GPIO.

I och med att RRBv2 sätts på GPIO-porten på RPi finns där inga ledtrådar om hur ett sådant åtagande skulle gå till. Men går man in på projektets Github-sida så finns där en lista över vilka GPIO-pinnar som används:

Eftersom L298:an saknar LEDs, Switchar och möjlighet att ansluta avståndssensor kan vi bortse från dessa pinnar, och det är därmed bara de fyra översta vi behöver använda oss av. De skall anslutas till IN1-IN4 på L298:an, där 1 och 2 styr den ena motorn och 3 och 4 styr den andra.

Värt att notera är att dessa siffror inte är de faktiska pin-numren på GPIOn, utan GPIO-numret. Så exempelvis 17 refererar till GPIO17, som återfinns på pin 11 (vi vet, det är sjukt förvirrande och dumt).

Jag har anslutit som följer: IN1-GPIO10 (PIN19), IN2-GPIO25 (PIN22), IN3-GPIO4 (PIN7), IN4-GPIO17(PIN11). Vidare använder jag +5V från PIN2 och GND från PIN6.

De anslutna pinnarna på RPi:n
De anslutna pinnarna på RPi:n

Om man sedan kör skriptet jag skrev för RRBv2 i det här tidigare inlägget, kommer motorerna snurra! Det enda man behöver göra är eventuellt vända polerna på motorerna för att få önskad riktning. I skriptet körs först ”framåt”, därefter körs motorerna i varsin riktning två gånger. Här finns koden för nedladdning, för den som inte vill klippa & klistra:

Raspi Robot Board - Raspberry Pi code (382 nedladdningar)

 

När vi nu gjort klart för oss att det finns två alternativ att använda som motorkontroller och att man kan använda RRBv2-biblioteket till båda, ska vi i ett senare inlägg utöka funktionaliteten hos robotorna och göra något lite roligare! 😀

 

Kommentera