Hastighetsmätare till robot (Med eget släphjul)

Berätta om dina pågående projekt.
Malm
Inlägg: 215
Blev medlem: 22 februari 2004, 12:55:06
Ort: Borås

Re: Hastighetsmätare till robot (Med eget släphjul)

Inlägg av Malm »

Du kan ju i testsyfte göra PIC-koden väldigt trivial (så att Schmitt-triggern påverkar en utgång) och sedan utveckla det därifrån när du vet att det funkar.
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Re: Hastighetsmätare till robot (Med eget släphjul)

Inlägg av squiz3r »

EagleSpirit:
>Man kan ha ca 4mm breda fält innan de går in för mycket i varandra pga bredden på sensorn.
Jo, mina fält är knappt 4mm breda, så jag misstänker att det bidrar till problemet! Men sen borde det ju spela roll på vilket håll man sätter sensorn på, den har ju de två komponenterna (LEDn och fototransistorn) bredvid varandra, jag har den på "bredden", men det kanske skulle fungera bättre att sätta den på "höjden"?

>Vi hade en skiva med 48 svarta fält = 96 fält = 384 pulser per varv.
Hmm... Om det är 48 svarta fält per varv, då borde det ju bli 48 pulser per varv :!:. Förklara gärna!

>Det allra bästa är dock att använda en mätskiva som har genomskinliga fält.
Vad tror du om en skiva där fälten är utfrästa/borrade hål, och en reflexdetektor? Om man då har skivan vit så kommer ju den reflektera ljuset, men när det kommer ett hål så reflekterar det ju inte. Å andra sidan så borde det ju bli samma som ett svart fält.. Det är ju svårt att komma åt med en läsgaffel, då måste man ju ha en roterande axel eller liknande att sätta skivan på så att det är tomt på båda sidorna...

>Problemet om man inte har två sensorer är att sensorn kan hamna i ett gränsläge när hjulet står still, och om du inte vet riktningen så kommer du få en himla massa felvärden.
En schmitt trigger borde ju lösa detta problemet. Eller, menar du om hjulet åker lite fram och tillbaks? Det kan ju va problem då, men tills vidare kör jag på bara en sensor!
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Re: Hastighetsmätare till robot (Med eget släphjul)

Inlägg av EagleSpirit »

Fältbredd: Vi monterade dom på "höjden", men jag vet inte hur mycket det varierar. Om du orkar får du gärna testa

Pulsantal: Förlåt, det blir ju 192 pulser per varv. Till att börja med så mätte vi antalet flankerna. Tänk dig en skiva med två svarta fält och två vita. Det är 4st flanker. Sen eftersom vi hade två sensorer med fasförskjutning så blev det dubbelt så många flanker. Så 48 svarta fält -> 2*48 = 96 flanker -> med två sensorer 2*2*48 = 192 flanker totalt.

Svarta eller genomskinliga fält: Problemet är att svart reflekterar fortfarande litegrann. Du kan ha råkat ut för det när du ändrade pull-up-motståndet och spänningsnivån var 3,2V vid svart. Det är även synligt i diagrammet jag la upp. Där går signalen ner litegrann på svart.
Vid genomborrat/fräst så blir det absolut ingen reflektion mitt i det genomskinliga fältet. Sen som du kanske har märkt så blir pappret smutsigt och slitet, om du har en alu-skiva som är utfräst så går den inte sönder lika lätt. Det är smart att lämna kvar en bit ute vid kanten för stabilitet, men det kanske är svårt när du har så litet hjul.

Endast en sensor: Det är bra att testa så enkelt som möjligt, men om du får konstiga värden ibland så har du kanske en förklaring till varför. Dom som hade hållt på med vårt kandidatprojekt tidigare använde bara en sensor och de fick en del problem när de stod stilla pga vibrationer i bilen.
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Re: Hastighetsmätare till robot (Med eget släphjul)

Inlägg av squiz3r »

Okej, Då är jag med på hur du menar med fälten!

Jag har inga läsgafflar hemma (Om man inte skulle leta upp någon gammal kulmus och ta läsgaffeln från den :humm:) men annars tänkte jag att man borde kunna ta en reflexdetektor (har ett antal liggandes) och inte koppla in LED, så sätter man en extern IR LED på andra sidan om skivan istället. Men jag ska se om jag inte kan hitta någon kul kulmus :)

Om jag tänker rätt så blir det så att ju större hysteres man har på schmitt triggern, ju mera fram, och tillbaks kan hjulet snurra utan att det blir problem. Men vi får se hur det blir med det!

Sen tänkte jag att PIC'en tar tiden på hur lång tid det det tar för en puls att gå förbi, det gör jag på tre stycken pulser, sen sorterar jag dem efter storlek och tar medianen av dem. Efter det mäter jag en ny puls (då kastar jag ut den äldsta, som i en kö) också sorterar jag de tre och tar medianen. Om man hela tiden tar medianen av 3 (eller 5) stycken, då borde man ju bli av med mycket utav skräpvärdena?
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Re: Hastighetsmätare till robot (Med eget släphjul)

Inlägg av EagleSpirit »

Jag såg nu att du tänkt använda den som hastighetssensor. Då borde det inte vara så stora problem om den står stilla. Jag har hela tiden tänkt att du ska mäta avstånd. Det bästa är läsgaffel, men det är möjligt att använda en reflexdetektor. Reflektionen från ett hål är fortfarande lägre än svart färg. Bäst lär det bli om man använder ett svart hål :humm:
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Re: Hastighetsmätare till robot (Med eget släphjul)

Inlägg av squiz3r »

28-juni-2009 - Ny idé!

Inatt kunde jag inte sova eftersom jag fick en ny idé på hur jag skulle göra den här sensorn. Så jag började med att plocka fram lego lådan, sen började jag CADa lite....
Bild

...Och CAM'a....
Bild

Gissa vad jag gjorde sen...? (Jag började fräsa ut den... :))
Bild

Detta blev resultatet, en encoderdisk med ett kors till nav, detta gör att den passar på teknik LEGO axlarna!
Bild

Och, till min stora förvåning passade den exakt lika bra som den borde!! (alltså perfekt :D)
Bild

Så här ser hela apparaten ut, hjulet snurrar i marken, driver ett kugghjul, som driver ett annat kugghjul, som driver ett kugghjul som sitter fast i samma axel som encoderdisken. Detta gör att encoderdisken snurrar lika snabbt som hjulet, men den har större diameter, vilket betyder att springorna i den kan vara 8,5mm breda, och jag får ändå 5mm upplösning på hjulet :).
Bild

Jag antar att jag måste måla encoderdisken nu innan jag kan testa den.. Den får bli svart!
Bild

Det enda problemet då är att om roboten kör i 10km/h, då kommer hjulet och ecoderdisken snurra i ~3000 RPM :shock:. Baserat på erfarenhet av andras mini sumo robotar är jag mycket rädd att plasten kommer smälta då...
Bild

Lösningen på det blir nog att behålla kugghjulen, axlarna och hjulet, men fräsa ut nya "pinnar" som det sitter fast i. Om jag gör dem i plexiglas eller liknande, och sen köper jag antingen kullager eller glidlager och hänger upp axlarna i. Någon som vet om man kan köpa (mindre kvantiteter) av glidlager, 4mm innerdiameter?

EagleSpirit: Behöver jag ha någon speciell färg för att måla hålen svarta? Min sprejfärg fäster inte... :( :lol:

Mvh. Daniel
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Re: Hastighetsmätare till robot (Med eget släphjul)

Inlägg av EagleSpirit »

du får åka ut i jymden och hämta ett svart hål som du moddar :roll:

skoj att du fick till något så snabbt, hjulet snurrar med lätt när du drar det fram och tillbaks eller? LEGO kan ha en tendens att smälta vid höga hastigheter. Om du ändå ska ha så hög hastighet och du verkar ha lite utrymme över, varför inte använda ett lite större hjul? Det kanske är möjligt att limma ihop ett par plexiskivor, fräsa ur dom som du gjort och sedan limma dit någon yta med grepp utanpå det. Alltså så att encoderhjulet blir hjulet.
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Re: Hastighetsmätare till robot (Med eget släphjul)

Inlägg av squiz3r »

Jo, Men om jag gör hjulet större, då måste jag ju ha fler fällt (= smalare fällt) eftersom jag vill ha en upplösning på max 5mm. Om jag gör som jag gjorde nu att encoderhjulet är större än hjulet så får jag ju bredare fält = lättare att mäta (även om det snurrar snabbare).

Jag håller på att bygga en lösning som gör att det inte kommer smälta, förhoppningsvis, annars får det bli kullager.. :)
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Re: Hastighetsmätare till robot (Med eget släphjul)

Inlägg av squiz3r »

>...och du verkar ha lite utrymme över...
Det är en prioriteringsfråga! Nu tar den här modulen upp större delen av platsen där jag hade tänkt ha batteri och elektronik... Men det löser sig på nått vis! :D


29-juni-2009 - Fortsatt byggande...

Lösningen för att legot inte ska smälta vid höga varvtal blev att fräsa ut en egen "legobit" i självsmörjande plast (POM). Hittade inga mått för tekniklego på internet, så det blev att mäta med skjutmåttet. Verkar som om dem har 8mm mellan hålen, och hålen är ca. 5,1mm i diameter.
Bild

Monterade på alla sakerna, kugghjulen passade perfekt.
Bild
Bild

Sen målade jag disken...
Bild

Nu är det bara elektroniken kvar!
Bild
Bild

Den nya plasten gjorde att axlarna snurrar mycket lättare! Jag har kopplat in en elmotor och snurrat snabbt på den (Hur snabbt är okänt..) och inga tecken på värme. Så det verkar fungera bra!

Mvh. Danne
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Re: Hastighetsmätare till robot (Med eget släphjul)

Inlägg av squiz3r »

29-juni-2009 - Elektroniken.

Nu när mekaniken är klar började jag fundera på elektroniken. Jag gjorde ett litet test, jag kopplade ur LED'n från reflexdetektorn, så jag använder bara fotottransistorn i den, också belyste jag den med en 940nm IR LED. Det reagerade den tydligt på, och gick ner till 0,0v.
Bild

Så så började jag modda kortet lite, så att det skulle ta mindre plats..
Bild

Detta gjorde att jag fortfarande hade en jättefin signal vid 311Hz.
311Hz = 311 / 7 * 60 = 2670 RPM
311 / 7 * 2*tt*11 / 1000 = 3,69 m/s
3,69 m/s * 3,6 = 13 Km/h
(Låter som rätt mycket.. Har jag räknat rätt? Ska göra lite mer tester...)
Bild

Det gick att ställa den i ett "mittläge" så att spänningen blev mitt emellan max och min... Men bara jag har en hysteres så ska det nog inte vara några problem!
Bild

Snurrade på lite snabbare, pulserna ser fortfarande fina ut!
457,1 Hz = 457,1 / 7 * 60 = 3918 RPM
457,1 / 7 * 2tt * 11 / 1000 = 4,5 m/s
4,5 m/s * 3,6 = 16,2 km/h
Bild

Så, vad tror ni? Verkar ju fungera bra! :)

Edit: Jodå, mina hastighetsberäkningar verkar stämma! Jag provade att driva den med skruvdragaren, den är specificerad till 900 RPM (batteriet är lite halvt oladdat..) och jag fick 98,72 hz, alltså 846,2 RPM. Stämmer ju jätte bra! :D
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Re: Hastighetsmätare till robot (Med eget släphjul)

Inlägg av squiz3r »

Tänkte att jag skulle börja koda lite på PIC'en nu, men jag vet inte riktigt hur jag ska göra...

En idé jag har är att göra såhär:

Kod: Markera allt

om (IO pinnen går från hög till låg)
{
     Sätt en timer på att räkna µS.
     Sålänge (IO pinnen INTE går från låg till hög)
     {
     }
     Stoppa timern och kolla vilket värde som ligger i den.
}
Då får man ju reda på hur lång tid det tar att köra 1/14dels varv (2tt11/14 = ~4,93mm). Så långt, så bra. Men vad händer då om man står stilla eller rör sig väldigt långsamt, då kommer hastigheten ju uppdateras jätte sällan! 100 hz uppdateringsfrekvens hade ju varit bra, så då tänkte jag att om den inte har gått de 5mm efter 10ms så antar man att den står stilla. Men det fungerar ju inte! För ifall den då kör i mindre än ~1,8km/h kommer den anta att den står stilla... Hur ska jag då göra!?

Snabba svar uppskattas så att jag kan börja programmera så snabbt som möjligt... :)
Användarvisningsbild
JonasJ
Inlägg: 653
Blev medlem: 11 september 2007, 16:02:26
Ort: Kinna
Kontakt:

Re: Hastighetsmätare till robot (Med eget släphjul)

Inlägg av JonasJ »

Tänker du inte bakvänt nu? Istället för att mäta tiden för en puls kan du ta en viss fast tid (tex. 20 ms) och räkna hur många pulser som du får under dessa 20 ms. Då kan du räkna ut hastighet och sträcka utifrån antalet pulser. Ju längre tid du mäter under desstu bättre svar får du så det blir en avvägning man får göra i slutändan: snabbt eller exakt.
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: Hastighetsmätare till robot (Med eget släphjul)

Inlägg av victor_passe »

Men du startar väll en räknare som bara räknar och en interrupt på att trigga när en pinne byter nivå och då pausar du räknaren och ser vad den blev.

Sedan bör du ha interrupt på overflow på räknaren som då kanske ökar ännu en variabel så du för större mätområde.
Men en 16 bitars timer med 1ms mellan varje ökning ger ju typ 1 minut mellan pulserna och är det saktare än det kan du ju klassa rörelsen som 0.
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: Hastighetsmätare till robot (Med eget släphjul)

Inlägg av v-g »

Tid mellan pulser är enklast. Vänta in en puls och ta sen tiden direkt från första till andra pulsens start.

Enklast att få dynamik i det sättet också, är det långt mellan pulserna kan man göra annat medans timern räknar och man kör en interupt på port change eller transition to high/low eller nåt finns mycket att välja på ;)

Ska du liks fram med fräsen kunde du ju fräst ett hjul med en massa hål längs kanten och sen ta en oring som "däck". Gör du ett med lite större omkrets så får du litet slitage på legoaxeln.
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Re: Hastighetsmätare till robot (Med eget släphjul)

Inlägg av squiz3r »

Visst har ni rätt i vad ni säger, men jag tror inte riktigt ni förstår mitt problem!

Men säg att roboten kör i 0,1 km/h, då kommer det ta 360ms att räkna tiden på 1 period, så visst går det att räkna den, inga problem med det, men då kommer jag ju få en uppdateringsfrekvens på ~2,5 hz, och jag skulle vilja ligga mellan 50 - 100Hz....
Skriv svar