Ik zou graag een rijdend robotje je willen maken. Een roomba achtig platform wat eventueel een klein stofzuigertje zou kunnen verplaatsen. Ik heb hiervoor al deze wielen gekocht en 22mm Maxon motoren. Het geheel ga ik aansturen met een arduino (en later met Raspberry Pi). Echter zou het toch wel handig zijn encoders op de motoren te monteren om enigsinds recht te kunnen rijden.
Ik heb al gekeken naar Maxon motoren met encoders op Ebay maar deze zijn vaak erg duur. Nu heb ik encoders uit een printer gesloopt, deze passen ook mooi op een 4mm as. Echter is er weinig ruimte op de uitgaande as van de motor voor montage helaas.
Nu zag ik op Dealextreme deze motoren waar de encoder op de achterkant zou kunnen. Dit asje aan de achterkant heeft echter een diameter van 2mm en steekt maar 3 mmm uit. Wat zou ik eventueel kunnen doen om de encoder hierop te monteren? Kreeg al de suggestie om het gat van de encoderschijf te vullen met blik. Maar dat geeft niet een goede passing waarschijnlijk.
Een andere optie zou zijn om bijvoorbeeld zo'n lagerblok te nemen met een as van 4mm en daar het wiel en de encoder op te schroeven. En dan de motor met een overbrenging erop te zetten. Echter wordt dat ook al weer snel duur.
Wie kan mij een goede oplossing hiervoor adviseren? Of een andere shop met goedkope motoren met encoder bijvoorbeeld 
Ikzelf zou de encoders weglaten en beide motoren d.m.v. een pwm-regeling aansturen.
Met een uC kun je de snelheid per motor regelen en de robot zal toch een keertje af moeten draaien.
Lucky Luke
Eluke.nl | handgetypt | I'm a poor, lonesome cowboy, with a long, long way to go.
Met encoders hoef je alsnog niet rechtdoor te rijden, die zeggen alleen hoe snel de wielen draaien. Als een wiel slipt ga je alsnog niet perfect rechtdoor.
(Ik zit met een soortgelijk probleem, ik wil dat m'n robot het doorheeft als 'ie ondanks de afstandssensor ergens tegenaangereden is. De wielen blijven dan gewoon draaien. De door de motoren opgenomen stroom is ook niet per se hoger want ik heb gladde vloerbedekking dus dat levert niet heel veel wrijving op, ook werkt die stroommeting niet lekker samen met PWM, dat geeft gekke pieken die onterecht voor een botsing worden aangezien. Dus ik moet eigenlijk ook meten of m'n robot beweegt. Niet of de wielen draaien oid, maar de richting van bewegen van de robot zelf)
Met een accelerometer kun je de versnelling meten. en van daaruit terugrekenen naar de snelheid. In diverse richtingen. Dat ben ik aan het proberen, maar omdat zo'n ding ook de gravitatieversnelling meet kom ik in de problemen als de robot een hellinkje pakt, ook is het te onnauwkeurig omdat ik te traag sample.
Misschien kun je iets met een (optische) muis? Daaruit zien te halen welke kant de robot op beweegt en dan bijsturen?
Sprite_tm laat met een optische muissensor een bristlebot (min of meer) rechtdoor gaan.
AC/DrieC
Den Dries www.hulens.be
Als je een raspberry gaat gebruiken heb je USB poorten. Je zou 2 optische muizen (5euro/stuk) kunnen gebruiken/slopen, voor dit doel ? Allemaal misschien wat moeilijker, maar wel cooler 
@Lucky Luke: juist te laat 
SparkyGSX
Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
Je kunt ook de stroomrimpel van de motoren meten, die veroorzaakt wordt doordat de koolborstels over de collector lopen en daarmee steeds een andere spoel in- en uitschakelen. Ook daarbij is het lastige dat de PWM regeling het moeilijker maakt om de meting te doen.
Je zou het PWM signaal door een LC filter kunnen halen om de meting mogelijk te maken (meten tussen het filter en de motor), maar het lastige is dat de motor zelf ook inductief is, en met een extra spoel in serie kan dat hele zaakje ook gaan oscilleren.
Ik geloof dat 4QD hier wel eens een stukje over geschreven heeft. Als ik me goed herinner, slaan zij steeds een paar PWM periodes over om de meting mogelijk te maken. Het nadeel van een dergelijke constructie is dat je de snelheid wel redelijk nauwkeurig kunt meten, maar niet zomaar een aantal pulsen kunt tellen om de afstand te bepalen.
@Lucky Luke: hoe doe je de stroommeting? Met een shunt, al dan niet met een meetversterker? Zo'n shunt is altijd licht inductief, dus je kun niet vlak na het schakelen van de MOSFET gaan meten. Helaas is het met AVR en PIC controllers vaak lastig of onmogelijk om synchroon met de PWM kanalen de ADCs te triggeren (al heb ik die dingen al een tijd niet meer gebruikt; ik weet niet precies wat de nieuwere types kunnen).
@TS: kun je geen lichte en donkere vlakjes op de zijkant van de wielen maken, waar je een of twee reflectie sensoren naar laat kijken? In principe weet je altijd wat de draairichting is, en dan heb je aan 1 sensor genoeg om de snelheid en afstand te bepalen. Dat signaal is ook nog eens veel eenvoudiger te tellen met een microcontroller, aangezien de AVR en PIC controllers zelden of nooit hardware aan boord hebben om incrementele encoders met een hoge frequentie goed uit te lezen.
Als de as aan de achterkant van de motor niet uitsteekt, maar wel bereikbaar is, zou je ook nog kunnen proberen daar een gaatje in te boren en draad in te tappen, maar met een stalen as met een diameter van 4mm lijkt dat me bijna onmogelijk.
Lucky Luke
Eluke.nl | handgetypt | I'm a poor, lonesome cowboy, with a long, long way to go.
Op 11 maart 2012 18:53:03 schreef SparkyGSX:
@Lucky Luke: hoe doe je de stroommeting? Met een shunt, al dan niet met een meetversterker? Zo'n shunt is altijd licht inductief, dus je kun niet vlak na het schakelen van de MOSFET gaan meten. Helaas is het met AVR en PIC controllers vaak lastig of onmogelijk om synchroon met de PWM kanalen de ADCs te triggeren (al heb ik die dingen al een tijd niet meer gebruikt; ik weet niet precies wat de nieuwere types kunnen).
Shunt, geen versterker. Synchroniseren is op zich wel mogelijk* maar dan nog meet ik de piekstroom. Kan ik net zo goed tig keer achter elkaar meten en daar de hoogste waarde van pakken. Dat doe ik dan ook en dat werkt aardig, maar alsnog false positives als de robot versneld. Ik vind er wel wat op**
Ben momenteel ook met andere dingen bezig. (Hoewel, met een topic als dit...)
*zeker bij AVR, daar kun je een timer bij overflow oid de adc laten starten, als je diezelfde timer voor PWM gebruikt loopt dat dus synchroon. Maar mijn robotje werkt met een PIC. Ik gebruik allebei die soorten uc's)
**mogelijk ook een muis eronder, als het met de accelerometer niet al lukt
Op 11 maart 2012 18:24:43 schreef AC/DrieC:
@Lucky Luke: juist te laat
(Al moet ik toegeven: aan de USB had ik nog niet gedacht. En ik dacht aan 1 muis, die gewoon naar de grond kijkt, niet naar een wiel.)
misschien een beetje simpel gedacht, maar wel te gebruiken met arduino of raspbarry pi.
in het midden van je robot een vrij draaiend wieltje(zwenkwiel). als je robot draait zal het wieltje meedraaien.
een precisie potmeter op verticale as. die op de adc en viola een richtingsmeter dinges.
omdat het wieltje vrij draait heb je minder last van slip. Fouten in de berekening voor je pwm maken niet uit.
hij hoeft maar 180graden te kunnen draaien. in het midden vooruit en uitslag beide kanten op.
denk wel dat de muis iets meer precisie heeft, je kan mits juist geplaatst alle snelheden uit de muis halen.
edit: of er tussen geplaatst
en zwenkwiel was ik even kwijt
maar blijkbaar was de omschrijving goed genoeg 
Jeroen
AC/DrieC
Den Dries www.hulens.be
Ah ik bedoelde 2 muizen die naar de grond kijken, 1 aan elk wiel, al zul je met 1 muis waarschijnlijk ook wel voldoende hebben.
Op 11 maart 2012 18:24:43 schreef AC/DrieC: Als je een raspberry gaat gebruiken..
Leuk, maar niet leverbaar. Ze gaan verkocht worden via Farnell en RS, voorlopig geen particulieren en maar 1 per klant.
Op 11 maart 2012 19:06:12 schreef jeroenk50:...arduino raspbarry pi...
arduino OF raspberry bedoel je denk ik, of heb ik iets gemist 
Een zwenkwieltje is wel een leuk idee trouwens.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
GJ, hoewel beide bedrijven normaal liever aan alleen bedrijven leveren, is de deal met de raspberry pi foundation dat ze deze gewoon aan particulieren moeten leveren. Wat ik wel flauw vind is dat dit soort dingen niet vanaf nul geregeld waren, waardoor de particulieren niet altijd makkelijk hebben kunnen bestellen, maar nu dus allemaal op de "wachtlijst" staan.
Dank voor alle reacties!
De Raspberry heeft wel wat aansluitingen voor I/O maar ik begreep dat je het Gertboard nodig had als je makkelijk hardware wil aansturen. En de rPi heeft usb, dus daar kan je ook makkelijk een arduino aan hangen.
Aan het zwenkwiel of een encoder op de wielen zelf met lagere resolutie (met geprinte vlakjes) lijken me tot nu toe de handigste oplossingen!
SparkyGSX
Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
@Lucky Luke: ja, je kunt die ADC wel triggeren op de timer overflow, maar als je die ook gebruikt om het PWM signaal te genereren, sample je dus precies op het moment dat je de MOSFET gaat schakelen. Je wilt juist nog heel even wachten tot de spanning over die shunt gestabiliseerd is. Het zou misschien wel goed gaan (behalve bij hele kleine pulsbreedtes) als je symmetrische PWM signalen genereert, en dan bij het top of bottom event de ADC kunt triggeren, omdat je op die manier precies het midden van de puls te pakken hebt.
Door de inductie van de weerstand kan de spanning kortstondig veel groter zijn dan wanneer je dezelfde stroom er DC doorheen zou drukken. Zeker als je op willekeurige momenten sampled, en het hoogste sample pakt, ga je daarmee natuurlijk flink de mist in.
Ik zou eerst alle samples die veel te laag zijn (MOSFET uit) weg mikken, en daarna met een median filter (het middelste sample, dat is dus niet hetzelfde als het gemiddelde) een sample of het gemiddelde van de middelste paar samples pakken om de stroom te berekenen.
Helaas is een median filter niet echt eenvoudig efficiënt te programmeren. Als je een lopend filter maakt (dus steeds 1 sample erin, een oude eruit, en een nieuw resultaat berekenen) is het nog wel te doen, mits de samplerate niet al te hoog is. Helaas is de rekencapaciteit van een 8-bit AVR niet bepaald ruim te noemen voor zulke dingen.
Het grote voordeel van een median filter is dat je daarmee de sporadische uitzonderlijke metingen 100% kunt onderdrukken.
Op 11 maart 2012 19:45:41 schreef rew:
GJ, hoewel beide bedrijven normaal liever aan alleen bedrijven leveren, is de deal met de raspberry pi foundation dat ze deze gewoon aan particulieren moeten leveren....
Klopt als een bus, maar de eersten gaan naar bedrijven, tot er uit voorraad geleverd kan worden, tenminste dat meen ik toch echt gelezen te hebben. Ik kan het niet uit de mail van RS halen, en hun site is nu plat voor onderhoud.
--edit--
nu op de RS site:
RS Components levert echter niet aan particulieren, maar enkel aan bedrijven die over een KvK- of BTW-nummer beschikken.
[Bericht gewijzigd door GJ_ op (15%)]
Ik heb hier nog een andere techniek gevonden, de motor even als generator gebruiken:
http://www.acroname.com/robotics/info/articles/back-emf/back-emf.html
Ik heb overigens nog een andere motor gevonden. Deze heeft een 2.5 mm as aan de achterkant. Dan zou ik nog een adapter moeten hebben van een 2.5 naar 5 mm as. Dat zou niet meer zijn dan een buisje met een binnendiameter van 2,5mm en een buiten van 5. Bestaat zoiets?
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Merk op dat je dan de SNELHEID aan het meten bent en niet de positie. Stel dat je precies evenveel back-emf op beide wielen hebt, dan nog kan de motorconstante van beide motoren iets verschillen. Maar anders nog zit je met meetfouten, waardoor je altijd een grote cirkel zal rijden.
Anoniem
Op 11 maart 2012 18:09:31 schreef Kareltje:
Ikzelf zou de encoders weglaten en beide motoren d.m.v. een pwm-regeling aansturen.
Met een uC kun je de snelheid per motor regelen en de robot zal toch een keertje af moeten draaien.
Dat is zo'n beetje de meest domme optie die je hebt. Wanneer je snelheid meet weet je zeker hoe hard het betreffende wiel ronddraait. Met PWM stop je een bepaald vermogen in een motor. Wanneer links net iets meer mechanische weerstand heeft dan rechts ga je al nat.
Bij alle methoden gaat het fout wanneer de wielen niet exact even groot zijn.
Is een digitaal kompas of iets dergelijks niet een beter idee? Dan weet je precies in welke richting je rijdt, wat de afwijking is en hoe je moet corrigeren.
SparkyGSX
Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
Een digitaal kompas werkt binnen niet echt lekker, zeker als je in een gebouw zit dat veel staal bevat.
Het is niet waar dat je met PWM de motor een constant vermogen geeft; was dat maar zo, dan was het aansturen van motoren lekker eenvoudig geweest. Met PWM leg je een effectieve spanning aan, die een fractie is van de voedingsspanning. De stroom die er dan gaat lopen, is afhankelijk van de snelheid van de motor, en andere eigenschappen van de motor, zoals de weerstand, inductie, etc. Als de motor een bepaalde snelheid heeft, en je een kleine pulsbreedte gebruikt, kan die stroom zelfs negatief worden, als je een H-brug of halve brug gebruikt (met alleen een transistor of MOSFET en een diode, zoals bij de CO motorregeling, kan dat niet).
Desalniettemin blijft je punt wel gewoon geldig; je kunt wel weten wat voor PWM waarde je uitstuurt, maar je hebt dan geen flauw idee van de snelheid.
@TS: Zoals REW en ik al eerder aangaven: je hebt niet zo heel erg veel aan het meten van de snelheid. Het is beter dan helemaal niets meten, maar met alle meetfouten en onnauwkeurigheden in de berekeningen kun je alsnog een flinke afwijking krijgen. Het is dan beter om de afgelegde afstand van elk wiel te meten.
Lucky Luke heeft natuurlijk ook gelijk dat je daar nog een mogelijke afwijking krijgt, als de wielen een beetje slippen. Met een optische muis heb je daar geen last meer van, als je tenminste naar de ondergrond kunt kijken. Dergelijke systemen heb ik vaker gezien, en dat werkt zelfs nog bij verbazend hoge snelheden (10km/h of zo). Je bent dan natuurlijk wel wat beperkt in de ondergrond waar je op kunt rijden.
Ik zou zelf gewoon een paar ronde stickers met streepjes maken, die aan de binnenkant van de wielen plakken, en met een reflectiesensor die streepjes tellen.
plano
Webshop voor Electronic Prototype | http://eProto.nl/
Heb je de mogelijkheid om een rond magneetje aan de as (achterzijde motor) te lijmen en hier 2 hall sensoren te plaatsen ? Dit werkt erg goed. Geen gedoe met stof gevoelige vaantjes (wieltje met sleufjes) die een IR sluisje moeten passeren.