Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Robot Joy (Robô Da Alegria)

Composants et fournitures

Arduino UNO
× 1
Espressif ESP8266 ESP-01
× 1
Micro-servomoteur SG90
× 6
Moteur à courant continu avec réduction et roues en caoutchouc
× 2
Pilote de pont en h L298N
× 1
Pilote PWM/Servo Adafruit 16 canaux 12 bits - I2C interface - PCA9685
× 1
Écran LED 8x8 MAX7219
× 4
Drivers de moteur SparkFun Dual H-Bridge L298
× 1
Batterie 18650
× 2
Support de batterie 18650
× 2
Arduino Proto Shield
× 1
diode 1N4001
× 1
Résistance 10k ohm
× 3

Outils et machines nécessaires

Imprimante 3D
Imprimante 3D (générique)

Applications et services en ligne

Autodesk Fusion 360
Arduino IDE
SDK Android

À propos de ce projet

Premier prix du concours Instructables Wheel, deuxième prix du concours Instructables Arduino et finaliste du défi Instructables Design for Kids. Merci à tous ceux qui ont voté pour nous !!!

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

Les robots s'installent partout. Des applications industrielles à l'exploration sous-marine et spatiale. Mais mes préférés sont ceux utilisés pour le plaisir et le divertissement ! Dans ce projet, un robot de bricolage a été conçu pour être utilisé pour le divertissement dans les hôpitaux pour enfants, apportant du plaisir aux enfants. Le projet est axé sur le partage des connaissances et la promotion de l'innovation technologique pour aider les ONG qui mènent des activités caritatives dans les hôpitaux pour enfants.

Ce tutoriel montre comment concevoir un robot humanoïde télécommandé, contrôlé via un réseau Wi-Fi, à l'aide d'un Arduino Uno connecté à un module Wi-Fi ESP8266. Il utilise des servomoteurs pour les mouvements de la tête et des bras, des moteurs à courant continu pour déplacer de petites distances et un visage composé de matrices LED. Le robot peut être contrôlé à partir d'un navigateur Internet ordinaire, en utilisant une interface conçue en HTML. Un smartphone Android est utilisé pour diffuser la vidéo et l'audio du robot vers l'interface de contrôle de l'opérateur.

Le tutoriel montre comment la structure du robot a été imprimée et assemblée en 3D. Les circuits électroniques sont expliqués et le code Arduino est détaillé, afin que n'importe qui puisse reproduire le robot.

Certaines des techniques utilisées pour ce robot ont déjà été publiées sur des tutoriels. Veuillez consulter les tutoriels suivants :

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

Remerciements particuliers aux autres membres de l'équipe impliqués dans le projet mentionné ci-dessus, responsables de la première version du code présenté dans ce tutoriel :

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

En savoir plus sur le projet :

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

Comment pouvez-vous aider ?

Ce projet est financé par les membres de l'équipe et de petits dons de certaines entreprises. Si cela vous a plu, vous pouvez nous aider de différentes manières :

  • Votez : Ce projet est en compétition sur les tutoriels Wheels, Design for Kids et Arduino Contests. Merci de voter pour nous ! :D
  • Don :vous pouvez nous envoyer des astuces si vous souhaitez soutenir la construction du robot et ses futures améliorations. Les pourboires serviront à acheter des fournitures (électronique, impression 3d, filaments, etc.) et à aider à la promotion de nos interventions dans les hôpitaux pour enfants. Votre nom sera ajouté au générique du projet ! Vous pouvez envoyer des conseils de notre conception sur la plate-forme Thingiverse :https://www.thingverse.com/thing:2765192
  • J'aime :Montrez-nous combien vous appréciez notre projet. Donnez-nous un "like" sur les plateformes sur lesquelles nous documentons notre projet (Facebook, Hackster, Hackaday, Maker Share, Thingiverse...).
  • Partager  :partagez le projet sur votre site Web de médias sociaux préféré, afin que nous puissions toucher plus de personnes et inspirer plus de créateurs à travers le monde.

Saviez-vous que vous pouvez acheter la Creality CR10mini pour seulement 349,99 $ ? Utilisez le code promo cr10mini3d chez Gearbest et obtenez-le :http://bit.ly/2FZ5OXw

Étape 1 :Un peu d'histoire...

Le projet "Robô da Alegria" ("Joy Robot") est né en 2016, dans la région de Baixada Santista (Brésil), dans le but de développer la technologie et d'attirer la communauté vers le mouvement maker. Inspiré de projets bénévoles menés par des ONG dans des hôpitaux pour enfants, le projet cherche à développer un robot, utilisant du matériel ouvert et des outils logiciels Apen, capable d'apporter un peu de plaisir à l'environnement hospitalier pour enfants et de contribuer au travail d'autres organisations.

La graine du projet a été plantée fin 2015. Après une conférence sur la création et le développement de la technologie promue par l'Association des Startups de Baixadas Santista (ASEBS). C'était un projet idéalisé, sans prix en argent, mais qui présentait un sujet dans lequel les gens s'impliqueraient de manière altruiste, dans le but d'aider les autres.

Le robot a subi diverses transformations depuis sa conception initiale jusqu'à l'état actuel. D'une seule tête, avec des yeux et des sourcils mécaniques, à sa forme humanoïde actuelle, plusieurs itérations ont été effectuées, testant différents matériaux de construction et appareils électroniques. D'un prototype acrylique et MDF découpé au laser, nous sommes passés à un corps imprimé en 3D. D'une simple interface avec deux servomoteurs pilotés par Bluetooth, à un corps composé de 6 servomoteurs et 2 moteurs DC commandés par une interface web utilisant un réseau Wi-Fi.

La structure du robot a été entièrement produite par impression 3D à l'aide de Fusion 360. Afin de permettre la production de répliques de robots dans les makerspaces ou les fab labs, où le temps maximum d'utilisation des imprimantes est crucial, la conception du robot a été divisée en morceaux moins de trois heures d'impression chacun. L'ensemble de pièces est collé ou boulonné pour le montage sur carrosserie.

Le visage, composé de matrices de LED, donne au robot la capacité d'exprimer des émotions. Les bras et le cou entraînés par des servomoteurs confèrent au petit automate la mobilité nécessaire à l'interaction avec les utilisateurs. Dans le centre de contrôle du robot, un Arduino Uno s'interface avec tous les périphériques, y compris la communication avec un module ESP8266, qui donne à l'utilisateur la possibilité de commander des expressions et des mouvements via n'importe quel appareil connecté au même réseau Wi-Fi.

Le robot a également un smartphone installé dans sa poitrine, qui est utilisé pour la transmission audio et vidéo entre l'opérateur du robot et les enfants. L'écran de l'appareil peut toujours être utilisé pour interagir avec des jeux et d'autres applications conçues pour interagir avec le corps du robot.

Étape 2 : outils et matériaux

Les outils et matériaux suivants ont été utilisés pour ce projet :

Outils :

  • Imprimante 3D - L'ensemble du corps du robot est imprimé en 3D. Plusieurs heures d'impression 3D ont été nécessaires pour construire l'ensemble de la structure;
  • Filament PLA - Filaments PLA blancs et noirs lorsqu'ils sont utilisés pour l'impression du corps ;
  • Tournevis - La plupart des pièces sont reliées à l'aide de boulons ;
  • Super colle - Certaines pièces ont été fixées à l'aide de super colle;
  • Pinces et cutters
  • Fer à souder et fil

Électronique :

  • Arduino Uno (lien / lien) - Il est utilisé comme contrôleur principal du robot. Il envoie des signaux aux moteurs et communique avec le module WiFi;
  • ESP8266-01 (lien / lien) - Il est utilisé comme « modem WiFi ». Il reçoit des signaux de l'interface de contrôle à effectuer par l'Arduino Uno ;
  • Servomoteurs SG90 (x6) (link / link) - Quatre servos ont été utilisés pour les bras, et deux pour les mouvements de la tête;
  • Moteurs à courant continu avec réduction et roues en caoutchouc (x2) (lien / lien) - Ils permettent au robot de parcourir de petites distances;
  • Pont en H double canal L298N (x1) (lien / lien) - Il convertit les sorties numériques Arduino en tensions d'alimentation vers les moteurs ;
  • Servocontrôleur 16 canaux (link/link) - Avec cette carte on peut piloter plusieurs servomoteurs en utilisant seulement deux sorties Arduino;
  • Affichage LED 8x8 MAX7219 (x4) (lien / lien) - Ils sont utilisés comme visage du robot;
  • Câble micro USB - Utilisé pour télécharger le code ;
  • Câbles de pontage femelle-femelle (quelques);
  • Câbles de pontage mâle-femelle (quelques);
  • Smartphone - Un smartphone Motorola 4.3" Moto E a été utilisé. D'autres de taille similaire pourraient également fonctionner ;
  • Batterie 18650 (x2) (lien) - Ils servaient à alimenter l'Arduino et d'autres périphériques;
  • support de batterie 18650 (x1) (lien / lien) - Ils maintiennent les batteries en place;
  • diodes 1N4001 (x2)
  • Résistances de 10 kohms (x3)
  • Interrupteur marche/arrêt 20 mm (x1)
  • Protoshield (lien) - Cela aide à câbler le circuit.

Mécanique :

  • Roues à billes (x2)
  • Boulons M2x6.0mm (+-70)
  • Vis M2x10mm (+-20)
  • Écrous M2x1.5mm (x10)
  • Vis M3x40mm (x4)
  • Écrous M3x1.5mm (x4)

Les liens ci-dessus sont une suggestion d'où vous pouvez trouver les éléments utilisés dans ce didacticiel et soutenir le développement de ce projet. N'hésitez pas à les chercher ailleurs et à acheter dans votre magasin local ou en ligne préféré.

Saviez-vous que vous pouvez acheter la Creality3D CR10mini pour seulement 349,99 $ ? Utilisez le code promo cr10mini3d chez Gearbest et obtenez-le :http://bit.ly/2FZ5OXw

Étape 3 : impression 3D

La structure du robot a été entièrement produite par impression 3D à l'aide d'Autodesk Fusion 360. Afin de permettre la production de répliques de robots dans les makerspaces ou les fab labs, où le temps maximum d'utilisation des imprimantes est crucial, la conception du robot a été divisée en morceaux moins de trois heures d'impression chacun. L'ensemble de pièces est collé ou boulonné pour le montage sur carrosserie.

Le modèle est composé de 36 pièces différentes. La plupart d'entre eux ont été imprimés sans supports, avec 10 % de remplissage.

  • Tête en haut (droite/gauche)
  • Tête en bas (droite/gauche)
  • Casquettes côté tête (droite/gauche)
  • Plaque arrière
  • Plaque frontale
  • Cou axe 1
  • Cou axe 2
  • Cou axe 3
  • Centre du cou
  • Bras (droit/gauche)
  • Épaule (droite/gauche)
  • Épaulière (droite/gauche)
  • Épaule (droite/gauche)
  • Axe du bras (droit/gauche)
  • Buste (droite/gauche)
  • Poitrine (droite/gauche/avant)
  • Roues (droite/gauche)
  • Base
  • Support de téléphone
  • Retour (droite/gauche)
  • Boutons (droite/gauche)
  • Casier (droite/gauche)

La procédure de montage du robot est décrite dans les étapes suivantes.

Vous pouvez télécharger tous les fichiers stl sur les sites Web suivants :

  • https://www.thingverse.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

Il s'agit d'un prototype expérimental. Certaines parties ont besoin d'améliorations (pour les mises à jour ultérieures du projet). Il existe des problèmes connus :

  • Interférence entre le câblage de certains servos et l'épaulement ;
  • Friction entre la tête et le buste ;
  • Friction entre les roues et la structure ;
  • Le trou de certaines vis est trop serré et doit être agrandi à l'aide d'un foret ou d'un cutter.

Si vous n'avez pas d'imprimante 3D, voici quelques actions que vous pouvez faire :

  • Demandez à un ami de l'imprimer pour vous ;
  • Trouvez un espace hacker/maker à proximité. Le modèle a été divisé en plusieurs parties, de sorte que chaque partie individuellement prend moins de quatre heures à imprimer. Certains espaces hacker/maker ne vous factureront que les matériaux utilisés;
  • Achetez votre propre imprimante 3D. Vous pouvez trouver un Anet A8 pour seulement 165,99 $. Obtenez le vôtre sur Gearbest :http://bit.ly/2kqVOdO
  • Intéressé par l'achat d'un kit de bricolage ? Si suffisamment de personnes sont intéressées, je proposerai peut-être des kits de bricolage sur Tindie.com. Si vous en voulez un, envoyez-moi un message.

Étape 4 :Aperçu sur les circuits

Le robot est contrôlé à l'aide d'un Arduino Uno en son cœur. L'Arduino interface un module ESP8266-01, qui est utilisé pour contrôler à distance le robot via un réseau Wi-Fi.

Un servocontrôleur à 16 canaux est connecté à l'Arduino via la communication I2C et contrôle 6 servomoteurs (deux pour le cou et deux pour chaque bras). Un réseau de cinq matrices LED 8x8 est alimenté et contrôlé par l'Arduino. Quatre sorties numériques d'Arduino sont utilisées pour le contrôle de deux moteurs à courant continu, à l'aide d'un pont en H.

Les circuits sont alimentés à l'aide de deux banques d'alimentation USB :une pour les moteurs et une pour l'Arduino. J'ai essayé d'alimenter l'ensemble du robot à l'aide d'un seul bloc d'alimentation. Mais ESP8266 avait l'habitude de perdre la connexion en raison de pics lorsque les moteurs à courant continu étaient allumés/éteints.

La poitrine du robot a un smartphone. Il est utilisé pour diffuser de la vidéo et de l'audio vers/depuis l'interface de contrôle, hébergée sur un ordinateur ordinaire. Il peut également envoyer des commandes à l'ESP6288, contrôlant ainsi le corps du robot lui-même.

On peut remarquer que les composants utilisés ici peuvent ne pas être optimisés pour son objectif. Un NodeMCU peut être utilisé à la place de la combinaison Arduino + ESP8266, par exemple. Un Rapsberry Pi avec un appareil photo remplacerait le smartphone et contrôlerait également les moteurs. Il est même possible d'utiliser un smartphone Android comme "cerveau" de votre robot. C'est vrai... Un Arduino Uno a été choisi car il est très accessible et facile à utiliser pour tout le monde. Au moment où nous avons commencé ce projet, les cartes ESP et Raspberry Pi étaient encore relativement chères à l'endroit où nous vivons... une fois que nous voulions construire un robot peu coûteux, les cartes Arduino étaient le meilleur choix à ce moment-là.

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

Étape 5 :Assemblage du visage

Quatre matrices LED 8x8 ont été utilisées sur le visage du robot.

La structure a été divisée en deux parties (plaque arrière et plaque avant) imprimées en 3D à l'aide de PLA noir. Il m'a fallu environ 2,5 heures pour les imprimer en 3D, avec 10 % de remplissage et aucun support.

En raison des limitations d'espace, les connecteurs des matrices LED ont dû être dessoudés et leur position a été modifiée comme décrit ci-dessous :

  • Retirez la matrice LED ;
  • Dessouder les connecteurs d'entrée et de sortie ;
  • Re-souder que de l'autre côté de la carte de circuit imprimé, avec les broches pointant vers le centre de la carte.

Vous pouvez voir le résultat final dans les images.

Les quatre matrices LED ont ensuite été fixées à la plaque arrière, à l'aide de 16 boulons M2x6mm. Les broches ont été connectées selon les schémas.

La première matrice a été connectée à l'aide d'un cavalier mâle-femelle à 5 fils. L'extrémité mâle a ensuite été connectée aux broches Arduino. L'extrémité femelle est connectée sur les broches d'entrée de la matrice. La sortie de chaque matrice est reliée à l'entrée de la suivante à l'aide d'un cavalier femelle-femelle.

Après la connexion des matrices, la plaque avant est installée à l'aide de quatre boulons M2. Enroulez les cavaliers autour des panneaux arrière et avant, de sorte qu'il n'y ait pas de fils lâches.

Le module facial est ensuite installé à l'intérieur de la tête du robot, comme cela sera expliqué dans les prochaines étapes.

Étape 6 :montage de la tête

La tête du robot était divisée en huit parties imprimées en 3D, toutes imprimées en PLA blanc avec une résolution de 0,2 mm, un remplissage de 10 % et aucun support :

  • Tête en haut (droite et gauche)
  • Tête en bas (droite et gauche)
  • Casquette (droite et gauche)
  • Cou axe 1
  • Cou axe 2

Il m'a fallu près de 18 heures pour imprimer la structure de 130 mm de diamètre.

Le haut et le bas de la tête sont divisés en deux parties. Ils sont collés ensemble avec de la super colle. Appliquer la colle et laisser reposer quelques heures.

Les capuchons latéraux sont ensuite montés à l'aide de boulons fixés sur les côtés du haut et du bas de la tête. De cette façon, la tête peut être démontée pour réparation en retirant les vis fixées aux parties supérieures de la tête. Avant de fermer la tête, assemblez le visage du robot (décrit à l'étape précédente) et le buste (décrit aux étapes suivantes).

Le servomoteur n°5 était fixé à l'axe 1 du cou. J'ai positionné le servomoteur au milieu de l'axe, puis j'ai fixé le klaxon et j'ai utilisé une vis pour verrouiller sa position. J'ai utilisé deux boulons M2x6mm pour monter l'axe du cou 2 sur ce servomoteur. Le servomoteur #6 est attaché à l'axe du cou 2 de la même manière.

L'axe du cou 2 a ensuite été connecté au centre du cou, comme on le voit à l'étape suivante.

Le module facial est installé à l'intérieur de la tête.

Étape 7 :Assemblage de la rafale et des épaules

Buste et épaule m'ont pris environ 12h pour être imprimé.

Cette section est composée de cinq parties différentes :

  • Buste (droite/gauche)
  • Épaules (droite/gauche)
  • Centre du cou
  • Cou axe 3

Les parties du buste ont été collées avec de la superglue. Les épaulements ont été fixés sur les côtés à l'aide de boulons M2x10mm, et les servomoteurs (Servomoteur #2 et #4) ont été installés de chaque côté. Ils passent par un trou rectangulaire sur chaque épaule (le fil est en fait assez difficile à passer), et sont fixés à l'aide de boulons et écrous M2x10mm.

Le col central a un trou rectangulaire, dans lequel la partie de l'axe du col 3 est insérée. Quatre boulons M2x6mm ont été utilisés pour relier ces deux parties. Après cela, le cou central était attaché aux épaules. Il utilise les mêmes boulons que ceux utilisés pour monter l'épaule sur le buste. Quatre écrous M2x1,5mm sont utilisés pour verrouiller sa position.

Le servomoteur n° 6 a été connecté à l'axe 3 du cou à l'aide de deux vis. Ensuite, j'ai installé l'axe du cou 3 à l'intérieur du trou rectangulaire central du cou et j'ai utilisé quatre boulons M2x6mm pour verrouiller sa position.

Étape 8 :Assemblage des bras

Il m'a fallu environ 5 heures pour imprimer chaque bras.

Chaque bras est composé de quatre pièces :

  • Épaulière
  • Chapeau d'épaule
  • Axe du bras
  • Bras

L'axe du bras est centralisé et monté sur le bras lui-même à l'aide de trois boulons M2x6mm. Un servo-horne est fixé à l'autre extrémité de l'axe.

Un servomoteur (#1 et #3) est installé à l'intérieur de l'épaulette à l'aide de quelques vis, puis son cornet (celui attaché à l'axe du bras) est installé. Il y a un trou sur la coupelle pour l'installation d'un autre cornet, qui est attaché au servo (#2 et #4) déjà monté sur les épaules, comme cela a été montré à l'étape précédente.

Il y a un autre trou sur la cup (et sur l'épaule) pour passer les câbles des servos. Après cela, le Cap est installé pour fermer l'épaule du robot, avec deux boulons M2x6mm.

Étape 9 : Montage du coffre

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: boucle principale. 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
No preview (download only).
HTML InterfaceHTML
No preview (download only).
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

Pièces et boîtiers personnalisés

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

Schémas


Processus de fabrication

  1. Prototype Raspoulette
  2. Robot boîtier CD Raspberry Pi
  3. Robot d'alarme roulante
  4. Créer un robot Minecraft Creeper
  5. Archimedes :The AI ​​Robot Owl
  6. Open CV Robot
  7. Robot ROS
  8. Robot Pi simple
  9. Robot pour une navigation intérieure super cool