Radiostyrd bil med anti sladd (arduino)

Berätta om dina pågående projekt.
Användarvisningsbild
Mr. Pink
Inlägg: 109
Blev medlem: 18 april 2008, 14:49:44
Ort: Belmont, Kalifornien, USA

Radiostyrd bil med anti sladd (arduino)

Inlägg av Mr. Pink »

Tjo!

Detta är väl egentligen mitt första riktiga elektronikprojekt skulle man kalla det.

Jag har sen tidigare på jobbet byggt den här skapelsen:
http://elektronikforumet.com/forum/view ... =4&t=25943

Men den här gången så är jag ute efter ett nättare fordon men inte lika många delar och som dessutom styrs av en mikrokontroller.

Det hela började med att jag skaffade mig en byggsats på en 3d-skrivare av modellen mendel prusa. Styrningen av denna görs med en Arduino mega med tillhörande drivkort för motorstyrningar och annat för att styra skrivaren. Bygget av skrivaren gav mig blodad tand och fick mig att införskaffa en arduion Uno mikrokontroller och en tillhörande "shield" för att styra två motorer. Eftersom jag är väldigt intresserad av fordon vad det gäller hjul slip och chassi reglering så kom jag till insikt att jag ska bygga mig en bil med två motorer och därmed möjlighet att göra så kallad "torque vectoring".

Första steget var att få till mätning av hjulhastighet. Ett gäng LM2907 och läsgafflar inhandlades och jag började med att med hjälp av min 3d-skrivare bygga hjulnav och delar som gav plats för dessa komponenter. Även ett par motorer inhandlades och en utväxling trollades fram med hjälp av 3d-skrivaren.

För att få LM2907 kretsarna att omvandla en frekvens till en spänning så krävs det ett pulståg som skiftar spänning kring jord och det löstes genom att göra en sk "AC-koppling" med ett par motstånd och en kondensator. Kopplingsschemat är annars direkt ifrån databladet där bakhjulen avläses separat och framhjulen är kopplade så att medelhastigheten fås ut som en signal. Det eftersom Arduinon har ett begränsat antal analoga ingångar.

Till övriga analoga ingångar ska ett gyro och två accelerometrar kopplas.

Radiostyrningen och inkoppling av denna till arduinon är gjord med inspiration från denna blogg:
http://rcarduino.blogspot.se/2012/04/ho ... draft.html

Som ses på bilden är i princip hela bilen byggd med 3d-skrivaren. Skruv ett gäng kullager och en uppsättning hjul var annars det som behöves för att få liv i bilen.

Bilen rullar idag med signalerna spolade rakt igenom arduino-koden och jag har gjort en första extremt enkel "traction control" där jag tar framhjulens hastighet som fordonshastighet och jämför med bakhjulens hastighet genom att beräkna hjulslip. Och när hjulslip övergår ett visst värde (här 0.3) så halvas gas signalen till nämda hjul.

Målet är att få till en gir reglering (DYC=Direct Yaw Control) genom att ha en referensmodell av bilen i koden som matas av aktuell uppmätt fordonshastighet och styrvinkel. Sedan så jämförs girvinkelhasigheten från referensmodellen med den uppmätta girvinkelhastigheten från gyrot ombord. Felet mellan värdera styr sen hur stort differentiellt drivmoment som läggs över bakhjulen. Dvs genom att bromsa ett hjul och driva med det andra för att effektivt få ett girmoment på bilen.

/Johannes
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Re: Radiostyrd bil med anti sladd (arduino)

Inlägg av Korken »

Spännande, kommer följas starkt! :tumupp:
Vad för typ av reglering och observatör för du till detta? PID/LQ/MPC? State observer/Kalman observer/Complementary observer?
Kan tänka mig att en Kalman observatör med en bra MPC skulle göra ett grymt jobb i detta fall. :)
Användarvisningsbild
Mr. Pink
Inlägg: 109
Blev medlem: 18 april 2008, 14:49:44
Ort: Belmont, Kalifornien, USA

Re: Radiostyrd bil med anti sladd (arduino)

Inlägg av Mr. Pink »

Min först tänka approach är väl egentligen MPC skulle man kunna säga.
Vad det gäller tillståndsestimeringen så har ja tänkt att börja enkelt och i alla fall försöka mig på någon kalmanfiltrering för att bestämma bilens sidohastighet. Bilens längshastighet är ju väldigt enkelt att räkna ut då framhjulen är varken bromsande eller drivande vilket då kan ge mig en korrekt fordonshastighet.
Och själva regleringen blir nog en PI till att börja med för att se vad som händer... :P
larky
Inlägg: 1138
Blev medlem: 7 mars 2007, 07:54:18
Ort: Skellefteå
Kontakt:

Re: Radiostyrd bil med anti sladd (arduino)

Inlägg av larky »

Om analoga ingångar är ett problem kan du alltid läsa acc/gyra via I2C och även en 20x4 lcd utan att det kostar pinnar
danielpublic
Inlägg: 280
Blev medlem: 21 oktober 2011, 17:18:41
Ort: Krabbledes kring dig. *snap* *snap*

Re: Radiostyrd bil med anti sladd (arduino)

Inlägg av danielpublic »

Jisses, sjukt häftigt!
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Re: Radiostyrd bil med anti sladd (arduino)

Inlägg av Korken »

>> Min först tänka approach är väl egentligen MPC skulle man kunna säga.
Mycket intressant! :D
Hur har du planerat programmera den? Det känns inte direkt som att en Arduino kommer orka driva en sådan. Har du tänkt uppgradera MCU för det?
MangePe
Inlägg: 2
Blev medlem: 20 juni 2010, 13:18:31

Re: Radiostyrd bil med anti sladd (arduino)

Inlägg av MangePe »

Korken skrev:Spännande, kommer följas starkt! :tumupp:
Vad för typ av reglering och observatör för du till detta? PID/LQ/MPC? State observer/Kalman observer/Complementary observer?
Kan tänka mig att en Kalman observatör med en bra MPC skulle göra ett grymt jobb i detta fall. :)
Ett tillräckligt snabbt kalmanfilter med fler än säg 4-5 tillstånd (ge å ta) lär bli jobbigt att implementera på uCn. MPC, är inte den algorithmen än värre i tidskomplexitet än kf?
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Re: Radiostyrd bil med anti sladd (arduino)

Inlägg av Korken »

>> Ett tillräckligt snabbt kalmanfilter med fler än säg 4-5 tillstånd (ge å ta) lär bli jobbigt att implementera på uCn.
>> MPC, är inte den algorithmen än värre i tidskomplexitet än kf?

Precis, tyvärr är den mycket tung. Jag testade att implementera en med 7 sample control/prediction i en STM32F4 och de va på gränsen.
Då exekveringstiden ökar som O^3. Detta fall skulle jag nästan använda någon förenklad form av KF som typ square root implemenationen.
Användarvisningsbild
Mr. Pink
Inlägg: 109
Blev medlem: 18 april 2008, 14:49:44
Ort: Belmont, Kalifornien, USA

Re: Radiostyrd bil med anti sladd (arduino)

Inlägg av Mr. Pink »

Efter att ha lekt lite med programmeringen nu så är jag faktiskt riktigt imponerad av arduinon...
Men lite slipreglering och signalhantering så går ändå kontrollen med ca 1000hz. Och det är samtidigt då jag skriver tillbaka seriellt till datorn.
Jag behöver ju också bara egentligen estimera två tillstånd. Och det är girvinkel och sidohastighet, eftersom jag har framhjulen som bra referens för bilens längshastighet. Och när när dess hastighet är tillräckligt låg så kan jag kalibrera sensorerna för avdrift m.m.

Har nu beställt en "sd-shield" så att jag kan logga lite och förhoppningsvis se hur bra jobb min reglering faktiskt gör.
Användarvisningsbild
Mr. Pink
Inlägg: 109
Blev medlem: 18 april 2008, 14:49:44
Ort: Belmont, Kalifornien, USA

Re: Radiostyrd bil med anti sladd (arduino)

Inlägg av Mr. Pink »

Fick hem sd-prylarna nu och har placerat denna mellan arduinon och motorkortet. Dock så vill sd-shielden använda pinne 13,12,11 och 8 vilka också används av motorkortet så jag har dragit om dessa genom att börja undan de aktuella benen på motorkortet och kopplat in dessa med på lediga pinnar på sd-shielden. Återstår att se om jag lyckas få alla grejer att prata med varandra också. :)
janbjorn
Inlägg: 271
Blev medlem: 3 december 2008, 16:22:39
Ort: Trollhättan

Re: Radiostyrd bil med anti sladd (arduino)

Inlägg av janbjorn »

Om serieporten är ledig så är OpenLog ruskigt smidig att spara data på.

PS. Coolt projekt!
Skriv svar