Motorfeedback

Robot, CNC, Pneumatik, Hydraulik, mm
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Motorfeedback

Inlägg av $tiff »

Nu fungerar min robot nästan som den ska. Då ställer man sig frågan: Är den färdig nu?
Svaret är naturligtvis: Nej!

Nu ska den förbättras (igen)! :D

Det som först dyker upp i mitt huvud är ett lite mer sofistikerat motorstyrningssystem.
Motorerna styr jag med PWM (duh!), men nu vill jag även ha feedback på motorerna så att man via fjärrkontrollen styr hur fort hjulaxeln snurrar istället för hur stor dos PWM de får.

Jag skulle alltså vilja veta vilka metoder det finns att åstakomma en motorfeedback som går att läsa av från en PIC (AD- eller logiknivåingång, det kvittar). De alternativ jag hittat är:

1. Man fixar en pappskiva med hack i på hjulaxeln som via optik ger ett visst antal pulser per varv, ja ni förstår nog hur det går till!?

2. En fiffig krets mäter strömmen genom motorn (egentligen spänningsfallet på ett litet motstånd i serie med motorn väl?), omvandlar detta mätvärde via nån operationsförstärkare (som jag inte alls är hemma på :( ) och läser av med PIC via AD-porten.

3. Man kollar spikarna en DC-motor genererar när motorlindningarna byter polisarition (eller hur det nu är... 8) ). länk.
Frågor till denna ritning är ju om den funkar till de motorer jag tänkt använda: Allt från legomotorer till maffiga motorer i (billiga) batteridrivna skruvdragare. Självklart ska jag ha två motorer. Kommer de isåfall störa ut varandra om man använder denna metod?

Fler metoder som inte är alltför invecklade? Hur har ni själv gjort?
Rymdninja
Inlägg: 330
Blev medlem: 15 december 2003, 13:41:25
Ort: Göteborg

Inlägg av Rymdninja »

Alternativ ett (det med pappskivan) ger även en annan intressant möjlighet.
Samtidigt som du kan vete hur snabbt hjulet snurrar, kan du även räkna ut var du är med så kalla odometri.
Bara du vet var du börjar så kan du veta hur du tog dig dit. Räkna pulserna på varje hjul bara, så vet du :)
Men du kanske redan visste allt det här...
Användarvisningsbild
Illuwatar
Inlägg: 2256
Blev medlem: 10 november 2003, 14:44:27
Skype: illuwatar70
Ort: Haninge
Kontakt:

Inlägg av Illuwatar »

Jag röstar på metod 1 - av de tre du nämnde är den enklast, flexiblast och mest tillförlitlig. Det är den jag skulle välja i denna applikation (har dock inte byggt någon robot).

Metod 2 kräver att motorn har en strömkurva som är propotionell mot varvtalet på ett linjärt sätt. Annars blir det lite trixigt att räkna ut rätt varvtal över hela motorns varvtalsområde. Sedan får du räkna med att en belastad motor drar mer än en utan last. Detta måste man ha med i beräkningen.

Metod 3 verkar intressant som alternativ till 1, speciellt om det är ont om plats eller svårt att montera den perforerade skivan på motoraxeln. Är den mekansika aspekten inte ett problem är metod 1 mer noggrann om en täthålad skiva används (man kan få många pulser per varv, dessutom jämt fördelat över hela cirkeln).
Användarvisningsbild
RDX*
EF Sponsor
Inlägg: 1646
Blev medlem: 28 maj 2003, 22:52:04
Ort: Skåne - Lund

Inlägg av RDX* »

Metod 1 är nog den bästa och enklaste. I stället för att använda optiska sensorer så kan man använda en hallsensor. Sedan är det bara till att fästa en liten magnet på något som snurrar. Den finns det två alternativ till att få info om hastigheten. Räkna pulserna eller räkna tiden mellan pulserna. Vad som blir bäst beror på hur snabbt hjulen snurrar mm.

Jag har två ganska saftiga motorer som har integrerade sensorer. På dom så sitter det en skiva på axeln bakom motorn. På skivan sitter det sedan en massa hål som avläses med en läsgaffel.
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Åkej. Överraskande många röster på alternativ 1.

Jag var faktist intresserad av 3an eftersom man slipper göra mekaniska ingrepp. Men frågan är ju hur tillförlitlig den kan vara.

En hallsensor verkar ju smart, så slipper man en pappkiva eller dylikt och kan sätta magneterna direkt på hjulen (tänkte ha ganska stora hjul). Fast det räcker inte med en magnet eftersom de isåfall måste sitta på drivaxeln. Man måste ju ha åtminstone tre (helst fler) per varv för att kunna göra moggranna mätningar. Att räkna längden mellan pulserna ger bra och snabba värden. Lite trixigt att räkna två pulser samtidigt bara (från båda hjulen alltså)?

Hur fungerar en hallsensor egentligen? Att den reagerar på magnetism har jag förstått. Men är den inte väldigt känslig? Kan den störas ut av motorns magneter, strömspikar eller av för många magneter på hjulet? Vad får man ut för signal? En spänning antar jag, måste den förstäkas och hur går det till?

Tack för svaren hittills! :wink:
Rymdninja
Inlägg: 330
Blev medlem: 15 december 2003, 13:41:25
Ort: Göteborg

Inlägg av Rymdninja »

RDX* skrev:Metod 1 är nog den bästa och enklaste. I stället för att använda optiska sensorer så kan man använda en hallsensor. Sedan är det bara till att fästa en liten magnet på något som snurrar. Den finns det två alternativ till att få info om hastigheten. Räkna pulserna eller räkna tiden mellan pulserna. Vad som blir bäst beror på hur snabbt hjulen snurrar mm.

Jag har två ganska saftiga motorer som har integrerade sensorer. På dom så sitter det en skiva på axeln bakom motorn. På skivan sitter det sedan en massa hål som avläses med en läsgaffel.
Hmmm...om du inte har väldigt många magneter på "hjulet" så kommer man att få väldigt konstiga världen....i extrem fall, när roboten kör långsamt" kommer du att mäta någon sorts medel hastighet över en tid....givetvis, med fler magneter större precision, men är inte pappskivan enklare...ännu bättre slakta en gammal mus och använd hjulen därifrån?
Användarvisningsbild
grym
EF Sponsor
Inlägg: 16772
Blev medlem: 16 november 2003, 12:22:57
Ort: i det mörka småland

Inlägg av grym »

4 analog feedback
liten motor kopplad till drivmotorn och spänningen ut är ungefär lika med varvtalet

ok det är mycket lättare om man har en analog feedbackslinga, men det funkar
Användarvisningsbild
RDX*
EF Sponsor
Inlägg: 1646
Blev medlem: 28 maj 2003, 22:52:04
Ort: Skåne - Lund

Inlägg av RDX* »

Jag ska själv använda en A2340EUA (elfa:73-337-19) till ett project jag har. Den ger hög signal om det finns en sydpol i närheten och 0v annars. Den fungerar mycket bra. Den har en bra hysteres i den så det blir fina signaler.
Och angående om motorn stör den, så har jag inte hunning testa det än. Jag hoppas den inte störs ut av en motor då jag ska placera den bara någon cm från motorn. Men i och med att den bara reagerar på sydpolen så blir den förhoppningsviss inte för känslig för störningar.
Men fördelen med en hallsensor är att det blir rubust. Om man jämfört med tex. en reflexdetektor som bara har en brännvid på 1mm så fungerar hallsensorn bara magneten är inom ett par cm.
Skriv svar