Final Project: "Xpresso" Robotic Head For kids with Autism

Background & Concept





Project Bill of Materials (BOM)

No. COMPONENT AMOUNT UNIT PRICE TOTAL PRICE VENDOR
1 Atmega328p 1 RAM(LOCAL SHOP)
2 Crystal 16Mhz/18pF 1 0.25 USD 1.5 USD FARNELL
3 22 pF Capacitor 2 FARNELL
4 1 uF Capacitor 1 0.05 USD 0.4 USD FARNELL
5 499 Ohm Resistor 2 0.05 USD 0.05 USD FARNELL
6 100 nF Capacitor 2 0.1 USD 0.4 USD Digi-Key
7 Push Button 1 Digi-Key
8 FTDI pin Header 1 0.25 USD 0.25 USD FARNELL
9 Mifare MFRC522 13.56 RFID tag Reader 1 8 USD 8 USD >RAM(LOCAL SHOP)
10 9g Servo Motor (Micro) 9 3.6 USD 32 USD RAM(LOCAL SHOP)
11 RFID Tags 5 0.5 USD 2.5 USD RAM(LOCAL SHOP)
12 3.3 v Volatge Regulator LM1117 1 RAM(LOCAL SHOP)
13 10 uF Capacitor 4 0.7 USD RAM(LOCAL SHOP)
14 2x3 SMD Pin Headers 5 RAM(LOCAL SHOP)
15 Power Jack 1 0.2 USD 0.2 USD RAM(LOCAL SHOP)
16 Power adaptor 1 2.8 USD 2.8 USD FARNELL
17 LEDs 2 FARNELL


2D & 3D Design of Xpresso

  • The intial design features for "Xpresso" were:
  • However, these features were reduced later during the integration process to only the first 3 design requirements due to time limitations.
  • Having these features in mind, it was really challenging to start putting down a design concept for something that complicated on a blank sheet of paper, so when I started the design process I decided to "stand upon the shoulders of giants", building on the design concepts of other people who attempted to design and develop animatronic heads.
  • Two main robotic heads captured my attention, Kismet and FRITZ .



  • Kismet was developed by MIT professor Dr. Cynthia Breazeal as the first socially interactive robotic system. Kismet's design concept was intriguing and I intially decided to base my design concept on it, especially the lips mechanism as it animates the lips in a 3D rather than 2D space, facilitating the expression of a range of emotions. However, as I went through the design process, I realized that there were many 3D parts to be designed that will require time for design and cost for fabrication (3D printing). This was the intial design attempts for the robot head:



  • Afterwards, I decided to shift towards a simpler design concept inspired from FRITZ, which mainly composed of 2D parts of plywood, MDF wood or Acrylic that fit together to form the 3D features of the head. These parts will be designed in 2D and fabricated using laser cutting.
  • Eyebrows, eyeleds, lips and jaw mechanisms were planned to be animated using servo motors which would be embedded into the 2D parts of the face, head and neck. However, the eyeballs mechanism needed to be designed seperatly in 3D and fabricated using 3D printing.
  • I started the design process back in the computer-aided design week. I decided to start with designing the eye mechanism first, considering that based on its final dimensions I can design the face, head and neck parts.
  • To design the eyes' movement mechanism I Googled some designs, and I found an interesting one on Thingiverse: Dasaki Compact Animatronic Eyes. So I based my design concept on it, and redsigned the parts myself using Fusion 360.











  • This is how the fully assembled mechanism looked like on Fusions 360:



  • Now that the 3D design of the eye mechanism is done, I can design the "container", the head, face and neck parts. The general design concept is based on FRITZ, however, I redesigned the 2D parts to be simpler and take less time in assembly.
  • For the head and neck, I designed two 2D sides which contain openings for servo motors that will control the eyeleds' mechanism and jaw mechanism





  • For the face, I designed two 2D parts, A lower and upper face. The lower face is "hidden" underneath the upper face, as it is the layer where the head-neck sides fits with joints, and eyebrows and lips servro motors are fixed. So it is basically the "messy backstage" of the face! Whereas the upperface is the tidy presentable part of the face.





  • I needed to create a kind of platform where the eye mechanism is fixed. This platform fits with the head-neck sides.



  • I designed a simple 2d jaw that completes the upper face's shape while being seperate so that I can potentially animate it a servo motor.



  • And finally, I designed eyebrows as an essential feature of a human-like face.



  • When the entire head-neck-face parts are assembled together, it looked like this:




    Fabrication Process

  • For the fabrication process I used 3D printing for the eyes' mechanism parts and Laser cutting for the head-neck-face parts.

    3D Printing

  • For the 3D printing I used Prusa MK3. I needed to slice the parts first and for that purpose I used Cura 4.0 slicer. I did 3 rounds of printing for which I used almost the same printing settings.
  • I used a layer height of 0.1 mm and for the quality of the print I set the infill to 20%.
  • The tempterure of the nozel was set to 220 degrees, while the plate's tempterure was set to 70 degrees.
  • Finally, the printing speed was set to 45 mm/s











  • I used the same printing settings to print the rings that attach to the eyeballs, however, the printing failed at the rotation arms.





  • It seems like the printer has "skipped" printing some layers, which led to the failure. After consulting with Mahmoud Kotb, the makerspace manager at Fab Lab Egypt, He noted that the failure is possibly due to the retration distance setting, which is the distance that the filament retracts in the nozel while the nozel moves laterally between objects.
  • To avoid the failure, which is specific to the white PLA filament I used, I needed to the decrease retraction distance from 0.8 to 0.4 mm, which solved the problem.





  • I printed the rest of the eye mechanism using the same printing setting, while using a different PLA filament (Golden color).





    Laser Cutting

  • For the second part of the fabrication, I used Laser cutting. I used Plywood of 3mm thickness.
  • Using LaserWorks V6 software, I prepared the settings for cutting: speed at 30 mm/s, and laser power at 65.





  • 4 minutes later......






    Electronics design & production

    Electronics Design

  • Deciding on the kind of microcontroller that I'm going to use required planning for the input and output devices that I'm going to use.
  • I'm using Mifare MFRC522 RFID Reader as an input device, and 9 servo motors as output devices. For this purpose I decided to use ATmega328P microcontroller, considering that it can control up to 12 servo motors at once.
  • The design of the microcontroller board is based on Satshakit, however, I needed to customize it for my purposes. Instead of desiging a shield to connect the servo motors to Satshakit input pins and power it externally, I incorporated 10 pin headers (3x1) for 10 servo motors on the board itself, each of which incorporates 3 pins for VCC, GND and signal all in once place.
  • For the input device (RFID reader module): I incorporated a seperate 7x1 pin header connected to Atmega328P's 9,10,11,12,13,14, GND and 3.3 V output of the voltage regulator.
  • To power the board, I needed two voltage sources a 5V to power the microcontroller and servo motors, and 3.3V to power the RFID module. For this purpose, I incorporated a power jack to plug a 5V/2 mA power adaptor, in addition, I incorporated an LM1117 3.3 voltage regulator to output 3.3v to power the RFID.
  • For the purpose of interfacing with the board in the future, I've also added an FTDI pin header to be able to program the board through an FTDI module.
  • I used Autodesk Eagle software to design the schematic and board of the microcontroller:





    Electronics Production

  • Preparing the board for fabrication, I exported 3 monochrome images for the board: traces layer, holes layer, and frame cutout layer.



  • Imported each of the 3 layers into Fabmodules to create toolpath for fabrication



  • For milling the traces I used 1/64 inches endmill, and for both the holes and outline I used the 1/32 inches endmill.



  • With the help of our instructor Mohamed Kamel, I soldered the board for the first time using solder paste. I simply put a little bit of the paste over the pads, carefully place the components, and simply direct the flow of hot air over the board from a safe distance to make sure that the plastic casing of the components doesn't melt, just the paste would become shiny and solidify once I put the hot air flow away.



  • And finally the board was completely soldered and ready for testing!




    Integration

  • I started with integrating the eyes mechanism, assembled the printed parts with the servo motors using some 4 mm screws and a screw driver.



  • Integrating the head, face and neck parts was simple. I justed fitted the parts together, I didn't even need use screws at the joints as I considered the laser kerf in my design.




    Embedded programming

    Preparing RFID Cards

    Expressions: Programming


    Final Project Video

  • Here is the final demo video for Xpresso!




    Acknowledgements

    License

    Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)

    Design Files


    Email: lamiaa.m.nail@aucegypt.edu | Linkedin | Twitter


    Copyright © Developed by Lamiaa Nail 2019