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.

Att löda på kretskortet

Att löda på kretskortet

När du löder direkt på kortet gäller det att vara försiktig.

Skrapa alltid med en kniv på kortet om kontaktytan är platt på kortet. De flesta korten lackas och det är stor risk att även kontaktytan är lackad. Då finns det risk att tennet rinner runt bara. Det går också fint att ta bort ev. lack med medel, men var försiktig.

Accesstid accelerometer, benchmarking

Accesstid accelerometer, benchmarking

För att resultatet ska bli så bra som möjligt så behöver AI-modellerna så mycket och aktuell data som möjligt. Detta sätter press på flera delar av projektet.

Här testas läshastigheten från givarna, i detta fallet: accelerometern. En tom while-loop kör, som väntat, 100 iterationer väldigt snabbt. Samma antal och while-loop fast med ett anrop till accelerometern tar 2.16 sekunder. Detta resultatet var konsekvent genom alla tester, där antalet iterationer ändrades.

Vi kan alltså få data från accelerometern ungefär 50 gånger / sekund (= 50 Hz). Det är inte jätte hög hastighet jämfört med andra accelerometrar på marknaden, men det sparar oss tid. Dessutom tror vi nog ändå att 50 Hz kommer vara tillräckligt.

Test av sensorer, ställdon

Test av sensorer, ställdon

För att förbereda mjukvaru-modulerna och samtidigt testa accesstider så konstruerades här ett enkelt test. Datorn togglar (slår på och av) en av GPIO-kontakterna ett antal gånger. Tidtagning görs i mjukvaran med Pythons egna tidsbibliotek. På andra sidan sitter en röd LED för att ’visa’ effekten. Tiderna till ställdonen (LED i detta fall, motorn i framtiden) var tillfredsställande låga.

Förberedelser AI och mjukvara

Förberedelser AI och mjukvara

En hel del mjukvara behövs för att få projektet att rulla. I början gick mycket av tiden till att uppdatera komponenter, system och mjukvara. Majoriteten av koden kommer att skrivas i Python.

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.

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

H-brygga med enkortsdator och motor

H-brygga med enkortsdator och motor

Att kontrollera motorn från en enkortsdator kräver en H-brygga. H-bryggan kan variera enormt i komplexitet och tålighet.

När man köper en H-brygga får man vara noga med följande:

  1. Hur hög spänning ska den klara av?
  2. Hur mycket ström ska den klara av?
  3. Hur många motorer ska den ha stöd för?
  4. Hur många olika sätt kan den påverka motorn?
  5. Logikspänning till H-bryggan.

I sitt enklaste läge så sörjer H-bryggan för att ta en styrsignal från enkortsdatorn och släppa på spänning från en annan strömkälla till motorn.

Den är uppbyggd av fyra stycken transistorer runt motorn som på ett schema formar ett H, därav namnet.

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.

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.
« Till start