- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 8 von 8

Thema: adafruit motor shield V1, Ultraschall-Sensor und ferngesteuertes Fahrzeug

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.210
    Schwer, was zu sagen ohne Schaltplan und Programm zu sehen.
    Um "mal eben fix" nen Schaltplan zu zeichnen, eignet sich Fritzing recht gut- sehr viele Arduino-Komponenten sind dort bereits enthalten.

    Die üblichen Verdächtigen (HC-SR04) muss man schon bissel clever ansteuern, weil die sonst das gesamte Programm ziemlich lahm legen können.
    Wenn du den US-Sensor mittels pulseIn() einliest, definiere unbedingt ein Timeout, sonst wird da nie was fertig. Ich glaub, default war da ne volle Sekunde!
    Das Motorshield ist auch etwas- naja, umständlich eben. Hab das Teil auch, aber verstärkt und- schon länger nicht mehr benutzt. Von daher weiss ich jetzt nicht mehr, ob das Interrupt-gesteuert wird.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  2. #2
    Hi Sly,

    Schaltung kann ich Dir bieten.
    Ich habe die Schaltung wie in

    http://www.instructables.com/id/Ardu...obot/?ALLSTEPS

    Nur habe ich nicht das dort verwendete Chassis mit einem Motor links und einem Motor rechts, sondern einen Motor Hinten und einen Motor vorne. Der vordere Lenker-Motor ist keine Servo, sondern es wurde ein normaler Motor verbaut. Der Motor hat einfach einen Anschlag. Der Motor kann nur ein paar kleine Drehungen links bzw. rechts machen, bis die Lenkung dann am Anschlag ist.

    Den Sketch habe ich auch aus o.a. Link runtergeladen.

    Den hc-sr04 habe ich auch isoliert getestet. Da funktioniert es.

    Meine Vermutung ist: Beim Erkennen eines Hindernis mit dem hc-sr04 werden beide Motoren aktiviert -->
    Der Lenkungsmotor schlägt das Lenkrad links ein und der Antriebsmotor fährt rückwärts. Und hier tritt das Phänomen i.d.R. auf, dass dann der hc-sr04 nicht mehr erkennt, dass er sich vom Hindernis wegbewegt.

    In der Console sehe ich in meiner Ausgabe immer nur "Hindernis in Entfernen kleiner 15 cm" . Diese Meldung kommt auch, wenn ich den hc-sr04 komplett abklemme.
    Daher meine Vermutung, dass der hc-sr04 zu wenig SAFT bekommt, wenn beide Motoren laufen.
    Kann das sein, dass dem so ist?


    Danke

    Grüße
    Mario

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.12.2010
    Ort
    NRW
    Beiträge
    223
    Hi,

    ja V1 ist schon was älter, hier die FAQ dazu, dann siehste auch welche Pin bereits belegt sind, bin ich damals auch drauf reingefallen....

    https://learn.adafruit.com/adafruit-motor-shield/faq

    cYa

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.210
    Ja, wär denkbar.
    Motoren _immer_ extern versorgen -das Shield gibt das her!
    Die hc-sr04 (vor allem die ganz billigen) haben so einige Macken: eine davon ist eben die Spannungsproblematik.

    Das Programm da ist übrigens ziemlicher Murks (und, ganz nebenbei, poste es das nächste Mal bitte hier, Instructables, Mediafire- so nötig hab ichs auch nich...).
    Es gibt nämlich z.B. _kein_ Timeout für den Sensor! Damit macht der, im ungünstigsten Fall, _eine_ Messung pro Sekunde. Funktioniert bei der hohen Reichweite des hc-sr04 und nem ausreichend langsamen Fahrzeug natürlich, aber Stümperei bleibts.
    Da steht, wie man das vernünftig lösen kann: https://www.arduino.cc/en/Reference/PulseIn

    pulseIn ist blockierend! Heisst: in der Zeit, in der auf einen Puls gewartet wird (entweder, bis einer rein kommt, oder eben ne volle Sekunde bzw. bis zum festgelegten Timeout) macht das Programm- GAR NICHTS. Gerade das ist der wichtigste Grund, warum da unbedingt ein sinnvolles Timeout eingebaut werden sollte.
    Welches sinnvoll ist kannst du dir ausrechnen: Maximalreichweite des Sensors, Schallgeschwindigkeit, Zeit, die die Schallwellen für den doppelten Weg brauchen....dazu etwas Reserve, sonst kann es sein, du empfängst Echos auch noch.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  5. #5
    HaWe
    Gast
    diese blockierenden Funktionen sind einer der Gründe, warum ich grundsätzlich Multitasking verwende.

    Funktionen, die auf Ergebnisse warten müssen, werden in eigenständige Tasks ausgelagert und können da warten, bis sie schwarz werden - und das übrige Programm läuft auf seinen Zeitscheiben problemlos weiter.

    Übrigens machen auch TFT Displays diese Blockierung, daher kommt die Displayausgabe grundsätzlich bei mir auch in eigenständige Tasks.

    Für den Arduino Due gibt es die Scheduler lib (kooperatives MT), doch auch für AVRs liegen inzwischen MT Libs vor, teilweise sogar pre-emptiv.


    http://forum.arduino.cc/index.php?topic=347188.0
    http://www.rtos48.com/

Ähnliche Themen

  1. Ultraschall Sensor HC-SR04 und kompatible Ultraschall-Module
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 15.03.2016, 12:50
  2. Motor Control Shield für Arduino
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 04.02.2015, 23:00
  3. PWM servo shield (adafruit) I²C Ansteuerung
    Von probot32 im Forum Motoren
    Antworten: 0
    Letzter Beitrag: 28.03.2014, 16:30
  4. Suche Sensor aus einem Lasergesteuerten RC Fahrzeug!
    Von smilel im Forum Sensoren / Sensorik
    Antworten: 6
    Letzter Beitrag: 06.11.2010, 14:29
  5. Antworten: 1
    Letzter Beitrag: 22.12.2008, 16:54

Stichworte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress