Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Joy Robot (Robô Da Alegria)

Komponenten und Verbrauchsmaterialien

Arduino UNO
× 1
Espressif ESP8266 ESP-01
× 1
SG90 Micro-Servomotor
× 6
DC-Motor mit Untersetzung und Gummirädern
× 2
L298N h-Bridge-Treiber
× 1
Adafruit 16-Kanal-12-Bit-PWM-/Servo-Treiber - I2C Schnittstelle - PCA9685
× 1
MAX7219 8x8 LED-Display
× 4
SparkFun Dual H-Bridge Motortreiber L298
× 1
18650 Akku
× 2
18650 Batteriehalter
× 2
Arduino Proto Shield
× 1
1N4001-Diode
× 1
Widerstand 10k Ohm
× 3

Notwendige Werkzeuge und Maschinen

3D-Drucker
3D-Drucker (generisch)

Apps und Onlinedienste

Autodesk Fusion 360
Arduino-IDE
Android SDK

Über dieses Projekt

Erster Preis beim Instructables Wheel Contest, zweiter Preis beim Instructables Arduino Contest und Zweiter bei der Instructables Design for Kids Challenge. Danke an alle die für uns abgestimmt haben!!!

http://www.instructables.com/id/Joy-Robot-Rob%C3%B4-Da-Alegria-Open-Source-3D-Printed-A/

Roboter kommen überall hin. Von industriellen Anwendungen bis hin zur Unterwasser- und Weltraumforschung. Aber meine Favoriten sind diejenigen, die für Spaß und Unterhaltung verwendet werden! In diesem Projekt wurde ein DIY-Roboter für die Unterhaltung in Kinderkrankenhäusern entwickelt, der den Kindern Spaß macht. Das Projekt konzentriert sich auf den Wissensaustausch und die Förderung technologischer Innovationen, um NGOs zu unterstützen, die gemeinnützige Arbeit in Kinderkrankenhäusern leisten.

Dieses Tutorial zeigt, wie Sie einen ferngesteuerten humanoiden Roboter entwerfen, der über ein Wi-Fi-Netzwerk gesteuert wird, indem ein Arduino Uno verwendet wird, das mit einem ESP8266 Wi-Fi-Modul verbunden ist. Es verwendet einige Servomotoren für Kopf- und Armbewegungen, einige Gleichstrommotoren zum Bewegen kleiner Entfernungen und ein Gesicht aus LED-Matrizen. Der Roboter kann von einem gewöhnlichen Internetbrowser mit einer HTML-entwickelten Schnittstelle gesteuert werden. Ein Android-Smartphone wird verwendet, um Video und Audio vom Roboter an die Bedienoberfläche des Bedieners zu übertragen.

Das Tutorial zeigt, wie die Struktur des Roboters 3D gedruckt und zusammengebaut wurde. Elektronische Schaltungen werden erklärt und Arduino-Code wird detailliert, sodass jeder den Roboter nachbauen kann.

Einige der Techniken, die für diesen Roboter verwendet wurden, wurden bereits in Tutorials veröffentlicht. Bitte werfen Sie einen Blick auf die folgenden Tutorials:

  • https://www.instructables.com/id/WiDC-Wi-Fi-Controlled-FPV-Robot-with-Arduino-ESP82/
  • https://www.instructables.com/id/Controlling-a-LED-Matrix-Array-With-Arduino-Uno/
  • https://www.instructables.com/id/Wi-Servo-Wi-fi-Browser-gesteuerte-Servomotoren-mit/

Besonderer Dank geht an die anderen Teammitglieder, die an dem oben genannten Projekt beteiligt waren und für die erste Version des in diesem Tutorial vorgestellten Codes verantwortlich waren:

  • Thiago Farauche
  • Diego Augustus
  • Yhan Christian
  • Helam Moreira
  • Paulo de Azevedo Jr.
  • Guilherme Pupo
  • Ricardo Caspirro
  • ASEBS

Erfahren Sie mehr über das Projekt:

  • https://hackaday.io/project/12873-rob-da-alegria-joy-robot
  • https://www.hackster.io/igorF2/robo-da-alegria-joy-robot-85e178
  • https://www.facebook.com/robodaalegria/

Wie können Sie helfen?

Dieses Projekt wird durch Teammitglieder und kleine Spenden einiger Unternehmen finanziert. Wenn es Ihnen gefallen hat, können Sie uns auf verschiedene Weise helfen:

  • Abstimmen: Dieses Projekt nimmt an den Tutorials Wheels, Design for Kids und Arduino Contests teil. Bitte stimmen Sie für uns ab! :D
  • Spende :Sie können uns Tipps senden, wenn Sie den Bau des Roboters und seine zukünftigen Verbesserungen unterstützen möchten. Die Trinkgelder werden verwendet, um Verbrauchsmaterialien (Elektronik, 3D-Druck, Filamente usw.) zu kaufen und unsere Interventionen in Kinderkrankenhäusern zu fördern. Ihr Name wird zu den Credits des Projekts hinzugefügt! Sie können Tipps aus unserem Design in der Thingiverse-Plattform senden:https://www.thingiverse.com/thing:2765192
  • Gefällt mir :Zeigen Sie uns, wie sehr Sie unser Projekt schätzen. Geben Sie uns ein "Gefällt mir" auf den Plattformen, auf denen wir unser Projekt dokumentieren (Facebook, Hackster, Hackaday, Maker Share, Thingiverse...).
  • Teilen :Teilen Sie das Projekt auf Ihrer bevorzugten Social-Media-Website, damit wir mehr Menschen erreichen und mehr Macher auf der ganzen Welt inspirieren können.

Wussten Sie, dass Sie das Creality CR10mini für nur 349,99 USD kaufen können? Verwenden Sie den Gutscheincode cr10mini3d bei Gearbest und hol es dir:http://bit.ly/2FZ5OXw

Schritt 1:Ein bisschen Geschichte...

Das Projekt „Robô da Alegria“ („Joy Robot“) wurde 2016 in der Region Baixada Santista (Brasilien) mit dem Ziel gegründet, Technologie zu entwickeln und die Community für die Maker-Bewegung zu gewinnen. Inspiriert von freiwilligen Projekten, die von NGOs in Kinderkrankenhäusern durchgeführt wurden, zielt das Projekt darauf ab, einen Roboter mit offener Hardware und apen-Softwaretools zu entwickeln, der in der Lage ist, ein wenig Spaß in die Umgebung von Kinderkrankenhäusern zu bringen und zur Arbeit anderer Organisationen beizutragen.

Die Saat für das Projekt wurde Ende 2015 gelegt. Nach einem Vortrag über die Entwicklung und Entwicklung von Technologien, die von der Association of Startups of Baixadas Santista (ASEBS) gefördert werden. Es war ein idealisiertes Projekt ohne Geldpreis, das jedoch ein Thema darstellte, in dem sich Menschen auf altruistische Weise engagieren, mit dem Ziel, anderen Menschen zu helfen.

Der Roboter durchlief von seiner ersten Konzeption bis zum heutigen Zustand verschiedene Transformationen. Von nur einem Kopf mit mechanischen Augen und Augenbrauen bis hin zu seiner heutigen humanoiden Form wurden mehrere Iterationen durchgeführt, bei denen verschiedene konstruktive Materialien und elektronische Geräte getestet wurden. Von einem Acryl-Prototyp und lasergeschnittenem MDF sind wir zu einem 3D-gedruckten Körper übergegangen. Von einer einfachen Schnittstelle mit zwei über Bluetooth gesteuerten Servomotoren bis hin zu einem Körper bestehend aus 6 Servomotoren und 2 Motoren DC-Befehl über eine Webschnittstelle über ein Wi-Fi-Netzwerk.

Die Roboterstruktur wurde komplett im 3D-Druck mit Fusion 360 hergestellt. Um die Herstellung von Roboternachbauten in Makerspaces oder Fab Labs zu ermöglichen, wo die maximale Nutzungsdauer der Drucker entscheidend ist, wurde das Design des Roboters in Einzelteile unterteilt weniger als drei Stunden Druckzeit. Zur Karosseriemontage wird der Teilesatz geklebt oder geschraubt.

Das aus LED-Arrays bestehende Gesicht gibt dem Roboter die Möglichkeit, Emotionen auszudrücken. Von Servomotoren angetriebene Arme und Nacken verleihen dem kleinen Automaten die nötige Mobilität für die Interaktion mit dem Benutzer. Im Kontrollzentrum des Roboters ist ein Arduino Uno mit allen Peripheriegeräten verbunden, einschließlich der Kommunikation mit einem ESP8266-Modul, das dem Benutzer die Möglichkeit gibt, Ausdrücke und Bewegungen über jedes mit demselben Wi-Fi-Netzwerk verbundene Gerät zu steuern.

Der Roboter hat auch ein Smartphone in seiner Brust installiert, das für die Übertragung von Audio und Video zwischen dem Bediener des Roboters und den Kindern verwendet wird. Der Gerätebildschirm kann weiterhin für die Interaktion mit Spielen und anderen Anwendungen verwendet werden, die für die Interaktion mit dem Roboterkörper entwickelt wurden.

Schritt 2:Werkzeuge und Materialien

Die folgenden Werkzeuge und Materialien wurden für dieses Projekt verwendet:

Tools:

  • 3D-Drucker - Der gesamte Körper des Roboters ist 3D-gedruckt. Für den Bau der gesamten Struktur waren mehrere Stunden 3D-Druck erforderlich;
  • PLA-Filament - Zum Bedrucken des Gehäuses wurden weiße und schwarze PLA-Filamente verwendet;
  • Schraubendreher - Die meisten Teile sind mit Schrauben verbunden;
  • Sekundenkleber - Einige der Teile wurden mit Sekundenkleber befestigt;
  • Zangen und Cutter
  • Lötkolben und Draht

Elektronik :

  • Arduino Uno (Link / Link) - Es wird als Hauptsteuerung des Roboters verwendet. Es sendet Signale an die Motoren und kommuniziert mit dem WiFi-Modul;
  • ESP8266-01 (Link / Link) - Es wird als 'WiFi-Modem' verwendet. Es empfängt Signale von der Steuerschnittstelle, die vom Arduino Uno ausgeführt werden sollen;
  • SG90-Servomotoren (x6) (Link / Link) - Vier Servos wurden für die Arme und zwei für die Kopfbewegungen verwendet;
  • DC-Motoren mit Untersetzung und Gummirädern (x2) (Link / Link) - Sie ermöglichen dem Roboter, kleine Entfernungen zurückzulegen;
  • L298N Zweikanal-H-Brücke (x1) (Link / Link) - Es wandelt Arduino-Digitalausgänge in Stromspannungen für die Motoren um;
  • 16-Kanal-Servocontroller (Link / Link) - Mit diesem Board kann man mehrere Servomotoren mit nur zwei Arduino-Ausgängen steuern;
  • MAX7219 8x8 LED-Display (x4) (Link / Link) - Sie werden als Gesicht des Roboters verwendet;
  • Micro-USB-Kabel - Wird zum Hochladen des Codes verwendet;
  • Überbrückungskabel weiblich-weiblich (manche);
  • Überbrückungsdrähte männlich-weiblich (manche);
  • Smartphone - Es wurde ein Motorola 4,3" Moto E Smartphone verwendet. Andere mit ähnlicher Größe könnten auch funktionieren;
  • 18650-Akku (x2) (Link) - Sie wurden verwendet, um das Arduino und andere Peripheriegeräte mit Strom zu versorgen;
  • 18650 Batteriehalter (x1) (Link / Link) - Sie halten die Batterien an Ort und Stelle;
  • 1N4001-Dioden (x2)
  • 10-kOhm-Widerstände (x3)
  • 20-mm-Ein-/Ausschalter (x1)
  • Protoschild (Link) - Es hilft beim Verdrahten der Schaltung.

Mechanik:

  • Kugelräder (x2)
  • M2x6,0-mm-Schrauben (+-70)
  • M2x10mm Schrauben (+-20)
  • M2x1,5-mm-Muttern (x10)
  • M3x40mm Schrauben (x4)
  • M3x1,5-mm-Muttern (x4)

Die obigen Links sind ein Vorschlag, wo Sie die in diesem Tutorial verwendeten Elemente finden und die Entwicklung dieses Projekts unterstützen können. Fühlen Sie sich frei, woanders danach zu suchen und in Ihrem bevorzugten lokalen oder Online-Shop zu kaufen.

Wussten Sie, dass Sie den Creality3D CR10mini für nur 349,99 USD kaufen können? Nutze den Gutscheincode cr10mini3d bei Gearbest und hol ihn dir:http://bit.ly/2FZ5OXw

Schritt 3:3D-Druck

Die Roboterstruktur wurde komplett im 3D-Druck mit Autodesk Fusion 360 hergestellt. Um die Herstellung von Roboternachbauten in Makerspaces oder Fab Labs zu ermöglichen, wo die maximale Nutzungsdauer der Drucker entscheidend ist, wurde das Design des Roboters in Einzelteile unterteilt weniger als drei Stunden Druckzeit. Zur Karosseriemontage wird der Teilesatz geklebt oder geschraubt.

Das Modell besteht aus 36 verschiedenen Teilen. Die meisten wurden ohne Stützen gedruckt, mit 10 % Füllung.

  • Kopf oben (rechts/links)
  • Kopf unten (rechts/links)
  • Kopfseitenkappen (rechts/links)
  • Gesichtsrückenplatte
  • Gesichtsfrontplatte
  • Halsachse 1
  • Halsachse 2
  • Halsachse 3
  • Nackenmitte
  • Arm (rechts/links)
  • Schulter (rechts/links)
  • Schulterschale (rechts/links)
  • Schulterkappe (rechts/links)
  • Armachse (rechts/links)
  • Büste (rechts/links)
  • Brust (rechts/links/vorne)
  • Räder (rechts/links)
  • Basis
  • Telefonhalterung
  • Zurück (rechts/links)
  • Knöpfe (rechts/links)
  • Schließfach (rechts/links)

Das Verfahren zum Anbringen des Roboters wird in den folgenden Schritten beschrieben.

Sie können alle stl-Dateien auf den folgenden Websites herunterladen:

  • https://www.thingiverse.com/thing:2765192
  • https://pinshape.com/items/42221-3d-gedruckter-joy-robot-robo-da-alegria
  • https://www.youmagine.com/designs/joy-robot-robo-da-alegria
  • https://cults3d.com/de/3d-model/gadget/joy-robot-robo-da-alegria

Dies ist ein experimenteller Prototyp. Einige der Teile benötigen einige Verbesserungen (für spätere Aktualisierungen des Projekts). Es gibt einige bekannte Probleme:

  • Störung zwischen der Verkabelung einiger Servos und der Schulter;
  • Reibung zwischen Kopf und Brust;
  • Reibung zwischen den Rädern und der Struktur;
  • Das Loch für einige Schrauben ist zu eng und muss mit einem Bohrer oder einem Hobbymesser erweitert werden.

Wenn Sie keinen 3D-Drucker haben, können Sie Folgendes tun:

  • Bitten Sie einen Freund, es für Sie auszudrucken;
  • Suchen Sie einen Hacker-/Maker-Space in der Nähe. Das Modell wurde in mehrere Teile geteilt, sodass jedes Teil einzeln weniger als vier Stunden zum Drucken benötigt. Einige Hacker-/Maker-Spaces berechnen Ihnen nur die verwendeten Materialien;
  • Kaufen Sie Ihren eigenen 3D-Drucker. Sie können einen Anet A8 für nur 165,99 US-Dollar finden. Hol dir deine bei Gearbest:http://bit.ly/2kqVOdO
  • Interessiert am Kauf eines DIY-Kits? Wenn genug Leute interessiert sind, biete ich vielleicht DIY-Kits auf Tindie.com an. Wenn Sie eine möchten, senden Sie mir eine Nachricht.

Schritt 4:Übersicht über die Strecken

Der Roboter wird im Kern mit einem Arduino Uno gesteuert. Der Arduino verbindet ein ESP8266-01-Modul, das verwendet wird, um den Roboter über ein Wi-Fi-Netzwerk fernzusteuern.

Ein 16-Kanal-Servocontroller ist über I2C-Kommunikation mit dem Arduino verbunden und steuert 6 Servomotoren (zwei für den Hals und zwei für jeden Arm). Ein Array von fünf 8x8 LED-Matrizen wird vom Arduino mit Strom versorgt und gesteuert. Vier digitale Ausgänge des Arduino werden zur Steuerung von zwei Gleichstrommotoren über eine H-Brücke verwendet.

Die Stromkreise werden über zwei USB-Powerbanks mit Strom versorgt:eine für die Motoren und eine für den Arduino. Ich habe versucht, den gesamten Roboter mit einem Signle-Netzteil mit Strom zu versorgen. Aber ESP8266 verlor früher die Verbindung aufgrund von Spitzen, wenn Gleichstrommotoren ein- und ausgeschaltet wurden.

Auf der Brust des Roboters befindet sich ein Smartphone. Es wird verwendet, um Video und Audio an/von der Steuerschnittstelle zu übertragen, die auf einem gewöhnlichen Computer gehostet wird. Es kann auch Befehle an den ESP6288 senden und so den Körper des Roboters selbst steuern.

Man könnte bemerken, dass die hier verwendeten Komponenten möglicherweise nicht für ihren Zweck optimiert sind. Anstelle der Arduino + ESP8266-Kombination könnte beispielsweise eine NodeMCU verwendet werden. Ein Rapsberry Pi mit Kamera würde das Smartphone ersetzen und auch die Motoren steuern. Es ist sogar möglich, ein Android-Smartphone als "Gehirn" für Ihren Roboter zu verwenden. Das stimmt... Ein Arduino Uno wurde gewählt, weil es für jeden leicht zugänglich und einfach zu bedienen ist. Als wir mit diesem Projekt begannen, waren ESP- und Raspberry Pi-Boards noch relativ teuer an dem Ort, an dem wir leben ... einst wollten wir einen kostengünstigen Roboter bauen, Arduino-Boards waren im Moment die beste Wahl.

robot%2Bmk0%2B-%2Brev8_Esquem_C3_A1tico.pdf robot%2Bmk0%2B-%2Brev8_bb.pdf

Schritt 5:Zusammenbauen des Gesichts

Auf dem Gesicht des Roboters wurden vier 8x8 LED-Matrix verwendet.

Die Struktur wurde in zwei Teile geteilt (Frontplatte und Frontplatte) 3D-gedruckt mit schwarzem PLA. Ich habe ungefähr 2,5 Stunden gebraucht, um sie in 3D zu drucken, mit 10 % Füllung und ohne Stützen.

Aus Platzgründen mussten die Stecker der LED-Matrizen entlötet und wie unten beschrieben in ihrer Position verändert werden:

  • Entfernen Sie die LED-Matrix;
  • Entlöt-Eingangs- und -Ausgangsanschlüsse;
  • Löten Sie dann auf der anderen Seite der Platine nach, wobei die Stifte zur Mitte der Platine zeigen.

Sie können das Endergebnis in den Bildern sehen.

Die vier LED-Matrizen wurden dann mit 16 M2x6mm Schrauben an der Rückplatte befestigt. Die Pins wurden gemäß den Schaltplänen angeschlossen.

Die erste Matrix wurde mit einem 5-adrigen Stecker-weiblich-Jumper verbunden. Das männliche Ende wurde später mit Arduino-Pins verbunden. Das weibliche Ende ist an Matrix-Eingangspins angeschlossen. Der Ausgang jeder Matrix wird mit einem weiblichen-weiblichen Jumper mit dem Eingang der nächsten verbunden.

Nach dem Verbinden der Matrizen wird die Frontplatte mit vier M2-Schrauben montiert. Wickeln Sie die Jumper um die Vorder- und Rückseite, damit keine Kabel lose sind.

Das Gesichtsmodul wird später im Kopf des Roboters installiert, wie in den nächsten Schritten erklärt wird.

Schritt 6:Montage des Kopfes

Der Kopf des Roboters wurde in acht 3D-gedruckte Teile unterteilt, die alle in weißem PLA mit 0,2 mm Auflösung, 10% Füllung und ohne Stützen gedruckt sind:

  • Kopf oben (rechts und links)
  • Kopf unten (rechts und links)
  • Kopfkappe (rechts und links)
  • Halsachse 1
  • Halsachse 2

Ich habe fast 18 Stunden gebraucht, um die Struktur mit 130 mm Durchmesser zu drucken.

Die Ober- und Unterseite des Kopfes sind in zwei Teile geteilt. Sie werden mit Sekundenkleber zusammengeklebt. Tragen Sie den Kleber auf und lassen Sie ihn einige Stunden ruhen.

Die Seitenkappen werden dann mit Schrauben befestigt, die an den Seiten der Ober- und Unterseite des Kopfes befestigt sind. Auf diese Weise kann der Kopf zur Reparatur demontiert werden, indem die an den Kopfoberteilen befestigten Schrauben entfernt werden. Bevor Sie den Kopf schließen, bauen Sie das Gesicht des Roboters (beschrieben im vorherigen Schritt) und die Büste (beschrieben in den nächsten Schritten) zusammen.

Servomotor Nr. 5 wurde an Halsachse 1 befestigt. Ich positionierte das Servo in der Mitte der Achse, befestigte dann das Horn und benutzte eine Schraube, um seine Position zu arretieren. Ich habe zwei M2x6mm Schrauben verwendet, um die Halsachse 2 an diesem Servomotor zu montieren. Servomotor #6 wird auf die gleiche Weise an Halsachse 2 befestigt.

Nackenachse 2 wurde später mit der Nackenmitte verbunden, wie im nächsten Schritt gezeigt wird.

Das Gesichtsmodul ist im Kopf installiert.

Schritt 7:Zusammenbau von Burst und Schultern

Brust und Schulter brauchten ungefähr 12 Stunden, um gedruckt zu werden.

Dieser Abschnitt besteht aus fünf verschiedenen Teilen:

  • Büste (rechts/links)
  • Schultern (rechts/links)
  • Nackenmitte
  • Halsachse 3

Die Brustteile wurden mit Sekundenkleber verklebt. An den Seiten wurden Schultern mit M2x10mm Schrauben befestigt und die Servomotoren (Servomotor #2 und #4) wurden auf jeder Seite installiert. Sie gehen durch ein rechteckiges Loch an jeder Schulter (der Draht ist eigentlich ziemlich schwer zu passieren) und werden mit M2x10mm Schrauben und Muttern befestigt.

Der Mittelhals hat ein rechteckiges Loch, in das der Halsachsenteil 3 eingesetzt wird. Vier M2x6mm Schrauben wurden verwendet, um diese beiden Teile zu verbinden. Danach wurde der mittlere Hals an den Schultern befestigt. Es werden die gleichen Schrauben verwendet, mit denen die Schulter an der Brust befestigt wird. Vier M2x1,5mm Muttern werden verwendet, um seine Position zu fixieren.

Der Servomotor #6 wurde mit zwei Schrauben mit der Halsachse 3 verbunden. Dann habe ich Halsachse 3 in das rechteckige Loch in der Mitte des Halses eingebaut und vier M2x6mm-Schrauben verwendet, um seine Position zu verriegeln.

Schritt 8:Montage der Arme

Ich habe ungefähr 5 Stunden gebraucht, um jeden Arm zu drucken.

Jeder Arm besteht aus vier Teilen:

  • Schulterschale
  • Schulterkappe
  • Armachse
  • Arm

Die Armachse ist zentralisiert und mit drei M2x6mm-Schrauben am Arm selbst befestigt. Am anderen Ende der Achse ist ein Servohorn angebracht.

Ein Servomotor (#1 und #3) wird mit einigen Schrauben in der Schulterschale installiert und dann mit seinem Horn (das an der Armachse befestigt) installiert. An der Schale befindet sich ein Loch für die Installation eines anderen Horns, das an dem bereits an den Schultern montierten Servo (#2 und #4) befestigt ist, wie es im vorherigen Schritt gezeigt wurde.

Am Cup (und an der Schulter) befindet sich ein weiteres Loch zum Durchführen der Kabel der Servos. Danach wird die Kappe mit zwei M2x6mm Schrauben angebracht, um die Schulter des Roboters zu schließen.

Schritt 9:Anbringen der Truhe

The chest is the part that links the bust to the bottom (wheels and base) of the robot. It's made of only two parts (right and left parts. I printed them in 4 hours.

The shoulders of the robot fits on upper part of the chest. There is a hole for a bolt that helps the alignment and fixation of thos parts. Although it's recomended to glue those two parts.

The bottom of this parts have six holes, which are used for the connection to the wheels, as it will be shown later.

At this point I labelled the servomotors with some stickers, in order to make the connection of the circuits easier.

Step 10:Assembling the Wheels

The wheels of the robot uses three 3d printed parts:

  • Wheels (left/right)
  • Vorne

It took me around 10h to print those parts.

I followed the following steps for assembling the wheels:

  • First I had to solder some wires to DC motors connectors. Those wires were later used for powering the motors using a H-bridge circuit;
  • The motors were then attached to the structure using two M3x40 bolts and nuts for each. Actually a shorter bolt might be used (but I found none online);
  • After that I glued the front pannel, which links the other parts of the structure;
  • This part has some holes on its top. They are used for its attachment to the chest, shown previously. Six M2x6mm bolts were used for the connection of both sections.

Step 11:Phone Holder

The phone holder is a single 3d printed part, and it takes around 1 hour to print.

The robot has a smartphone at it's belly. It was designed for a Motorola Moto E. It has a 4.3" display. Other smartphones with similar size might fit as well.

The phone holder part is used to hold the smartphone in the desired position. First the smart phone is positioned, then it's pressed against the body of the robot using the phone holder and four M2x6mm bolts.

It's importart to connect the USB cabe to the smartphone before tightening the bolts. Otherwise it will be hard to connect it later. Unfortunatly the space is very limited, so I had to cut part of the USB connector away... :/

Step 12:Mounting the Base

The base has only one 3D printed part. It took me around 4h to print that part.

It has several holes for the installation of other components, like the ball wheels, and circuit boards for instance. The following procedure was used for assembling the base:

  • Install the 16 channel servo controller using four M2x6mm bolts;
  • Install the L298N h-bridge circuit using four M2x6mm bolts;
  • Install the Arduino Uno using four M2x6mm bolts;
  • Install the protoshield on the top of the robot;
  • Wire up the circuits (as it's described a couple steps later);
  • Installe the ball wheels using two screws for each one. The wires were arranged so that they are traped between the base and the screws used in the installation of the wheels;
  • Base was attached to wheels section using some screws.

Step 13:Back and Power Pack

The back cover of the robot was designed so that one can easilly open it for accessing the circuits, recharging the batteries, or turning the smartphone on/off.

It's made of six 3d printed parts:

  • Back (left/right)
  • Knobs (x2)
  • Locks (left/right)

It took me around 5h30 for printing the parts. Right and left back parts were glued using superglue. Wait until the glue is completly dry, or the cover will break easilly.

The power pack consists of two 18650 batteries and a battery holder. I had to solder some wires (between battery #1 negative pole and battery #2 positive pole). The negative pole of the power pack was connected to Arduinos GND (using some wires and jumpers). A on/off swich was installed between the positive pole and Arduino's Vin input.

The on/off switch was attached to back 3d printed parts using a M2x6mm bolt and M2x1.5mm nut. The battery holder was attached to the back using four M2x6mm bolts.

The cilindrical part of the locks had to be sanded with a sand paper for a better fitting. They pass through the holes on the cover. The knobs are connected and glued on the other side.

The cover fits to the back of the robot. The knobs can be turned for locking the lid, protecting the insides of the robot.

Step 14:Wiring Up the Circuits

The circuit was wired up according to the schematics.

Arduino:

  • Arduino pin D2 => L298N pin IN4
  • Arduino pin D3 => L298N pin IN3
  • Arduino pin D6 => L298N pin IN2
  • Arduino pin D7 => L298N pin IN1
  • Arduino pin D9 => MAX7219 pin DIN
  • Arduino pin D10 => MAX7219 pin CS
  • Arduino pin D11 => MAX7219 pin CLK
  • Arduino pin D4 => ESP8266 RXD
  • Arduino pin D5 => ESP8266 TXD
  • Arduino pin A4 => SDA
  • Arduino pin A5 => SCL
  • Arduino pin Vin => Battery V+ (before diodes)
  • Arduino pin gnd => Battery V-

ESP8266-01

  • ESP8266 pin RXD => Arduino pin D4
  • ESP8266 pin TXD => Arduino pin D5
  • ESP8266 pin gnd => Arduino pin gnd
  • ESP8266 pin Vcc => Arduino pin 3V3
  • ESP8266 pin CH_PD => Arduino pin 3V3

L298N h-bridge

  • L298N pin IN1 => Arduino pin D7
  • L298N pin IN2 => Arduino pin D6
  • L298N pin IN3 => Arduino pin D3
  • L298N pin IN4 => Arduino pin D2
  • L298N pin +12V => Battery V+ (after diodes)
  • L298N pin gnd => Arduino gnd
  • L298N OUT1 => Motor 1
  • L298N OUT2 => Motor 2

MAX7219 (first matrix)

  • MAX7219 pin DIN => Arduino pin D9
  • MAX7219 pin CS => Arduino pin D10
  • MAX7219 pin CLK => Arduino pin D11
  • MAX7219 pin Vcc => Arduino pin 5V
  • MAX7219 pin gnd => Arduino pin gnd

MAX7219 (other matrixes)

  • MAX7219 pin DIN => MAX7219 pin DOUT(previous matrix)
  • MAX7219 pin CS => MAX7219 pin CS (previous matrix)
  • MAX7219 pin CLK => MAX7219 pin CLK (previous matrix)
  • MAX7219 pin Vcc => MAX7219 pin VCC (previous matrix)
  • MAX7219 pin gnd =:MAX7219 pin gnd (previous matrix)

16-channel servo controller

  • Servo controller pin SCL => Arduino pin A5
  • Servo controller pin SDA => Arduino pin A4
  • Servo controller pin Vcc => Arduino pin 5V
  • Servo controller pin gnd => Arduino pin gnd
  • Servo controller pin V+ => Battery V+ (after diodes)
  • Servo controller pin gnd => Arduino pin gnd

Some say the Sg90 servo can be powered between 3.0 and 6.0V, others between 4.0 and 7.2V. To avoid trouble I decided to put two diodes in series after the batteries. This way, the voltage for servos is 2*3.7 - 2*0.7 =6.0V. The same is applied to the DC motors.

Notice this is not the most efficient way, but it worked for me.

robot%2Bmk0%2B-%2Brev8_bb.pdf robot%2Bmk0%2B-%2Brev8_Esquem_C3_A1tico.pdf

Step 15:Arduino Code

Install the latest Arduino IDE. No library was needed for communication with ESP-8266 module or control of the DC motors.

I'll need to add the following libraries:

  • LedControl.h :library used to control the LED matrixes;
  • Adafruit_PWMServoDriver.h :library used to control the servo motors.

Arduino code is divided in 9 parts:

  • RobodaAlegria.ino: this is the main sketch, and it call the other parts. Libraries are imported here. It also define and initialize global variables;
  • _05_Def_Olhos.ino: this is where the matrixes for each eye are defined. Each eye is represented by a 8x8 matrix, and 9 options where defined:neutral, wide-eye, closed up, closed down, angry, borred, sad, in love, and dead eyes. There is a different matrix for right and left eyes;
  • _06_Def_Boca.ino: this is where the matrices for the mouth are defined. The mouth is represented by a 16x8 matrix, and 9 options where defined:happy, sad, very happy, very sad, neutral, tongue out, open, wide-open, and disgusted mouth;
  • _10_Bracos.ino: predefined movements for arms and neck are defined in this file. Nine movements, mov1() to mov9(), were configured;
  • _12_Rosto.ino: in this file there are some functions for updating the face of the robot, combining the matrixes defined in _05_Def_Olhos.ino and _06_Def_Boca.ino;
  • _13_Motores_DC: it defines the functions for ther DC motors;
  • _20_Comunicacao.ino: a function for sending data to ESP8266 is defined in this file;
  • _80_Setup.ino: it runs on Arduino power up. It set the inicial face and position of the motors of the robot. It also send commands for the connection to a given Wi-Fi network;
  • _90_Loop: main loop. It looks for incoming commands from ESP8266 and call specific functions to control the outputs.

Download Arduino code. Replace the XXXXX by your wifi router SSID and YYYYY by router password on on '_80_Setup.ino'. Please check the baudrate of you ESP8266 and set it properly in the code ('_80_Setup.ino'). Connect the Arduino board to your computer USB port and upload the code.

RoboAlegria.rar

Step 16:Android Apps

An Android smartphone was used to broadcast the video and audio from the robot to the control interface. You can find the app I used on Google Play store (https://play.google.com/store/apps/details?id=com.pas.webcam).

The screen of the smartphone may also be transmited to the control interface, so that the operator can see what's on the screen. You can also find the app I used to mirror the screnn on Google Play store (https://play.google.com/store/apps/details?id=com.ajungg.screenmirror).

An Android video game was also designed to interact with the robot. It's not yet very stable, so it isn't available for download.

Step 17:Control Interface

A html interface was designed for the control of the robot.Download interface.rar and extract all the files to a given folder. Then open it on Firefox. The interface is divided in two blocks. To the left there are displays for the camera and screen mirror. To the right there are controll buttons for the commands.

Textbox forms are used in that interface to enter IP address of the ESP8266 module ('Endereço IP Arduino:'), video/audio server from Android IP Webcam app ('IP Webcam (IP):') and Screen Mirror IP address ('Screen Mirror (IP):').

Under 'Ações predefinidas' tab user can select between 9 predefined body movements and 13 different faces. On 'Ações personalizadas' tab user can set a given angles for each of the 6 servos, and individually select between 9 eyes possibilities and 8 mouths variations. A javascript function runs whenever one of those buttons is clicked, and a message is sent for ESP8266's IP address.

Keyboard arrow keys are used for moving the robot forward or backward, and to rotate left or right.

When the interface is started, a warning is displayed, asking if the user wants to share the microphone. If this option is selected, sound intensity of the microphone will be used to send a preconfigured command to the robot. This command will trigger an animation, simulating speech movement on robot's face. A settings button on upper right corner might be used to set the sensitivity of the microphone.

This settings menu might also be used to configure the speed of arms and neck movements.

interface.rar

Step 18:Have Fun

Power it up and have fun!

If you like it, please share this tutorial with you friends! And don't forget to vote on Instructubles Contests! :D

http://www.instructables.com/id/Joy-Robot-Rob%C3%B4-Da-Alegria-Open-Source-3D-Printed-A/

Code

  • Arduino-Code
  • HTML Interface
Arduino-CodeArduino
Keine Vorschau (nur Download).
HTML InterfaceHTML
Keine Vorschau (nur Download).
Github
https://github.com/wayoda/LedControlhttps://github.com/wayoda/LedControl
Github
https://github.com/adafruit/Adafruit-PWM-Servo-Driver-Libraryhttps://github.com/adafruit/Adafruit-PWM-Servo-Driver-Library

Kundenspezifische Teile und Gehäuse

Thingiverse
https://www.thingiverse.com/thing:2765192CAD file on thingiverse.com
Youmagine
https://www.youmagine.com/designs/joy-robot-robo-da-alegria

Schaltpläne


Herstellungsprozess

  1. Raspoulette-Prototyp
  2. Raspberry Pi CD-Box-Roboter
  3. Rollender Alarmroboter
  4. Baue einen Minecraft-Creeper-Roboter
  5. Archimedes:Die KI-Roboter-Eule
  6. Offener CV-Roboter
  7. ROS-Roboter
  8. Einfacher Pi-Roboter
  9. Roboter für supercoole Indoor-Navigation
  10. Was ist ein Linearmotor?