Suche

OTTO DIY Roboter mit Arduino

Otto DIY - Funduino Otto "Do It Yourself"

Ein kleiner süßer Roboter, angetrieben von vier Miniaturservos kann er separat seine beiden Füße und Beine bewegen. Die Programmierung mit Hilfe der Arduino-Software ist sehr einfach. Genau wie in unseren Anleitungen können die einzelnen Module nach und nach programmiert werden.

Die Bauteile im Überblick:

Mit etwas Ausdauer und Geschick beim Programmieren bewegt sich der Roboter nach dem Programmieren wie ein Tänzer und pfeift seine eigene Melodie. Auch die Erkennung von Gegenständen ist durch den eingebauten Ultraschall-Abstandssensor kein Problem.

In diesem Video zeigt OTTO, was er kann:

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

OTTO DIY hat bereits eine sehr große Community, die unter folgenden Links Hilfe und Anleitungen bereitstellt:

GitHub Datenbank mit allen Informationen:

https://github.com/OttoDIY

Wenn du einen 3D-Drucker hast, kannst du dir die Teile auch selbst ausdrucken.

Es gibt mittlerweile sehr viele Versionen des Roboters, die bei Thingiverse heruntergeladen werden können. Die Versionen sind entweder nur optisch verändert, oder bieten neue und weitere Funktionen.

Hier gibt es die Originaldateien zum Download bei Thingiverse:

Funduino hat ebenfalls ein eigenes Design erstellt, bei dem es jedoch keinerlei Unterschiede bzgl. der Programmierung des Roboter gibt. Lediglich der Aufbau unterscheidet sich in folgenden Elementen:

 

Unterschiede „Funduino OTTO“ und „OTTO DIY“

1 Das NANO-Protoshield, also die Platine, auf der die Module angeschlossen werden, befindet sich an der Rückwand des Roboterunterteils anstelle auf der Kopfunterseite.

Vorteil: Wenn an der Elektronik gearbeitet werden muss, fällt einem nach dem Abnehmen des Kopfes nicht ein Großteil der Elektronik entgegen.

2) Durch das aufrecht stehende Protoshield befindet sich, erreichbar durch eine Durchführung im Kopf, der Stromanschluss an der Oberseite des Kopfes,

Vorteil: Man kann außenliegende Spannungsquellen schön während der Programmierphase kurzfristig einsetzen, ohne den Kopf demontieren zu müssen.

3) Durch den außenliegenden Anschluss für die externe Spannungsversorgung wird kein Ein- und Ausschalter mehr benötigt. Kopfseitig kann zum starten des Roboters einfach der Stecker eingesteckt werden.

Vorteile:

  • Kein Löten zum Anschluss des Schalters mehr erforderlich
  • Durch den genormten Anschluss für die externe Spannungsversorgung am Protoshield, der in der Funduino-Version verwendet werden kann, ist man sehr flexibel in der Verwendung unterschiedlicher Spannungsversorgungsmöglichkeiten.

Im Funduinoshop kann man den Bausatz für „Funduino OTTO“ mit und ohne gedrucktem Gehäuse bekommen:

Aufbau

  1. Stelle zuerst 2 der Servos auf 90° ein. Stecke dazu den Aufsatz auf und drehe den Servo auf 90°

2. Die Servos werden in den Bauch des Ottos eingesetzt und festgeschraubt.

3. Die zurechtgeschnittenen Clips werden in die Ottobeine eingesetzt.

4. Die Beine werden nun am Bauch des Ottos festgeschraubt.

5. Danach werden in beide füße jeweils ein kurzer, zurechtgeschnittener Clip eingesetzt und festgeschraubt.

6. Richte die Servos wie zuvor schon auf 90° aus, setze diese nun in den Füßen ein und schraube sie fest.

7. Die Kabel der Servos werden durch die Beine geführt in den Innenraum des Otto Bauches. Dann werden die Füße festgeklemmt und die Servos festgeschraubt.

8. Stecke nun den NANO Mikrocontroller in das Expansion Board und verbinde die Kabel der Servos folgendermaßen:

Linkes Bein – Pin 2
Rechtes Bein – Pin 3
Linker Fuß – Pin 4
Rechter Fuß – Pin 5

Stecke dann das Expansion Board in die Halterung im Bauch.

9. Jetzt wird der Ultraschallsensor in die Augenöffnung eingesetzt.

10. Nehme vier Steckkabel und stecke sie an den Ultraschallsensor. Verbinde die anderen Enden mit den Pins 8 und 9.

Sicher sind dir schon die Beschriftungen G, V und S auf dem Expansion Board aufgefallen. Die sind jetzt wichtig.

Pin des Ultraschallsensors

Expansion Board Pin

Pin Spezifizierung

GND

8

G

Echo

9

S

Trig

8

S

Vcc

9

V

11. Stecke zwei weitere Steckkabel an den Lautsprecher und verbinde diese mit dem Pin 13 am Expansion Board. Die ‚+‘ Seite wird dabei an ‚S‘ angeschlossen, die ‚-‚ Seite an ‚G‘

12. Jetzt ist ein guter Moment die Batterieklemme an die Batterie zu stecken und durch die Öffnung zu führen.

Fertig!

Naja… fast.

Du musst noch den Otto programmieren.

Dazu brauchst du die Arduino IDE und musst ein Arduino Programm für den Otto Roboter überspielen. Suche am einfachsten in der IDE nach OttoDIYLib. Das ist eine Bibliothek, die das programmieren deines Ottos sehr stark erleichtert

Füge am Anfang des Codes immer diesen Code mit ein, dann kannst du auf die Bibliothek des Ottos zugreifen.

#include <Otto.h>
Otto Otto;

#define LeftLeg 2 // Linkes Bein Pin
#define RightLeg 3 // Rechtes Bein Pin
#define LeftFoot 4 // Linker Fuß Pin
#define RightFoot 5 // Rechter Fuß Pin
#define Buzzer 13 //Lautsprecher Pin

Im Setup muss folgendes noch stehen:

void setup() {
   Otto.init(LeftLeg, RightLeg, LeftFoot, RightFoot, true, Buzzer);
   Otto.home();
}

Du kannst jetzt auf verschiedene Funktionen zurückgreifen, die der Otto nun ausführen kann…

Bewegungen:

Otto.walk(schritte, zeit, richtung);
  • schritte Heißt einfach nur wie häufig du diese Bewegung wiederholen möchtest, ohne weitere Codezeilen zu schreiben
  • zeit (weiter unten als T notiert) ist die Zeit die das ausgeführt wird in Millisekunden. Eine höhere Zeitangabe verlangsamt die Schnelligkeit; Versuche Werte zwischen 500 und 3000 (3000 = Sehr langsam, 2000 = langsam, 1000 = normal, 500 = schnell)
  • richtung ist die Richtung in die der Otto laufen soll: 1 um nach Vorne zu laufen, -1 zum rückwärts laufen.

Als Beispiel:

Otto.walk(2, 1000, 1);

In diesem Beispiel geht der Otto 2 Schritte nach vorne in 1000 Millisekunden.

Otto.turn(schritte, T, richtung);
  • schritte heißt wie viele Schritte der Otto machen soll
  • T ist die Zeit in der er die Schritte machen soll
  • richtung – 1 heißt hier, dass sich der Otto nach links dreht, -1 dass er sich nach rechts dreht.
Otto.bend (schritte, T, richtung);
  • schritte heißt wie viele Schritte der Otto machen soll
  • T ist die Zeit in der er die Schritte machen soll
  • richtung – 1 heißt hier, dass sich der Otto nach links beugt, -1 dass er sich nach rechts beugt.
Otto.shakeLeg (schritte, T, richtung);
  • schritte heißt wie viele Schritte der Otto machen soll
  • T ist die Zeit in der er die Schritte machen soll
  • richtung – 1 heißt hier, dass sich der Otto nach links beugt, -1 dass er sich nach rechts beugt.
Otto.jump(schritte, T);
  • hier fehlt die Richtung, da das keinen Sinn ergeben würde einen Richtungs Parameter zu haben.
  • Der Otto kann jedoch nicht wirklich springen, aber er versucht es immerhin 😁

Tänze

Hier gibt es einen weiteren Parameter, h, der die größe der Bewegungen beschreibt. Dadurch können die Tänze interessanter werden.

Otto.moonwalker(schritte, T, h, richtung);
(Anzahl der Schritte, T, h, 1 = links, -1 = rechts)
h: Versuch doch mal eine Zahl zwischen 15 und 40.
Otto.crusaito(schritte, T, h, richtung);
(Anzahl der Schritte, T, h, 1 = links, -1 = rechts)
h: Versuch doch mal eine Zahl zwischen 20 und 50.
Otto.flapping(schritte, T, h, richtung);
(Anzahl der Schritte, T, h, 1 = vorne, -1 = hinten)
h: Versuch doch mal eine Zahl zwischen 10 und 30.
Otto.swing(schritte, T, h);
(Anzahl der Schritte, T, h)
h: Versuch doch mal eine Zahl zwischen 0 und 50.
Otto.tiptoeSwing(schritte, T, h);
(Anzahl der Schritte, T, h)
h: Versuch doch mal eine Zahl zwischen 0 und 50.
Otto.jitter(schritte, T, h);
(Anzahl der Schritte, T, h)
h: Versuch doch mal eine Zahl zwischen 5 und 25.
Otto.updown(schritte, T, h);
(Anzahl der Schritte, T, h)
h: Versuch doch mal eine Zahl zwischen 0 und 90.
Otto.ascendingTurn(schritte, T, h);
(Anzahl der Schritte, T, h)
h: Versuch doch mal eine Zahl zwischen 5 und 50.

Sounds

Der Otto kann verschiedene Töne erzeugen und Lieder singen.

Otto.sing(songName);

Indem wir den Inhalt der Klammer ändern, können wir mit Leichtigkeit verschiedene Melodien abspielen. Um Melodien zu wiederholen, muss diese Funktion einfach nur wiederholt werden..

  • S_connection
  • S_disconnection
  • S_buttonPushed
  • S_mode1
  • S_mode2
  • S_mode3
  • S_surprise
  • S_OhOoh
  • S_OhOoh2
  • S_cuddly
  • S_sleeping
  • S_happy
  • S_superHappy
  • S_happy_short
  • S_sad
  • S_confused
  • S_fart1
  • S_fart2
  • S_fart3
Otto._tone(10, 3, 1);

(Noten Frequenz, Abspielzeit, Leise Zeit)

Otto.bendTones (100, 200, 1.04, 10, 10);

(Ausgangsfrequenz, Schlussfrequenz, Zusatz, Abspielzeit, Leise Zeit)

Gesten

Das beste zum Schluss: Mit einer Kombination aus den Bewegungen und Sounds kann der Otto verschiedene Gesten/Emotionen ausdrücken.

Das geht über die Funktion

Otto.playGesture(gesture);
  • Otto.playGesture(OttoHappy);
  • Otto.playGesture(OttoSuperHappy);
  • Otto.playGesture(OttoSad);
  • Otto.playGesture(OttoVictory);
  • Otto.playGesture(OttoAngry);
  • Otto.playGesture(OttoSleeping);
  • Otto.playGesture(OttoFretful);
  • Otto.playGesture(OttoLove);
  • Otto.playGesture(OttoConfused);
  • Otto.playGesture(OttoFart);
  • Otto.playGesture(OttoWave);
  • Otto.playGesture(OttoMagic);
  • Otto.playGesture(OttoFail);

Wie zu sehen ist, ist das eigentlich ziemlich einfach, Sieht aber ziemlich fortgeschritten aus.

Funduino - Dein Onlineshop für Mikroelektronik

  • Dauerhaft bis zu 10% Rabatt für Schüler, Studenten und Lehrkräfte
  • Mehr als 2.000 Artikel sofort verfügbar!
  • Über 8 Jahre Erfahrung mit Arduino, 3D-Druck und co.
SALE