mystery
Poef!......Schat, waar liggen de kaarsen?
Ik heb net een oude muis opengesloopt en google is losgelaten op de chip. Blijkt een mouse controller chip van genius te zijn, helaas is de datasheet in het russisch (voor de russen onder ons google: K0303028). Nu dacht ik, de opto sensoren en sensor wieltjes genereren puljes. Deze zou je in een pic kunnen gooien om zo twee servo motoren autonoom (dus zonder computer) te sturen met een muis. Is dit een heel onlogische gedachte, of zijn er andere, eenvoudigere, oplossingen voor zo'n constructie?
groet,
Martijn
Fantomaz
Ik moet hier weer vaker komen... Wat kun je zo'n forum als deze gaan missen. :-)
Alleen jammer dat je het niet volledig synchroon kunt laten lopen.
Je hand kan veel sneller gaan dan je motor bij kan houden, lijkt me...
Monster_Henry
My brain's all broken, but I'm feelin' alright, I feel like I'm chokin', but I'm feelin' alright, I'm goin' down fast, but I'm feelin alright, I'm not gonna last,but I'm feelin ALRIGHT! Oh Henry
misschien een soort van geheugen inbouwen dat de max bijhoudt van waar je hand op de x- as is geweest en waar op de y-as
als je dan de muis loslaat gaat hij daar op zijn maximale snelheid naar toe
en misschien iets dat, als je je hand terug beweegt dat hij deze waarde aftelt van de x- of y-as?
Goed gevonden, dat zeker wel!
mystery
Poef!......Schat, waar liggen de kaarsen?
Op 23 januari 2007 21:19:59 schreef Fantomaz:
Alleen jammer dat je het niet volledig synchroon kunt laten lopen.
Je hand kan veel sneller gaan dan je motor bij kan houden, lijkt me...
Ja, natuurlijk, ik ga aan zo'n projectje geen dure digitale snelle servo's besteden, gaat me meer om het principe en het knutselen. Vraag me uberhaupt af of een pic snel genoeg is om alle gegenereerde puljes te kunnen verwerken.
Fantomaz
Ik moet hier weer vaker komen... Wat kun je zo'n forum als deze gaan missen. :-)
Nee, dan Monster_Henry zijn oplossing...
Muisbewegingen gaan meestal met een redelijk rechte lijn.
Anders gezegd:
Als je met een boog je muis beweegt, doe je dat bijna nooit met een doel.
Dus wanneer de positie elke paar keer, of alleen bij stilstand, onthouden wordt, kun de servo's deze volgen.
Nadeel is wel dat je met 1 PIC moet rekenen én je servo's in positie moet blijven houden.
Houd me op de hoogte van de ontwikkelingen, Mystery!
Het intrigeerd me... 
Opzich als je 1 servo hebt,... kan je die gewoon op de interne PWM module hangen... scheelt veel code problemen.
Hoef je je alleen maar druk te maken over de input's.
elmowww
PA0EJE - www.eje-electronics.nl - e.jongerius[aapje]eje-electronics.nl - EJE Electronics - Elektronica/firmware ontwikkeling
Op 24 januari 2007 22:45:44 schreef Fantomaz:
Nadeel is wel dat je met 1 PIC moet rekenen én je servo's in positie moet blijven houden.
Heb je nou al eens interrupts gebruikt
(je antwoord doet vermoeden van neit
).
De "wieltjes" in een muis zijn niets meer dan een paar optische encoders. Waarschijnlijk zijn het per as 2 lichtsluisjes die een fase hebben van 90 graden.
Dat is erg makkelijk interfacen met een interrupt + uC, namelijk als volgt:
- Hang beide pinnen met een beetje ontdendering aan de microcontroller. Laat één van deze pinnen een interrupt genereren.
- In de interrupt routine kijk je vervolgens naar beide pinnen met een exortje: als pin1 == pin2 --> increment position, else decrement.
- dit kost amper tijd (zeker als je dit stukje mooi in asm doet).
Vervolgens kan je in je main routine posities van de servo`s berekenen en uitsturen. De PIC is het grootste gedeelte van de tijd aan het slapen.
Nog een efficentere oplossing met een pic:
Maak met wat externe logica een schakelingetje die pulsen voor beide richtingen geeft, dat was iets met een flipflopje en een logisch poortje oid. Stuur deze pulsjes naar de counter module van de pic. Eenmaal per servouitsturing lees je de counters uit en zet ze op nul, aan de hand daarvan kan je de positie weer berekenen.
Wat de pic dan alleen hoeft te doen: bereken de positie aan de hand van enkele registers, en stuur uit. Dat lukt nog met 2 duimen in je neus!
Ohwja, de servo`s kunnen dan óók nog eens op de PWM modules! nu zoeken naar één PIC met 4 countermodules en 2 pwm`s, zonder dat die overlappen!
Fantomaz
Ik moet hier weer vaker komen... Wat kun je zo'n forum als deze gaan missen. :-)
Op 24 januari 2007 22:55:49 schreef elmowww:
Heb je nou al eens interrupts gebruikt(je antwoord doet vermoeden van neit
)
Nope... Erg beperkt...
Ik ben allang blij dat ik PICbasic onder de knie begin te krijgen.
Ik heb de hele Datasheet van de 16F877A uitgeprint (232 pagina's
) en zie dat daar veel voorbeelden in staan die allemaal ASM georienteerd zijn.
ASM zal waarschijnlijk de "voertaal" zijn van de PIC denk ik.
elmowww
PA0EJE - www.eje-electronics.nl - e.jongerius[aapje]eje-electronics.nl - EJE Electronics - Elektronica/firmware ontwikkeling
Op 24 januari 2007 23:06:39 schreef Fantomaz:
[...]Nope... Erg beperkt...
Ik ben allang blij dat ik PICbasic onder de knie begin te krijgen.
Ik heb de hele Datasheet van de 16F877A uitgeprint (232 pagina's) en zie dat daar veel voorbeelden in staan die allemaal ASM georienteerd zijn.
ASM zal waarschijnlijk de "voertaal" zijn van de PIC denk ik.
ASM is bijna 1:1 te vertalen naar HEX.
Vind je het gek dat ze die gebruiken? asm IS de instructieset van de PIC 
Maarja, als je nog een met interrupts wilt gaan werken mail je me maar... Mail me trouwens ook eens een update van je project 
Ben Devos
Visit Me: http://www.basicfox.com
ik heb zo'n timing problemen door servo's te gebruiken nog opgelost met digitale I²C potentiometers en een NE555 schakelingetje dat ik had gevonden om de servo's aan te sturen, eens de servo moest veranderen stelde ik mijn I²C potentiometer anders in (256 stapjes al tamelijk nauwkeurig
) en toen kon ik 10 min wachten en de servo bleef mooi op zijn plaats 