HC-SR04 und Schrittmotor Verbinden

Wäre es möglich dieses Programm mit einem einzelnen Knopf zu steuern? Also wenn ich den Knopf drücke macht der Motor ein paar steps und der Ultraschallsensor misst ob sich das Objekt bewegt hat. Das ist natürlich sehr mühsam weil sich in den ersten 25° wahrscheinlich nichts verändern wird. Aber als Start wäre ich mit dieser Lösung zufrieden. Rutscht das Objekt schließlich bei einem Winkel von 34° ab muss dieser Winkel für die Berechnung des Haftreibungskoeffizienten mit einbezogen werden.

Frage: Kann man mehrere Formeln ins Programm einbauen und das Ergebnis dieser auf einem Display ausgeben?

Des weiteren muss für den Gleitreibungskoeffizienten die Beschleunigung des Objekts aufgenommen werden. Dafür soll in bestimmten Zeitabständen die Veränderung der Distanz mithilfe des Ultraschallsensors aufgenommen werden. Diese Distanzveränderung soll der Ultraschallabstandssensor augenblicklich nach der Erkennung des Abrutschens durchführen. Die Beschleunigung die ebenfalls im Programm mit einer Formel berechnet werden muss soll in einer weiteren Formel den Gleitreibungskoeffizient berechnen.

Frage: Wie kann man diesen umfangreichen Ablauf im Programm realisieren? (Nicht das es mir wer programmiert aber die Schritte nach der Reihe aufzählt damit der Ablauf als Programm funktioniert)

Ja.

Ja, Ja.

Schrittkette ereignisgesteuert.
Allerdings gebe ich zu bedenken, das Ultraschall recht träge ist.

1 Like

Ja.

Gegenfrage: Was ist daran umfangreich?

Abstandsmessung mit Ultraschall dauert ein wenig (wegen der Schallgeschwindigkeit, und weil man die Zeit bis das Echo weg ist, warten sollte). Aber: 1 Million Microsekunden ist 1 Sekunde, mit diesen Zeitverhältnissen muss man sich erstmal vertraut machen.
Am einfachsten ist experimentieren, wenn die Entfernungsmessung prinzipiell funktioniert:
Wie viele und welche Werte bekommst du von deinem rutschenden Gegenstand
(ms seit letzter Ruheposition / Entfernung von Ruheposition)
Aus jeweils zwei (bzw. dem aktuellen und dem vorigen) kannst du dann weitere Ergebnisse ausrechnen und erstmal auf dem SerialMonitor ausgeben.

1 Like

lieber Lauritz,

jaaaaaaaa! Das geht alles ! Und man kann dem Microcontroller parallel dazu auch noch ein
Geburtstagsständchen spielen lassen und RGB-LEDs in verschiedenen Farben blinken lassen.

Das lässt sich auf hundertfach variierte Weise realisieren und mit Schrittkette kann man dann die Reihenfolge in der die Schritte ausgeführt werden x-beliebig ändern und Sonderfälle einbauen und noch und nöcher.

Du hast irgendwie einen Knoten, dass du ohne Basiskenntnisse des Programmierens irgendwie schon mal den ungefähren Pfad sehen möchtest.
Das ist schon irgendwie verständlich aber auch ineffektiv.

Die Programmrealisierung macht man sowieso in kleinen Untereinheiten. Deswegen spielt es fast keine Rolle in welcher Reihenfolge man die Untereinheiten schreibt und einzeln austestet.

Du kannst dir einen beliebigen Teil des Gesamtprogramms aussuchen und mit dem Programmteil beginnen. Das zusammenfügen ist nachher so einfach wie bei Lego
Dieses Video veranschaulicht den Prozess des Programmierens recht gut:
In diesem Video wird ein Gesamtsystem zusammengebaut und weiterentwickelt
Ein kleines Auto, ein Laufband, Antrieb für das Laufband, Kurbel für den Laufbandantrieb.

Es spielt keine Rolle ob man nun zuerst das Fahrzeug oder das Laufband baut.
Man kann mit dem Laufband anfangen ODER mit dem Auto.
Das Auto braucht für einen allerallerersten Test auch keinen Propeller sondern nur vier Räder.
Den Propeller kann man später dazunehmen.

Beim ersten Prototypen treten diverse Probleme auf. Die Probleme werden erst beim praktischen Test erkannt!

Aus den Erkenntnissen wird dann umgebaut / weitergebaut

Und das geht beim Programmieren ganz genauso

Hast du die ganze Hardware zur Verfügung oder ist die in der Schule?

Wenn du die Hardware nicht zur Hand hast dann kannst du trotzdem mit dem WOWKI-Simulator anfangen.

Du musst endlich anfangen die Grundlagen des Programmierens zu lernen!
Und das macht man auch nur zum Teil mit dem Projektcode sondern mit einfacheren Sachen:

So mit welchem Teil willst du anfangen:

  • Formelberechnung programmieren
  • Schrittmotor ein paar Schritte machen lassen
  • Ultraschallsensormessung machen
  • einen Tastendruck detektieren

suche dir etwas aus!
vgs

Nochmal nachgedacht.
Ich würde keinen Ultraschallsensor nehmen. Dies wegen des Echos das nicht nur vom Objekt zurückgeworfen wird sondern auch von anderen Gegenständen / Möbeln / Mauern die sich im Ultraschallkegel befinden. Darum kann unter Umständen keine 2 Messungen knapp nacheinander durchgeführt werden.
Ich würde 5 Lichtschranken verwenden.
Eine um den Start des Objekts zu erkennen und 2 mal 2 nebeneinander in 1-2 cm Abstand um die Geschwindigkeit in der Mitte und am Ende der Rutsche zu messen.
Grüße Uwe

Meinst du das der Ultraschallabstandssensor für die Berechnung der Beschleunigung zu Fehleranfällig ist?

Mit dem würde ich beginnen wollen

OK.

Meine Empfehlung Verwendung der MobaTools-Library
Die kann man über den Library-Manager der Arduino-IDE installieren
Was ich noch nicht ausprobiert habe ist, ob das im WOKWI-Simulator auch läuft.

Wir müssen leider Visual Studio Code verwenden. Gibt es die Library dort auch?

Hast du denn den Sketch der weiter oben gepostest ist auch mit Visual Studio Code auf den Microcontroller übertragen?
Wenn ja dann geht das.

Noch eine Möglichkeit wäre eine Binärdatei mit der Arduino-IDE zu erzeugen und dann die Binärdatei mit Visual Studio Code zu übertragen. Das wäre dann zwar schon geschummelt
aber man könnte ehrlich sagen " Wir haben das Programm mit Visual Studio Code auf den Microcontroller geflasht"

@MicroBahner weisst du wie man die MobaTools in den WOKWI-Simulator so reinbekommt,
das der WOWKI-Simulator alle Dateien findet?

vgs

Man kann die MobaTools-library in Visual Studio Code hinzuladen.
Dann geht das.

Hast du die Hardware jetzt heute und da wo du gerade bist zur Verfügung ja oder nein?

Wenn du immer nur so kleckerlesweise Kurz-infos postest dann mach mal für heute Arduino-Forum Pause und tobe dich bei WhatsApp, Instagram, Snapchat oder wo auch immer mit smalltalk am smartphone aus.

Und dann machen wir weiter wenn du dich darauf konzentrieren kannst.
vgs

Gegen Gebühr Mitglied werden, dann kann man eigene Bibliotheken hochladen, oder alle benötigten Dateien in einen eigenen „Dateireiter“ laden.

Der wird erzeugt indem man eine neue Datei anlegt.

Bin zwar nicht der Angesprochene, aber bei mir funktioniert es so:

In WOKWI auf Tab "Library Manager" klicken und dann auf das Plus.
Im Suchbalken eintippen "moba" und die MobaTools werden gefunden.
Danach können zum Beispiel die MobaTools-Beispielsketche fehlerfrei "kompiliert" werden.

Das geht auch ohne Mitgliedschaft.

Also ich bin kein Mitglied konnte aber trotzdem Dateien hochladen.
Das hab dann aber Fehlermeldungen beim compilieren

Auf diesem Wege wurden die Unterverzeichnisse nicht mitberücksichtig

Ich habe dann einfach noch einmal in den Unterverzeichnissen hochladen gemacht.
Jetzt sind zwar alle Dateien da aber die include-Anweisungen passen jetzt nicht mehr.
Würde das bei Mitglied werden mit Unterverzeichnissen funktionieren?

Kann jemand der nicht Mitglied ist auch auf so eine WOKWI-Simulation zugreifen?

Hast recht, tut mir leid, ich wollte nicht eine riesige Diskussion an Silvester starten.
Frohes Neues und viel Glück im neuen Jahr!

wie @uxomm schreibt, scheinen die Mobatools ja bereits in der Auswahlmöglichkeit bei Library hinzufügen dabei zu sein. Dann halte Dich an #34

Ja das funktio-schnuggelt Minimal-Schrittmotor

Bei Ultraschallsensoren muß man immer zwischen 2 Messungen warten, daß der gesendete Schallimpuls ausgelaufen ist. Das dauert schon mal bei 10m (Wand in einem großen Raum Hin und zurück) mal 30mS .
Kannst Du zwischen 2 Messungen sagen wir mal 50mS warten; also nur ca 20 Messungen pro Sekunde machen?

Grüße Uwe

Der HC-SR04 kann laut Datenblatt 50 mal die Sekunde messen. Er soll aber nur bis 3m eine Genauigkeit von 3mm haben.