Val av microcontroller

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
evert2
Inlägg: 2182
Blev medlem: 18 april 2004, 22:47:56
Ort: Jönköping

Val av microcontroller

Inlägg av evert2 »

Nja, denna fråga har ni säkert fått förr...men om jag beskriver applikationen kanske det blir lite mer intressant... :roll:

Jag vill bygga en radiostyrd "robot" med två drivhjul "a la robotwars". Jag vill gärna använda mig av återkoppling via enkoder. Tanken är alltså att controllern skall ta imot signalerna från mottagaren, mixa de två kanalerna "fram-back" och "höger-vänster" så att inte varje hjul behöver "spakas" separat (tankstyle). Min idé är att mottagarsignalerna skall styra avläsningen av en tabell. Denna tabell skall innehålla "börvärden" för hur snabbt hjulen skall snurra. Tanken är då att regleringen av hjulhastigheterna skall ske genom inkremering och dekremering (ökning och minskning) av pulsbredden på pwm-signalen till h-bryggorna.

HELST så vill jag att om ena motorn inte kan uppnå efterfrågad hastighet, utan bara kan uppnå tex 70% av denna hastighet - så skall detta ske även på den ANDRA motorn så att proportionalitet uppnås detta bör medföra divisionberäkningar vilket jag antar är ett tungt för en microcontroller. Detta ser jag mest som en önskvärd "bonusfunktion".

Frågan är slutligen vilken (eller vilka) microcontroller(s) kan/bör jag använda för denna applikation.

:humm:

Edit (tillägg):

Jag antar att det krävs MÅNGA timers för att det skall funka.

En ELLER 2 (?) går väl åt till PWM-signalerna, en eller två till signalerna från radiomottagaren samt två timers till enkoder funktionen.
Det blir ju 4-6 timers, tänker jag rätt?
Användarvisningsbild
Chribbe76
EF Sponsor
Inlägg: 1167
Blev medlem: 17 januari 2004, 22:43:17
Ort: Stockholm

Inlägg av Chribbe76 »

Jag tolkar det som att du vill servo-kontrollera motorerna, inte bara läsa av farten med encoder:na.
Ide'n är mycket bra och kommer resultera i distinktare styrning.
Det skulle säkert gå att göra med 1 Avr eller 1 Pic men risken är att du får problem med avläsningen om du har hög upplösning och roboten är väldigt snabb.
Jag skulle i första hand ha fokuserat på en snabb Avr som kan Pwm:a 2 motorer, quadrature avläsningen får ske via mjukvara, man kan ju räkna ut i förväg om det kommer funka eller inte.

Annars har dsPic inbyggd Quadrature-räknare om du vill göra riktiga högprestanda servon men en sån kan bara läsa en encoder. (det finns en vanlig Pic med Quadrature oxå men jag kommer inte ihåg vilken).
Vad sägs om en dsPic som läser en encoder med hårdvara och den andra med mjukvara och Pwm:ar båda motorerna.

Jag undrar om det finns någon Avr med quadrature-räknare, nån som vet?
evert2
Inlägg: 2182
Blev medlem: 18 april 2004, 22:47:56
Ort: Jönköping

Inlägg av evert2 »

Du har förstått det helt korrekt!

Ja, jag såg att dsPIC:en (motor control series - i alla fall) hade encoder men jag tror även en del "18F"-PIC:ar har denna finess. Skulle ju vara skitbra om det fanns en microcontroller med TVÅ encoders....menmen... :roll:
danei
EF Sponsor
Inlägg: 27423
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Inlägg av danei »

Jag skulle tro att det räcker bra med en vanlig PIC med två PWM kanaler.
Användarvisningsbild
Hedis
Inlägg: 2493
Blev medlem: 8 december 2003, 15:10:44
Ort: Vänersborg
Kontakt:

Inlägg av Hedis »

Man kanske skall försöka bygga upp allt i moduler? en för motorer eller kanske tom. en för varje motor som sköter PWM:andet och encoder avläsningen. En som styr motor-korten. En som läsare utav givare, sköter yttre ljus mm.

Allt kan ju köras på I2C-bus. Såg en Robotgräsklippare som var uppbyggd på detta sättet. (var inte det förresten ngn här på forumet som bygt den som projektarbete? har för mig han läste natur/teknik)
Användarvisningsbild
Chribbe76
EF Sponsor
Inlägg: 1167
Blev medlem: 17 januari 2004, 22:43:17
Ort: Stockholm

Inlägg av Chribbe76 »

Mjukvaru-quadrature på en Pic:
C:a 20 klockcykler per encoder.
upplösning (linjär rörelse) =0.3mm
Maxfart=40Km/h

Det blir c:a 37000 avläsningar /sek
2st quadrature-räknare blir då c:a 15% av cpu-kraften med 10mips.

Ser ju lovande ut men att servo-kontollera 2st motorer kräver en del oxå, det är visserligen ingen cnc-maskin så man måste inte göra en "klockren" servo-kontroller.
Att läsa av radion borde inte ta så mycket kraft, eller?

(När det gäller encoderHjul så tänk på att 250cpr betyder 1000 steg/varv men verifiera att det stämmer innan du köper något.)
evert2
Inlägg: 2182
Blev medlem: 18 april 2004, 22:47:56
Ort: Jönköping

Inlägg av evert2 »

Såg att PIC18F2331/2431/4331/4431 har QEI (Quadrature Encoder Interface).

Nä, nån klockren servocontroller behövs inte, å 40 km/h lär jag inte uppnå...max 30.

Vad menas med "250 cpr"?
Användarvisningsbild
Chribbe76
EF Sponsor
Inlägg: 1167
Blev medlem: 17 januari 2004, 22:43:17
Ort: Stockholm

Inlägg av Chribbe76 »

250 Counts per round
evert2
Inlägg: 2182
Blev medlem: 18 april 2004, 22:47:56
Ort: Jönköping

Inlägg av evert2 »

Hmmm.....Cribbe: "250cpr betyder 1000 steg/varv" ....nu blir jag lite osäker.

Tanken är att en timer skall användas för att inte avläsningen av mottagarsignalen skall ta för mycket av tiden. Man skulle kunna använda sig av hårdvara, för att "underlätta arbetet" för microcontrollers.
Användarvisningsbild
MicaelKarlsson
Inlägg: 4669
Blev medlem: 18 juni 2004, 09:16:07
Ort: Aneby
Kontakt:

Inlägg av MicaelKarlsson »

Hedis skrev:Man kanske skall försöka bygga upp allt i moduler?
Det är nog att föredra.

Mindre mikrokontrollers borde väl också vara billigare och så kan man uppgradera bit för bit om man så vill. Eller om olyckan är framme och något luktar bränt blir det mindre att återställa.
Sen kan man ju få upp lite mera fart i programmen om de inte är allt för komplexa.
evert2
Inlägg: 2182
Blev medlem: 18 april 2004, 22:47:56
Ort: Jönköping

Inlägg av evert2 »

Ja, det är nog inte dumt......då behöver man ju inte förlora någon flexibiltet heller vilket man gör om man använder typ vippor å grindar! Hade en fundering ett kort tag att använda mig av räknare, oscillator å latch för att tolka signalen från mottagaren...men det känns lite "B".

Dessutom: dsPIC går väl inte att programmera med nån VANLIG programmerare så det kanske faller redan där........ :roll: ...ja menar gå å betala 2000spänn (eller mer) för en sådan har man ju inte lust till.
Användarvisningsbild
MicaelKarlsson
Inlägg: 4669
Blev medlem: 18 juni 2004, 09:16:07
Ort: Aneby
Kontakt:

Inlägg av MicaelKarlsson »

Har varit med å "kladdat" i ett projekt om intelligent gräsklippare som var modulbyggd och det var ingen dum idé.
Där var det en mega128 som skötte kommunikationen med användare och positionering (min bit) samt en FPGA (min handledares bit) och dessa kommunicerade med varann mha ett "hemmasnickrat" protokoll. Så AVR´n skickade kommandon till FPGA om vad den skulle göra och så fortsatte AVR´n att göra det den gjort och med vissa mellanrumm kollade om FPGA var klar. Riktigt bekvämt och effektivt.
Senast redigerad av MicaelKarlsson 17 december 2004, 18:20:00, redigerad totalt 1 gång.
evert2
Inlägg: 2182
Blev medlem: 18 april 2004, 22:47:56
Ort: Jönköping

Inlägg av evert2 »

Det låter ju bra...men många FPGA "tappar minnet" vid spänningsbortfall väl? Det kanske går bra med en CPLD?
Användarvisningsbild
Chribbe76
EF Sponsor
Inlägg: 1167
Blev medlem: 17 januari 2004, 22:43:17
Ort: Stockholm

Inlägg av Chribbe76 »

Om 250cpr betyder 250st hål i skivan (Agilent specar så iaf) så får man ut 1000 steg/varv.

Visst kan det vara behändigt att dela upp projektet i flera delar men det är mycket roligare (min åsikt) när man har lyckats med att få en controller att göra väldigt många saker samtidigt + att man slipper kommunikationen mellan dom olika delarna.

Om man tycker avläsningen av kodskivorna är jobbigt så finns det färdiga kretsar som kan räkna åt dig.

Har du skaffat motorerna?
Användarvisningsbild
MicaelKarlsson
Inlägg: 4669
Blev medlem: 18 juni 2004, 09:16:07
Ort: Aneby
Kontakt:

Inlägg av MicaelKarlsson »

Ingen aning, men det finns säkert någon på forumet som kan sånt!

EDIT: Gäller FPGA & CPLD
Skriv svar