{"id":1317,"date":"2025-07-25T18:12:05","date_gmt":"2025-07-25T16:12:05","guid":{"rendered":"https:\/\/jaeger.schule\/?page_id=1317"},"modified":"2025-07-26T08:05:57","modified_gmt":"2025-07-26T06:05:57","slug":"python-programme","status":"publish","type":"page","link":"https:\/\/jaeger.schule\/?page_id=1317","title":{"rendered":"&#8230;mit Python"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">\ud83d\udcdd Die wichtigsten Python-Befehle f\u00fcr den mBot 2<\/h3>\n\n\n<div class=\"wp-block-ub-content-toggle wp-block-ub-content-toggle-block\" id=\"ub-content-toggle-block-210bdb8f-1e65-406b-8bc2-5964d263fcf1\" data-mobilecollapse=\"true\" data-desktopcollapse=\"true\" data-preventcollapse=\"false\" data-showonlyone=\"false\">\n<div class=\"wp-block-ub-content-toggle-accordion\" style=\"border-color: #f1f1f1; \" id=\"ub-content-toggle-panel-block-\">\n\t\t\t<div class=\"wp-block-ub-content-toggle-accordion-title-wrap\" style=\"background-color: #f1f1f1;\" aria-controls=\"ub-content-toggle-panel-0-210bdb8f-1e65-406b-8bc2-5964d263fcf1\" tabindex=\"0\">\n\t\t\t<p class=\"wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-210bdb8f-1e65-406b-8bc2-5964d263fcf1\" style=\"color: #000000; \">Aufklappen<\/p>\n\t\t\t<div class=\"wp-block-ub-content-toggle-accordion-toggle-wrap right\" style=\"color: #000000;\"><span class=\"wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down\"><\/span><\/div>\n\t\t<\/div>\n\t\t\t<div role=\"region\" aria-expanded=\"false\" class=\"wp-block-ub-content-toggle-accordion-content-wrap ub-hide\" id=\"ub-content-toggle-panel-0-210bdb8f-1e65-406b-8bc2-5964d263fcf1\">\n\n<h3 class=\"wp-block-heading\">\ud83e\udde0 <strong>Grundstruktur<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>from mbot2 import *<br>from cyberpi import *<br>import time<br><\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Diese drei Imports sind bei fast jedem Projekt n\u00f6tig.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\ude97 <strong>Bewegung \/ Motorsteuerung<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">\u2705 <strong>Fahre geradeaus (Encoder-gesteuert):<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>mbot2.encoder_motor(motor=\"both\", speed=50)<br><\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">\u2705 <strong>Einzelne Motoren steuern:<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>mbot2.encoder_motor_speed(\"left\", 50)<br>mbot2.encoder_motor_speed(\"right\", 50)<br><\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">\u2705 <strong>Anhalten:<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>mbot2.encoder_motor(motor=\"both\", speed=0)<br><\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">\u2705 <strong>Drehen (rechts):<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>mbot2.encoder_motor(\"left\", 50)<br>mbot2.encoder_motor(\"right\", -50)<br>time.sleep(0.5)<br><\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">\u2705 <strong>R\u00fcckw\u00e4rts fahren:<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>mbot2.encoder_motor(motor=\"both\", speed=-50)<br><\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udccf <strong>Sensoren<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">\u2705 <strong>Ultraschallsensor (Entfernung in cm):<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>abstand = mbot2.ultrasonic2.get_distance()<br><\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">\u2705 <strong>Linienfolger (digitaler Wert: 0 = schwarz, 1 = wei\u00df):<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>links = mbot2.linefollower.get(\"left\")<br>rechts = mbot2.linefollower.get(\"right\")<br><\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">\u2705 <strong>Lichtsensor (Helligkeit):<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>wert = cyberpi.get_brightness()<br><\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udca1 <strong>LED &amp; Display<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">\u2705 <strong>RGB-LED am mBot2 steuern:<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>mbot2.led.set_color(\"red\")  # Farben: \"red\", \"green\", \"blue\", \"white\"<br><\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">\u2705 <strong>CyberPi-LED (Displayrand):<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>cyberpi.led.show(\"blue\")<br><\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">\u2705 <strong>Text auf Display zeigen:<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>cyberpi.display.show_label(\"Hallo\", 0, 0)<br><\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd0a <strong>Sound \/ Audio<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">\u2705 <strong>Ton abspielen:<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>cyberpi.audio.play_tone(440, 1)  # 440 Hz f\u00fcr 1 Sekunde<br><\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">\u2705 <strong>Text aussprechen:<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>cyberpi.audio.text_to_speech(\"Hallo, ich bin der mBot!\")<br><\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd18 <strong>Tasten &amp; Eingaben<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">\u2705 <strong>Taste gedr\u00fcckt?:<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>if cyberpi.button.is_pressed(\"a\"):<br>    print(\"Taste A wurde gedr\u00fcckt\")<br><\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h3 class=\"wp-block-heading\">\u23f1\ufe0f <strong>Zeitfunktionen<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>time.sleep(1)         # Warten in Sekunden<br>cyberpi.timer.get()   # Aktuelle Zeit in Sekunden seit Programmstart<br><\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udda5\ufe0f <strong>Debug &amp; Konsole<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>cyberpi.console.println(\"Wert: \" + str(abstand))<br><\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h3 class=\"wp-block-heading\">\ud83c\udf10 <strong>WLAN \/ Cloud \/ KI<\/strong> (optional mit Erweiterung)<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>cyberpi.wifi.connect(\"WLAN-NAME\", \"PASSWORT\")<br>sprache = cyberpi.audio.get_speech_to_text()<br><\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h3 class=\"wp-block-heading\">\u2705 <strong>Tipp f\u00fcr Einsteigerprojekte:<\/strong><\/h3>\n\n\n\n<p>Nutze z.\u202fB.:<\/p>\n\n\n\n<p><code>while True:<br>    if mbot2.ultrasonic2.get_distance() &gt; 20:<br>        mbot2.encoder_motor(\"both\", 50)<br>    else:<br>        mbot2.encoder_motor(\"both\", 0)<\/code><\/p>\n\n<\/div>\n\t\t<\/div>\n<\/div>\n\n\n<div style=\"height:31px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"0-geradeaus-fahren\">\ud83d\udcdd Geradeaus fahren<\/h3>\n\n\n<div class=\"wp-block-ub-content-toggle wp-block-ub-content-toggle-block\" id=\"ub-content-toggle-block-259ec718-24fd-4d48-bf8e-92a8c91a1d72\" data-mobilecollapse=\"false\" data-desktopcollapse=\"true\" data-preventcollapse=\"false\" data-showonlyone=\"false\">\n<div class=\"wp-block-ub-content-toggle-accordion\" style=\"border-color: #f1f1f1; \" id=\"ub-content-toggle-panel-block-\">\n\t\t\t<div class=\"wp-block-ub-content-toggle-accordion-title-wrap\" style=\"background-color: #f1f1f1;\" aria-controls=\"ub-content-toggle-panel-0-259ec718-24fd-4d48-bf8e-92a8c91a1d72\" tabindex=\"0\">\n\t\t\t<p class=\"wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-259ec718-24fd-4d48-bf8e-92a8c91a1d72\" style=\"color: #000000; \">Code anzeigen<\/p>\n\t\t\t<div class=\"wp-block-ub-content-toggle-accordion-toggle-wrap right\" style=\"color: #000000;\"><span class=\"wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down\"><\/span><\/div>\n\t\t<\/div>\n\t\t\t<div role=\"region\" aria-expanded=\"false\" class=\"wp-block-ub-content-toggle-accordion-content-wrap ub-hide\" id=\"ub-content-toggle-panel-0-259ec718-24fd-4d48-bf8e-92a8c91a1d72\">\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from mbot2 import *\nfrom cyberpi import *\nimport time\n\n# Starte beide Motoren mit gleicher Geschwindigkeit\nmbot2.encoder_motor(motor='both', speed=50)\n\n# Fahre f\u00fcr 5 Sekunden\ntime.sleep(5)\n\n# Stoppe den Roboter\nmbot2.encoder_motor(motor='both', speed=0)<\/code><\/pre>\n\n<\/div>\n\t\t<\/div>\n\n<div class=\"wp-block-ub-content-toggle-accordion\" style=\"border-color: #f1f1f1; \" id=\"ub-content-toggle-panel-block-\">\n\t\t\t<div class=\"wp-block-ub-content-toggle-accordion-title-wrap\" style=\"background-color: #f1f1f1;\" aria-controls=\"ub-content-toggle-panel-1-259ec718-24fd-4d48-bf8e-92a8c91a1d72\" tabindex=\"0\">\n\t\t\t<p class=\"wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-259ec718-24fd-4d48-bf8e-92a8c91a1d72\" style=\"color: #000000; \">Erkl\u00e4rung<\/p>\n\t\t\t<div class=\"wp-block-ub-content-toggle-accordion-toggle-wrap right\" style=\"color: #000000;\"><span class=\"wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down\"><\/span><\/div>\n\t\t<\/div>\n\t\t\t<div role=\"region\" aria-expanded=\"false\" class=\"wp-block-ub-content-toggle-accordion-content-wrap ub-hide\" id=\"ub-content-toggle-panel-1-259ec718-24fd-4d48-bf8e-92a8c91a1d72\">\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Codezeile<\/th><th>Funktion<\/th><\/tr><\/thead><tbody><tr><td><code>from mbot2 import *<\/code><\/td><td>Steuert den mBot 2<\/td><\/tr><tr><td><code>from cyberpi import *<\/code><\/td><td>F\u00fcr Zeitsteuerung &amp; CyberPi-Zugriff<\/td><\/tr><tr><td><code>mbot2.encoder_motor(motor='both', speed=50)<\/code><\/td><td>Setzt <strong>beide Motoren<\/strong> auf 50 U\/min<\/td><\/tr><tr><td><code>time.sleep(5)<\/code><\/td><td><strong>F\u00e4hrt 5 Sekunden lang<\/strong> geradeaus<\/td><\/tr><tr><td><code>speed=0<\/code><\/td><td>Stoppt den mBot<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h4 class=\"wp-block-heading\" id=\"1-hinweise\">\ud83d\udccc Hinweise:<\/h4>\n\n\n\n<p>M\u00f6chtest du, dass er <strong>dauerhaft f\u00e4hrt<\/strong>, entferne <code>time.sleep()<\/code> und <code>speed=0<\/code><\/p>\n\n\n\n<p>Der Befehl nutzt <strong>Encoder-gesteuerte Drehzahl<\/strong> \u2192 Dadurch f\u00e4hrt der mBot <strong>stabiler und gerader<\/strong> als bei Prozentwerten.<\/p>\n\n\n\n<p>Du kannst die <strong>Geschwindigkeit anpassen<\/strong>:<br><code>speed=30<\/code> (langsamer) bis <code>speed=100<\/code> (schneller)<\/p>\n\n<\/div>\n\t\t<\/div>\n<\/div>\n\n\n<div style=\"height:31px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"2-raus-aus-dem-labyrinth\">\ud83d\udcdd Raus aus dem Labyrinth<\/h3>\n\n\n<div class=\"wp-block-ub-content-toggle wp-block-ub-content-toggle-block\" id=\"ub-content-toggle-block-32200b57-f166-4516-b259-1728cf5d97c7\" data-mobilecollapse=\"true\" data-desktopcollapse=\"true\" data-preventcollapse=\"false\" data-showonlyone=\"false\">\n<div class=\"wp-block-ub-content-toggle-accordion\" style=\"border-color: #f1f1f1; \" id=\"ub-content-toggle-panel-block-\">\n\t\t\t<div class=\"wp-block-ub-content-toggle-accordion-title-wrap\" style=\"background-color: #f1f1f1;\" aria-controls=\"ub-content-toggle-panel-0-32200b57-f166-4516-b259-1728cf5d97c7\" tabindex=\"0\">\n\t\t\t<p class=\"wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-32200b57-f166-4516-b259-1728cf5d97c7\" style=\"color: #000000; \">Code anzeigen<\/p>\n\t\t\t<div class=\"wp-block-ub-content-toggle-accordion-toggle-wrap right\" style=\"color: #000000;\"><span class=\"wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down\"><\/span><\/div>\n\t\t<\/div>\n\t\t\t<div role=\"region\" aria-expanded=\"false\" class=\"wp-block-ub-content-toggle-accordion-content-wrap ub-hide\" id=\"ub-content-toggle-panel-0-32200b57-f166-4516-b259-1728cf5d97c7\">\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from cyberpi import *\nfrom mbot2 import *\nimport time\n\ndef warte_sekunden(s):\n    time.sleep(s)\n\ndef hindernis():\n    return mbot2.ultrasonic2.get_distance() &lt; 20\n\ndef vorwaerts():\n    mbot2.encoder_motor(motor='both', speed=50)\n\ndef stoppe():\n    mbot2.encoder_motor(motor='both', speed=0)\n\ndef drehe_links(sekunden):\n    mbot2.encoder_motor(motor='left', speed=-50)\n    mbot2.encoder_motor(motor='right', speed=50)\n    warte_sekunden(sekunden)\n    stoppe()\n\ndef drehe_rechts(sekunden):\n    mbot2.encoder_motor(motor='left', speed=50)\n    mbot2.encoder_motor(motor='right', speed=-50)\n    warte_sekunden(sekunden)\n    stoppe()\n\ndef rueckwaerts(sekunden):\n    mbot2.encoder_motor(motor='both', speed=-30)\n    warte_sekunden(sekunden)\n    stoppe()\n\n# Hauptprogramm\nwhile True:\n    if not hindernis():\n        vorwaerts()\n    else:\n        stoppe()\n        warte_sekunden(0.3)\n\n        # 1. Nach rechts drehen\n        drehe_rechts(0.5)\n        if not hindernis():\n            vorwaerts()\n            continue\n\n        # 2. Links drehen (180\u00b0)\n        drehe_links(1.0)\n        if not hindernis():\n            vorwaerts()\n            continue\n\n        # 3. Nochmals rechts (90\u00b0)\n        drehe_rechts(0.5)\n        rueckwaerts(0.5)<\/code><\/pre>\n\n<\/div>\n\t\t<\/div>\n\n<div class=\"wp-block-ub-content-toggle-accordion\" style=\"border-color: #f1f1f1; \" id=\"ub-content-toggle-panel-block-\">\n\t\t\t<div class=\"wp-block-ub-content-toggle-accordion-title-wrap\" style=\"background-color: #f1f1f1;\" aria-controls=\"ub-content-toggle-panel-1-32200b57-f166-4516-b259-1728cf5d97c7\" tabindex=\"0\">\n\t\t\t<p class=\"wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-32200b57-f166-4516-b259-1728cf5d97c7\" style=\"color: #000000; \">Erkl\u00e4rung<\/p>\n\t\t\t<div class=\"wp-block-ub-content-toggle-accordion-toggle-wrap right\" style=\"color: #000000;\"><span class=\"wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down\"><\/span><\/div>\n\t\t<\/div>\n\t\t\t<div role=\"region\" aria-expanded=\"false\" class=\"wp-block-ub-content-toggle-accordion-content-wrap ub-hide\" id=\"ub-content-toggle-panel-1-32200b57-f166-4516-b259-1728cf5d97c7\">\n\n<h4 class=\"wp-block-heading\" id=\"3-1-modul-importe-\">\ud83d\udd27 <strong>1. Modul-Importe<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>from cyberpi import *<br>from mbot2 import *<br>import time<br><\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>cyberpi<\/code><\/strong>: Zugriff auf Display, Tasten, Audio etc.<\/li>\n\n\n\n<li><strong><code>mbot2<\/code><\/strong>: Zugriff auf Motoren und Sensoren<\/li>\n\n\n\n<li><strong><code>time<\/code><\/strong>: F\u00fcr Zeitverz\u00f6gerungen (<code>sleep()<\/code>)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h4 class=\"wp-block-heading\" id=\"4-%EF%B8%8F-2-hilfsfunktion-wartezeit-\">\ud83d\udd70\ufe0f <strong>2. Hilfsfunktion: Wartezeit<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>def warte_sekunden(s):<br>    time.sleep(s)<br><\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Erm\u00f6glicht klarere Lesbarkeit im Code (statt direkt <code>time.sleep()<\/code>)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h4 class=\"wp-block-heading\" id=\"5-3-sensorpr%C3%BCfung-hindernis-\">\ud83e\uddf1 <strong>3. Sensorpr\u00fcfung: Hindernis<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>def hindernis():<br>    return mbot2.ultrasonic2.get_distance() &lt; 20<br><\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Misst die Entfernung per Ultraschallsensor (in cm)<\/li>\n\n\n\n<li>Wenn kleiner als 20 cm \u2192 Hindernis erkannt \u2192 <code>True<\/code><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h4 class=\"wp-block-heading\" id=\"6-4-bewegungsfunktionen-\">\ud83d\udd01 <strong>4. Bewegungsfunktionen<\/strong><\/h4>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"7-geradeaus\">Geradeaus:<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>def vorwaerts():<br>    mbot2.encoder_motor(motor='both', speed=50)<br><\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Beide Motoren gleich schnell \u2192 Geradeausfahrt mit 50 U\/min<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"8-stoppen\">Stoppen:<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>def stoppe():<br>    mbot2.encoder_motor(motor='both', speed=0)<br><\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Stoppt beide Motoren<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"9-drehungen\">Drehungen:<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>def drehe_links(sekunden):<br>    mbot2.encoder_motor(motor='left', speed=-50)<br>    mbot2.encoder_motor(motor='right', speed=50)<br>    warte_sekunden(sekunden)<br>    stoppe()<br><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>def drehe_rechts(sekunden):<br>    mbot2.encoder_motor(motor='left', speed=50)<br>    mbot2.encoder_motor(motor='right', speed=-50)<br>    warte_sekunden(sekunden)<br>    stoppe()<br><\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Gegensinnig drehende Motoren \u2192 Roboter dreht auf der Stelle<\/li>\n\n\n\n<li>Die Dauer (<code>sekunden<\/code>) steuert den Winkel (z.\u202fB. 0.5\u202fs \u2248 90\u00b0)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"10-r%C3%BCckw%C3%A4rts\">R\u00fcckw\u00e4rts:<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>def rueckwaerts(sekunden):<br>    mbot2.encoder_motor(motor='both', speed=-30)<br>    warte_sekunden(sekunden)<br>    stoppe()<br><\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h4 class=\"wp-block-heading\" id=\"11-5-hauptprogramm-automatische-hindernisvermeidung-\">\ud83e\udde0 <strong>5. Hauptprogramm: Automatische Hindernisvermeidung<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>while True:<br>    if not hindernis():<br>        vorwaerts()<br><\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Solange kein Hindernis erkannt \u2192 geradeaus fahren<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>else:<br>        stoppe()<br>        warte_sekunden(0.3)<br><\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Wenn Hindernis \u2192 anhalten und kurz warten<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h3 class=\"wp-block-heading\" id=\"12-schrittweise-entscheidungslogik\">Schrittweise Entscheidungslogik:<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"><code># 1. Rechts drehen und pr\u00fcfen<br>        drehe_rechts(0.5)<br>        if not hindernis():<br>            vorwaerts()<br>            continue<br><\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Versucht rechts herum auszuweichen<\/li>\n\n\n\n<li>Wenn frei \u2192 fahre weiter<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\"><code># 2. Links drehen (180\u00b0)<br>        drehe_links(1.0)<br>        if not hindernis():<br>            vorwaerts()<br>            continue<br><\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Wenn rechts blockiert \u2192 Links 180\u00b0 drehen<\/li>\n\n\n\n<li>Wenn frei \u2192 fahre weiter<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\"><code># 3. R\u00fcckw\u00e4rts ausweichen<br>        drehe_rechts(0.5)<br>        rueckwaerts(0.5)<br><\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Wenn immer noch blockiert \u2192 quasi 270\u00b0 drehen + zur\u00fccksetzen<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h4 class=\"wp-block-heading\" id=\"13-%E2%9C%85-ergebnis\">\u2705 Ergebnis:<\/h4>\n\n\n\n<p>Der Roboter \u2026<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>f\u00e4hrt autonom geradeaus<\/strong><\/li>\n\n\n\n<li><strong>erkennt Hindernisse<\/strong><\/li>\n\n\n\n<li><strong>versucht mehrere Ausweichm\u00f6glichkeiten<\/strong><\/li>\n\n\n\n<li><strong>setzt sich im Notfall zur\u00fcck und sucht neuen Weg<\/strong><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h4 class=\"wp-block-heading\" id=\"14-tipp-zur-optimierung\">\ud83e\uddea Tipp zur Optimierung:<\/h4>\n\n\n\n<p>Erweiterbar um: <strong>Blinklicht, T\u00f6ne, Speicher von Bewegungen, Kartenlogik<\/strong><\/p>\n\n\n\n<p>Zeitwerte anpassen (z.\u202fB. 0.5\u202fs f\u00fcr 90\u00b0, 1.0\u202fs f\u00fcr 180\u00b0)<\/p>\n\n\n\n<p>Abstandsschwelle (z.\u202fB. <code>20 cm<\/code>) anpassen an Umgebung<\/p>\n\n<\/div>\n\t\t<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>\ud83d\udcdd Die wichtigsten Python-Befehle f\u00fcr den mBot 2 \ud83d\udcdd Geradeaus fahren \ud83d\udcdd Raus aus dem Labyrinth<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":1313,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1317","page","type-page","status-publish","hentry"],"featured_image_src":null,"_links":{"self":[{"href":"https:\/\/jaeger.schule\/index.php?rest_route=\/wp\/v2\/pages\/1317","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jaeger.schule\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/jaeger.schule\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/jaeger.schule\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/jaeger.schule\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1317"}],"version-history":[{"count":31,"href":"https:\/\/jaeger.schule\/index.php?rest_route=\/wp\/v2\/pages\/1317\/revisions"}],"predecessor-version":[{"id":1396,"href":"https:\/\/jaeger.schule\/index.php?rest_route=\/wp\/v2\/pages\/1317\/revisions\/1396"}],"up":[{"embeddable":true,"href":"https:\/\/jaeger.schule\/index.php?rest_route=\/wp\/v2\/pages\/1313"}],"wp:attachment":[{"href":"https:\/\/jaeger.schule\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1317"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}