-         

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 22

Thema: ball mouse modified for distance input

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    27.12.2006
    Ort
    Minneapolis
    Beiträge
    30

    ball mouse modified for distance input

    Anzeige

    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.

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.04.2004
    Ort
    München
    Alter
    29
    Beiträge
    288
    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.
    http://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.
    Beschreibung meiner 8 Roboter unter: http://www.j-robotics.de

  3. #3
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.913
    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.
    kleinschreibung ist cool!

  4. #4
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.782
    Blog-Einträge
    8
    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

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  5. #5
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.913
    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.
    kleinschreibung ist cool!

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.04.2004
    Ort
    München
    Alter
    29
    Beiträge
    288
    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
    Beschreibung meiner 8 Roboter unter: http://www.j-robotics.de

  7. #7
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.782
    Blog-Einträge
    8
    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...

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  8. #8
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.782
    Blog-Einträge
    8
    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)

    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;
    }
    Gruß

    mic
    Angehängte Dateien Angehängte Dateien

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.04.2004
    Ort
    München
    Alter
    29
    Beiträge
    288
    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.
    Beschreibung meiner 8 Roboter unter: http://www.j-robotics.de

  10. #10
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.913
    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.
    kleinschreibung ist cool!

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •