-         

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

Thema: Vorstellung eines aktuellen kleinen Weihnachtsurlaub Projekts (ab 22.12.)

  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    49
    Beiträge
    2.433

    Vorstellung eines aktuellen kleinen Weihnachtsurlaub Projekts (ab 22.12.)

    Anzeige

    Vorstellung eines aktuellen kleinen Weihnachtsurlaub Projekts.

    Ich habe zwar schon ein paar Roboter mit jugendlichen gebaut, aber die Altersklasse für dieses Projektes ist neu für mich.
    Die Herausvorderung ist:
    begrenzter Fachwortschatz, Lese- und Schreibanfänger, kein Englisch.
    Bisher nur Rechenregeln für Addition und Subtraktion bekannt (wegen ohmschen Gesetz etc.)
    Noch keine schulischen Physikvorkenntnisse.
    Also ist eine ganz andere Herangehensweise notwendig wie bei Acht- bis Zehntklässlern.

    Momentan laufen die Vorbereitungen.
    Um einen aktuellen Controller zu nehmen und nicht mit Assembler anzufangen, habe ich zwei Arduino Nano Clones und etwas Beiwerk (Sensoren und Motortreiber) besorgt und bin seit dem 4.12. da dran.
    Erstes Fazit: die Arduino Refernz von der Webseite scheint unvollständig zu sein (Oder ich bin wiederholt Blind gewesen) Auf jeden Fall habe ich nur millis() gefunden, das es micros() gibt habe ich dann so ergoogelt.

    Mein Großneffe (7 Jahre) interessiert sich seit neustem für Roboter (Aufräumen, Putzen, Geschirrspülen, Hausaufgaben machen und Treppensteigen soll er können).
    Zu Nikolaus gab es den "Galileo - mein Roboter".
    Das Ding hat zwei Motoren, zwei LEDs, sechs Taster und einen Einschalter.
    Programmiert wird über die Taster.
    Es gibt Programmiermodus an-aus, vor, zurück, links, rechts und Programm start.
    Daß dad natürlich kein richtiger Roboter ist, sondern eher ein Automat mit einer Schrittkettensteuerung ist klar.
    Die Motoren werden ohne Odometrie nur über einen Timer gesteuert. Somit sind dann die Schwenks auch nicht genau 90°,
    sondern beim einen Motor über 100° und beim anderen grob 90°
    Also kleines Projekt für den Einstieg in "richtige" Robotik:
    (Vorgabe meiner Finazministerin: es darf "nichts" {wenig} kosten, damit scheidet Mindstorm aus obwohl schon genug LEGO vorhanden ist)
    Als Exkurs habe ich erst mal ein Beispiel vorgesehen das ihm bekannt ist.
    Da vor der Schule eine Fußgängerampel steht, also erst mal eine Ampelschaltung mit einem Arduino nano und als Erweiterung einen LDR für eine Nachtschaltung (Gelb für die Autos blinkt).
    Mit dem LDR lernt er einen Sensor kennen, der eine Reaktion auf verschiedene äußere Einflüsse ermöglicht.

    Schnell gestricktes Programm, schon mit dem LDR und bewust mit delay Befehlen.
    Code:
    int f_tast = 2;
    int a_rot = 3;
    int a_gelb = 4;
    int a_gruen = 5;
    int f_rot = 8;
    int f_gruen = 9;
    int f_lamp_tast = 13;
    int s_licht = A0;
    
    void setup() {
      pinMode(f_tast, INPUT);
      pinMode(a_rot, OUTPUT);
      pinMode(a_gelb, OUTPUT);
      pinMode(a_gruen, OUTPUT);
      pinMode(f_rot, OUTPUT);
      pinMode(f_gruen, OUTPUT);
    }
    
    void loop() {
      int sensorValue = analogRead(s_licht);
      digitalWrite(f_lamp_tast, HIGH); //Blinker an Taste fuer Fussgaenger
      delay(500);
      digitalWrite(f_lamp_tast, LOW);
      delay(500);
      
      if (sensorValue > 300){ //Dämmerungswert für Nachtschaltung
        digitalWrite(a_rot, LOW);
        digitalWrite(a_gelb, HIGH); //Autos Gelb für Blinker
        digitalWrite(a_gruen, LOW);
        digitalWrite(f_rot, LOW);
        digitalWrite(f_gruen, LOW);
        delay(500);
        digitalWrite(a_gelb, LOW);
      }
      else {
        digitalWrite(a_rot, LOW);
        digitalWrite(a_gelb, LOW);
        digitalWrite(a_gruen, HIGH); //Autos gruen
        digitalWrite(f_rot, HIGH); //Fussgaenger rot
        digitalWrite(f_gruen, LOW);
      }
    
      if (digitalRead(f_tast) == LOW){ //Taste Fussgaenger abfragen
        digitalWrite(13, HIGH); //Taste Fussgaenger ist gedrueckt worden
        digitalWrite(f_rot, HIGH); //Fussgaenger rot
        digitalWrite(a_gruen, LOW);
        digitalWrite(a_gelb, HIGH); //Autos gelb
        delay(1000); // Autos Gelbphase
        digitalWrite(a_gelb, LOW);
        digitalWrite(a_rot, HIGH); //Autos rot
        delay(500); // Fussgaenger Wartezeit damit kein Auto mehr fährt
        digitalWrite(13, LOW);
        digitalWrite(f_rot, LOW);
        digitalWrite(f_gruen, HIGH); //Fussgaenger gruen
        delay (6000); //Fussgaenger gruenphase
        digitalWrite(f_rot, HIGH); //Fussgaenger rot
        digitalWrite(f_gruen, LOW);
        delay(1000); //Autos Wartezeit damit kein Fussgaenger mehr laeuft
        digitalWrite(a_gelb, HIGH); //Autos gelb
        delay(1000); // Autos Gelbphase
      }
    }
    Der Taster für die Fußgänger um grün anzufordern, wird später auf Interrupt umgestellt, da die Delay Befehle ja dafür sorgen, das nur ein langer Tastendruck sicher erkannt wird (bzw. ein Tastendruck der genau zum Zeitpunkt der Abfrage erfolgt).
    Um den Interrupt zu verstehen, gibt es ein kleines Spiel.
    Ich stehe hinter meinem Großneffen und ihm gegenüber stehen seine Eltern.
    Für die zyklische Abarbeitung hält seine Mutter alle 10 Sekunden einen Spigel hin, so da er sehen kann was ich hinter ihm mache.
    (Ich halte von Zeit zu Zeit ein Handtuch hoch)
    Das wird ein paar mal gemacht, dann kommt sein Vater ins Spiel.
    Jedesmal wenn ich ein Handtuch hochhalte sagt er "Alarm", er ist also der Interrupt.

    Die Variante mit Interrupt:
    Code:
    int f_tast = 2;
    int a_rot = 3;
    int a_gelb = 4;
    int a_gruen = 5;
    int f_rot = 8;
    int f_gruen = 9;
    int f_lamp_tast = 13;
    int s_licht = A0;
    byte f_press = HIGH;
    
    void setup() {
    pinMode(f_tast, INPUT);
    pinMode(a_rot, OUTPUT);
    pinMode(a_gelb, OUTPUT);
    pinMode(a_gruen, OUTPUT);
    pinMode(f_rot, OUTPUT);
    pinMode(f_gruen, OUTPUT);
    attachInterrupt(0, button, LOW);
    //Serial.begin(9600);
    }
    
    void loop() {
      int sensorValue = analogRead(s_licht);
      //Serial.println(sensorValue);
      // Blinker code zum Prüfen ob Programm läuft 
      digitalWrite(f_lamp_tast, HIGH); //Blinker an Taste fuer Fussgaenger
      delay(500);
      digitalWrite(f_lamp_tast, LOW);
      delay(500);
      
      if (sensorValue > 500){ //Dämmerungswert für Nachtschaltung
      digitalWrite(a_rot, LOW);
      digitalWrite(a_gelb, HIGH); //Autos Gelb für Blinker
      digitalWrite(a_gruen, LOW);
      digitalWrite(f_rot, LOW);
      digitalWrite(f_gruen, LOW);
      delay(500);
      digitalWrite(a_gelb, LOW);
      }
      else {
      digitalWrite(a_rot, LOW);
      digitalWrite(a_gelb, LOW);
      digitalWrite(a_gruen, HIGH); //Autos gruen
      digitalWrite(f_rot, HIGH); //Fussgaenger rot
      digitalWrite(f_gruen, LOW);
      }
    
      // if (digitalRead(f_tast) == LOW){ //Taste Fussgaenger abfragen
      if (f_press == LOW){ //Statusvariable Taste Fussgaenger abfragen
      delay(500);
      digitalWrite(13, HIGH); //Taste Fussgaenger ist gedrueckt worden
      digitalWrite(f_rot, HIGH); //Fussgaenger rot
      digitalWrite(a_gruen, LOW);
      digitalWrite(a_gelb, HIGH); //Autos gelb
      delay(1000); // Autos Gelbphase
      digitalWrite(a_gelb, LOW);
      digitalWrite(a_rot, HIGH); //Autos rot
      delay(1000); // Fussgaenger Wartezeit damit kein Auto mehr fährt
      digitalWrite(13, LOW);
      digitalWrite(f_rot, LOW);
      digitalWrite(f_gruen, HIGH); //Fussgaenger gruen
      delay (6000); //Fussgaenger gruenphase
      digitalWrite(f_rot, HIGH); //Fussgaenger rot
      digitalWrite(f_gruen, LOW);
      delay(1000); //Autos Wartezeit damit kein Fussgaenger mehr laeuft
      digitalWrite(a_gelb, HIGH); //Autos gelb
      delay(1000); // Autos Gelbphase
      f_press = HIGH;
      }
    }
    void button(){
    f_press = LOW;
    }
    Da der Galileo "Roboter" ja keinerlei Sensorik hat, will ich ihm erst mal zeigen was mit relativ einfachen Mitteln geht.
    Also:
    1- Bumper zu Kollisionserkennung. (ein Paar Mikroschalter aus Computermäusen per Wiederstandsnetzwerk an einem Analogeingang)
    2- Linienfolge Sensor
    3- Ultraschall Sensoren um Entfernungen (Abstände) zu messen.
    4- IR Sharp GP2D120 um Treppenabsätze zu erkennen. (Kinderzimmer ist im ersten Stock)
    (GP2D120 muß ich aber erst besorgen, habe zur Zeit keine mehr übrig)

    Um ein Vorführbeispiel zu haben, habe ich mal mit einem Arduino nano, zwei hc-sr04 Ultraschallmodulem und einem Funduino Tracker Sensor (Linienfolgesensor mit 3 IR Reflexkopplern - TCRT5000)
    ein Funktionsmuster gebaut.
    Code:
    const int us1_echo = 2;
    const int us2_echo = 3;
    const int us1_trig = 4;
    const int us2_trig = 5;
    const int lf_le = 8;
    const int lf_ce = 9;
    const int lf_ri = 10;
    int lf_le_state = LOW;
    int lf_ce_state = LOW;
    int lf_ri_state = LOW;
    unsigned long us1_echo_st;
    unsigned long us2_echo_st;
    unsigned long us1_echo_et;
    unsigned long us2_echo_et;
    unsigned long us1_srt;
    unsigned long us2_srt;
    unsigned long us1_dist;
    unsigned long us2_dist;
    unsigned long prev1micros = 0;
    const long toggleinterval = 1000;
    int togglestate = LOW;
    int us1_flag = 0;
    int us2_flag = 0;
    char* string_[]={"Linefollow:", "US-Echo1:", "US-Echo2:", "Cycletime:"};
    unsigned long prev2micros = 0;
    
    void setup() {
      Serial.begin(9600);
      pinMode(us1_echo, INPUT);
      pinMode(us2_echo, INPUT);
      pinMode(us1_trig, OUTPUT);
      pinMode(us2_trig, OUTPUT);
      pinMode(lf_le, INPUT);
      pinMode(lf_ce, INPUT);
      pinMode(lf_ri, INPUT);
      attachInterrupt(0, US1_ISR, CHANGE);
      attachInterrupt(1, US2_ISR, CHANGE);
    }
    
    void loop() {
      lf_le_state = digitalRead(lf_le);
      lf_ce_state = digitalRead(lf_ce);
      lf_ri_state = digitalRead(lf_ri);
      unsigned long cur1micros = millis();
      if (cur1micros - prev1micros >= toggleinterval) { //alle 10ms umschalten
        prev1micros = cur1micros;
        if (togglestate == LOW){
          togglestate = HIGH;
          digitalWrite(us1_trig, HIGH);
          digitalWrite(us2_trig, LOW);
          us1_echo_st = 0;
          us1_flag = 0;
        }else{ 
          togglestate = LOW;
          digitalWrite(us1_trig, LOW);
          digitalWrite(us2_trig, HIGH);
          us2_echo_st = 0;
          us2_flag = 0;     
        }
      }
       us1_dist = (us1_srt / 58); // Umrechnung des Sensorwerts, ungefähr in  cm (für 343m/s bei trockner Luft und 20° wäre 58,3 der genaue Wert)
      us2_dist = (us2_srt / 58);
      Serial.print(string_[1]);
      Serial.println(us1_dist);
      Serial.print(string_[2]);
      Serial.println(us2_dist);
      Serial.print(string_[0]);
      Serial.print(lf_le_state);
      Serial.print(lf_ce_state);
      Serial.println(lf_ri_state);
      unsigned long cur2micros = micros();
      Serial.print(string_[3]);
      Serial.println(cur2micros - prev2micros);
      prev2micros = cur2micros;
    }
    
    void US1_ISR(){
      if (us1_echo_st == 0) {
        us1_echo_st = micros();
      } else {
        us1_echo_et = micros();
        ++us1_flag;
      }
      if (us1_flag == 1) {
        us1_srt = (us1_echo_et - us1_echo_st);
      }
    } 
    
    void US2_ISR(){
      if (us2_echo_st == 0) {
        us2_echo_st = micros();
      } else {
        us2_echo_et = micros();
        ++us2_flag;
      }
      if (us2_flag == 1) {
        us2_srt = (us2_echo_et - us2_echo_st);
      }
    }
    Ergebniss der Ausgabe:
    US-Echo1:226
    US-Echo2:227
    Linefollow:000
    Cycletime:63440


    Als nächstes kommen die Antriebe dran.
    Da bin ich noch am Überlegen ob gehackte Servos mit Elektronik und Servo Library oder gehackt ohne Elektronik mit H-Brücke als Getriebemotoren.
    Letzeres wäre vom Erklären her einfacher (Modell mit 4 Schaltern).
    Ggf. ja später zwei Mikroservos out of the Box um mit den zwei US-Sensoren eine 360° Überwachung zu realisieren.

    Da ja DC Motoren ohne Regelung nicht besser sind wie bei dem Galileo "Roboter", kommt dann das Innenleben einer Kugelmaus zu neuen Ehren (Odometrie).
    Da Suche ich allerdings noch den Karton wo die alten Mäuse drin sind.
    Als Demonstrationsbeispiel nehme ich eine schwarz gestrichene Pringles Dose bei der man so nicht erkennen kann ob ich sie linksrum oder rechtsrum drehe.
    Dann zwei Reihen Löcher versetzt in den Rand gelocht und eine Lampe (mit Pappblenden) innen rein um zu erkennen in welcher Reihenfolge beim Drehen die Lichter an und aus gehen.
    Geändert von i_make_it (16.12.2015 um 20:53 Uhr)

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.10.2014
    Beiträge
    2.430
    Als nächstes kommen die Antriebe dran.
    Da bin ich noch am Überlegen ob gehackte Servos mit Elektronik und Servo Library oder gehackt ohne Elektronik mit H-Brücke als Getriebemotoren.
    Meine Favoriten sind ja immer noch die Lego Encodermotoren.
    Man kann sie als einfache DC Motoren verwenden (L293-H-Brücken reichen), bei ca 2-3 U/sek kann man sie direkt an Radachsen ansetzen (und auch noch mit Lego Rädern und Chassis verbauen ), sie sind (gebraucht) einigermaßen preiswert, und die Encoder sind wirklich Top! Allerdings ist Encoder-Arithmetik von der Didaktik her schon etwas aufwändiger.
    Ich habe sie an einem Arduino (Uno oder Mega - oder sogar Due) sehr erfolgreich eingesetzt:

    http://www.mindstormsforum.de/viewto...&t=8624#p67235
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    49
    Beiträge
    1.241
    Preiswerte Hindernissensoren: http://www.ebay.de/itm/10pcs-IR-Infr...8AAOSwgQ9VrfV6
    Hab ich mir neulich mal fünf Stück von besorgt- für _den_ Preis allemal gut.
    Gibts auch in einer "Linienfolger"-Version und eine, bei der das Ding einfach nach unten guckt.
    Sehr einfach zu handhaben (Strom ran, und dann ein simpler Digitalausgang) und funktionieren recht gut.
    Selbst zweie davon nebeneinander (~5cm, das gabs Steckbrettl grade her) kommen sich nicht ins Gehege.
    Auch toll zum rum probieren: die haben ne LED drauf für "ich sehe was"-die geht an, wenn er nen Hindernis entdeckt.
    Mit nem bissel Treiberei könnte man damit nen Roboter sogar ohne Controller Hindernissen ausweichen lassen (sie schalten HIGH bei feier Bahn, und LOW wenn sie was entdecken).
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    49
    Beiträge
    2.433
    Zitat Zitat von HaWe Beitrag anzeigen
    Meine Favoriten sind ja immer noch die Lego Encodermotoren.
    Man kann sie als einfache DC Motoren verwenden (L293-H-Brücken reichen), bei ca 2-3 U/sek kann man sie direkt an Radachsen ansetzen (und auch noch mit Lego Rädern und Chassis verbauen ), sie sind (gebraucht) einigermaßen preiswert, und die Encoder sind wirklich Top!
    Es darf halt nichts (nur wenig) kosten.
    Modelcraft RS-2 Servos habe ich hier halt noch einige in der Krabbelkiste liegen.

    Beim Neupreis der Mindstorm Motoren würde ich für eigene Projekte auf die Pololu 12VDC mit Metallgetriebe und Quadraturencoder Wechseln oder halt richtige Encoder:
    http://www.amazon.de/Encoder-Increme...hase+6mm+Shaft
    und dann beliebige Motoren. (Die Pololu Encoder einzeln mit beliebigen Motoren wären dann die günstige Variante)

    Aber mal sehen sollte er dabei bleiben, könnte es sein das passend zum schon vorhandenen Lego sich da was tut.


    Zitat Zitat von Rabenauge Beitrag anzeigen
    Preiswerte Hindernissensoren: http://www.ebay.de/itm/10pcs-IR-Infr...8AAOSwgQ9VrfV6
    Hab ich mir neulich mal fünf Stück von besorgt- für _den_ Preis allemal gut.
    Gibts auch in einer "Linienfolger"-Version und eine, bei der das Ding einfach nach unten guckt.
    Sehr einfach zu handhaben (Strom ran, und dann ein simpler Digitalausgang) und funktionieren recht gut.
    Selbst zweie davon nebeneinander (~5cm, das gabs Steckbrettl grade her) kommen sich nicht ins Gehege.
    Auch toll zum rum probieren: die haben ne LED drauf für "ich sehe was"-die geht an, wenn er nen Hindernis entdeckt.
    Mit nem bissel Treiberei könnte man damit nen Roboter sogar ohne Controller Hindernissen ausweichen lassen (sie schalten HIGH bei feier Bahn, und LOW wenn sie was entdecken).
    Ja, die habe ich mir schon angesehen, der Preis ist beim Selbstbau nicht zu schlagen, (Da kommen die Teile ja schon teuerer wenn man sie in Kleinmengen holt)

    Bei mir betreibe ich 38/40kHz IR Sensoren im Time Multiplex, da kann ich die wenn nötig dichter packen ohne das die sich in die Quere kommen. Und bei mehr wie 4 Stück spare ich Pins (ein Signaleingang, und 3 Adressausgänge für 7 Stück)
    Wegen der Erkennung des Treppenabsatzes und anderer Abgründe, wird es später aber auf jeden Fall GP2D120 geben. (Auch wenn die teuere sind)
    Für den Anfang schau ich die mir aber mal an.

    - - - Aktualisiert - - -

    Einmal die Ampelschaltung als Bild:
    Klicke auf die Grafik für eine größere Ansicht

Name:	Ampel-final.jpg
Hits:	20
Größe:	51,6 KB
ID:	31039
    und der Schaltplan.
    Klicke auf die Grafik für eine größere Ansicht

Name:	Fußgängerampel.png
Hits:	14
Größe:	8,2 KB
ID:	31040
    Geändert von i_make_it (04.01.2016 um 13:49 Uhr)

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    49
    Beiträge
    1.241
    Näher zusammen gehn sie auch (grade mal probiert, zwei nebeneinander aufs Steckbrett, selbst bei nem Zentimeter Abstand der beiden Module kriegt man es noch hin, dass sie Hindernisse einzeln detektieren.
    Wenn man da noch die Led's in Schrumpfschlauch stecken würde, gehts bestimmt noch besser.
    Bei langsameren Bewegungen kann man damit also ne Menge anfangen.

    Was deine Antriebe angeht: Servos sind doch keine üble Wahl.
    Auf arduinisch leicht anzusteuern...
    Wenn du die Möglichkeit hast, durchbrochene Räder (Speichen wär gut) zu verbauen, dann könntest du diese Module auch als Weggeber benutzen-einfach durchs Rad gucken lassen.
    Die lassen sich durchaus so justieren, dass sie nur auf wenige cm noch reagieren.

    Das mit der Kugelmaus interessiert mich übrigens auch brennend, wenn du das machst, erzähl mal bitte mehr drüber. Ich hatte mal versucht, eine Mäuse-Kamera mit nem Arduino zu verbinden, das funktioniert auch als Weggeber, aber nur bei extrem geringem Bodenabstand. So Kugelmausteile hab ich nämlich auch noch da, nur sind meine Elektronikkenntnisse eher rudimentär.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.551
    Die Kombination 38kHz-LED+IR-Empfänger (à la TV-Steuerung) habe ich ja schon im Dottie als Entfernungssensorik eingebaut. Dort, im WALL-R und später im MiniD0 als Entfernungssensorik UND Fernsteuerungsempfänger für die Tasksteuerung, waren jeweils drei solche Paare mit ein, zwei Zentimeter Abstand voneinander eingebaut. Für eine Sensorengruppe mit Quadrantencharakteristik hatte ich diese Platine gebaut, getestet (erfolgreich) aber noch nicht im Archie eingebaut. Anmerkung: Hier - die obere Platine - zeigt die drei Sensoren im eingefahrenen Zustand.

    Die Ansteuerung der LED erfolgt "gechirpt" (hier mehr davon) und nicht mit Dauerstrich, Ausgelesen werden die Empfänger so, dass der Messwert - 0 .. 127 - in höchstens sieben Schritten erkannt wird. Mit dieser Technik kann ich bei den beiden Dosen ein Bereichfenster definieren, ausserhalb dessen die Umgebung als "Abgrund" oder als "Hindernis" erkannt wird. Dazu wird die Sensorik oben angebracht und nach Art eines Blindenstockes schräg vorwärts nach unten gerichtet. Läuft meist gut, Abstürze der Roboterdosen sind äusserst selten.
    Ciao sagt der JoeamBerg

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    49
    Beiträge
    2.433
    Mal ein paar Bilder.

    Sensor Testaufbau:

    Klicke auf die Grafik für eine größere Ansicht

Name:	SDC12635.jpg
Hits:	22
Größe:	42,6 KB
ID:	31045

    Da es möglichst wenig kosten darf und mein Großneffe auch was selbst machen möchte, hier mal meine Selbstbauräder aus Sperrholz und Dichtungen für 50mm Abflußrohren.
    Einzelteile:
    Klicke auf die Grafik für eine größere Ansicht

Name:	SDC12642.jpg
Hits:	20
Größe:	24,7 KB
ID:	31046
    von der Seite:
    Klicke auf die Grafik für eine größere Ansicht

Name:	SDC12640.jpg
Hits:	23
Größe:	25,1 KB
ID:	31048
    zusammengebaut:
    Klicke auf die Grafik für eine größere Ansicht

Name:	SDC12643.jpg
Hits:	18
Größe:	22,7 KB
ID:	31047
    Da ich die Kiste mit den Mäusen nicht finde, eben ein Alublech für eine Encoderscheibe gemacht.
    Klicke auf die Grafik für eine größere Ansicht

Name:	SDC12645.jpg
Hits:	21
Größe:	23,1 KB
ID:	31049
    Auf dem Servo montiert
    Klicke auf die Grafik für eine größere Ansicht

Name:	SDC12636.jpg
Hits:	20
Größe:	24,4 KB
ID:	31050
    mit Sicht auf die Encoderscheibe
    Klicke auf die Grafik für eine größere Ansicht

Name:	SDC12638.jpg
Hits:	22
Größe:	24,2 KB
ID:	31051
    Da ich das Alublech, die Schrauben und das Sperrholz als Reste da habe, belaufen sich die Kosten pro Rad auf 0,45€ für die Dichtungen.
    Ich habe noch ein paar SG-105F Reflex Lichtschranken da, da muß man zwar recht genau arbeiten, da die nur knapp 1mm haben, aber das geht schon.

    - - - Aktualisiert - - -

    Zitat Zitat von Rabenauge Beitrag anzeigen
    Was deine Antriebe angeht: Servos sind doch keine üble Wahl.
    Auf arduinisch leicht anzusteuern...
    Ich bin noch am Überlegen ob gehackte Servos mit Elektronik und Servo Library oder gehackt ohne Elektronik mit H-Brücke als Getriebemotoren.
    Letzeres wäre vom Erklären her einfacher (Modell mit 4 Schaltern).
    Das Projekt soll ja didaktisch für einen 7 jährigen möglichst viel bringen.

    Zitat Zitat von Rabenauge Beitrag anzeigen
    Das mit der Kugelmaus interessiert mich übrigens auch brennend, wenn du das machst, erzähl mal bitte mehr drüber. Ich hatte mal versucht, eine Mäuse-Kamera mit nem Arduino zu verbinden, das funktioniert auch als Weggeber, aber nur bei extrem geringem Bodenabstand. So Kugelmausteile hab ich nämlich auch noch da, nur sind meine Elektronikkenntnisse eher rudimentär.
    Habe festgestellt das die Kiste eingelagert ist (da ich alle Kisten in der Wohnung durch habe)
    Plan B ist jetzt eine Aluscheibe mit einer Maskenfolie fürs Airbrush und schwarzem Mattlack in eine Reflektorscheibe zu verwandeln.
    Mit zwei SG-105F Reflex Lichtschranken die im richtigen Abstand zueinander angeordnet sind, kann man dann einen Quadraturencoder wie bei einer Maus aufbauen.
    Mit einem 4093 kann man einen Schmitt-Trigger für beide Kanäle aufbauen und mit einem 4069 und 4030 ein Summensignal bei dem jede Flanke an beiden Kanälen einen Puls auslöst. Also ein Signalverdopplung gegenüber den beiden Kanälen.
    Dieses Signal kann man zum einen zum Regeln nehmen und zum anderen als Takt auf einen aus D-Flopflops und XOR aufgebaute Richtungsauswertung leiten die so aus beiden Kanälen ein DIR Signal erzeugt.

    Damit wird die Auswertung relativ einfach.
    Timerauswertung für das Summensignal und Pegelauswertung für das DIR Signal.
    Geändert von i_make_it (19.12.2015 um 12:18 Uhr)

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.410
    Blog-Einträge
    101
    Hallo,
    danke, endlich wieder Hardcore, die auf meiner Linie liegt. Habe ganz ähnlich gebaut und möglicherweise führt der eine oder andere Eintrag zu weiteren Ideen.

    "Externer" Schmitttrigger mit 4093 vielleicht nicht nötig, da Microcontrollereingänge eventuell schon genug Hysterese aufweisen:
    http://www.roboternetz.de/community/...Encodersignale

    "Diskrete" HW-Quadratursignalaufbereitung:
    http://www.roboternetz.de/community/...ronik-aus-Maus

    ... die auf diesem Vehikel der Faulheit und Platzproblemen zum Opfer fiel
    http://www.roboternetz.de/community/...ung-aufgeräumt

    und mit Software per Bascom und später mit ASM gemacht wurde.
    http://www.roboternetz.de/community/...tung-sversuche
    http://www.roboternetz.de/community/...mit-Inline-ASM

    Gruß
    Searcher

    PS Fast noch vergessen wg. Servo-Hack
    http://www.roboternetz.de/community/...-bei-Servohack
    Geändert von Searcher (18.12.2015 um 06:16 Uhr) Grund: Link f. Servo Hack hinzugefügt
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    49
    Beiträge
    2.433
    Zitat Zitat von oberallgeier Beitrag anzeigen
    Die Ansteuerung der LED erfolgt
    "gechirpt" (hier mehr davon) und nicht mit Dauerstrich,
    Chirpen lasse ich erst mal außen vor, das kann je nach Entwicklung meines Großneffen in eins zwei Jahren kommen, wenn wir uns mit FMCW für Sensoren befassen.
    Momentan will ich mit Festfrequenz anfangen.
    Als Exkurs werden wir wohl einen einfachen Multivibrator mit Transistoren (Rechteck) und einen Phasenschieber Oszilator (Sinus/Dreieck) bauen.
    Dann wird er sich aus dem Phasenschieber einen Durchgangsflöter als erstes eigenes Prüfgerät bauen.

    Für die Sensoren werde ich dann wohl aus NANDs oder Invertern einen Generator bauen um die Frequenz zu erzeugen.
    Dann muß mit den Portpins die jeweilige LED nur noch gegen GND geschaltet werden.
    Erst mal wird je LED ein Receiver genutzt, dann werden wir testen in wieweit ein Receiver mit zwei zeitversetzt sendenden LEDs eine Einsparung von Receivern und Portpins zulässt.
    (später dann eventuell mit zwei 4028 eine Adressierung der LEDs und der Receiver realisieren um mehr Sensoren mit wenig Portpins zu realisieren.)

    Auch werden alle Teilsysteme immer erst mal separat aufgebaut und programmiert. Erst wenn sie einwandfrei funktionieren erfolgt die Integation in den zweiten Arduino nano.
    Da wird dann mit Timing etc. wohl noch genug passieren was die Freude am ersten Erfolg wieder dämpft.
    Nur eine Direktintegration bei der Entwicklung wird in diesem Alter wohl noch zu frustrierend sein, das möchte ich vermeiden.
    Ich rechne eh damit das der Roboter mindestens drei mal komplett neu designed und aufgebaut wird.
    Spätestens beim Treppensteigen, wird wohl ein Kettenantrieb fällig werden.
    Bsp.: Klicke auf die Grafik für eine größere Ansicht

Name:	stairc2.jpg
Hits:	12
Größe:	30,1 KB
ID:	31052

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    49
    Beiträge
    2.433
    Zitat Zitat von Searcher Beitrag anzeigen
    danke, endlich wieder Hardcore, die auf meiner Linie liegt. Habe ganz ähnlich gebaut und möglicherweise führt der eine oder andere Eintrag zu weiteren Ideen.
    Ich betrachte das nicht als Hardcore, eher als "back to the roots" und "keep it simple" im Sinne von wie kann man es plakativ einem 7 jährigen erklären.
    Einen Multivibrator mit Invertern, kann ich mit dem mechanischen Aufbau einer Pendeluhr ganz gut erklären, wo der eine Teil die Kraft aufbringt das Pendel zu bewegen und das Pendel dann den oponierenden Teil aktiviert, was dem Pendel dann wieder Energie in die andere Richtung mitgibt.


    Zitat Zitat von Searcher Beitrag anzeigen
    "Externer" Schmitttrigger mit 4093 vielleicht nicht nötig, da Microcontrollereingänge eventuell schon genug Hysterese aufweisen:
    In dem Fall vieleicht nicht notwendig, aber ich habe hier im Forum auch schon einige Fälle mitbekommen wo Fragestellern diese Form der Signalkonditionierung entweder nicht bekannt war oder sie diese nicht mit ihrer Problemstellung in verbindung bringen konnten.
    Das ganze Projekt ist ausgerichtet möglichst viele Teilerfolge zu produzieren und diese innerhalb der Aufmerksamkeitsspanne eines 7 jährigen zu erreichen.

    Zitat Zitat von Searcher Beitrag anzeigen
    "Diskrete" HW-Quadratursignalaufbereitung:
    http://www.roboternetz.de/community/...ronik-aus-Maus
    Ich versuche halt viel in HW zu realisieren, damit das Programm möglichst einfach gehalten werden kann.
    Einem zweitklässler kann ich ja nicht sagen lies mal dies oder jenes. Da fehlen zum einen noch eine Menge Worte und zum anderen das Verständniss deren Bedeutung.
    Von English fange ich gar nicht erst an, obwohl das heute anders ist als 1979, als ich mit Englisch anfing.
    Damals war das noch was, was man für die Lehrer lernte, weil im Alltag kein Bedarf bestand (Erfahrungswerte eines Kindes)
    Geändert von i_make_it (19.12.2015 um 10:27 Uhr)

Seite 1 von 3 123 LetzteLetzte

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 08.04.2013, 18:22
  2. Frage bezüglich Umsetzung eines UNI-Projekts "MATHE WEC
    Von Jube im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 15
    Letzter Beitrag: 22.09.2010, 10:21
  3. Vorstellung eines Netzteils
    Von Rasieel im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 3
    Letzter Beitrag: 21.06.2009, 23:59
  4. [Starthilfe]Bau eines kleinen Roboters
    Von waldwichtel im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 10
    Letzter Beitrag: 05.09.2006, 22:31
  5. bauen eines kleinen robot
    Von rumburack im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 6
    Letzter Beitrag: 07.03.2005, 15:15

Berechtigungen

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