Bilbana med AI, handkontrollerna

Bilbana med AI, handkontrollerna

Handkontrollerna består av en potentiometer, ett ställbart motstånd.

Ju längre in knappen trycks desto mer fart får bilen. Denna bilbanan (eftersom den är ny) levererades med handkontroller som också hade mekaniska begränsningar. Man kunde alltså ställa in olika ’maxfarter’, detta för att barn ska kunna köra utan att köra av hela tiden. Dessa ignorerar vi helt och hållet.

Roll, pitch eller yaw?

Roll, pitch eller yaw?

Roll är själva essencen i en avkörning hos bilbanan. Eftersom den är spårad och bilen har en sorts fena framtill som håller kvar bilen i spåret så betyder det att det är så gott som omöjligt att köra av bilbanan utan att det ger utslag på just roll. Vi såg höga spikar på roll-avläsningarna både i vanliga svängar och i avkörningar.

Det är alltså roll-värdet som vi ska försöka få AI-modellen att förutspå. Sen kan vi ta vettiga beslut på detta.

Rätt dator för projektet

Rätt dator för projektet

Inlägget är reklam för en produkt hos Kjell&Company och innehåller annonslänkar.

I detta projektet ska vi försöka styra en av bilarna på en bilbana. Bilbanan är av skalan 1:32. Datorn som ska köra AI’n och kontrollera bilbanan är en Raspberry Pi Zero W.

Bilbana med AI, start och bilarna.

Bilbana med AI, start och bilarna.

När bilbanan levererades så påbörjades mätningarna. Bilen öppnades och det fanns en hel del olika saker som skulle räknas på.

Vi behöver undersöka två olika (potentiella) störningar.

  1. Om vår bil står still och den andra bilen körs på full styrka. Hur mycket elektromagnetisk störning drabbas vår bil av då?
  2. Om vi kör vår bil på hög spänning. Hur mycket elektromagnetisk störning drabbas då vår Raspberry av vår egen motor?

Bilarna har ett par filter i sig. De är designade för att äta upp just dessa störningarna.

Bilbana med AI, bilbanan.

Bilbana med AI, bilbanan.

Bilbanas skala 1:32 gör att bilarna är ungefär 10-15cm långa, beroende på bilmodell.

Det är en nyinköpt bilbana men det är fortfarande av den enklare typen. Två spår, en handkontroll per spår och en sladd till väggen.

Bästa batteriet för IoT eller inbyggda system

Bästa batteriet för IoT eller inbyggda system

Batterival är inte helt enkelt när det kommer till denna typen av projekt. I detta fallet är dessutom vikt också en faktor vilket gör det ännu svårare.

Vissa enkortsdatorer går att strömförsörja direkt via GPIO-kontakterna, vissa behöver skydd- eller sidokretsar för att göra det möjligt (säkert).

I vårt fall kör vi med en, så liten som möjligt, powerbank och micro USB. På det sättet slipper vi ett till chip och är på den säkra sidan. Nackdelen är vikten, men då vi bara utvecklar en prototyp till att börja med så får det vara så. Det bästa hade varit om vi hade hittat en 1000 mAh powerbank med lägre vikt.

Tänk på att korten behöver säker och jämn strömförsörjning. Vissa kort klarar mer än andra men det är alltid bäst att vara på den säkra sidan.

Styra motor med Python

Styra motor med Python

När strömkällan (ofta batteri) och motorn är inkopplade i H-bryggan så saknas styrsignalerna. Dessa kommer, vanligtvis, från en enkortsdator. Här finns viss flexibilitet men det brukar behövas tre signaler. Två som tillsammans bestämmer riktningen på motorn och en tredje som bestämmer hastigheten. Denna utgörs av en PWM (Pulsbredds-modullering, på svenska). Här motsvarar en hög signal full gas och en låg signal ingen gas. Men för t. ex. 70%-ig gas så är signalen hög 70% av tiden och låg 30% av tiden.

Så ett exempel i Python3 skulle kunna vara (siffrorna är vilken GPIO-kontakt de är kopplade till):

directionOne = LED(1) directionTwo = LED(2) throttle = PWMLED(3)

def start(): directionOne.on() directionTwo.off() throttle.value = 0.7

Bilbana, accelerometer och kraschar

Bilbana, accelerometer och kraschar

För att få ett hum om vilka sensorer och axlar som var av störst intresse så körde vi en massa tester.

Accelerometern har tre axlar, typiskt 3D-verklighet:

  1. Yaw - tänk höger och vänster sväng.
  2. Pitch - upp och ned.
  3. Roll - i sidled, som om bilen skulle rulla.
AI-bilbana, utrustning

AI-bilbana, utrustning

Det krävs mycket utrustning när alla mätningar ska göras. Den största utmaningen hittills, för oss icke-elektroingenjörer, har varit att ta reda på hur eventuella filter ska konstrueras.

Roll, pitch eller yaw?

Roll, pitch eller yaw?

Pitch är intressant då den ger utslag på hög acceleration och hård inbromsning. Eftersom det inte finns några backar i vår bana så behöver vi inte tänka på den aspekten. Dessutom så vet redan bilen om vilket gaspådrag den har, därför behöver vi inte läsa av pitch för att se krafterna runt den axeln.

Så vi avvaktar med pitch helt enkelt.

Bilbana med AI, strömförsörjning

Bilbana med AI, strömförsörjning

Det finns flera saker att ta hänsyn till när det kommer till strömförsörjning.

  1. Störningar. Att separera de olika elektriska systemen/delarna.
  2. Pålitlighet. Med en isolerad källa kan man säkerställa strömförsörjningen till eventuell dator. Skulle den tappa spänning så är det stor risk att den stänger ner. Får datorn (eller andra komponenter) tillfälliga spikar så finns stor risk att de går sönder.
  3. Kontroll. Uppladdningsbara batterier och/eller batterier med indikatorer kan underlätta så man vet att ström är garanterad.
  4. Vikt. Batterier väger mycket och kommer påverka bilens prestanda mycket.

Vi har valt att ta ström till datorn från batteripack av en enkel anledning: mängden jobb. Batteriet väger mycket men vi slipper jobbet med att plocka ström från bilbanans krets. För vidare optimering kan detta sättet vara bättre dock.

« Till start