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.

Löda fast bandkabel

Löda fast bandkabel

Att använda bandkabel när det går är att rekommendera. Ledarna är väldigt mycket mer skyddade och det är lättare att hålla koll på de. Mindre risk för trassel och att de åker in i andra komponenter eller hjul och bråkar.

Det kan vara bra att, efter lödningen, fästa själva bandkabeln med lite häftmassa eller liknande för extra skydd. Detta gäller huvudsakligen under utveckling och testande av projektet.

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.

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.

Raspberry Pi Sense HAT

Raspberry Pi Sense HAT

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

För att utveckla och träna modellen behövs någon typ av data. Det kan (teoretiskt sett) vara vilken data som helst men i vårt fall så har vi valt att börja med accelerometer och eventuellt kompass.

Raspberry PI Sense HAT har väldigt många olika sensorer och även en hel del LEDs. Vi har valt denna, trots sin storlek, för att få något som direkt kan kommunicera med Raspberry Pi Zero. Om storleken visar sig vara ett problem så löser vi det senare.

Roll, pitch eller yaw?

Roll, pitch eller yaw?

Yaw är lite intressantare än pitch. Här syns rotationen som uppstår vid en sväng. Däremot så visas bara hur mycket bilen svänger och inte direkt nödvändigtvis hur snabbt. Så utan en tidsaspekt så blir yaw ointressant.

Däremot är det definitivt en axel vi ska ha i åtanke och den kan mycket väl komplettera modellerna för prediktion.

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.

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.

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.

AI SDK snabbare än människan?

AI SDK snabbare än människan?

I våra test så användes ett AI SDK som installerades på en enkortsdator.

Vid mätningarna så framgick tydligt att AI’n upptäckte svängarna i banan i god tid och kunde agera därefter.

Hur som helst så var reglerloopen i systemet inte tillräckligt bra. Men efter lite justeringar så kommer den vinna!

« Till start