Hallo Freunde! Möchten Sie einen ferngesteuerten Roboter steuern? Tippen Sie einfach auf ein paar Tasten, um vorwärts, zurück, rechts und links zu gehen!
Aber das Interessanteste an diesem Roboter ist seine Fähigkeit, sich selbst zu schützen! Danke an die Ultraschallsensor Daraufhin scannt es seine Umgebung und stoppt automatisch, wenn es auf ein Hindernis trifft. Sie müssen lediglich die Fernbedienung verwenden und Ihren Roboter steuern.
Wenn Sie nicht viel über Technologie wissen, machen Sie sich keine Sorgen! Dieser Roboter ist so konzipiert, dass er für jedermann einfach zu bedienen ist. Es kann sowohl für Kinder als auch für Erwachsene eine großartige Unterhaltungsquelle sein.
Sind Sie bereit, Ihren Roboter zu steuern und ein aufregendes Labyrinth voller Hindernisse zu erkunden? Dann starten Sie mit uns dieses technologische Abenteuer!
Dieses ferngesteuerte Roboterprojekt kann eine großartige Möglichkeit sein, grundlegende Technologie- und Ingenieurthemen zu erkunden und zu erlernen. Es kann auch eine Grundlage für fortgeschrittene Projekte für Menschen bieten, die sich für Wissenschaft und Technologie interessieren.
Ferngesteuerte Roboter
Ferngesteuertes Auto für Kinder
Ein ferngesteuertes Roboterspielzeug ist ein beliebtes und aufregendes Spielzeug, das Kindern ein interaktives und ansprechendes Spielerlebnis bietet. Diese Miniaturfahrzeuge, die über benutzerfreundliche Geräte ferngesteuert werden, ermöglichen es Kindern, ihrer Kreativität freien Lauf zu lassen und grundlegende motorische Fähigkeiten zu entwickeln. Es gibt sie in verschiedenen Ausführungen, vom Offroad-Abenteuerauto bis zum eleganten Rennmodell, und bieten Kindern die Möglichkeit, das Modell auszuwählen, das ihren Interessen am besten entspricht.
Ferngesteuerte Autos für Kinder bieten nicht nur stundenlange Unterhaltung, sondern fördern auch die Hand-Auge-Koordination und die Entwicklung der Feinmotorik. Diese Spielzeuge machen das spielerische Lernen zum Vergnügen und bieten jungen Enthusiasten einen fantastischen Einstieg in die Welt der Technik und des Ingenieurwesens.
Details und Algorithmus
In diesem Projekt werden wir den Roboter-Panzerfahrzeugbausatz verwenden. Wir werden den Ultraschall-Abstandssensor HC-SR04 verwenden, damit der Roboter die Wände vor ihm erkennen und über seine Bewegungen entscheiden kann. Der Roboterpanzer scannt den Bereich vor dem Auto und bewegt sich vorwärts, wenn es frei ist. Befindet sich innerhalb von 10 cm eine Wand (Hindernis), stoppt das Auto und misst den Abstand erneut.
Sie können den Robotertank mit der Fernbedienung steuern. Wenn Sie den Aufwärtspfeil drücken Taste Auf der Fernbedienung bewegt es sich vorwärts, wenn Sie die rechte Pfeiltaste drücken, bewegt es sich nach rechts, wenn Sie die linke Pfeiltaste drücken, bewegt es sich nach links, und wenn Sie die OK-Taste drücken, bewegt es sich bis zum Anschlag fahren.
Komponenten
1X PicoBricks
1XHC-SR04 Ultraschallsensor
2XDC-Motor
Verbindungskabel
Batterien
Schaltplan
Wenn Sie möchten, können Sie die STL-Dateien über die Schaltfläche unten herunterladen und auf einem 3D-Drucker ausdrucken oder sie nach Ihren Wünschen entwerfen und produzieren.
HERUNTERLADENDa Sie die Module vom Panel trennen müssen, sollten Sie die Modulverbindungen mit Grove-Kabeln herstellen.
Sie können den ferngesteuerten Spielzeugroboter herstellen, indem Sie die Schritte im Video unten befolgen.
MicroBlocks-Codes der PicoBricks
MicroPython-Codes der PicoBricks
von Zeit zu Zeit Schlaf importieren
vom Maschinenimport-Pin
vom Maschinenimport PWM
Zeit importieren
aus Picobricks importieren NEC_16
aus Picobricks IR_RX importieren
vom Maschinenimport ADC
Trigger = Pin(15, Pin.OUT)
echo = Pin(14, Pin.IN)
def getDistance():
trigger.low()
utime.sleep_us(2)
trigger.high()
utime.sleep_us(5)
trigger.low()
while echo.value() == 0:
signaloff = utime.ticks_us()
while echo.value() == 1:
signalon = utime.ticks_us()
timepassed = signalon – signaloff
Distanz = (verstrichene Zeit * 0,0343) / 2
print(“Der Abstand vom Objekt beträgt „,distanz“,cm“)
Rückweg
def ir_callback(data, addr, ctrl):
globale ir_data
globale ir_addr, data_rcvd
wenn Daten > 0:
ir_data = Daten
ir_addr = Adr
print(‘Data {:02x} Addr {:04x}’.format(data, addr))
data_rcvd = True
ir = NEC_16(Pin(0, Pin.IN), ir_callback)
ir_data = 0
data_rcvd = Falsch
motor_1 = PWM(Pin(21))
motor_1.duty_u16(0)
motor_2 = PWM(Pin(22))
motor_2.duty_u16(0)
def left():
globale Distanz
motor_1.duty_u16(50 * 650)
motor_2.duty_u16(0 * 650)
auf jeden Fall richtig():
globale Distanz
motor_1.duty_u16(0 * 650)
motor_2.duty_u16(50 * 650)
def stop():
globale Distanz
motor_1.duty_u16(0 * 650)
motor_2.duty_u16(0 * 650)
def vorwärts():
globale Distanz
motor_1.duty_u16(50 * 650)
motor_2.duty_u16(50 * 650)
während True:
distance = getDistance()
wenn Abstand <= (10):
stoppen()
if data_rcvd == True:
data_rcvd = Falsch
wenn ir_data == IR_RX.number_left:
links()
wenn ir_data == IR_RX.number_right:
Rechts()
wenn ir_data == IR_RX.number_up:
nach vorne()
wenn ir_data == IR_RX.number_ok:
stoppen()
PicoBricks IDE-Codes der PicoBricks
Arduino des Projekts
#include
#include
#include „ACROBOTIC_SSD1306.h“
#define IR_RECEIVE_PIN 0
#trigPin 15 definieren
#echoPin 14 definieren
int a = 0;
lange Dauer, Entfernung;
void setup() {
// DHT-Sensor und Oled-Bildschirm definieren
Serial.begin(115200);
Wire.begin();
oled.init();
oled.clearDisplay();
pinMode(IR_RECEIVE_PIN, INPUT);
IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
if (IrReceiver.decode()) {
a = (IrReceiver.decodedIRData.decodedRawData);
Serial.println(a);
IrReceiver.resume();
}
digitalWrite(trigPin, LOW);
VerzögerungMikrosekunden(2);
digitalWrite(trigPin, HIGH);
VerzögerungMikrosekunden(10);
digitalWrite(trigPin, LOW);
Dauer = PulseIn(echoPin, HIGH);
Distanz = (Dauer / 2) / 29,1;
wenn (Abstand <= 10)
{
stoppen();
}
if (a == -1520763136) {
links();
}
if (a == -150405376) {
Rechts();
}
if (a == -417792256) {
nach vorne();
}
if (a == -484638976) {
stoppen();
}
}
void stop()
{
digitalWrite(21, LOW);
digitalWrite(22, LOW);
}
void left()
{
digitalWrite(21, HIGH);
digitalWrite(22, LOW);
}
void right()
{
digitalWrite(21, LOW);
digitalWrite(22, HIGH);
}
void vorwärts()
{
digitalWrite(21, HIGH);
digitalWrite(22, HIGH);
}