Halvautonom blåtandsbil

  • Exjobbet mot sitt slut

    Hej igen alla bloggläsare!


    Detta projekt börjar gå mot sitt slut och alla pusselbitar intar rätt position inför slutspurten. Det har varit ett nöje att få gör detta examensarnbete på Broccoli AB med alla fantastiska medarbetare som vi fått träffa. Här nedan följer en kort sammafattning på hur projektet har gått samt även en kort beskrivning av projektet.

     

    Projektet handlade om att ta fram en radiostyrd bil, där både människan skall kunna kontrollera samt även en del autonoma funktioner. Styrningen av bilen har uppgraderats från ett enkelt styrkors till en mer precisionsnäll joystick. Det ger en mer tillfredställd styrning över bilen där man kan kontrollera skarpa hörn och kanter med ett leende på läpparna. Det har även implementeras en programbit som låter bilen att inte hamna utanför räckvidd. Om bilen hamnar utanför sin räckvidd skall bilen autonomt ta sig tillbaka till sista kända plats med bra kommunikation mellan blåtands modulerna. För att göra bilen mer intressant och rolig infördes en prototyp på en enkel ritfunktion. Det går ut på att användaren ritar en figur i Android applikationen och väl när användaren känner sig nöjd över sin ritning och trycker på "Spara" knapp skall bilen simulera denna figur i verkligheten genom att åka mellan punkter och svänga vid olika vinkeländringar för att rita upp figuren. Genom att sätta en penna under på bilen skall figuren som ritas av bilen bli en kopia av vad som ritades i applikationen.

     

    Det var en kort sammanfattning över projektet och vi vill inte trycka ner våra underbara läsare i en tekniskrapport på denna blogg. Det kommer bli mer tekinsk presentaion den 18/06 kl 17:30 där vi pratar mer i detalj om arbetsgången samt även teknikdelarna i projektet. Vi hoppas många kommer och lyssnar på denna presentation då det är några överraskningar som kommer att förhoppningsvis förbrylla lyssnarna. Slutligen vill vi ännu en gång tacka Broccoli AB och alla underbara medarbetar vi fått träffa och dela lunch och fredagsfika med. Tack för all tid!



    MVH David Wall & Filip Tideman

  • Och arbetet fortsätter!

    Hej igen alla våra trogna följare!

    Sedan senaste gången vi hördes har mycket hänt! Bilen har nu monterats ihop, och våra extra komponenter som krävdes för att reglera motorerna har anlänt och nu lötts fast. Detta möjligtgjorde, som nämdes i det tidigare inlägget, rotation och båda hållen hos hjulen, så bilen både kan köra framåt och bakåt! I och med detta har vi även monterat sex stycken 1,5V batterier på chassit för att göra bilen mobil, så att den inte behöver strömförsörjas från ett nätaggregat som vi tidigare använt oss utav. Att vi nu kunnat klippa navelsträngen innebär också att vi upptäckt en hel del buggar i vårat program, som kan vara väldigt svåra att förutse när man enbart sitter framför några hundra rader kod i en utvecklingsmiljö. Att åtgärda dessa buggar har förstås krävt en del tid men samtidigt banat väg för en, tillslut, bättre och mer optimerad kod. 

    Utöver bilens beteende har vi nu också fått chans att programmera våran Android-applikation som installerats på en Samsung Galaxy Tab, som vi nu använder oss av för att kontrollera bilen. Utseendemässigt är den kanske inte mycket för världen, med några få knappar och fyra pilar, men den har de grundfunktioner vi kräver just för stunden. Detta apputvecklande har vart väldigt tidskrävande, både på grund av vår bristande kunskap inom Java samt att felsökningen blir lite svårare då ännu en komponent adderas till kompotten.

    Bilen i sitt nuvarande skick

    Nu när själva grundfunktionaliteten står klar, så har vi börjat titta på att utveckla nya funktioner samt modifiera befintlig kod. En extra funktionalitet vi jobbat väldigt mycket på är att kunna läsa av ett RSSI-värde mellan vår tablet och bilen, vilket är ett värde som indikerar signalstyrkan, och kan användas för att avgöra ungefär hur långt bort bilen befinner sig från sin förare. Desvärre har detta blivit projektets absolut största farthinder, då vi använder oss av ett lite äldre API (ungefär som ett bibliotek med färdiga anrop) som enbart stödjer avläsning av RSSI-värde då enheterna inte är ihopkopplade. Vi har under lång tid försökt kringgå detta med dessvärre utan någon vidare framgång. Vi tittar fortfarande på alternativa lösningar på hur vi ska lösa detta, då det krävs för att vi ska kunna uppfylla vår önskan om att ha en funktion som tillåter bilen att automatiskt köra tillbaka till föraren vid en knapptryckning.

    Till dags datum har vi en bil som kan manövreras med hjälp av tableten, och direkt den lämnar räckvidden för blåtanden, så kommer den att inventera den senaste styrsignalen (till exempel köra framåt), för att åter igen köra tillbaka där blåtandskommunikationen tidigare kunde etableras.

    Vi har i runda svängar en månad kvar att arbeta fram ytterligare funktioner, samt färdigställa rapporten. Så vi kommer att uppdatera bloggen igen inom kort med våra planer inför upploppet!

    Ha det så gott så länge!

     

  • Välkommen till bloggen!

    Vad kul att du tittar förbi! Här kommer vi, David & Filip, att publicera framgångar i vårat examensarbete med en tänk frekvens på ungefär en gång i veckan. Vi är i skrivande stund inne på slutspurten av vecka 3 och kommer därför att sammanfatta vårat projekt och milstolpar som vi nått hittils nedan.

    Vårt projekt går ut på att ta fram en fullt fungerande bil bestyckade med fyra likströmsmotorer och två IR-sensorer för att kunna förhindra kollision. Vi skall sedan ta fram en Android-app för att kunna styra bilen och kunna ge ställa in olika säkerhetsnivåer som innebär att vi kommer tillåta bilen ett visst avstånd till ett hinder beroende på vilken nivå som ställts in. Vi ska även försöka implementera en funktion som ser till att bilen aldrig kan tappa kontakt med "föraren" genom att återvända till senaste kända plats där kommunikation funnits. 

    Vid projektets uppstart så gick mycket av tiden åt till att lära känna den nya miljön vi skulle börja arbeta i, bland annat Eclipse & Cross Studio där vi under arbetets gång programmerar vårt STM32-chip och våran Android-app. ARM-chipet, STM32, är något vi aldrig tidigare arbetat med och blev för oss en liten utmaning att lLampor & IR-sensor!ära känna, men som efter hand blev mer och mer hanterbart. Under första veckan så lyckades vi implementera en enkel AD-omvandling för våra IR-givare samt skapa en PWM-signal som i utsträckningen ska styra våra motorer.

    Under andra veckan var huvuduppgiften att implementera interrupt-funktioner för att kunna köra det olika delprogrammen parallellt. Efter många om och men lyckades vi slutligen åstadkomma detta och även, till vår förtjusning, lyckas dimma en diod på vårt labbkort med hjälp av vår PWM-signal, där IR-givarens avstånd bestämde ljusstyrkan på dioden.

     

    Tredje veckans utmaning blev Java och programmering av vår app. Då vi tidigare aldrig jobbat med app-utveckling eller Java för den delen så stod vi inför mycket läxläsning. Eftersom tiden gick blev vi mer och mer bekväma med språket och lyckades under denna vecka kunna skicka signaler mellan en läsplatta och vår microchip, och vice versa. 

     

    Under torsdagens eftermiddag fick vi ett glatt besked, nu har vårt chassi och motorer anlänt! David blev helt eld och lågor, likt ett barn på julafton, och slet upp paketet! Montering av bilen skedde omedelbart, men glädjen varade inte länge innan vi insåg att vi behöver ytterligare komponenter innan vi kunde testa de funktioner vi lyckats programmera hittils. Så nu sitter vi här, fredag eftermiddag, och har precis beställt ett par komponenter för att möljiggöra motorns rotation åt båda håll, så bilen både kan köra fram och bak.

     

    Glad David

    Nu tar vi en välförtjänt helg och återkommer nästa vecka! Väl mött :)

KarriärTjänsterOm ossBloggar