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)
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.
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:
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
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.
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"
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
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.
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?
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?