Einstieg in Arduino

Gast #2727140
Lesenswert?

Hallo,

ich muss zugeben, dass ich noch nie einen Mikrocontroller programmiert 
habe, da ich aber Arduino ganz interessant finde, wollte ich mir einen 
bestellen und ein wenig experimentieren. Habe mich dazu in letzter Zeit 
ein wenig eingelesen, es ist allerdings eine Frage offen geblieben: Ich 
habe eine konkrete "Projekt"-Idee, allerdings weiß ich nicht, ob ein 
Arduino dafür geeignet ist.

Meine Projekt-Idee sieht so aus:

Es gibt ein Fahrzeug aus Lego, das von einem Motor angetrieben wird. Die 
Lenkung wird von einem Servo gesteuert. Auf dem Fahrzeug ist ein 
weiterer Servo montiert, an dem ein Ultraschallsensor montiert ist. Zur 
Vereinfachung wollte ich das ganze erstmal mit der Kabelverbindung über 
USB steuern. Der Ultraschallsensor soll sich um 180° drehen und dann 
wenden um 180°, dann wieder wenden, sich also auf einem Halbkreis 
bewegen. Die Messung des Ultraschallsensors soll alle 2° an den PC 
gesendet werden.

Ich kann C/C++ und Java recht gut, allerdings bleibt eine Frage offen:

Die Arduinos haben ja nur einen Thread, wie kann ich dann gewährleisten, 
dass sich der Servo kontinuierlich dreht und die Ultraschallsensordaten 
ausgelesen und gesendet werden, WÄHREND das Fahrzeug bewegt wird?

Wenn ich zum Beispiel das Signal sende, "Fahre für 5 Sekunden vorwärts", 
dann kann in diesen 5 Sekunden eigentlich ja nicht der Servo bewegt 
werden, weil der Code für "Fahre für X Sekunden vorwärts" noch 
abgearbeitet wird (zum Beispiel in einer Schleife). Danach wird der 
Servo dann wieder angesteuert.

Wenn ich die Zeit für "Fahre X Sekunden vorwärts" aber zum Beispiel auf 
0.1 Sekunden reduziere und diesen Befehl mehrfach sende, dann könnte der 
Mikrocontroller ja die restlichen Befehle abarbeiten, zum Beispiel 2° 
weiter drehen, Daten lesen und senden und dann anschließend prüfen, ob 
ein neuer Fahrbefehl vorliegt.

Könntet Ihr bitte bewerten, ob das so möglich ist oder ob es noch andere 
Möglichkeiten für die Lösung meines Problemes gibt? Eine Lösung wäre es 
ja zum Beispiel einen zweiten Arduino zu besorgen ... ;)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren