Ich suche nach c-code, um den output einer alten serial mouse (mit rollerball) zur entfernungs- und richtungsbestimmung zu nutzen.
Kann jemand helfen?
Ich plane die mouse hardware anstatt des halben tischtennisball zu montieren.
Druckbare Version
Ich suche nach c-code, um den output einer alten serial mouse (mit rollerball) zur entfernungs- und richtungsbestimmung zu nutzen.
Kann jemand helfen?
Ich plane die mouse hardware anstatt des halben tischtennisball zu montieren.
Ich hätte Software für eine eine Optische Maus ;) hab ihn im RN-Wissen gepostet. Allerdings musst du dazu den Sensor Chip direkt auslesen.
https://www.roboternetz.de/wissen/index.php/Maussensor
D.h. du musst die Maus auseinander nehmen, was aber wohl sowieso nicht vermeidbar ist, weil sie sonst wohl zu Hoch für deinen Asuro wäre.
wenn du eine kugelmaus nutzen möchtest, dann dürfte es am einfachsten sein, den ganzen muaskörper irgendwie zu nutzen und dann mithilfe der 2 gabellichtschranken, deren räder durch die mauskugel angetrieben werden, zu arbeiten. dazu musst du dann nicht die comport-hardware und die chips benutzen, sondern du kannst die originalen odometrieteile durch die gabellichtschranken ersetzen.
nochmal auf deutsch =)
also die originale odometrie besteht aus einer ir-LED und einem ir-Fototransistor. dieses paar ist zweimal vorhanden - rechts und links.
eine kugelmaus hat zwei gabellichtschranken (diese bestehen ebenfalls aus led und transistor, dazwischen dreht sich ein durch die kugel angetriebenes rad mit löchern.) wenn du nun also die originale odometrie entfernst oder zumindest die leiterbahnen totlegst (auchtung: die backleds gehn dann auch nimmer) dann kannst du anstelle der originalen led und tranistor auch die led und transistor der maus anschliessen. dann wäre zum beispiel data[0] die gezählten ticks nach vorn, und data[1] die ticks nach rechts. damit könnte man dann schon arbeiten.
Hallo
Eine alte serielle Maus sendet ihre Daten gezwungenermaßen über eine serielle Schnittstelle. Wenn du ihr einen IR-Adapter bastelst (quasi der selbe wie zum Flashen) kannst du sie einfach über die IR-Schnittstelle des asuros einlesen. Soweit ich mich erinnern kann, sendet eine Maus einfach stur ihre Daten ohne besonderes Protokoll. Einzige Hürde dürfte wohl die Einstellung der Schnittstellenparameter sein.
Danke für die tolle Idee, dass werde ich demnächst auch versuchen und deshalb alle meine aktuellen "Projekte" verschieben. Unter Umständen klappt das auch mit einer USB-Maus und dem entsprechendem IR-Adapter. Die Messgenauigkeiten der Mäuse ist zwar nicht besser als die Odometrie des asuro, aber der "Showeffekt" ist das entscheidende. Vielleicht hört meine bessere Hälfte dann auch endlich auf, meinen asuro abfällig " Auto" zu nennen.
Gruß
mic
auto... =)
eine usb maus folgt dem usb protokoll, da musst du dann evtl etwas aufpassen.
aber ich denke mal wenn man mal im internet sucht dann findet man bestimmt was passendes um mithilfe von 2-3 ports des atmega eine maus korrekt anzusprechen. dann könnte man vermutlich auch mit licht-oder mit lasermäusen arbeiten, allerdings folgen diese nicht mehr zwingend dem maus protokoll sondern dem HID (Human Interface Device) Protokoll. es wird also nicht nur "nach links" oder "nach oben" gesendet, sondern "Mauszeiger nach links" und "mauszeiger nach oben", da ein HID zB auch eine tastatur oder ähnliches sein kann.
Sag mal lest ihr meinen Baitrag nicht oder was ^^??
In dem Artikel im RN-Wissen is genauestens beschrieben wie man aus ner optischen Maus die Bewegungsdaten rausbekommt ^^ mit nur 2 pins und OHNE USB (-> einfacher)
Grüß Javik
Sieht ja vielversprechend aus, die Parameter sind 1200, 7, 2, none.
Das funktioniert bei mir mit einer Logitech und einer HP-Maus, eine 4Tech-Maus sendet damit nur die Tastenstati. Das kann man z.B. mit dem Hyperterminal testen.
Ich werde mal einen Adapter basteln der zwischen Maus und RS232-IR-Transceiver passt und das ganze mit Spannung versorgt. Vielleicht ein 9V-Block, der, in Reihe zu den 4,8V des asuros, eine für rs232-Schnittstellen ausreichende Spannung liefern würde.
Wenn ich dann mit der Maus sende, sollte mein USB-IR-Adapter ja was empfangen. (Damit es keine Missverständnisse gibt: Die Maus sendet dann mit dem rs232-IR-Adapter und ich empfange es zum Testen mit dem usb-IR-Adapter und dem Hyperterminal)
Da die Maus mit 1200 Baud nur sieben Bit sendet muss man beim asuro die Schnittstelle umkonfigurieren. Da ich ja noch asuro-Neuling bin, kenne ich mich damit noch nicht aus. Vielleicht könnte einer der alten Hasen den entsprechenden Code posten. Danke.
Gruß
mic
@Javik:
Mein Beitrag war grad in Arbeit als deiner dazu kam.
Natürlich habe ich das gelesen, aber ganz ehrlich, ein Umbau, der sich auf einen kleinen Adapter mit 'ner Batterie und einem 9-poligen sub-d beschränkt und u.U. keinen Eingriff beim asuro erfordert, ist mir lieber als eine Maus zu knacken und die Pins zu suchen. Auch softwaremäßig erscheint mir ein Handling mit SerRead() auf den ersten Blick einfacher. Zusätzlich kommt noch die bessere Diagnosemöglichkeit via Hypertermminal gegenüber der direkten Abfrage der Pins in der Maus. Viele Wege führen nach Rom...
Hallo,
die erste Hürde ist überwunden. Mein asuro sendet nun mit 1200 Baud, 7 Bit, 2 Stop, kein Parity. (Infos und Beispielcodes aus dem ATmega8-Datenblatt entnommen)
GrußCode:#include "../inc/asuro.h"
#define FOSC 8000000// Clock Speed
#define BAUD 1200
#define MYUBRR FOSC/16/BAUD-1
void USART_Init( unsigned int ubrr)
{
/* Set baud rate */
UBRRH = (unsigned char)(ubrr>>8);
UBRRL = (unsigned char)ubrr;
/* Enable receiver and transmitter */
UCSRB = (1<<RXEN)|(1<<TXEN);
/* Set frame format: 8data, 2stop bit */
/*UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);*/
UCSRC = 0x8A; //10001010 = 7bit, 2stop, kein parity
}
int main( void )
{
Init();
USART_Init ( MYUBRR );
while (1) {
SerWrite("abcABC",6);
Msleep(500);
}
return 0;
}
mic
OKay :)
Naja wenn dir das Lieber ist :) aber bau der optischen Lösung bleibt dein Asur wesentlich leichter und du brauchst net noch einen Akku auf ihm ;)
Und so schwer is es auch nicht zu montieren.
Außerdem habe ich leichte bedenken wie das mit der Maus is, ob die auch alle "schritte" mitzählt weil der Asuro ja doch nicht so schwer ist, so dass die Maus eventuell auch rutscht. aber ka musst du ausprobieren. Die Probleme hättest du beim optischen nicht.
also ich bin mal schwer gespannt was das wird. ich denk mal wenn die kugel schwer genug ist sollte das kein problem sein.
schade natürlich, dass das dann ein recht komplexer aufbau wird, aber irgendwie muss die maus FEST an dem asuro angebaut werden, damit sie sich nicht (relativ zum asuro) verdrehen kann und dann falsche infos liefert.