Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Joy Robot (Robô Da Alegria)

Componenten en benodigdheden

Arduino UNO
× 1
Espressief ESP8266 ESP-01
× 1
SG90 Micro-servomotor
× 6
DC-motor met reductie en rubberen wielen
× 2
L298N h-bridge-stuurprogramma
× 1
Adafruit 16-kanaals 12-bits PWM/Servo-stuurprogramma - I2C interface - PCA9685
× 1
MAX7219 8x8 LED-display
× 4
SparkFun Dual H-Bridge motordrivers L298
× 1
18650 batterij
× 2
18650 batterijhouder
× 2
Arduino Proto Shield
× 1
1N4001-diode
× 1
Weerstand 10k ohm
× 3

Benodigde gereedschappen en machines

3D-printer
3D-printer (algemeen)

Apps en online services

Autodesk Fusion 360
Arduino IDE
Android SDK

Over dit project

Eerste prijs in de Instructables Wheel Contest, tweede prijs in de Instructables Arduino Contest en tweede prijs in de Instructables Design for Kids Challenge. Bedankt aan iedereen die op ons heeft gestemd!!!

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

Robots komen overal. Van industriële toepassingen tot onderwater- en ruimteverkenning. Maar mijn favoriete zijn die voor plezier en vermaak! In dit project werd een doe-het-zelf-robot ontworpen om te worden gebruikt voor entertainment in kinderziekenhuizen, waardoor de kinderen plezier hebben. Het project is gericht op het delen van kennis en het bevorderen van technologische innovatie om NGO's te helpen die liefdadigheidswerk verrichten in kinderziekenhuizen.

Deze tutorial laat zien hoe je een op afstand bediende humanoïde robot ontwerpt, bestuurd via een Wi-Fi-netwerk, met behulp van een Arduino Uno die is aangesloten op een ESP8266 Wi-Fi-module. Het maakt gebruik van enkele servomotoren voor hoofd- en armbewegingen, sommige DC-motoren voor het verplaatsen van kleine afstanden en een gezicht gemaakt van LED-matrices. De robot kan worden bestuurd vanuit een gewone internetbrowser, met behulp van een door HTML ontworpen interface. Een Android-smartphone wordt gebruikt om video en audio van de robot uit te zenden naar de bedieningsinterface van de operator.

De tutorial laat zien hoe de structuur van de robot 3D werd geprint en geassembleerd. Het elektronische circuit wordt uitgelegd en de Arduino-code is gedetailleerd, zodat iedereen de robot kan repliceren.

Sommige van de technieken die voor deze robot werden gebruikt, waren al gepubliceerd in tutorials. Bekijk de volgende 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-Controlled-Servomotors-with/

Speciale dank aan de andere teamleden die betrokken zijn bij het bovengenoemde project, verantwoordelijk voor de eerste versie van de code die in deze tutorial wordt gepresenteerd:

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

Vind meer over het project:

  • 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/

Hoe kunt u helpen?

Dit project wordt gefinancierd door teamleden en kleine donaties van enkele ondernemingen. Als je het leuk vond, zijn er enkele manieren waarop je ons kunt helpen:

  • Stem: Dit project doet mee aan tutorials Wheels, Design for Kids en Arduino-wedstrijden. Stem alsjeblieft op ons! :D
  • Donatie :u kunt ons tips sturen als u de constructie van de robot en zijn toekomstige verbeteringen wilt ondersteunen. De tips zullen worden gebruikt om benodigdheden te kopen (elektronica, 3d-printen, filamenten, enz.) en om onze interventies in kinderziekenhuizen te promoten. Je naam wordt toegevoegd aan de aftiteling van het project! U kunt tips van ons ontwerp op het Thingiverse-platform sturen:https://www.thingiverse.com/thing:2765192
  • Vind ik leuk :Laat ons zien hoeveel u ons project waardeert. Geef ons een "like" op de platforms waarop we ons project documenteren (Facebook, Hackster, Hackaday, Maker Share, Thingiverse...).
  • Delen :deel het project op je favoriete sociale-mediawebsite, zodat we meer mensen kunnen bereiken en meer makers over de hele wereld kunnen inspireren.

Wist je dat je de Creality CR10mini kunt kopen voor slechts $ 349,99? Gebruik de couponcode cr10mini3d bij Gearbest en ontvang het:http://bit.ly/2FZ5OXw

Stap 1:Een beetje geschiedenis...

Het project 'Robô da Alegria' ('Joy Robot') werd in 2016 geboren in de regio Baixada Santista (Brazilië), met als doel technologie te ontwikkelen en de gemeenschap aan te trekken voor de makerbeweging. Geïnspireerd door vrijwillige projecten die door NGO's in kinderziekenhuizen worden uitgevoerd, streeft het project naar de ontwikkeling van een robot, met behulp van open hardware en apen-softwaretools, die een beetje plezier kan brengen in de kinderziekenhuisomgeving en kan bijdragen aan het werk van andere organisaties.

De kiem van het project werd eind 2015 geplant. Na een lezing over de creatie en ontwikkeling van technologie gepromoot door de Association of Startups of Baixadas Santista (ASEBS). Het was een geïdealiseerd project, zonder geldprijs, maar dat presenteerde een onderwerp waarbij mensen op een altruïstische manier betrokken zouden raken, met als doel andere mensen te helpen.

De robot onderging verschillende transformaties vanaf de eerste conceptie tot de huidige staat. Van slechts één hoofd, met mechanische ogen en wenkbrauwen, tot zijn huidige humanoïde vorm, werden verschillende iteraties uitgevoerd, waarbij verschillende constructieve materialen en elektronische apparaten werden getest. Van een acrylprototype en lasergesneden MDF zijn we overgestapt op een 3D-geprint lichaam. Van een eenvoudige interface met twee servomotoren die worden bestuurd via Bluetooth, tot een behuizing bestaande uit 6 servomotoren en 2 motoren DC-commando via een webinterface met behulp van een Wi-Fi-netwerk.

De robotstructuur is volledig geproduceerd met 3D-printing met behulp van Fusion 360. Om de productie van robotreplica's in makerspaces of fablabs, waar de maximale gebruiksduur van de printers cruciaal is, mogelijk te maken, is het ontwerp van de robot in stukken verdeeld kleiner dan drie uur printen elk. De set onderdelen is gelijmd of geschroefd voor montage op de carrosserie.

Het gezicht, bestaande uit LED-arrays, geeft de robot de mogelijkheid om emoties te uiten. Door servomotoren aangedreven armen en nek geven de kleine automaat de nodige mobiliteit voor interactie met gebruikers. In het controlecentrum van de robot communiceert een Arduino Uno met alle randapparatuur, inclusief communicatie met een ESP8266-module, die de gebruiker de mogelijkheid geeft om uitdrukkingen en bewegingen te sturen via elk apparaat dat is aangesloten op hetzelfde wifi-netwerk.

De robot heeft ook een smartphone in zijn borst geïnstalleerd, die wordt gebruikt voor de overdracht van audio en video tussen de operator van de robot en de kinderen. Het scherm van het apparaat kan nog steeds worden gebruikt voor interactie met games en andere toepassingen die zijn ontworpen om met het robotlichaam te communiceren.

Stap 2:Gereedschappen en materialen

Voor dit project zijn de volgende gereedschappen en materialen gebruikt:

Hulpprogramma's:

  • 3D-printer - Het hele lichaam van de robot is 3D geprint. Er waren enkele uren 3D-printen nodig om de hele structuur te bouwen;
  • PLA-filament - Witte en zwarte PLA-filamenten werden gebruikt voor het printen van de body;
  • Schroevendraaier - De meeste onderdelen zijn met bouten verbonden;
  • Superlijm - Sommige onderdelen zijn bevestigd met superlijm;
  • Tangen en frezen
  • Soldeerbout en draad

Elektronica :

  • Arduino Uno (link / link) - Het wordt gebruikt als de hoofdcontroller van de robot. Het stuurt signalen naar de motoren en communiceert met de WiFi-module;
  • ESP8266-01 (link / link)- Het wordt gebruikt als een 'WiFi-modem'. Het ontvangt signalen van de besturingsinterface die door de Arduino Uno moeten worden uitgevoerd;
  • SG90 servomotoren (x6) (link / link) - Er werden vier servo's gebruikt voor de armen en twee voor hoofdbewegingen;
  • DC-motoren met reductie en rubberen wielen (x2) (link / link) - Ze laten de robot kleine afstanden afleggen;
  • L298N tweekanaals H-brug (x1) (link / link) - Het zet Arduino digitale uitgangen om in voedingsspanningen naar de motoren;
  • 16 kanalen servocontroller (link / link) - Met dit bord kan men meerdere servomotoren aansturen met slechts twee Arduino-uitgangen;
  • MAX7219 8x8 LED-display (x4) (link / link) - Ze worden gebruikt als het gezicht van de robot;
  • Micro-USB-kabel - Gebruikt voor het uploaden van de code;
  • Vrouwelijke-vrouwelijke jumperdraden (sommige);
  • Mannelijke-vrouwelijke jumperdraden (sommige);
  • Smartphone - Er is een Motorola 4.3" Moto E-smartphone gebruikt. Anderen met een vergelijkbare grootte kunnen ook werken;
  • 18650 batterij (x2) (link) - Ze werden gebruikt om de Arduino en andere randapparatuur van stroom te voorzien;
  • 18650 batterijhouder (x1) (link / link) - Ze houden de batterijen op hun plaats;
  • 1N4001-diodes (x2)
  • 10 kohm weerstanden (x3)
  • 20 mm aan/uit-schakelaar (x1)
  • Protoschild (link) - Het helpt om het circuit te bedraden.

Mechanica:

  • Kogelwielen (x2)
  • M2x6.0mm bouten (+-70)
  • M2x10mm bouten (+-20)
  • M2x1,5 mm moeren (x10)
  • M3x40mm bouten (x4)
  • M3x1,5 mm moeren (x4)

De links hierboven zijn een suggestie van waar je de items kunt vinden die in deze tutorial worden gebruikt en ondersteunen de ontwikkeling van dit project. Zoek ze gerust ergens anders en koop ze bij uw favoriete lokale of online winkel.

Wist je dat je de Creality3D CR10mini kunt kopen voor slechts $ 349,99? Gebruik de couponcode cr10mini3d bij Gearbest en ontvang deze:http://bit.ly/2FZ5OXw

Stap 3:3D printen

De robotstructuur is volledig geproduceerd met 3D-printing met behulp van Autodesk Fusion 360. Om de productie van robotreplica's in makerspaces of fablabs, waar de maximale gebruiksduur van de printers cruciaal is, mogelijk te maken, is het ontwerp van de robot in stukken verdeeld kleiner dan drie uur printen elk. De set onderdelen is gelijmd of geschroefd voor montage op de carrosserie.

Het model bestaat uit 36 ​​verschillende onderdelen. De meeste werden gedrukt zonder dragers, met 10% opvulling.

  • Hoofd boven (rechts/links)
  • Hoofd onder (rechts/links)
  • Hoofdkappen (rechts/links)
  • Face achterplaat
  • Voorplaat front
  • Nek as 1
  • Nek as 2
  • Nek as 3
  • Nek midden
  • Arm (rechts/links)
  • Schouder (rechts/links)
  • Schoudercup (rechts/links)
  • Schouderkapje (rechts/links)
  • Arm-as (rechts/links)
  • Buste (rechts/links)
  • Borst (rechts/links/voor)
  • Wielen (rechts/links)
  • Basis
  • Telefoonhouder
  • Terug (rechts/links)
  • Knoppen (rechts/links)
  • Kluisje (rechts/links)

De procedure voor het monteren van de robot wordt beschreven in de volgende stappen.

U kunt alle stl-bestanden downloaden op de volgende websites:

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

Dit is een experimenteel prototype. Sommige onderdelen hebben wat verbeteringen nodig (voor latere updates van het project). Er zijn enkele bekende problemen:

  • Interferentie tussen de bedrading van sommige servo's en de schouder;
  • Wrijving tussen het hoofd en de buste;
  • Wrijving tussen de wielen en de constructie;
  • Het gat voor sommige schroeven is te krap en moet worden vergroot met een boor of een hobbymes.

Als u geen 3D-printer heeft, zijn hier enkele dingen die u kunt doen:

  • Vraag een vriend om het voor je af te drukken;
  • Zoek een hacker/maker-ruimte in de buurt. Het model was opgedeeld in verschillende delen, zodat elk deel afzonderlijk minder dan vier uur nodig heeft om te printen. Sommige hacker/maker-ruimtes brengen alleen kosten in rekening voor de gebruikte materialen;
  • Koop je eigen 3D-printer. Je kunt een Anet A8 vinden voor slechts $ 165,99. Haal de jouwe bij Gearbest:http://bit.ly/2kqVOdO
  • Geïnteresseerd in het kopen van een doe-het-zelfpakket? Als er genoeg mensen geïnteresseerd zijn, bied ik misschien een doe-het-zelfpakket aan op Tindie.com. Als je er een wilt, stuur me dan een bericht.

Stap 4:Overzicht van de circuits

De robot wordt bestuurd met een Arduino Uno in de kern. De Arduino is gekoppeld aan een ESP8266-01-module, die wordt gebruikt om de robot op afstand te besturen via een Wi-Fi-netwerk.

Een 16-kanaals servocontroller is verbonden met de Arduino via I2C-communicatie en bestuurt 6 servomotoren (twee voor de nek en twee voor elke arm). Een array van vijf 8x8 LED-matrices wordt aangedreven en bestuurd door de Arduino. Vier Arduino's digitale uitgangen worden gebruikt voor de besturing van twee DC-motoren, met behulp van een h-brug.

De circuits worden gevoed via twee USB-powerbanks:één voor de motoren en één voor de Arduino. Ik heb geprobeerd de hele robot van stroom te voorzien met een Signle Power Pack. Maar ESP8266 verloor altijd de verbinding vanwege pieken bij het in- en uitschakelen van DC-motoren.

De borst van de robot heeft een smartphone. Het wordt gebruikt om video en audio uit te zenden van/naar de bedieningsinterface, gehost op een gewone computer. Het kan ook commando's naar de ESP6288 sturen en zo het lichaam van de robot zelf besturen.

Je zou kunnen opmerken dat de componenten die hier worden gebruikt mogelijk niet zijn geoptimaliseerd voor hun doel. In plaats van de combinatie Arduino + ESP8266 kan bijvoorbeeld een NodeMCU worden gebruikt. Een Rapsberry Pi met een camera zou de smartphone vervangen en ook de motoren aansturen. Het is zelfs mogelijk om een ​​Android-smartphone als 'brein' voor je robot te gebruiken. Dat klopt... Er is gekozen voor een Arduino Uno omdat deze voor iedereen heel toegankelijk en gebruiksvriendelijk is. Tegen de tijd dat we aan dit project begonnen, waren ESP- en Raspberry Pi-borden nog relatief duur in de plaats waar we wonen... ooit wilden we een goedkope robot bouwen, Arduino-borden waren op dat moment de beste keuze.

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

Stap 5:Het gezicht monteren

Op het gezicht van de robot werden vier 8x8 LED-matrixen gebruikt.

De structuur was verdeeld in twee delen (frontplaat en frontplaat) 3D geprint met zwart PLA. Het kostte me ongeveer 2,5 uur om ze in 3D te printen, met 10% vulling en geen steunen.

Vanwege ruimtebeperkingen moesten de connectoren van de LED-matrixen worden gedesoldeerd en moesten ze van positie worden veranderd zoals hieronder beschreven:

  • Verwijder de LED-matrix;
  • Desoldeer invoer- en uitvoerconnectoren;
  • Soldeer opnieuw dan aan de andere kant van de printplaat, met de pinnen naar het midden van de printplaat gericht.

U kunt het eindresultaat in de afbeeldingen zien.

De vier LED-matrices werden vervolgens met 16 M2x6mm-bouten aan de achterplaat bevestigd. De pinnen zijn aangesloten volgens het schema.

De eerste matrix was verbonden met behulp van een 5-draads mannelijke-vrouwelijke jumper. Het mannelijke uiteinde werd later verbonden met Arduino-pinnen. Het vrouwelijke uiteinde is aangesloten op matrixingangspinnen. De uitgang van elke matrix is ​​verbonden met de ingang van de volgende met behulp van een vrouw-vrouwelijke jumper.

Na het aansluiten van de matrices wordt de frontplaat gemonteerd met vier M2 bouten. Wikkel de jumpers rond de achter- en voorpanelen, zodat er geen losse draden zijn.

De gezichtsmodule wordt later in het hoofd van de robot geïnstalleerd, zoals in de volgende stappen zal worden uitgelegd.

Stap 6:De kop monteren

De kop van de robot was verdeeld in acht 3D-geprinte delen, allemaal bedrukt in wit PLA met een resolutie van 0,2 mm, 10% vulling en geen steunen:

  • Hoofd boven (rechts en links)
  • Hoofd onder (rechts en links)
  • Hoofdkap (rechts en links)
  • Nek as 1
  • Nek as 2

Het kostte me bijna 18 uur om de structuur met een diameter van 130 mm te printen.

De boven- en onderkant van het hoofd zijn verdeeld in twee delen. Ze zijn aan elkaar gelijmd met superlijm. Breng de lijm aan en laat het enkele uren rusten.

De zijkappen worden vervolgens gemonteerd met behulp van bouten die aan de zijkanten van de boven- en onderkant van het hoofd zijn bevestigd. Op deze manier kan de kop worden gedeactiveerd voor reparatie door schroeven te verwijderen die aan de bovenkant van de kop zijn bevestigd. Monteer voordat u het hoofd sluit het gezicht van de robot (beschreven in de vorige stap) en de buste (beschreven in de volgende stappen).

Servomotor # 5 was bevestigd aan nekas 1. Ik plaatste de servo in het midden van de as, bevestigde vervolgens de hoorn en gebruikte een schroef om zijn positie te vergrendelen. Ik heb twee M2x6mm-bouten gebruikt om nekas 2 op die servomotor te monteren. Servomotor #6 is op dezelfde manier aan nekas 2 bevestigd.

Halsas 2 werd later verbonden met Halscentrum, zoals te zien is in de volgende stap.

De gezichtsmodule is in het hoofd geïnstalleerd.

Stap 7:De burst en schouders monteren

Borst en schouder kostte me ongeveer 12 uur om te worden afgedrukt.

Dit gedeelte bestaat uit vijf verschillende delen:

  • Buste (rechts/links)
  • Schouders (rechts/links)
  • Nek midden
  • Nek as 3

De bustedelen zijn met secondelijm gelijmd. Schouders werden aan de zijkanten bevestigd met M2x10 mm-bouten en de servomotoren (Servomotor #2 en #4) werden aan elke kant geïnstalleerd. Ze gaan door een rechthoekig gat op elke schouder (de draad is eigenlijk vrij moeilijk te passeren) en worden bevestigd met M2x10 mm bouten en moeren.

Middenhals heeft een rechthoekig gat, waarin het Halsas 3 deel wordt gestoken. Er werden vier M2x6mm-bouten gebruikt om die twee delen met elkaar te verbinden. Daarna werd de middenhals aan de schouders vastgemaakt. Het gebruikt dezelfde bouten die worden gebruikt om de schouder op de buste te monteren. Vier M2x1,5mm moeren worden gebruikt om de positie vast te zetten.

Servomotor #6 was verbonden met nekas 3 met behulp van twee schroeven. Vervolgens installeerde ik nekas 3 in het rechthoekige gat in het midden van de nek en gebruikte ik vier M2x6mm-bouten om de positie te vergrendelen.

Stap 8:De armen monteren

Het kostte me ongeveer 5 uur om elke arm af te drukken.

Elke arm bestaat uit vier delen:

  • Schoudercup
  • Schouderkapje
  • Arm as
  • Arm

De armas is gecentraliseerd en op de arm zelf gemonteerd met behulp van drie M2x6mm-bouten. Aan het andere uiteinde van de as is een servohoorn bevestigd.

Een servomotor (#1 en #3) wordt met behulp van enkele schroeven in de schouderkom geïnstalleerd en vervolgens wordt de hoorn (degene die aan de armas is bevestigd) geïnstalleerd. Er is een gat in de beker voor de installatie van een andere hoorn, die is bevestigd aan de servo (#2 en #4) die al op de schouders is gemonteerd, zoals in de vorige stap werd getoond.

Er is nog een gat op de beker (en op de schouder) voor het doorvoeren van de kabels van de servo's. Daarna wordt de dop geïnstalleerd om de schouder van de robot af te sluiten, met twee M2x6mm bouten.

Stap 9:De kist monteren

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)
  • Front

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
Geen voorbeeld (alleen downloaden).
HTML InterfaceHTML
Geen voorbeeld (alleen downloaden).
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

Aangepaste onderdelen en behuizingen

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

Schema's


Productieproces

  1. Raspoulette-prototype
  2. Raspberry Pi CD Box Robot
  3. Rollende alarmrobot
  4. Maak een Minecraft Creeper Robot
  5. Archimedes:The AI ​​Robot Owl
  6. Open CV Robot
  7. ROS Robot
  8. Simple Pi Robot
  9. Robot voor supercoole indoornavigatie
  10. Wat is een lineaire motor?
  11. Wat is een drankrobot?