Hastighetsmätare till robot (Med eget släphjul)
Postat: 25 juni 2009, 20:17:00
Tjena. Idag påbörjade jag ett nytt projekt som jag gått och tänkt på i någon månad, Nämligen en distansmätare (och hastighetsmätare) till min utväcklingsplattformsrobot (som jag inte har byggt än....
)
Syfte:
Jag vill kunna mäta hur långt min robot har kört, och hur hög hastigheten är på min robot, den ska bara gå på plant underlag (= inomhus). Däremot så kan jag inte mäta hastigheten på hjulen, oavsett om hjulen slirar eller inte så måste jag ha den reella hastigheten så att jag vet hur långt den har kört totalt.
Hur?:
Ett hjul som trycks ner i marken kommer snurra när roboten åker framåt/bakåt, hjulet kommer sitta under robotens mittpunkt, detta för att undvika sidokrafterna när den snurrar. För att läsa av hjulets rörelse kommer jag använda en reflexdetektor, alltså en ir-led och en fototransistor i samma kapsel. Typ denna, fast ytmonterad 75-344-72 .

Sedan ska det sitta någon liten PIC (kanske 12f629 / 12f675) som läser av sensorn med hjälp av "interrupt on change" funktionen som PIC'ar brukar ha. Denna ska då spara hur långt man har kört, och räkna ut en hastighet från genomsnittet av de tre sista (eller något liknande) förbipasserande linjerna.
Linjerna på hjulet kommer vara anpassade så att ett interrupt motsvarar en förflyttning av 5mm.
Kommunikation:
Ja, Då måste ju roboten kunna kommunicera med sensorns PIC på något vis, för detta hade jag tänkt mig I2C. Visst, det kanske är lite overkill, så varför tänker jag använda det? Jo, jag har aldrig använt varken I2C eller SPI, så någon gång ska man lära sig det, och nu har jag en anledning att lära mig det! Eftersom sensorn kommer ge interrupt ganska ofta är det också viktigt att det inte tar för lång tid att skicka över datan, visst är SPI snabbare än I2C, men I2C är ju ändå betydligt snabbare än tex RS232 (?).
25-juni-2009Byggandet:
Logiskt sett så är ju det första jag behöver ett hjul. Efter lite funderande kom jag fram till att man kan ta ett kullager, och helt enkelt använda det som hjul. Så jag tog ett flänskullager, hittade en lämplig bult att sätta fast det i, och två muttrar till det (varför två, det ska ni få se senare).

Sen skrev jag ut en färgskiva, 14 "rutor" ger ~4,934mm per interrupt.

Skar ut den med en skalpell så gott jag kunde. Man skulle haft något hårdare material så att jag kunde fräst ut den med CNC'n..

Efter lite fin justering så fick jag på den runt navet. Den är rätt smal tycker jag, så jag hoppas att reflexdetektorn kan fokusera på det lilla området!

När jag hade lyckats limma fast den upptäckte jag att det hade blivit en massa repor i det svarta! Hoppas att det inte stör sensorn...

Och såhär ska kretskortet med sensorn sitta. Längre än så har jag inte kommit..

Vad tror ni?
Mvh. Danne

Syfte:
Jag vill kunna mäta hur långt min robot har kört, och hur hög hastigheten är på min robot, den ska bara gå på plant underlag (= inomhus). Däremot så kan jag inte mäta hastigheten på hjulen, oavsett om hjulen slirar eller inte så måste jag ha den reella hastigheten så att jag vet hur långt den har kört totalt.
Hur?:
Ett hjul som trycks ner i marken kommer snurra när roboten åker framåt/bakåt, hjulet kommer sitta under robotens mittpunkt, detta för att undvika sidokrafterna när den snurrar. För att läsa av hjulets rörelse kommer jag använda en reflexdetektor, alltså en ir-led och en fototransistor i samma kapsel. Typ denna, fast ytmonterad 75-344-72 .

Sedan ska det sitta någon liten PIC (kanske 12f629 / 12f675) som läser av sensorn med hjälp av "interrupt on change" funktionen som PIC'ar brukar ha. Denna ska då spara hur långt man har kört, och räkna ut en hastighet från genomsnittet av de tre sista (eller något liknande) förbipasserande linjerna.
Linjerna på hjulet kommer vara anpassade så att ett interrupt motsvarar en förflyttning av 5mm.
Kommunikation:
Ja, Då måste ju roboten kunna kommunicera med sensorns PIC på något vis, för detta hade jag tänkt mig I2C. Visst, det kanske är lite overkill, så varför tänker jag använda det? Jo, jag har aldrig använt varken I2C eller SPI, så någon gång ska man lära sig det, och nu har jag en anledning att lära mig det! Eftersom sensorn kommer ge interrupt ganska ofta är det också viktigt att det inte tar för lång tid att skicka över datan, visst är SPI snabbare än I2C, men I2C är ju ändå betydligt snabbare än tex RS232 (?).
25-juni-2009Byggandet:
Logiskt sett så är ju det första jag behöver ett hjul. Efter lite funderande kom jag fram till att man kan ta ett kullager, och helt enkelt använda det som hjul. Så jag tog ett flänskullager, hittade en lämplig bult att sätta fast det i, och två muttrar till det (varför två, det ska ni få se senare).

Sen skrev jag ut en färgskiva, 14 "rutor" ger ~4,934mm per interrupt.

Skar ut den med en skalpell så gott jag kunde. Man skulle haft något hårdare material så att jag kunde fräst ut den med CNC'n..

Efter lite fin justering så fick jag på den runt navet. Den är rätt smal tycker jag, så jag hoppas att reflexdetektorn kan fokusera på det lilla området!

När jag hade lyckats limma fast den upptäckte jag att det hade blivit en massa repor i det svarta! Hoppas att det inte stör sensorn...


Och såhär ska kretskortet med sensorn sitta. Längre än så har jag inte kommit..

Vad tror ni?
Mvh. Danne