• Erste Schritte
  • Hardware & GPIO
  • Projekte
  • Software
    • Webserver
  • Arduino & ESP8266
  • Hausautomatisierung
  • Sonstiges
    • News
Facebook Twitter YouTube
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
  • Einstieg
    • Erste Schritte
      • Raspberry Pi 3 Einstieg - Starter KitWas brauche und wie starte ich? – Raspberry Pi Einstieg
    • Einrichtung
      • microsd_karte_menuRaspbian Betriebssystem auf eine SD Karte flashen – Einfach & Schnell
      • wlanbluetooth_menuWLAN und Bluetooth einrichten – Raspberry Pi 4
      • wifi_menuWLAN Stick installieren und einrichten – Alternative
      • bash_menuSSH Zugriff einrichten via Putty – Kommandozeilen Zugriff
      • rdp_menuRemotedesktop Verbindung aufbauen – Fernsteuerung
    • Einsteiger Projekte
      • Sinnvolles Raspberry Pi Zubehör
      • 15 Raspberry Pi Projekte für Anfänger
      • Ampelschaltung mit GPIOs
      • GPIOs mit Port Expander erweitern
      • Elektronischer Würfel
      • 13 tolle Projekte für Kinder und Jugendliche
      • Roboter selber bauen
      • In Visual Studio Code mit C++ programmieren
      • Wünsch dir ein Tutorial
    • Programmieren lernen
      • Teil 1: Einführung
      • Teil 2: GPIOs steuern
      • Teil 3: GUI erstellen
      • Teil 4: PWM
      • C# GUI Apps entwickeln
  • Hardware & GPIO
    • 50 der wichtigsten Raspberry Pi Sensoren und Module – Aufgelistet mit Links zu den TutorialsRaspberry Pi Sensoren
    • Beliebte Tutorials
      • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorLuftfeuchtigkeit und Temperatur messen
      • Raspberry Pi WS2801B RGB LED Streifen anschließen und steuernWS2801 RGB LED Streifen anschließen und steuern
      • Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433Mhz)Funksteckdosen (433MHz) steuern
      • Raspberry Pi Relais ModulRaspberry Pi: Relais-Schalter per GPIO steuern
      • Raspberry Pi Servo MotorRaspberry Pi Servo Motor Steuerung
      • Amazon-Alexa-deutsch-auf-dem-Raspberry-Pi-installierenAmazon Alexa (Deutsch) auf dem installieren
      • Entfernung messen mit Ultraschallsensor HC-SR04 – Raspberry PiEntfernung messen mit Ultraschallsensor HC-SR04
      • 71-M-PU7vML.-S3L1500-Raspberry Pi’s über 433 MHz Funk kommunizieren
      • Raspberry Pi PIR Motion SensorBewegungsmelder PIR anschließen und steuern
      • Raspberry Pi USB Boot per Stick oder SSD Festplatte einrichtenUSB Boot per Stick oder SSD Festplatte
      • Analog
        • Raspberry Pi MCP3008 ADCMCP3008: Am Raspberry Pi analoge Signale auslesen
        • Raspberry Pi Gas Sensor MQ-2Raspberry Pi Gas Sensor (MQ-X) konfigurieren und auslesen
        • Raspberry Pi PulsmesserRaspberry Pi Pulsmesser: Herzfrequenz messen
        • Joystick am Raspberry Pi benutzen (mit MCP3008)Joystick am Raspberry Pi benutzen (mit MCP3008)
        • infrarot sharp distance senserInfrarot Abstandsmessung mit dem Raspberry Pi
        • Raspberry Pi Drehregler - Rotary EncoderKY040 Drehregler als Lautstärkeregler für den Raspberry Pi
        • Easpberry Pi Soil SensorBodenfeuchtigkeit mit dem Raspberry Pi messen
        • Raspberry Pi KeypadRaspberry Pi Keypad anschließen – Codeschloss
        • Raspberry Pi door sensorÜberwachung von Fenstern und Türen mit dem Raspberry Pi und Reed-Relais
        • Raspberry Pi Fotowiderstand HelligkeitssensorFotowiderstand (Helligkeitssensor) am Raspberry Pi
        • Raspberry Pi Waage selber bauen (mit Gewichtssensor HX711)Raspberry Pi Waage selber bauen (mit Gewichtssensor HX711)
      • Funk
        • 71-M-PU7vML.-S3L1500-Raspberry Pi’s über 433 MHz Funk kommunizieren lassen
        • Remote Control Raspberry Pi 433Mhz Radio TransmitterRaspberry Pi mit 433Mhz Funksender fernsteuern
        • Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433MHz) steuern
        • Raspberry Pi MiFlora - Xiaomi Pflanzensensor in OpenHAB einbindenMiFlora – Xiaomi Pflanzensensor ins Smart Home einbinden
        • Raspberry Pi RFID RC522 TüröffnerRaspberry Pi RFID RC522 Tags auslesen (NFC)
        • Funkkommunikation zwischen Raspberry Pi's und Arduinos (2.4 GHz)Funkkommunikation (2.4 GHz): Arduino & Raspberry Pi
        • Raspberry Pi Radio ReceiverRaspberry Pi als Radioempfänger benutzen
        • Raspberry Pi Xbox 360 Wireless ControllerRaspberry Pi mittels Xbox 360 Controller steuern
        • Raspberry Pi GSM Modul - Huawei Internet SticksRaspberry Pi GSM Modul – Mobiles Internet
        • Raspberry Pi Bluetooth DatentransferRaspberry Pi Bluetooth Datentransfer zum Smartphone
      • Infrarot & Laser
        • Raspberry Pi Infrarot FernbedienungRaspberry Pi: Per IR Remote Befehle ausführen
        • infrarot sharp distance senserInfrarot Abstandsmessung mit dem Raspberry Pi
        • Raspberry Pi Laser Lichtschranke für weite DistanzenRaspberry Pi Laser Lichtschranke für weite Distanzen
        • Infrarot Raspberry Pi FernbedienungInfrarot Steuerung einrichten
        • Raspberry Pi Infrarot Lichtschranke bauen und Geschwindigkeit messenRaspberry Pi Infrarot Lichtschranke bauen
        • Raspberry Pi Fotowiderstand HelligkeitssensorFotowiderstand (Helligkeitssensor) am Raspberry Pi
      • Temperatur & Navigation
        • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorRaspberry Pi: Luftfeuchtigkeit und Temperatur messen
        • Measuring Temperature with a Raspberry Pi Temperature Sensor (1-Wire)Raspberry Pi Temperatursensor (1-Wire): Temperatur messen
        • Raspberry Pi BMP180 SensorRaspberry Pi und I2C Luftdrucksensor BMP180
        • Raspberry Pi RTC Real Time ClockReal Time Clock Modul steuern
        • Rotation und Beschleunigung mit dem Raspberry Pi messenRotation und Beschleunigung mit dem Raspberry Pi messen
        • Raspberry Pi GPS ModulRaspberry Pi GPS Ortungs- / Navigationsgerät bauen
        • Raspberry Pi Kompass selber bauenRaspberry Pi Kompass selber bauen (HMC5883L)
        • Kontaktlosen Infrarot-Temperatursensor MLX90614 am Raspberry Pi auslesenMLX90614 – Kontaktlos Temperaturen messen
      • Displays
        • Raspberrry Pi HD44780 I2CHD44780 LCD Display per I2C ansteuern
        • Raspbery Pi LCD DisplayRaspberry Pi LCD Display: 16×2 Zeichen anzeigen
        • DisplayTipps & Tricks zum offiziellen 7″ Raspberry Pi Touchscreen
        • Raspberry Pi TouchscreenTestbericht zum 7″ Raspberry Pi Touchscreen Display
        • LCD Touch Display (3.2″) am Raspberry PiLCD Touch Display (3.2″) am Raspberry Pi
        • tft lcd touch displayRaspberry Pi LCD Touch Display Teil 2 – Anpassungen
        • Raspberry Pi LED MAX7219 Dot Matrix – ProjektübersichtRaspberry Pi LED Matrix – Projektübersicht
        • Raspberry Pi 7 Segment Anzeige Kathode mit MAX7219Raspberry Pi: 7 Segment Anzeigen mit MAX7219 steuern (Kathode)
        • 7 Segment Anzeige (Anode) mit MAX7219 MAX7221 und Raspberry Pi7 Segment Anzeige mit MAX7219 am Raspberry Pi (Anode)
        • Raspberry Pi Tablet Raspad TestberichtRaspberry Pi Tablet „Sunfounder RasPad“ Testbericht
      • Motoren & Sonstige
        • Raspberry Pi Stepper Motor Control with L293D / ULN2003ARaspberry Pi Schrittmotor ansteuern
        • Raspberry Pi Servo MotorRaspberry Pi Servo Motor Steuerung
        • Raspberry Pi PCA9685 mehrere Servos gleichzeitig steuernMehrere Servo Motoren per Raspberry Pi steuern
        • Raspberry Pi PIR Motion SensorBewegungsmelder PIR anschließen und steuern
        • How to use a Raspberry Pi Fingerprint Sensor for AuthenticationRaspberry Pi Fingerprint Sensor zur Authentifizierung nutzen
        • Raspberry Pi Akku AdapterRaspberry Pi mit Akkus/Batterien betreiben
        • Entfernung messen mit Ultraschallsensor HC-SR04 – Raspberry PiEntfernung messen mit Ultraschallsensor HC-SR04
        • Raspberry Pi WS2801B RGB LED Streifen anschließen und steuernWS2801 RGB LED Streifen anschließen und steuern
        • Raspberry Pi WS2812 RGB LED StripWS2812 RGB LED Streifen per Raspberry Pi steuern
        • Raspberry Pi Überwachungskamera LivestreamÜberwachungskamera Livestream einrichten
        • NoIRAufnahmen mit dem offiziellen Kamera Modul
        • Raspberry Pi Zero - establishing an Ethernet connection (ENC28J60)Raspberry Pi Zero – Ethernet Verbindung
  • Software
    • Webserver Installation
      • apache2_menu25Teil 1 – Apache2
      • php_menu25Teil 2 – PHP 5
      • mysql_menu25Teil 3 – MySQL
      • phpmyadmin_menu25Teil 4 – phpMyAdmin
      • ftp_menu25Teil 5 – FTP Server
      • dns_menu25Teil 6 – DNS Server via No-IP
      • home_menu25Homeverzeichnis ändern
      • share_25Samba Server: Dateien im Netzwerk teilen
      • nodejs_menu25Node.js Webserver installieren und GPIOs schalten
      • ssl_menu25SSL Zertifikat kostenlos mit Let’s Encrypt
      • wordpress_25Eigenen WordPress-Server einrichten
      • cloud-25Nextcloud auf dem Raspberry Pi installieren
    • Entertainment
      • led_menu25Raspberry Pi Ambilight für alle Geräte mit OSMC selber bauen
      • amazon_menu25Amazon Alexa (Deutsch) auf dem Raspberry Pi installieren
      • controller_25Raspberry Pi RetroPie – Spielekonsole selber bauen
      • kodi_menu25Mediencenter Raspbmc als SmartTV mit dem Raspberry Pi
      • android_25Android TV Box zum selber bauen
      • apple-2316234_640Raspberry Pi als AirPlay-Empfänger
      • jukebox_menu25Raspberry Pi als Jukebox (Spotify, Soundcloud, TuneIn, uvm.)
      • steam_25Steam Spiele streamen
      • minecraft_menu25Raspberry Pi Minecraft Server
      • youtube_25YouTube Live Streaming einrichten
      • qr-code-tutorials-raspberrypi.de_25Raspberry Pi QR / Barcode Scanner
    • Fernsteuerung
      • rdp_menuRaspberry Pi Remotedesktop Verbindung
      • ssh_menu25SSH Zugriff einrichten via Putty (Windows)
      • vnc_menu25Raspberry Pi mittels VNC fernsteuern
      • welcome_menu25SSH Terminal Begrüßung ändern
      • telegram1_menu25Telegram Messenger auf dem RaspberryPi
      • telegram2_menu25Mit Telegram Messenger Raspberry Pi steuern
      • bluet_menu25Raspberry Pi Bluetooth Datentransfer zum Smartphone
      • alexa_voice_25Eigenen Raspberry Pi Alexa Skill bauen
      • microphone_25Sprachsteuerung selber bauen
      • mqtt_25MQTT Broker/Client Funkkommunikation
      • mail_25Vom Raspberry Pi Emails senden
      • twitter_25Per Twitter Bot Nachrichten posten
    • Weitere
      • loggen_menu25Sensordaten mit ThingSpeak loggen und auswerten
      • mysql_datalogger25Per lokaler MySQL Datenbank zum Raspberry Pi Datenlogger
      • opencv_menu25OpenCV auf dem Raspberry Pi installieren
      • arduino_menu30tWiringPi installieren & Pinbelegung (Raspberry Pi)
      • radio_menu25Raspberry Pi als Radio Sendestation
      • win10_menu25Windows 10 IoT auf dem Raspberry Pi installieren
      • printer_25Drucker einrichten und per Knopfdruck Bilder drucken
      • gsm_menu25Raspberry Pi GSM Modul – Mobiles Internet (LTE, 3G, UMTS)
      • autostart_menu25Autostart: Programm automatisch starten lassen
      • machine-learning-25Raspberry Pi Machine Learning erlernen
  • Projekte
      • roboter_menu30tRoboter
        • Raspberry Pi Roboter ProjektRaspberry Pi Roboter Projektübersicht
        • Raspberry Pi Roboter Bausatz fertigTeil 1: Zusammenbau
        • Raspberry Pi Roboter - Linien folgenTeil 2: Linien folgen lassen
        • Raspberry Pi Roboter per Infrarot Fernbedienung steuernTeil 3: Per Infrarot Fernbedienung steuern
        • Raspberry Pi Roboter: Ultraschall AutopilotTeil 4: Automatisch Hindernissen ausweichen
        • Raspberry Pi Roboter der eigenen Stimme folgen lassenTeil 5: Der eigenen Stimme folgen lassen
        • Raspberry Pi Roboter mit Xbox 360 Controller fernsteuernTeil 6: Mit Xbox 360 Controller Roboter fernsteuern
        • Raspberry Pi Robot Arm 6DOF6-Gelenkigen Roboter Arm am Raspberry Pi betreiben (6 DOF)
      • led_menu30LED Matrix
        • Raspberry Pi LED MAX7219 Dot Matrix – ProjektübersichtMAX7219 LED Matrix – Projektübersicht
        • 8×8 LED Dot Matrix Parts8×8 LED Matrix – Zusammenbau und Installation
        • Raspberry Pi Bibliothek für mehrzeilige m x n MAX7219 LED MatrizenBibliothek für mehrzeilige m x n MAX7219 LED Matrizen
        • Graphiken auf mehrzeiligen Raspberry Pi LED Matrizen zeichnenGraphiken auf mehrzeiligen Raspberry Pi LED Matrizen zeichnen
        • Pong auf MAX7219 Matrizen spielen (mit Joystick) – Raspberry PiPong auf MAX7219 Matrizen spielen (mit Joystick)
        • Snake auf Raspberry Pi MAX7219 Matrizen spielenSnake auf Raspberry Pi MAX7219 Matrizen spielen
        • 7 Segment Anzeige (Anode) mit MAX7219 MAX7221 und Raspberry Pi7 Segment Anzeige (Anode) mit MAX7219/MAX7221
        • Raspberry Pi 7 Segment Anzeige Kathode mit MAX7219Raspberry Pi: 7 Segment Anzeigen mit MAX7219 steuern (Kathode)
      • wetterstation_menu30Wetterstation
        • Raspberry Pi Wetterstation mit OpenHAB 2 bauenEigene Raspberry Pi Wetterstation mit OpenHAB 2 bauen
        • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorLuftfeuchtigkeit und Temperatur messen
        • raspberry_pi_thingspeak_daten_loggenSensordaten mit ThingSpeak loggen und auswerten
        • Raspberry Pi BMP180 SensorRaspberry Pi und I2C Luftdrucksensor BMP180
        • Measuring Temperature with a Raspberry Pi Temperature Sensor (1-Wire)Raspberry Pi Temperatursensor (1-Wire): Temperatur messen
        • ESP8266 NodeMCU Außenposten-Wetterstation für den Raspberry PiESP8266 Wetterstation Außenposten für den Raspberry Pi
        • Raspberry Pi Gas Sensor MQ-2Raspberry Pi Gas Sensor (MQ-X) konfigurieren und auslesen
      • arduino_menu30tArduino & ESP8266
        • ESP8266 Microcontroller BoardEinführung & Programmierung des ESP8266 NodeMCU Boards
        • Raspberry Pi + ESP8266 NodeMCU: Per WLAN Daten sendenRaspberry Pi + ESP8266 NodeMCU: Per WLAN Daten senden
        • ESP8266 NodeMCU Außenposten-Wetterstation für den Raspberry PiESP8266 Wetterstation Außenposten für den Raspberry Pi
        • Mit dem NodeMCU ESP8266 433MHz Funksteckdosen steuernMit dem NodeMCU ESP8266 433MHz Funksteckdosen steuern
        • ESP8266 NodeMCU HD44780 LCD Display per I2C steuernNodeMCU ESP8266: HD44780 LCD Display per I2C steuern
        • ESP8266 Grafikdisplay: Am SSD1306 OLED per I2C Bilder & Text anzeigen
        • ESP8266 Google Maps API RoutenplanerESP8266 Google Maps API Routenplaner auf LCD anzeigen
        • 2000px-Arduino_Logo.svgRaspberry Pi und Arduino – Einführung
        • arduino unoArduino und Raspberry Pi miteinander kommunizieren lassen
        • Funkkommunikation zwischen Raspberry Pi's und Arduinos (2.4 GHz)Funkkommunikation zwischen Raspberry Pi’s und Arduinos (2.4 GHz)
        • NodeMCU: ESP8266 mit Solarpanel und Akku mit Strom versorgenNodeMCU: ESP8266 mit Solarzelle und Akku mit Strom versorgen
        • ESP8266 Access Point: Günstigen Wlan Repeater selber bauenESP8266 Access Point: Günstigen Wlan Repeater selber bauen
      • Mini Projekte
        • Raspberry Pi Gewächshaus automatisch selber bauenAutomatisches Raspberry Pi Gewächshaus selber bauen
        • Eigene Raspberry Pi Gartenbewässerung mit Webseite bauenEigene Gartenbewässerung mit Webseite bauen
        • Raspberry Pi Radio StationRaspberry Pi als Radio Sendestation verwenden
        • Raspberry Pi Radio ReceiverRaspberry Pi als Radioempfänger benutzen (Autoradio, Car PC)
        • spotify-logo-primary-horizontal-dark-background-rgbRaspberry Pi als Jukebox (Spotify, Soundcloud, TuneIn, uvm.) – Online Radio
        • Raspberry Pi RetroPie Guide - SNES Classic Spielekonsole selber bauenRaspberry Pi RetroPie Guide – SNES Spielekonsole bauen
        • Android + Raspberry Pi: Funksteckdosen App BedienungRaspberry Pi + Android/iOS: Funksteckdosen per App schalten
        • Indirekte Deckenbeleuchtung selber bauen mit farbigem LED LichtIndirekte Deckenbeleuchtung selber bauen mit farbigem LED Licht
  • Sonstiges
    • Wünsch dir ein Tutorial
    • News
    • Reviews
      • Pi Cap – Kapazitives Raspberry Pi Erweiterungsboard
      • Raspberry Pi Tablet „Sunfounder RasPad“ – Testbericht & Einrichtung
      • Testbericht zum 7″ Raspberry Pi Touchscreen Display
      • CrowPi 2 Testbericht: Laptop & Lern-Kit für Kinder
      • Daten auf dem Wio Terminal LCD Screen anzeigen
    • Raspberry Pi Zero
      • Offizielles 5$ Raspberry Pi Zero Modul vorgestellt
      • Raspberry Pi Zero – Ethernet Verbindung herstellen (ENC28J60)
      • Raspberry Pi: WS2801 RGB LED Streifen anschließen und steuern
  • Hausautomation
    • OpenHAB
      • steckdose_25Sonoff S20 Wifi Steckdose steuern
      • wireless_25Funksteckdosen (433 MHz) schalten
      • schalter_25Relais steuern (Rollladen, Lichter, etc.)
      • wetterstation_menu30Wetterstation mit OpenHAB 2 bauen
      • ws28_25WS28xx RGB LED Streifen steuern
      • touchscreen_25Touchscreen Panel bei Näherung aktivieren
      • mqtt_25MQTT Datenabfrage: Raspberry Pi an ESP8266
      • spotify_25Remote Spotify Player im Smart Home
      • heizung_25eQ-3 Thermostat im Smart Home
    • Einführung
      • Raspberry Pi Smart Home OpenHAB installierenOpenHAB installieren & konfigurieren
      • Home Assistant auf dem Raspberry Pi – Erste Schritte
    • ESP8266 NodeMCU
      • esp8266_25Einführung & Programmierung
      • arduino_25ESP8266: Arduino IDE installieren
      • lcd_25NodeMCU HD44780 LCD
      • battery_25Batteriebetrieb via Deep-Sleep
      • wifi_menuPer WLAN Daten senden
      • wetterstation_menu30Wetterstation Außenposten
      • maps_25Google Maps Routenplaner
      • wireless_25NodeMCU Funksteckdosen steuern
      • mail_25Vom NodeMCU Emails versenden
      • rgb_25WS2812B LEDs am Smartphone steuern
      • solar_25ESP8266 Stromversorgung mit Solarzelle
    • Überwachung
      • Aufnahmen mit dem offiziellen Kamera Modul des Raspberry Pi
      • Raspberry Pi: Überwachungskamera Livestream einrichten
      • mailbox_25Briefkasten Sensor – Email Benachrichtigung bei neuer Post
      • Raspberry Pi Überwachungskamera mit Webcam betreiben
      • Überwachung von Fenstern und Türen mit dem Raspberry Pi und Reed-Relais
      • ESP32 Cam Livestream Tutorial für Kamera Modul
    • Raspberry Pi + Android: Benachrichtigungen von Bewegungsmelder
    • Raspberry Pi + Android/iOS: Funksteckdosen per App schalten
    • Raspberry Pi + Android: Schwenkbarer Kamera-Livestream
      • Smart Home
        • Amazon Alexa (Deutsch) auf dem Raspberry Pi installieren
        • Raspberry Pi Funksteckdosen (433MHz) steuern – Tutorial
        • Raspberry Pi Sprachsteuerung selber bauen (Hausautomatisierung)
  • Englisch
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
Home»Projekte»Raspberry Pi Roboter Bausatz – Zusammenbau (Teil 1)

Raspberry Pi Roboter Bausatz – Zusammenbau (Teil 1)

Facebook Twitter LinkedIn Tumblr Email Reddit
Teilen
Facebook Twitter LinkedIn Email Tumblr Reddit Telegram WhatsApp

Neben vielen interessanten Projekten mit dem Pi ist ein selbstgebauter Roboter ein kleines Highlight, da er viele Komponenten zusammenführt. In den folgenden Teilen werden wir Schritt für Schritt einen Roboter mit vielen (selbständigen) Funktionen erstellen.

Im ersten Teil der Raspberry Pi Roboter Tutorials bauen wir den Bausatz zusammen und legen Funktionen zum Steuern der Motoren an, womit der Roboter bereits in alle Richtungen fahren kann. Diese werden in den folgenden Teilen benötigt, wenn wir unseren Roboter z.B. fernsteuern oder einer Linie folgen lassen wollen.

 

Bausatz und Zubehör

Es empfiehlt sich einen Bausatz zu nehmen, welcher bereits das nötigste beinhaltet. Ich habe dazu einen Bausatz mit zwei steuerbaren Rädern genommen, allerdings gibt es auch welche mit 4 Rädern. Anfängern würde ich empfehlen, sofern man dem Tutorial exakt folgen will, den selben Bausatz zu verwenden – es sollte aber nicht all zu viel Aufwand sein, den Code für vierrädrige Karosserien anzupassen.

In diesem Tutorial habe ich folgendes verwendet, da neben dem Bausatz an sich auch noch u.a. ein Motoren Driver IC benötigt wird:

  • Roboter Bausatz mit 2 Rädern
  • L293D IC
  • 4xAA Batterien (1.5V)
  • Powerbank (meine Empfehlung: Intenso)
  • alternativ: LM2596 Spannungsregler
  • Mini Breadboard
  • Jumper Kabel
  • Lötutensilien (Lötkolben, Lötzinn, Unterlage, etc.)

Welches Raspberry Pi Modell verwendet wird, spielt keine Rolle. Ein Raspberry Pi Zero ist praktisch, da es leicht ist und wenig Platz benötigt, allerdings können später nur schwer Erweiterungen (wie z.B. USB Kameras) angebracht werden.

 

Raspberry Pi Roboter Bausatz aufbauen

Neben den Rädern und Motoren kommt der Bausatz mit einigen Schrauben und Platten, welche wir zusammenbauen werden. Die enthaltenen Teile des zweirädrigen Bausatzes sind folgende:

Raspberry Pi Roboter Bausatz Übersicht
Raspberry Pi Roboter Bausatz Übersicht

Als erstes werden wir die Motoren fest schrauben. Dazu nehmen wir erst einmal die beiden Motoren und befestigen die Rädchen daran:

Raspberry Pi Roboter Bausatz Motoren

Mit Hilfe der 4 langen Schrauben sowie wie den 4 kleineren Platten werden die Motoren an der großen Platte befestigt. Dazu wird auf mittig beiden Seiten eine Platte durch das passende Loch geschoben. Der Motor wird daneben platziert. Es muss darauf geachtet werden, dass die Verbindungen beider Motoren jeweils nach innen zeigen.

Raspberry Pi Roboter Bausatz Motor Achse

Auf den äußeren Seiten werden die verbliebenen zwei Platten platziert und die langen Schrauben (von außen) durchgeführt. Innen werden die kleinen Muttern angebracht und damit die Motoren befestigt.

Raspberry Pi Roboter Bausatz Motoren befestigt

Falls du die Batterien anstelle einer Powerbank verwenden willst, kannst du den Schalter noch in das mittige Loch stecken.

Als nächstes wird das Vorderrad befestigt. Wir nehmen uns dazu das drehende Rad, die 4 Abstandshalter sowie 8 Schrauben. Ich empfehle das Rad etwas zu ölen, bevor es befestigt wird, da es sich manchmal nur schwer bewegen lässt.

Raspberry Pi Roboter Bausatz Vorderrad

Die vier Abstandshalter werden zuerst an das Rad geschraubt. Anschließend werden sie mit den restlichen Schrauben vorne an der Platte befestigt. Außerdem kannst du die Hinterräder an en Motoren befestigen.

Nun müssen nur noch jeweils zwei Kabel an die „Laschen“ (siehe 2. Bild sowie 3. Bild, linke Seite) des Motors gelötet werden, was ein wenig Feingefühl benötigt. Wenn die die Motoren testen möchtest kannst du anschließend je ein Kabel an 3.3V (Pin 1) vom Raspberry Pi heften und eines an GND (Pin 6). Der Motor sollte sich nun bewegen (ob vorwärts oder rückwärts spielt erst einmal keine Rolle).

 

Der letzte Schritt ist nicht nur für jene, die Batterien verwenden wollen, da die Motoren einen höheren Strom brauchen, als der Raspberry Pi zur Verfügung stellen kann. Dazu muss der Batteriehalter mit den verbleibenden zwei Schrauben und Muttern auf der vorderen Oberseite der Platte befestigt werden. Die Kabel können durch das kleine runde Loch in der Mitte nach unten verlegt werden:

Um die Batterien als Spannungsquelle für den Pi nutzen zu können, brauchst du den Spannungswandler LM2596. Damit wird die Spannung auf 5V angepasst (zum Tutorial). Zwischen USB Anschluss und Spannungswandler kannst du den Schalter verbinden, um so die Stromversorgung ggf. unterbrechen zu können. Der Einfachheit halber nutze ich allerdings eine Powerbank für die Stromversogung des Pi. Im schematischen Aufbau ist der Spannungswandler der Vollständigkeit halber dennoch vorhanden. Die Spannung für die Motoren kommt von den Batterien.

 

 

Anschluss der Motoren

Um die beiden DC Motoren vorwärts und rückwärts laufen lassen zu können, benötigen wir den Motor Treiber IC (L293D). Dieser kann 4 Channel steuern, reicht also perfekt für unsere zwei DC Motoren. Im folgenden schematischen Aufbau kannst du die Verbindungen sehen:

Raspberry Pi Roboter Bausatz DC Motoren L293D+LM2596

Die genaue Funktionsweise und Verkabelung ist auch u.a. in diesem Tutorial beschrieben, daher gehe ich hier nicht genauer darauf ein. Als GPIO Pins für den linken Motor nehme ich 17 und 27 sowie 23 und 24 für den rechten Motor. Achte darauf, dass eine externe Stromversorgung (Batterien) benutzt wird, da der 5V Pin des Pi’s nicht ausreicht (Motoren klappern dann nur).

 

 

Code zum Bewegen des Roboters

Als letztes, bevor der Roboter seine ersten Schritte fährt, fehlt noch der entsprechende Code. Dafür habe ich eine Klasse geschrieben, welche auch in den folgenden Teilen verwendet wird.

Wir erstellen einen Ordner, in welchen alle Dateien des Roboters hinein kommen und erstellen die Datei, in welche der Code für den Motor kommt:

sudo mkdir RaspberryPi-Robot
cd RaspberryPi-Robot
sudo nano l293d.py

Die Datei bekommt folgenden Inhalt:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import RPi.GPIO as GPIO
import time
import threading
 
#GPIO.setmode(GPIO.BCM)
#GPIO.setwarnings(False)
 
class L293D():
    DIST_PER_SEC  = 35.0 # cm/s
    SEC_PER_TURN  = 2.087 # seconds per full turn (depending on the base material, use forwardLeft(), stop() and time.time() to measure the time)
 
    def __init__(self, left_pin1, left_pin2, right_pin1, right_pin2):
        self.MOTOR_LEFT_PIN1  = left_pin1
        self.MOTOR_LEFT_PIN2  = left_pin2
        self.MOTOR_RIGHT_PIN1 = right_pin1
        self.MOTOR_RIGHT_PIN2 = right_pin2
 
        GPIO.setup(self.MOTOR_LEFT_PIN1, GPIO.OUT)
        GPIO.setup(self.MOTOR_LEFT_PIN2, GPIO.OUT)
        GPIO.setup(self.MOTOR_RIGHT_PIN1, GPIO.OUT)
        GPIO.setup(self.MOTOR_RIGHT_PIN2, GPIO.OUT)
 
    def forwardLeft(self):
        GPIO.output(self.MOTOR_LEFT_PIN1, GPIO.LOW)
        GPIO.output(self.MOTOR_LEFT_PIN2, GPIO.HIGH)
        GPIO.output(self.MOTOR_RIGHT_PIN1, GPIO.LOW)
        GPIO.output(self.MOTOR_RIGHT_PIN2, GPIO.LOW)
        return time.time()
 
    def forwardRight(self):
        GPIO.output(self.MOTOR_RIGHT_PIN1, GPIO.LOW)
        GPIO.output(self.MOTOR_RIGHT_PIN2, GPIO.HIGH)
        GPIO.output(self.MOTOR_LEFT_PIN1, GPIO.LOW)
        GPIO.output(self.MOTOR_LEFT_PIN2, GPIO.LOW)
        return time.time()
 
    def forward(self):
        GPIO.output(self.MOTOR_LEFT_PIN1, GPIO.LOW)
        GPIO.output(self.MOTOR_LEFT_PIN2, GPIO.HIGH)
        GPIO.output(self.MOTOR_RIGHT_PIN1, GPIO.LOW)
        GPIO.output(self.MOTOR_RIGHT_PIN2, GPIO.HIGH)
        return time.time()
 
    def backwardLeft(self):
        GPIO.output(self.MOTOR_RIGHT_PIN1, GPIO.HIGH)
        GPIO.output(self.MOTOR_RIGHT_PIN2, GPIO.LOW)
        GPIO.output(self.MOTOR_LEFT_PIN1, GPIO.LOW)
        GPIO.output(self.MOTOR_LEFT_PIN2, GPIO.LOW)
        return time.time()
 
    def backwardRight(self):
        GPIO.output(self.MOTOR_RIGHT_PIN1, GPIO.HIGH)
        GPIO.output(self.MOTOR_RIGHT_PIN2, GPIO.LOW)
        GPIO.output(self.MOTOR_LEFT_PIN1, GPIO.LOW)
        GPIO.output(self.MOTOR_LEFT_PIN2, GPIO.LOW)
        return time.time()
 
    def backward(self):
        GPIO.output(self.MOTOR_LEFT_PIN1, GPIO.HIGH)
        GPIO.output(self.MOTOR_LEFT_PIN2, GPIO.LOW)
        GPIO.output(self.MOTOR_RIGHT_PIN1, GPIO.HIGH)
        GPIO.output(self.MOTOR_RIGHT_PIN2, GPIO.LOW)
        return time.time()
 
    def stop(self):
        GPIO.output(self.MOTOR_LEFT_PIN1, GPIO.LOW)
        GPIO.output(self.MOTOR_LEFT_PIN2, GPIO.LOW)
        GPIO.output(self.MOTOR_RIGHT_PIN1, GPIO.LOW)
        GPIO.output(self.MOTOR_RIGHT_PIN2, GPIO.LOW)
 
    def forwardDistance(self, dist):
        self.forward()
        threading.Timer(dist/self.DIST_PER_SEC, self.stop)
 
    def backwardDistance(self, dist):
        self.backward()
        threading.Timer(dist/self.DIST_PER_SEC, self.stop)
 

Mit STRG+O, STRG+X speichern und schließen wir den Editor. Wir starten einen ersten Test, in dem der Roboter ein paar Zentimeter fährt und sich einmal im Kreis dreht:

sudo python

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import RPi.GPIO as GPIO
import time
from l293d import L293D
 
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
 
l = L293D(17,27,23,24)
l.stop()
 
for i in range(20):
  l.forward()
  time.sleep(0.5)
  l.forwardRight()
  time.sleep(0.5)
l.stop()

Falls die Funktionen nicht funktionieren, wie sie sollten (fährt rückwärts statt vorwärts, etc.) einfach mal die beiden Kabel eines Motors tauschen und erneut testen. Die GPIO Belegung muss natürlich angepasst werden, sofern sie von der hier verwendeten Belegung abweicht.

 

Anpassen der Motoren-Parameter

Für die weiteren Teile ist es wichtig, dass die beiden Parameter DIST_PER_SEC und SEC_PER_TURN richtig angegeben werden. Diese sind allerdings vom Untergrund abhängig (Teppichboden, Parkett, Fließen, etc.) und müssen daher individuell gemessen werden.  Um DIST_PER_SEC zu messen, reicht es folgenden Befehl auszuführen:

l.forward();time.sleep(1.0);l.stop()

Anschließend kannst du einfach den zurückgelegten Abstand messen und den Wert (in Zentimeter) eintragen.

Um SEC_PER_TURN zu messen, ist ein wenig Geschick nötig. Und zwar starten wir dafür einen der Motoren und stoppen, sobald eine 360° Umdrehung fertig ist. Hier musst du etwas mit der Wartezeit spielen, bis du einen guten Wert gefunden hast:

wartezeit = 2.08
l.forwardLeft();time.sleep(wartezeit);l.stop()

Danach müssen beide Werte noch in der Datei angepasst werden.

 

Im nächsten Teil werden wir den Roboter einer Linie folgen lassen.

akku batterien Bausatz l293 l293d LM2596 Motor Powerbank Raspberry Pi Roboter Roboter
Teilen Facebook Twitter Pinterest LinkedIn Tumblr Email
Vorheriger BeitragRaspberry Pi SSL Zertifikat kostenlos mit Let’s Encrypt erstellen
Nächster Beitrag Raspberry Pi Roboter programmieren: Linien folgen lassen (Teil 2)

Ähnliche Beiträge

PiCar-X: Smartes selbstfahrendes Roboter Auto mit dem Raspberry Pi bauen

Headless Setup des Google AIY Voice Kit am Raspberry Pi

Indirekte Deckenbeleuchtung selber bauen mit farbigem LED Licht

NodeMCU: ESP8266 mit Solarzelle und Akku mit Strom versorgen

136 Kommentare

  1. Tony Goodhew am 9. Dezember 2016 10:57

    I do not like these caster wheels. If you try to go forward, stop and then backward the wheel turn about its pivot point and changes the orientation of the robot. You should be able to go backward and forward repeatedly along the same line.
    I think these are better:
    https://www.amazon.co.uk/Ball-Caster-Metal-3-8/dp/B0054JDI0G
    but you may need more spacers.
    Sorry, I do not speak German but I can follow the code, diagrams and pictures.
    Great site, Thanks

    Antworten
    • Felix am 9. Dezember 2016 14:16

      You’re right, I had this problem, too. It should be no problem to use another wheel but using the same code. I’m glad you liked it 🙂

      Antworten
    • Sheldon am 26. Oktober 2018 7:44

      Hallo Felix,
      ich bin neu Einsteiger im Thema Raspberry Pi aber möchte jedoch dieses Projekt durchführen. Wo muss ich die Python Datei ablegen und muss ich auf mein Raspberry Pi irgendein Betriebssystem wie zum Beispiel Raspbian installieren.
      Danke vorerst..
      Sheldon

      Antworten
      • Felix am 31. Oktober 2018 20:21

        Hi,
        ja du solltest immer ein aktuelles Raspbian als OS nehmen. Die Python Dateien kannst du in einem Order/Verzeichnis deiner Wahl ablegen (am besten einem neuen Ordner mit entsprechendem Namen nehmen).

  2. Tony Goodhew am 9. Dezember 2016 11:14

    Should lines 72 and 76 both be backward()?

    Antworten
    • Felix am 9. Dezember 2016 14:07

      No, line 72 should be self.forward(). Thanks for the info, I corrected it 🙂

      Antworten
  3. Stefan Mühlbauer am 12. Dezember 2016 8:29

    Hi
    könntest Du evtl. eine Liste aller Bauteile die im Workshop verwendet werde veröffentlichen dann könnte man alle Bauteile auf einmal bestellen.

    LG
    Stefan

    Antworten
    • Felix am 12. Dezember 2016 11:46

      Hi Stefan,
      das hatte ich vor zu tun, sobald alle Tutorials fertig sind. Es soll nämlich möglich sein auch bestimmte Teile zu überspringen.
      Falls gewünscht kann ich aber meine bisherige Einkaufsliste hier schon mal posten.
      LG, Felix

      Antworten
  4. Stefan Mühlbauer am 12. Dezember 2016 13:12

    Hallo Felix
    würde nicht schaden wenn Du die bisherige Liste posten würdest.

    LG
    Stefan

    Antworten
    • Felix am 12. Dezember 2016 23:31

      Also meine (bisherige Liste):

      • Raspberry Pi
      • Intenso Powerbank
      • Batterien
      • Mini Breadboard
      • Jumper Kabel (Male-Male, Male-Female, Female-Female)
      • L293D
      • Fahrgestell mit 2/3 Rädern
      • 2x TCRT5000
      • Ultraschallsensor
      • Servo Motor
      • IR Fernbedienung + Empfänger
      • 3x Sound Erkennungssensor
      • MCP3008

      Und bei folgendem bin ich mir noch nicht sicher, ob ich es rein nehme (ob ich Zeit dafür finde):

      • XBox360 Controller
      • Passender Receiver

      Wenn jemand weitere Vorschläge hat und ich Zeit dafür finde, kann ich es auch einbauen.

      Antworten
      • Mirko am 11. Mai 2017 22:32

        Hey Felix, ich habe eine H-Brücke wie muss ich es dort vetkabeln? Könntest du ne Skitze auf zeichnen LG Mirko

      • Sheldon am 25. Oktober 2018 20:57

        Hallo Felix,
        ich bin neu Einsteiger im Thema Raspberry Pi aber möchte jedoch dieses Projekt durchführen. Wo muss ich die Python Datei ablegen und muss ich auf mein Raspberry Pi irgendein Betriebssystem wie zum Beispiel Raspbian installieren.
        Danke vorerst..
        Sheldon

  5. Christoph am 18. Dezember 2016 15:29

    Hallo Felix,

    kannst Du Deinen Code eventuell um die Funktion PWM für die Geschwindigkeit ergänzen?

    Habe für den L298 eingesetzt, dort kann ich über ENA & ENB über PWM die Geschwindigkeit steuern.
    Bei meinem 4WD läßt sich dann hoffentlich der Kurvenradius verbessern, z.Bsp.
    In1= links-vor, In2= links-zurück, In3=rechts-vor, In4=rechts-zurück, ENA = links, ENB = rechts

    Linke Kurve: ENA = 30, ENB = 100, In1=high, in2=low, in3=high ,in4=low
    Rechte Kurve: ENA = 100, ENB = 30, In1=high, in2=low, in3=high ,in4=low

    und rückwärts:
    Linke Kurve: ENA = 30, ENB = 100, In1=low, in2=high , in3=low, in4=high
    Rechte Kurve: ENA = 100, ENB = 30, In1=low, in2=high , in3=low, in4=high

    Außerdem halte ich es für sinnvoll die Eingänge dauerhaft bereits in der Class „L293/8D“ einzugeben

    ENA = 17
    IN1 = 27
    IN2 = 22
    IN3 = 24
    IN4 = 23
    ENB = 18

    Und ggf. eine PWRmax für PWM vorzugeben: PWM_MAX = 100

    Leider scheiter ich gerade an genau der Geschwindigkeitsregulierung.

    Danke & Gruß
    Christoph

    Antworten
    • Klaus am 17. Februar 2017 7:47

      Hallo Christoph,

      Ich will den Roboter ebenfalls bauen und würde auch gerne ein Modell mit 4 Rädern umsetzen. Hat es bei dir mittlerweile funktioniert? Falls ja, funktioniert das verfolgen der Linie und das auswichen von Hindernissen bei dir auch?
      Über eine Antwort würde ich mich freuen.

      Antworten
  6. Rolf am 7. Januar 2017 18:28

    Hallo Felix,
    ich habe viel Spaß mit dem Roboter und Deine Tutorial funktionieren sehr gut.
    Für den Spannungsregler war wohl die Eingangsspannung vom Batterieblock zu gering. Ich habe ebenfalls wie Du ein Powerpack benutzt und damit klappt es wie es soll.
    Ein Problem habe ich noch: Ein Motor läuft langsamer als der andere und somit kann ich keine Geradeausfahrt erreichen. Wie kann ich dieses Problem lösen?

    Für eine Antwort vielen Dank und Gruß
    Rolf

    Antworten
    • Felix am 7. Januar 2017 18:30

      Hi Rolf,
      freut mich, dass die Tutorials dir gefallen.
      Versuch doch mal verschieden große Widerstände zwischen die Stromversorgung des schnelleren Motors zu schalten.
      LG, Felix

      Antworten
  7. Rolf am 8. Januar 2017 12:33

    Vielen Dank Felix für die prompte Antwort,
    mit 2 Ohm ist das Problem gelöst.
    LG Rolf

    Antworten
  8. Bastian am 30. Januar 2017 17:49

    Hallo Felix,

    ich habe das Problemm, dass ich wenn ich den beispielcode ausführe, sich nur ein motor entsprechend verhält und der andere dauerhaft dreht??
    Vllt kennt ja jemand das Problem und weiß hilfe 🙂

    Gruß

    Basti

    Antworten
  9. Bastlian am 1. Februar 2017 0:24

    hi, könnte mich kurz jemand aufklären welche aufgabe genau das driver board übernimmt? 🙂

    Antworten
    • Felix am 1. Februar 2017 0:54

      Zum einen wird die höhere Spannung abgegeben (Pi kann nur 3.3V schalten, Motor will mehr) und außerdem muss beim rückwärtsfahren anders gepolt werden, was der Driver Board auch übernimmt.
      LG, Felix

      Antworten
  10. Felix am 6. Februar 2017 16:28

    Hallo, Ich würde das gerne nachbauen, nun meine Frage:
    Ich würde die Grundplatte gerne aus Aluminium machen und noch ein Gehäuse aus Alu oder Holz bauen, aber sind die Motoren des Sets dann noch stark genug? Und wenn nein, wo bekomme ich stärkere Motoren die auch 90 Grad gedreht sind?

    Antworten
    • Felix am 6. Februar 2017 17:40

      Wie schwer wird die Konstruktion denn? Du kannst auch andere DC Motoren nutzen, die stärker sind (und man ein Rad daran anbringen kann).

      Antworten
  11. Klaus am 19. Februar 2017 20:52

    Hallo,

    ich habe gesehen, dass es auch solche Motor Shields gibt (https://www.amazon.de/Adafruit-Schrittmotor-HAT-für-Raspberry/dp/B00WU4QA30/ref=sr_1_8?s=ce-de&ie=UTF8&qid=1487533545&sr=1-8&keywords=raspberry+pi+motor) oder (https://www.amazon.de/dp/B01MRKBO8L/ref=sr_1_7?s=ce-de&ie=UTF8&qid=1487533545&sr=1-7&keywords=raspberry+pi+motor)

    Könnte man auch ein solches Motor Shield verwenden und dafür auf den L293D IC und den und das Breadboard irgendwie verzichten? Bzw. würden die weiteren Teile des Projekts dann auch noch funktionieren (Ultra-Schall etc.) ?

    Antworten
    • Felix am 19. Februar 2017 21:14

      In der Beschreibung des ersten Links steht, dass man auch DC Motoren damit betreiben kann, also würde ich zu ja tendieren. Ob du damit aber z.B. auch rückwärts fahren kannst, kann ich nicht sagen.

      Antworten
  12. Raspifrosch am 26. Februar 2017 20:38

    Hallo, ich bin raspifrosch und habe jetzt alle Teile für den Roboter. Nach Plan habe ich den ersten Schritt getan, aber die Motoren zucken nicht. Ich habe den Raspberry3 über das Spannungsreglerteil angeschlossen. Ist in der Zeichnung nicht in und out vertauscht?
    Auch ohne dieses Teil passiert mit Batterien nichts. Muss ich denn den Raspy auch über microusb mit Spannung versorgen? Nur über die Batterien arbeitet er nicht.

    Antworten
    • Felix am 26. Februar 2017 20:42

      Nein, wieso sollte es vertauscht sein? Falls keine Powerbank vorhanden ist, kommt der Strom eben aus den Batterien. Ich empfehle allerdings die Powerbank Variante. Der Pi braucht natürlich Spannung über den MicroUSB Port.

      Antworten
  13. Marc am 9. März 2017 16:58

    Hallo,
    ich möchte für das Projekt gerne einen größeren Aufbau verwenden.
    Kannst du mir sagen, wie die hier verwendeten Motoren heißen (Bauteilbezeichnung oder Kennung – ähnlich L293D etc.)?
    Und kannst du geeignete Motoren empfehlen, die etwas mehr Leistung bieten?

    Vielen Dank

    Antworten
    • Felix am 9. März 2017 17:40

      Die genaue Bezeichnung kenne ich leider nicht, aber da kann jeder beliebige 5V DC Motor genommen werden.

      Antworten
  14. Peter am 4. April 2017 4:38

    Hallo Felix,
    tolles Projekt hast Du da! Ich würde das gerne nachbauen, bin aber ganz am Anfang (mein erstes Projekt überhaupt). Ich habe mich für die Powerbank-Variante entschieden -> damit entfallen Batterien, Spannungswandler und ich habe nur eine 5V Verbindung zu GPIO 1 bei Pi, richtig? Ich habe auch wie Du geschrieben hast, ein Mini Breadboard benutzt. Damit habe ich aber keine 2 Außenreihen wie beim Standard Breadboard in Deiner Zeichnung. Bin mir nicht sicher, ob ich das Stecken richtig adaptiert habe. Wäre es möglich, dass Du kurz die Verkabelung mit Powerbank und MiniBreadboard für einen Noob wie mich zeigst?

    Antworten
    • Felix am 4. April 2017 11:01

      Hallo Peter,
      in diesem Artikel habe ich Breadboards im allgemeinen erklärt 🙂
      LG, Felix

      Antworten
      • Florian am 21. Januar 2018 12:41

        Hallo Felix,
        ich schließe mich mal hier an. Den Artikel habe ich gelesen und ebenfalls ein Mini-Breadboard. Wie man im Video sieht, verwendest du das auch. Hast du dazu ein Schema oder vielleicht ein Foto deines Aufbaus mit der Verkabelung? Ich weiß nicht so recht, wie ich die vielen Anschlüsse, die man in deiner Skizze sieht, auf dem Mini-Breadboard unterkriegen soll.
        Danke schonmal und Grüße
        Florian

      • Felix am 21. Januar 2018 12:47

        Schau dir diesen Artikel an, da sind Breadboard erklärt. Danach ist es einfach dies entsprechend umzubauen: Raspberry Pi GPIO Erklärung für Beginner + Programmierung (Teil 2)

      • Florian am 21. Januar 2018 21:45

        Na ja, ganz so einfach ist das nicht, wenn man das zum ersten Mal macht. ?
        Ich habe mich mal in dieses Fritzing reingefuchst und versucht, das logisch nachzuvollziehen und entsprechend umzusetzen.
        Hier ist mein Aufbauplan mit Mini-Breadboard: https://drive.google.com/file/d/1QOhGIK8XcASNHtgtWCaQp46ZJsh5Qdsu/view?usp=sharing
        Da ich eine Powerbank für den Pi benutze, habe ich den Spannungswandler weggelassen, dafür aber schon die anderen Schritte des Roboters übernommen.
        Getestet habe ich es noch nicht in echt. Vielleicht kannst du ja Feedback dazu geben, Felix?
        Könnte auch hilfreich für andere sein, die ebenfalls ein Mini-Breadboard benutzen.

  15. Johann-Sebastian am 12. April 2017 18:21

    Hallo,
    Ich hätte mal bezüglich der Jumper Kabel eine Frage.
    Es gibt ja male-female & female-female welche davon sollte ich nutzen für dieses Projekt? 🙂

    Antworten
    • Felix am 12. April 2017 18:43

      Für alles, was direkt auf den Pi kommt: Eine Seite Female
      Für alles, was in ein Breadboard kommt: Eine Seite Male:
      Für die meisten Sensoren (aber nicht alle): Eine Seite Female

      Antworten
  16. Marvin am 13. April 2017 13:35

    Hallo Felix,
    Kann man also in der Schaltskizze einfach statt den Batterien eine Powerbank nehmen?
    Bzw. sind die vier Batterien genug Leistung um auch länger zu halten?

    Antworten
    • Felix am 13. April 2017 14:05

      Ich habe beides genutzt – die Powerbank für den Pi und die Batterien für die Motoren, da diese mehr Stromstärke brauchen, als dass der Pi hergibt.

      Antworten
      • Marvin am 13. April 2017 15:01

        Geht es aber auch ganz ohne Powerbank?

      • Felix am 13. April 2017 15:02

        Ja, steht doch dabei: Raspberry Pi mit Akkus/Batterien betreiben

  17. Paul am 15. April 2017 18:05

    Hallo,

    wird die Code Erweiterung in dem oberen geschriebenen Code angepasst, oder schreibt man dafür eine weitere Datei mit den paar Zeilen.

    Da ich mir die Python Kenntnisse erst hiermit aneignen möchte, ist mir dies leider nicht ganz klar.

    Jedenfalls ein sehr interessantes Projekt, welches du hier präsentierst.

    Gruß Paul

    Antworten
    • Felix am 15. April 2017 20:06

      Die paar Zeilen kommen in eine separate Datei oder werden einfach in der Python Konsole ausgeführt (Indiz für eine neue Datei ist meist das import an erster Stelle).

      Antworten
  18. Marvin am 21. April 2017 18:48

    Hallo Felix,
    1) Soll sudo mkdir RaspberryPi-Robot
    cd… in den Terminal geschrieben werden und der code dann in die geöffnete Datei?
    2)Nach sudo python soll da noch der dateiname oder so? Weil ohne kommt bei mir eine Art Fehlermeldung.
    3) Um am Schluss die beiden Parameter messen, muss eine neu datei geöffnet werden? Und was muss außer den drei Befehlen rein?
    (Bin neu deshalb die ganzen Fragen)

    Antworten
    • Felix am 22. April 2017 0:47

      1) Ja, ins Terminal (sudo ist generell ein Hinweis, dass es im Terminal ausgeführt wird [mit Rootrechten])
      2) Ohne Dateiname (nur sudo python) öffnest du die Python Konsole. Mit exit() kannst du diese beenden.
      3) Du kannst es entweder in eine Datei speichern und dann ausführen oder sequentiell in der Reihenfolge in die Python Konsole eingeben.

      Antworten
  19. Marvin am 22. April 2017 0:00

    Hallo Felix,
    ich habe jetzt (glaube ich zumindest) den Großteil verstanden bis auf den letzten Teil, wo man die Werte misst, was muss man genau alles schreiben bis auf die drei befehle (ich dachte noch import, bzw. auch ‚l‘ festlegen)???
    Danke im Voraus

    Antworten
    • Felix am 22. April 2017 0:48

      Ich bin davon ausgegangen, dass man die Python Konsole bereits geöffnet und die vorherigen Befehle eingegeben hat (wie oben beschrieben). Da ist ja bereits import usw. enthalten, daher können diese Befehle einfach hintereinander eingegben werden.

      Antworten
  20. Marvin am 29. April 2017 10:13

    Hallo Felix,
    Bis vor ein bis zwei Wochen ging noch alles, nur wollte ich jetzt nochmal die Werte DIST_PER_SEC und DIST_PER_SEC nochmal genau messen. Mein Problem ist jetzt, dass sich nichts mehr tut auch wenn ich nochmal den ersten test (mit dem drehen und gerade aus fahren) ausführe. Wenn ich die Motoren direkt an die Batterie anschließe bewegen sie sich, wobei die Spannung nur bei ca. 3V liegt…
    Ist die Spannung zu niedrig um das Programm durchzuführen (habe den Raspberry gerade am Netzteil aber normalerweise käme er auch noch an die aa Batterien)?
    Ps: Du machst richtig gute Projekte und auch gut erklärte!

    Antworten
    • Felix am 29. April 2017 10:19

      Hi Marvin,
      kann es sein, dass sich ein Kabel oder so gelöst hat? Wenn sich nichts (am Code) verändert hat und etwas auf einmal nicht mehr funktioniert, klingt das üblicherweise nach einem Wackelkontakt o.ä.

      Antworten
      • Marvin am 29. April 2017 10:33

        ich habe jetzt nochmal alle kabel rein- und rausgsteckt , aber es ist immer noch alles gleich. ist denn die Spannung von den Batterien von ca. 3vVüberhaupt ausreichend, an dem Modul direkt kommt auch nur so 2.4V raus für den Motor. Eigentlich müsste die Spannung von den Batterien doch eher so im Bereich 5-6V liegen, oder?

      • Felix am 29. April 2017 10:34

        Ja, bei 4 Batterien, sollte die bei 4-5V liegen. Hast du sie neulich mal gewechselt?

  21. Marvin am 29. April 2017 10:46

    Ja es waren die Batterien, obwohl ich sie kaum genutzt habe…
    Danke für die Hilfe

    Antworten
  22. Johann am 4. Mai 2017 18:41

    Was muss ich tun wenn die Fehlermeldung kommt: Import error: No module named l293d?

    Lg

    Antworten
    • Felix am 4. Mai 2017 23:45

      Du hast das Skript nicht erstellt oder anders benannnt.

      Antworten
    • Sascha am 17. November 2019 16:26

      Hi Johann,

      bekomme die gleiche Fehlermeldung. Hast du das Problem beheben können?

      Vielen Dank für dein Feedback

      Antworten
  23. Johann am 5. Mai 2017 12:58

    Nachdem ich die Datei neu geschrieben und gespeichert habe kommt bei mir bei dem Test immer eine Fehlermeldung wenn ich die 3. Zeile eingebe: cannot Import name L293D

    Antworten
    • Felix am 5. Mai 2017 15:45

      Vergleiche deinen Code / Dateien mit dem aus meinem Repository.

      Antworten
  24. Basti am 9. Mai 2017 18:07

    Wenn ich bei dem Test eingebe: l=L293D(17,27,23,24)
    Kommt immer wieder der Fehler: this constructor Takes No arguments

    Antworten
    • Basti am 9. Mai 2017 18:45

      Hat sich gelöst ☝? Aber jetzt schreibt er mir das „L293D instance has no attribute stop“ ?

      Antworten
      • Felix am 9. Mai 2017 18:46

        Bedeutet, dass in der Klasse die entsprechende Funkion fehlt.

      • Max am 29. April 2018 17:46

        Wie hast du das gemacht ??
        Ich bekomme das auch nicht hin.

  25. Basti am 12. Mai 2017 9:17

    Ich hätte mal noch eine Frage, wenn ich den Test im Terminal eingebe passiert nichts. An den Batterien liegt es nicht ?

    Antworten
  26. Robert am 8. Juni 2017 14:32

    Hey,
    ich habe den Bausatz bestellt. Bei mir waren diese kleinen runden Plättchen, die an den Motor gesteckt werden gegenüber der Räder nicht dabei.
    Brauche ich die Plättchen (Rädchen) zwangsweise? Für was genau sind die denn da?

    Antworten
    • Felix am 8. Juni 2017 20:52

      Die sind zur „Balancierung“ da, aber nicht unbedingt nötig.

      Antworten
    • Felix am 8. Juni 2017 20:55

      Nur als Schalter?
      Beim 10k Widerstand ist nur wichtig, dass bei fließender Spannung, nur ein minimaler Teil zu GND fließt (hier ginge auch 4.7k oder mehr). Bei 3.3V kann der kleine Widerstand auch weggelassen werden. Ich habe diesen rein, um zu zeigen, dass nur ein kleiner Strom nötig ist, um den Transistor zu schalten.

      Antworten
  27. Stefan am 4. Juli 2017 11:26

    Hallo Felix,
    Hilfe!!! Mein Roboter ist unfassbar schnell. Weißt du wie ich den kleinen langsamer fahren lassen kann?
    Hier steht was von pwm.
    Kannst du evtl. kurz beschreiben wie das geht?

    Antworten
    • Felix am 4. Juli 2017 12:06

      Durch PWM kannst du den Motoren weniger Strom zukommen lassen, wodurch sie langsamer werden. Darauf bin ich in dieser Tutorial Reihe nicht eingegangen. Eventuell kommt dazu in der Zukunft etwas.

      Antworten
  28. Leo am 2. September 2017 12:42

    Hallo!
    Bin recht neu und noch viel am expermimentieren 🙂 Jetzt hab ich mal eine Frage zur Stromversorgung bzw. Motorsteuerung.
    Ich habe ein Motortreibermodul (L298N Dual H Bridge MTS1EU). An 12V und GND habe ich Batterien angeschlossen (zusammen 6V – 4xAA zu 1.5V). An der linken Seite an Out1/2 habe ich einen Motor angeschlossen. Von ENA und IN1 + IN2 gehen Verkabelungen an den Raspberry.

    Nun meine Frage:
    1. Wenn ich derzeit noch keinen Spannungswandler einbauen möchte – muss ich dann zusätzlich meinen Raspberryi Mod.2 B zusätzlich noch ganz normal mit Netzteil versorgen?
    2. Muss ich beim Motortreiber von GND eine Verkabelung an GND des Raspberry legen – und warum?

    Antworten
    • Felix am 13. September 2017 20:19

      1. Ja, der Pi braucht exakt 5V. Mehr macht ihn kaputt. Würde aber zur Versorgung über einen Akku / Powerbank raten.
      2. Bei wie vielen Stromquellen? Bei einer ist es nicht unbedingt nötig. GND kannst du aneinander schließen, damit die Stromkreise geschlossen werden.

      Antworten
  29. Philipp am 14. November 2017 13:43

    Hallo Felix,
    super Projekte, die du auf deiner Seite veröffentlichst.
    Ich habe das Problem, dass sich beide Motoren nur sehr langsam drehen, wenn man sie über den Rasberry Pi ansteuert. Woran könnte dies liegen?

    Antworten
    • Felix am 14. November 2017 13:45

      Evtl bekommen sie nicht genug Strom (Batterien schwach?) oder der Roboter ist zu schwer für die Motoren.

      Antworten
      • Philipp am 15. November 2017 19:16

        Die Batterien sind voll und der Roboter ist leicht. Damit die Räder sich überhaupt drehen muss man sie anstoßen.

      • Felix am 15. November 2017 20:14

        Dann miss mal die Stromstärke. Ich denke, da kommt nicht genug bei den Robotern an.

      • Philipp am 15. November 2017 20:22

        Könnte das daran liegen, dass ich ein großes breadboard anstatt eines kleinen verwende?

      • Felix am 15. November 2017 20:23

        Nein, damit sollte es (bei richtiger Verkabelung) nichts zu tun haben.

      • Philipp am 17. Dezember 2017 16:38

        Ich habe jetzt noch mal alles geprüft und die Spannung gemessen die die Motoren erhalten.
        Es liegt eine Spannung von 5.8 – 6 Volt, je nach Batterie zustand an.
        Die Motoren erhalten allerdings nur maximal 0.7 – 1.2 Volt, wenn das Programm läuft.
        Hättest Du noch eine letzte Idee, woran das liegen könnte?

  30. michael am 18. Dezember 2017 22:09

    Ich habe ein Verständnis-Knoten bezüglich der Spannungsversorgungen.

    In der Fritzing Zeichnung ganz oben nutzt du 4×1,v Batterien.
    1.) somit gehen 6Volt direkt auf die Motoren
    2.) Durch den Spannungswandler LM2596 erzeugst Du 5Volt. Hier brauchte ich eine Weile zu erkennen, was IN und OUT ist. Denn im ersten Moment dachte ich die Buchse ist für die Powerbank. Aber das soll der 5V Ausgang für den Raspi sein, richtig?
    Magst Du nicht noch hier einen Leitungsverbinder eintragen? Oder zumindest eine Beschreibung: 5V DC Ausgang, zum Raspi.

    Du schreibst, dass eine Powerbank durchaus nutzbar wäre. Diese nutze ich dann auch für die Motoren?
    a.) Das heißt dann 5V anstelle von 6V?
    b.) Werden die Motoren dadurch dann nicht deutlich langsamerer?
    c.) Der Spannungsregler wäre somit obsolet.

    Übrigens: Vielen Dank für das sehr gute Tut! Genau, wonach ich gesucht habe.

    Danke im Voraus für eine Antwort.
    Viele Grüße,
    michael

    Antworten
  31. Nils am 27. Dezember 2017 0:20

    Hallo.
    Was bewirkt die Funktion „Return time.time()“ ?

    Antworten
    • Felix am 27. Dezember 2017 0:47

      Gibt den aktuellen Zeitstempel zurück

      Antworten
      • Nils am 28. Dezember 2017 14:40

        Hallo Felix.
        Für was benötigt man diese Funktion?

      • Felix am 28. Dezember 2017 15:25

        War dazu gedacht, dass man weiß, wann die Aktion beendet wurde (ab Zeitspemel X wird nicht mehr gefahren), sodass man bspw. eine Pause einlegen kann und automatisch nach X ms weiter fahren kann. Braucht man aber nicht unbedingt.

  32. Nils am 28. Dezember 2017 15:46

    Danke

    Antworten
  33. Dieter am 28. Dezember 2017 16:14

    Hallo Felix,
    mein Roboter kann normal fahren, aber sobald ich in die Funktion „time.sleep(0.5)“ einfüge bewegt er sich garnicht mehr.
    Woran könnte dies liegen?
    VG,
    Dieter

    Antworten
    • Felix am 28. Dezember 2017 16:23

      Wo fügst du sie ein? time.sleep(0.5) hält das Skript eine halbe Sekunde an.

      Antworten
      • Dieter am 28. Dezember 2017 16:33

        In den zweiten Code unter „for i in range (20):“, wenn dort nur „l.forward()“ steht funktioniert alles, wenn ich aber noch „time.sleep(0.5)“ oder „l.forwardright()“ einfüge passiert nix mehr es kommt auch keine Error Meldung.

      • Felix am 28. Dezember 2017 17:07

        Logge doch einfach mal, was passiert (via print).

  34. Dieter am 28. Dezember 2017 17:11

    Das geht aber er fährt trozdem nicht.

    Antworten
  35. James am 30. Dezember 2017 1:29

    Hi, erstmal vielen Dank für das Tutorial! 😀 Habe jedoch einige Verständnisfragen – bin noch komplett neu in diesem Gebiet – bezüglich dem Anschluss der Motoren. Zum Einen ist mir noch nicht ganz eindeutig, wie ich die Motoren mit dem Breadboard verbinde. Mithilfe der Jumper-Kabel? Oder muss ich da etwa Löten? Außerdem verwirrt mich das animierte Schaubild etwas. Was ist das blaue ganz rechts neben den Batterien? Und „das Ding“ über der Batterie soll die Powerbank sein?

    Vielen Dank nochmals!

    Antworten
    • Felix am 30. Dezember 2017 1:31

      DU kannst entweder löten – oder wenn es dir lieber ist auch einfach mit Jumper Kabeln und Breadboard verbinden. Das „Ding“ neben den Batterien ist der LM2596. Kannst du aber ignorieren, wenn du eine Powerbank nutzt. Das darüber ist ein USB Anschluss (als Input für den Raspberry Pi).

      Antworten
  36. James am 30. Dezember 2017 14:06

    Hi, danke erstmal für die schnelle Antwort! 🙂 Man benötigt für die Verbindung zwischen dem Breadboard und dem Raspberry Pi ein Female-Male-Jumper Kabel? Male-Male Kabel klappt nicht? Könnte man für Male-Male-Kabel nicht folgendes zur Hilfe nehmen? https://www.abelectronics.co.uk/docs/stock/breakout/40way-cable/40way-cable.jpg
    Oder existiert eine andere Möglichkeit?

    Antworten
    • Felix am 31. Dezember 2017 13:18

      Du kannst auch löten, aber Male-Female Jumper Kabel sind die sauberere Lösung zum testen und 40 dieser Kabel kosten auch nur wenige Euro.

      Antworten
  37. Ben am 6. Januar 2018 17:41

    Hallo Felix,
    Ich habe alles so verkabelt wie in der Zeichnung und auch noch mal den Strom geprüft (Die Motoren funktionieren auch wenn sie direkt angeschlossen werden) aber der Roboter will sich einfach nicht bewegen auch wenn ich den code starte. Den code habe ich von GitHub heruntergeladen.
    Auf dem Desktop des Raspberrys (3 b).

    Hast du irgendwelch Tipps wie ich weiterkomme ?

    Antworten
    • Felix am 6. Januar 2018 17:46

      Du kannst die Dateien mal über die normale Python Konsole importieren und die Funktionen manuell starten. Sollte das nicht zum Ergebnis führen, bearbeite die entsprechende Datei und setze Logs (print). Damit kannst du sehen, falls die Funktion nicht ausgeführt wird bzw. ob es zum Fehler kommt. Ist das nicht der Fall, liegt es sehr wahrscheinlich am Aufbau.

      Antworten
  38. Tom am 6. Januar 2018 21:31

    Hallo.
    Halten die Motoren auch 9 Volt aus?
    VG

    Antworten
    • Felix am 6. Januar 2018 22:04

      Musst du im Datenblatt schauen, denke aber nicht.

      Antworten
  39. Max am 11. Januar 2018 19:42

    Hallo zusammen
    Ich bin gerade dabei das Projekt von Felix nachzubauen habe allerdings ein paar schwierigkeiten mit der verkabelung vom Raspberry und dem mikrochip deer verwendet wird (hier der link zum bild das mich so verwirrt: https://tutorials-raspberrypi.de/wp-content/uploads/2016/07/Raspberry-Pi-Roboter-Bausatz-DC-Motoren-L293DLM2596.png). Ich erkenne nicht welches kabel wohin gehöhrt, ich habe zwar schon einen aufbau weiß aber nicht ob der so richtig ist. ES wäre nett wenn mir einer helfen könnte mit einem Foto oder einem Video.
    Danke im voraus
    LG Max

    Antworten
    • Felix am 11. Januar 2018 19:46

      Hast du Probleme mit dem Breadboard Aufbau? Falls ja, schau dir mal dieses Tutorial an.

      Antworten
      • Max am 13. Januar 2018 12:24

        Danke für deine schnelle Antwort, aber gerade diese Animierten schaltpläne sind sa wo ich noicht durchsteige. Deswegen würde mir ein Foto von dem ganzen Aufbau des Breadboards mit dem Raspberry weiterhelfen. Ich würde dir ja ein Foto zukommen lassen wo man sieht wie ich das aufgebaut habe, aber das geht ja leider nicht über die Kommentare.
        LG Max

      • Felix am 13. Januar 2018 20:53

        Wo findest du denn animierte Schaltpläne? Falls du Fragen zum schematischen Aufbau hast, stell sie gerne. Fotos (einfach verlinken) sind da meist nich hilfreich, da man die Verbindungen nicht gut nachvollziehen kann.

  40. Max am 15. Januar 2018 19:21

    Erstmal ich finde nirgendswo Animierte Schalpläne das war das falsche Wort.
    Ich meine den schematischen Aufbau.
    Und noch eine Frage, bei deinem Bausatz sieht man mehrere rote und schwarze Kabel (https://tutorials-raspberrypi.de/wp-content/uploads/2016/07/Raspberry-Pi-Roboter-Bausatz-%C3%9Cbersicht.jpg) bei mir war von beidem nur eins vorhaden die auch schon angeschlossen sind und ich habe als Ersatz einfach die Jumperkabel genommen. Die übertragen aber keinen Strom wenn ich sie angeschlossen habe, sprich da passiert nichts. Weißt du woran das liegt, darf ich die dafür überhaupt benutzen und wenn nicht wo hast du die anderen Kabel her ( waren die schon im Bausatz mit drin)?
    Dankeschön auch nochmal das du immer so schnell antwortest und versuchst mir zu helfen.
    LG Max

    Antworten
    • Felix am 15. Januar 2018 20:28

      Die Kabel sind für die Motoren (welche du nimmst ist egal). An ein Ende positive Spannung ans andere GND. Mit dem L293D kannst du umpolen.

      Antworten
  41. Max am 16. Januar 2018 16:03

    Ich habe das mal ausprobiert und die Kabel verschieden rum angesteckt aber da bewegt sich immer noch nichts.

    Antworten
  42. Florian am 24. Januar 2018 18:48

    Hallo allerseits,
    ich bin ratlos, der linke Motor bewegt sich einfach nicht, der rechte dagegen schon. Wenn ich die Kabel direkt mit dem Strom verbinde, dann funktioniert es, aber nicht wenn ich es am Breadboard anschließe. Die Kabel und der Motor sind also in Ordnung.
    Ich habe auch schon die Seiten vertauscht, also die Anschlüsse des linken Motors auf der rechten Seite eingesteckt. Das Irre ist, dass es dann auch nicht geht, aber wenn ich den rechten Motor wieder dort anschließe, dann funktioniert dieser.
    Ich kapier es einfach nicht: Kabel sind in Ordnung, Motor auch, aber auf dem Breadboard geht es einfach nicht, egal wo ich es anschließe. Aber der rechte Motor läuft problemlos an den selben Anschlüssen. Das kann doch nicht sein?!
    Vielleicht hat jemand einen Tipp für mich. Kann es auch mit den GPIO-Pins zu tun haben? Obwohl die Belegung am Pi ja egal sein müsste …
    Grüße
    Florian

    Antworten
    • Felix am 24. Januar 2018 18:49

      Hast du evtl. noch einen zweiten L293D IC da, mit dem du es testen kannst?

      Antworten
      • Florian am 24. Januar 2018 20:04

        Hey, danke für die schnelle Antwort. Leider nein, aber ich glaube kaum, dass es daran liegt. Ich habe es gerade nochmal getestet: Wenn ich den rechten Motor einstecke, egal auf welcher Seite, funktioniert er immer. Wenn ich an der gleichen Stelle stattdessen den linken Motor einstecke, dann geht der nicht. Aber wenn ich die Kabel direkt an den Strom stecke, dann geht der Motor, er ist also nicht defekt und die Kabel sind auch okay. Das ist ja das Verrückte. ?‍♂

      • Florian am 1. Februar 2018 20:22

        Hey, nur zur Info, falls andere auf solche Probleme stoßen. Ein Kollege meinte, dass vielleicht der Motor nicht genug Strom bekommt und wohl nur direkt an der Stromquelle funktioniert. Das könne an schwankenden Toleranzen liegen und wäre dann einfach Pech. Ich habe den eBay-Händler des 2WD-Gestells gefragt, ob er Ersatz schicken könnte, und das tat er auch kostenlos. Mit dem neuen Motor geht es jetzt! Ein Problem weniger. ?

  43. Leon...: am 31. Januar 2018 18:14

    Hallo Felix,
    ich habe deine Anweisungen beim bau und programmieren genau befolgt doch bei meinem python programm tauchen errors auf die sagen das es kein modul namens l293d oder L293D vlt hast du ja eine lösung

    Antworten
    • Felix am 31. Januar 2018 21:59

      Ist die Datei im gleichen Ordner?

      Antworten
      • Leon...: am 2. Februar 2018 2:35

        Ja

  44. Philipp am 4. Februar 2018 14:55

    Hi, warum ist es notwenig DIST_PER_SEC und SEC_PER_TURN im Skript l293d.py zu definieren?

    Antworten
    • Felix am 4. Februar 2018 19:20

      Wenn du willst, dass der Roboter x cm fahren soll, musst du seine Geschwindigkeit wissen.

      Antworten
  45. Eron Qorri am 17. April 2018 17:01

    Hey,
    Also ich bin noch totaler Anfänger auf dem Gebiet und wollte jetzt fragen wie ich die Kabel von den Batterien verbinden soll oder bzw. wo weil wenn ich die an einem Motor dranmachen dreht sich nur des eine Rad und ich versteh irgenwie allgemein nicht was du damit gemeint hast. Weil wozu brauch ich die Batterien
    hilfe 🙁

    Antworten
    • Max am 29. April 2018 14:11

      Weil die beiden Motoren mehr Strom brauchen als der Raspberry über die GPIO pins zur verfügung stellen kann. Also würden sich die Motoren langsam bis granicht drehen und um das zu umgehen schließt du die Batterien ans Breadboard an damit die Motoren genug Strom bekommen können.

      Mit freundlichen Grüßen

      Max

      Antworten
  46. Eron Qorri am 22. April 2018 11:48

    Warum steht da
    File „“, line 7
    l.stop()
    ^
    SyntaxError: invalid sytax

    Wenn ich Versuche den Code zu testen?

    Antworten
    • Anna am 27. März 2021 18:49

      ich kriege den gleichen Fehler @Felix, woran könnte das liegen? hab Ordner + Datei genauso angelegt wie oben beschrieben …

      Antworten
  47. Max am 29. April 2018 10:44

    Hey Felix,

    ich hab das gleiche Problem wie Eron Qorri.
    Bei mir steht auch:
    File „“, line 7
    l.stop()
    ^
    SyntaxError: invalid sytax

    Was muss ich machen damit es funktioniert?
    Danke im Voraus.

    Mit freundlichen Grüßen

    Max

    Antworten
    • Max am 29. April 2018 14:20

      Also ich hab das jetzt schon einigermaßen auf die Reihe bekommen, aber wenn ich folgendes eingebe: l = L293D(17,27,23,24)
      dann sagt er mir: TypeError objekt is not callable
      aber mit dieser Zeile möchte man ja „l“ mit „L293D(17,27,23,24)“ gleich setzten also l so definieren damit man das nicht immer so voll ausschreiben muss oder?
      Und macht es einen unterschied wenn ich das alles nacheinander eingebe und nicht als Blocksatz?
      Ich fände es sehr nett wenn du mir nochmal ein wenig genauer erklären könntest wie du das gemacht hast, wenn es bei dir auch ein paar schwierigkeiten gab.
      Danke im voraus.

      Mit freundlichen Grüßen

      Max

      Antworten
  48. Torsten am 1. November 2018 19:08

    Hallo,
    Vielen Dank für dieses Tutorial. Toll erklärt und bebildert. Ich habe trotzdem ein Verständnisproblem. Sind die Zeilen 45 & 52 so richtig sind? Rein von der Logik hätte ich einen Rechts-Links Tausch erwartet. Aber mal abgesehen davon habe ich folgendes Problem. Vorwärts jeweils einzeln und zusammen funktioniert. Rückwärts geht nur eine Seite. Die andere Seite überhaupt nicht und wenn beide Rückwärts drehen sollen, dreht nur die funktionieren ganz, ganz langsam. Wo liegt der Fehler?
    Danke
    Torsten

    Antworten
  49. Johannes am 5. Dezember 2018 9:07

    Hey Felix,

    danke für deine Tutorials. Ich will die Weihnachtszeit nutzen, um einen Roboter nach diesem Tutorial zu bauen. Allerdings habe ich mir ein anderes Fahrgestell ausgesucht und jetzt bin ich unsicher, welche Auswirkungen diese Änderung hat.

    Wenn mein Fahrgestell mit zwei „12 Volt DC Motoren“ ausgerüstet ist, dann brauche ich einen Batteriehalter mit 8x AA, damit genug Volts im System sind. Ich kann aber trotzdem das Batteriepack an den L293D IC anschließen und den L293D IC (ohne Widerstand dazwischen) an den Raspberri Pi anschließen, ohne zu befürchten, dass der Rpi gegrillt wird. Der Grund ist, dass der L293D IC die Spannung erst durch die Motoren leitet. Diese stellen einen Widerstand dar, d.h. sie fressen die 12 Volt auf und dann kommt beim Rpi nur noch ganz wenig Spannung an.

    Habe ich mir das so richtig überlegt?

    Gruß
    Johannes

    P.S. das Fahrgestell: https://www.amazon.de/CS-PRIORITY-Damping-Aluminium-Platform/dp/B0721XWJJ8/ref=sr_1_2?ie=UTF8&qid=1543932756&sr=8-2&keywords=4WD+Aluminum+chassis

    Antworten
    • Johannes am 5. Dezember 2018 14:15

      Hallo,
      ich bin’s nochmal. Ich habe jetzt mit einem Freund deinen Schaltplan und das Datenblatt des L293D studiert. Wir konnten uns eigentlich alles erklären, bis auf eine Sache: Der IC bekommt Strom aus 2 verschiedenen Quellen: Vom Batteriepaket bis zu 36V zur Versorgung der Motoren und vom Rpi ca 5V zur Versorgung der Logik. Während es also zwei Stromeingänge gibt hat der IC 4 Stromausgänge („Heat sink“/GND/Masse). In deinem Schaltplan werden alle diese vier Ausgänge an den RPI am Pin GND angeschlossen. Warum geht das?

      Folgende Situation: Alles ist nach deinem Plan miteinander verkabelt. Der Rpi gibt den Befehl die Motoren auszustellen (alle GPIO Pins auf LOW). Jetzt nehmen die Motoren keinen Strom mehr ab. Es liegen aber trotzdem immer noch die vollen 36V aus dem Batteriepaket an dem IC an (+die 5V vom Rpi). Die laufen durch den IC, durch die Motoren, werden in beidem NICHT verbraucht und so landen die vollen 36V auf ihrem Rückweg zum Batteriepaket im Rpi. Denn du schließt in deinem Schaltplan alle Stromausgänge des IC an den Rpi an.

      Wenn es so wäre, dann hätten sich mit Sicherheit schon mehrere Leute über dieses Tutorial beschwert… 36V killen den Rpi locker. Aber warum ist es denn anders? Was verstehe ich nicht/falsch? Mit Sicherheit versteckt sich da noch irgendeine Funktionalität in dem IC, die ich übersehe.

      Gruß
      Johannes

      Antworten
  50. Daniel am 9. Dezember 2018 16:44

    Hallo,

    vielleicht eine dumme Frage eines Anfängers, aber:

    wenn ich am Raspberry Pi die Befehle eingebe, brauche ich doch ein Display. Dann kann der Roboter aber doch gar nicht fahren weil er an der Strippe hängt oder?

    Grüße

    Antworten
    • Nick am 27. Dezember 2018 15:05

      Hallo Daniel,
      Das ist richtig, deshalb empfiehlt es sich das Raspberry über eine remotedesktopverbindung oder SSH zu steuern. Wie das funktioniert ist in Tutorials auf dieser Seite erklärt.
      Lg

      Antworten
  51. Tobias am 11. Dezember 2018 15:08

    Hallo,
    zunächst Erstmal Lob für die ausführliche Beschreibung des Projektes. Ich bin als Anfänger zur Zeit mit dem Raspberry Pi am probieren und bin dabei auf dieses Projekt gestoßen. Leider hat sich folgendes Problem ergeben: Bei mir dreht sich der rechte Motor, wie es sein soll: Er dreht einige Umdrehungen, macht kurz Pause, dreht erneut ein paar Umdrehungen. Der linke Motor dreht sofort, wenn ich Strom auf das System gebe. Leider habe ich keine Ahnung woran es liegen könnte. Als kleine Abweichung ist zu erwähnen, dass ich anstatt des L293D IC ein L298H Brückenmodul zur Motorensteuerung verwende.
    Muss ich dazu vielleicht noch etwas an dem Programm anpassen?
    MFG

    Antworten
  52. Thomas Stingel am 27. Februar 2019 12:17

    Hey Felix,
    Ich habe mir den Bau eines solchen Roboters vorgenommen und im voraus schon mal vielen dank für dieses Tutorial. Ich habe mittlerweile mein chasis fertig und alles verkabelt,zumindest so, dass die Motoren angesteuert werden können. Leider wird mir mit dem ersten obigen Code immer eine Fehlermeldung im Bezug auf den l293d ausgeworfen,da dieser nicht definiert ist. Muss davor so etwas wie ein Treiber dafür installiert werden oder kann der Grund dafür eine ungenügende Stromversorgung sein ? Bin leider noch Anfänger und etwas ratlos. MfG Thomas

    Antworten
  53. Georg am 16. März 2019 21:54

    Hallo,
    ich habe folgendes Problem: Ich habe derzeit zwei Code-Dateien im Ordner Roboter angelegt. Die erste Datei heißt l239d und enthält die Methoden aus der Anleitung. Die zweite Datei habe ich als l239d_programm bezeichnet (Name sollte hier ja egal sein). Wenn ich die erste Datei kompliere, kommt keine Fehlermeldung, bei der zweiten Datei kommt Folgendes „import l239d as L239D, ImportError: No module named l239d“. Was habe ich hier falsch gemacht? Habe ich ein Programm nicht installiert oder liegen die Dateien im falschen Ordner?
    Danke und viele Grüße
    Georg

    Antworten
  54. Thomas am 24. März 2019 19:36

    ich kann zwar nicht helfen aber habe das selbe Problem und finde keine Lösung…falls sie eine Finden wäre ich dankbar wenn sie die Lösung hier veröffentlichen gleiches werde ich tun.
    Mfg TS

    Antworten
  55. Thomas Stingel am 8. April 2019 12:40

    Hey Georg, ich habe das Problem jetz gelöst.
    Du musst die erste Methode,die als l293d.py gespeichert wird, in die python (idle), aber imEditor Modus schreiben und dann speichern. Danach kannst du, ebenfalls im Editor, das testprogramm schreiben und dann mit F5 (Start module) starten.So hat es bei mir zumindest funktioniert. Lg

    Antworten
    • Georg am 22. April 2019 11:48

      Hey Thomas,

      danke für deine Antwort. Ich bin mir relativ sicher, dass es bei mir dasselbe Problem. Könntest du mir genau schreiben, was ich in den Editor schreiben muss und was in die Codedatei? Was meinst du mit python(idle)?
      Viele Grüße
      Georg

      Antworten
      • Manvel460 am 19. April 2020 14:40

        Du musst die Klasse mit dem Befehl „from l293d import L293D“ abrufen. Steht so aber auch oben im Code. Mit der Python IDLE meint er einfach einen der Python-editoren, der auf dem RasPi installier ist. Das Symbol ist eine Blau und eine Gelbe Schlange, die sich berühren.
        LG Manvel460

      • Manvel460 am 19. April 2020 14:50

        Moin,
        Das Problem liegt beim Befehl. Du musst die Klassen über den Befehl „from l293d import L293D“ aufrufen, wie auch oben in den skripten. Die Python IDLE ist einfach nur ein Python Editor, der bei dem Betriebssystem Rasbian vorinstalliert ist.
        MFG

  56. Arnulf Zapf am 10. Mai 2019 23:31

    Hallo
    Ich habe Teil 1 gebaut
    Mit was starte ich das Auto?

    Antworten
  57. Noah am 12. August 2019 18:11

    Muss ich den code vorher an einem computer oder direkt am RP schreiben?

    Antworten
  58. Petra am 10. Oktober 2019 11:45

    Hallo, das Projekt ist sehr interessant. Ich habe nur ein kleines Problem. Ein Motor verhält sich wie es gewünscht ist, der andere dreht sich dauerhaft. Vertausche ich die Motoren, ist es genauso. immer der Motor, der an der Rechten Seite ist, dreht sich dauerhaft. Im Code ist alles richtig. Problem tritt auch auf, wenn ich die Original Datei verwende.
    Den Startcode habe ich in eine Datei geschrieben, da es an der Konsole geschrieben, nicht funktioniet. Aber das sollte nicht das Problem sein. Das Problem hatte ier schon einmal jemand besachrieben. leider gab es dazu keine Antwort. Kann mir da jemand weite helfen?

    Antworten
  59. Tom am 10. Juli 2020 16:05

    hy,
    kann mir jemand helfen, immer wenn ich diesen code:

    import RPi.GPIO as GPIO
    import time
    from l293d import L293D
     
    GPIO.setmode(GPIO.BCM)
    GPIO.setwarnings(False)
     
    l = L293D(17,27,23,24)
    l.stop()
     
    for i in range(20):
      l.forward()
      time.sleep(0.5)
      l.forwardRight()
      time.sleep(0.5)

    eingebe, kommt immer:
    from l293d import L293D
    ModuleNotFoundError: No module named ‚l293d‘

    könnte mir da bitte jemand helfen ??

    Danke im vorraus

    Tom

    Antworten
    • Felix am 11. Juli 2020 23:16

      Die Datei l293d.py existiert nicht / wurde nicht gefunden, daher der Fehler.

      Antworten
  60. Tim am 22. Oktober 2020 16:05

    Hallo ich hätte eine Frage zum Code. Wozu ist die Methode forwardDistance da? Was bezweckt sie?
    Ich hoffe, es kann mir schnell einer Antwort.
    Danke schon mal Voraus. 🙂

    Antworten
    • Felix am 23. Oktober 2020 19:13

      Wenn du eine bestimmte Länge (z.B. 50cm) fahren möchtest, kannst du diese Funktion nutzen.

      Antworten
  61. Tim am 29. Dezember 2020 19:35

    Hallo Felix,
    ich bin absoluter Anfänger gerade in Sache Elektrik. Erstmal möchte ich dir für diese mega coole Seite danken. Muss unglaublich viel Arbeit gewesen sein! Jetzt zu meiner Frage bezüglich des Schaltplans…Die „Power“ kommt doch von den Batterien auf das Breadboard , wieso kommt nochmal extra von dem Raspberry Pi 5V auf das Breadboard. Würde mich sehr über eine Antwort von jemanden freuen, da ich Angst hab meinen neuen Pi zu zerstören😁🙈

    Antworten

Hinterlasse einen Kommentar Antwort abbrechen

Programmieren lernen am Raspberry Pi – Teil 1: Einführung

Raspberry Pi Bibliothek für mehrzeilige m x n MAX7219 LED Matrizen

Raspberry Pi RFID RC522 Tags auslesen (NFC)

Raspberry Pi Kamera per GPIO Knopfdruck auslösen

Mit dem ESP8266 WS2812B LED Strips am Smartphone steuern

Raspberry Pi Ambilight für alle Geräte mit OSMC selber bauen

Blog abonnieren

Abboniere Raspberry Pi Tutorials, um kein Tutorial mehr zu verpassen!

Tutorials for Raspberry Pi
Facebook Twitter YouTube
  • Kontakt & Impressum
  • Unterstützen
  • Datenschutz

Tippe den Suchbegriff oben ein und drücke Enter, um danach zu suchen. Drücke Esc, um abzubrechen.