Radiostyrd bil med anti sladd (arduino)
Postat: 16 oktober 2012, 21:08:49
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
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