My aims
          Research
I had originally wanted
        to make a robot but have become interested in robot faces,
        expressions and communication so I thought I would take
        inspiration from the wealth of art history in portrait painting
        to help me explore the elements of facial expression and ways in
        which a robotic face might communicate and how an audience might
        interact with the face. I thought this would also provide me
        with an interesting project to share with the students at school
        and lots of opportunities to showcase the skills Ive been
        learning on the Fab Academy course. 
                        
      
Features of the project  
 
        
 Research links
Lego Mindstorms
        "Adorable robots that teach kids to code" - Play-i  Bo and
        Yana uses programming languages Blocky scratch Java and Python
Code Club
Code Academy
Science Buddies 
        http://www.sciencebuddies.org
Adafruit learning systems - http://learn.adafruit.com
Cynthia Breazeal The rise of personal robots
Ted Talks  personal robots
ERWIN  emotional robots University of Lincoln
     
            
        
    
                System Diagrams
          
          
                
               
       
    Network
A
        complex system with simple individual nodes. I have chosen this
        system to be scalable allowing the addition of other nodes
        creating a modular system easier to debug and make as each part
        can be made independently. Hopefully the network will be easier
        to manufacture, change and mend.



    
          Board Designs
          
        
I
          am making my boards using the Modella 
| 
               Boards  | 
            
               function     
                      | 
            |||
| 
               B1  | 
            
               Switches board with 4 buttons to be
                  interface  | 
            |||
| 
               B2 x 4  | 
            
               Servo board x 4 to move parts of
                  face    eyes,
                  mouth, eyebrows  | 
            |||
| 
               B3 x 2  | 
            
               RGB LED board to light up cheeks   | 
            |||
| 
               B4 x 2  | 
            
               Mini board for embedded LEDs  | 
            |||
| 
               B5  | 
            
               Brain ATtiny 44 to replace computer and
                  make project stand alone  | 
            |||
| 
               B6  | 
            
               FTDI connector with 2x3 header as bridge  | 
            
      First
        started by designing the servo board in Eagle, added LED, then
        made, see below
      
        Servo Board
      
        Servo Board - Schematic
      
    
      
      
        Traces 
        
      
    
      
      
      
      
next
        to programme in Arduino using my
          FABISP -  then to test the eye movement
      
  
  
        
  
    
    
    

    

    


sketch showing working out RGB LED
          connections with header below 
        
    
      
      
      photo showing embedded LEDs working

    
    
 
      
      
    
The network of
        boards being programmed and tested below - all working, great! 
      

   
I
          will use Arduino IDE to programme my boards and Processing to
          communicate via my computer to each board. 
Useful
          reference for programming ATtiny with Arduino  Highlowtech.org/?p=1695
          PLUS ATTINY PINOUTS BELOW
          I used Binary numbers to workout the ID for the switches and
          boards
        
Binary numbers to 15
| 
             0  | 
          
             0  | 
          
             0  | 
          
             0  | 
          
             0  | 
        
| 
             0  | 
          
             0  | 
          
             0  | 
          
             1  | 
          
              
                1  | 
        
| 
             0  | 
          
             0  | 
          
             1  | 
          
             0  | 
          
             2  | 
        
| 
             0  | 
          
             0  | 
          
             1  | 
          
             1  | 
          
             3  | 
        
| 
             0  | 
          
             1  | 
          
             0  | 
          
             0  | 
          
             4  | 
        
| 
             0  | 
          
             1  | 
          
             0  | 
          
             1  | 
          
             5  | 
        
| 
             0  | 
          
             1  | 
          
             1  | 
          
             0  | 
          
             6  | 
        
| 
             0  | 
          
             1  | 
          
             1  | 
          
             1  | 
          
             7  | 
        
| 
             1  | 
          
             0  | 
          
             0  | 
          
             0  | 
          
             8  | 
        
| 
             1  | 
          
             0  | 
          
             0  | 
          
             1  | 
          
             9  | 
        
| 
             1  | 
          
             0  | 
          
             1  | 
          
             0  | 
          
             10  | 
        
| 
             1  | 
          
             0  | 
          
             1  | 
          
             1  | 
          
             11  | 
        
| 
             1  | 
          
             1  | 
          
             0  | 
          
             0  | 
          
             12  | 
        
| 
             1  | 
          
             1  | 
          
             0  | 
          
             1  | 
          
             13  | 
        
| 1 | 
          1 | 
          1 | 
          0 | 
          14 | 
        
| 
             1  | 
          
             1  | 
          
             1  | 
          
             1  | 
          
             15  | 
        
      
      
| 
               BOARDS  | 
            
               ID from
                    Processing  | 
          
| 
               Kleeface_left_eye  | 
            
               2  | 
          
| 
               Kleeface_right_eye  | 
            
               3  | 
          
| 
               Kleeface_right_cheek  | 
            
               6  | 
          
| 
               Kleeface_left_cheek  | 
            
               5  | 
          
| 
               Kleeface_eyebrow  | 
            
               4  | 
          
| 
               Kleeface_mouth  | 
            
               7    
                    | 
          
| 
               Switches  | 
            
               1
                    | 
          
          
 
        
      
                     
        
      
      
          Commands Processing is sending out  based on button
        status. There are 15 possible combinations (see below)
| 
             BUTTON
                NUMBER  | 
          
             NAME
                  | 
          
             ID
                of board sent from Processing  | 
        
| 
             1  | 
          
             EYES  | 
          
             2
                &3  | 
        
| 
             2  | 
          
             EYEBROW  | 
          
             4  | 
        
| 
             3  | 
          
             EYES
                &EYEBROW  | 
          
             2
                3 4  | 
        
| 
             4  | 
          
             CHEEKS  | 
          
             5
                6  | 
        
| 
             5  | 
          
             CHEEKS
                & EYES  | 
          
             2
                3 5 6  | 
        
| 
             6  | 
          
             CHEEKS  & EYEBROW  | 
          
             5
                6 4  | 
        
| 
             7  | 
          
             EYES
                & EYEBROW & CHEEKS  | 
          
             2
                3 4 5 6  | 
        
| 
             8  | 
          
             MOUTH  | 
          
             7  | 
        
| 
             9  | 
          
             MOUTH
                & EYE  | 
          
             2
                3 7  | 
        
| 
             10  | 
          
             EYEBROW
                & MOUTH  | 
          
             2
                8  | 
        
| 
             11  | 
          
             MOUTH
                EYEBROW EYES  | 
          
             8
                2 1  | 
        
| 
             12  | 
          
             MOUTH
                CHEEKS   | 
          
             5
                6 7   | 
        
| 
             13  | 
          
             MOUTH
                CHEEKS EYES  | 
          
             7
                5  6 2
                3  | 
        
| 
             14  | 
          
             MOUTH
                CHEEKS EYEBROW  | 
          
             7
                5 6 4  | 
        
| 
             15  | 
          
             MOUTH
                CHEEKS EYEBROW EYES  | 
          
             2
                3 4 5 6 7  | 
        
| Kleeface_leftcheek_5 |     as right cheek / they work
            together           
                              
             | 
        
| Kleeface_switches_1 | switches | 
        
| Kleeface_rightcheek_6 | leftcheek | 
        
| Kleeface_LEservo-2                    
               | 
          lefteye | 
        
| Kleeface_REservo_3 | rEye3 | 
        
| Kleeface_mouth_7 | mouth
              arduino | 
        
| Kleeface_eyebrow_4 | eyebrow_arduino | 
        

 I
        need to work out how to move the various parts of the face,
        eyes, mouth, and eyebrows, using the servos. To achieve this I
        have first to make a prototype face, 3D print the eyes, 
        think how to attach and position the servos, design and make my
        own servo board so that I can test the movement of the eyes and
        mouth.
      
    
Problems to solve
          
·      Work out 
        flexures to move the mouth
        
·     Work out pivot
        points for eyebrows and servos
        Work out position of eyes and servos
·      In Rhino redraw
        the back plate of face, position all the press-fit connectors to
        hold servos so front and back of face match up
      
Useful website for
        understanding how to use servos
        http://www.societyofrobots.com/actuators_servos.shtml
      
        Positioning the  4 servos on face, next to think how to
        attach them and test - testing movement
        and position of  eyebrow
      
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                  
      

    
      
      
Fabrication
          
            What needs to be designed and made?
          
| 
             Parts to be made  | 
          
             Process used and decisions to be made  | 
        
| 
             Face   | 
          
             Lasercut with final changes to design
                adding flexure to move mouth, cutout areas for cheeks to
                be embedded Pivot points for servos, cut grove for arch
                of servo for eyebrow  | 
        
| 
             Pressfit structure to hold face so able to
                sit on the table  | 
          
             Lasercut and decide on final design and
                size, position of servos and pressfit connectors  | 
        
| 
             Pressfit connectors to hold servos  | 
          
             Lasercut  finalise size and position on
                face Test press fit connectors to check it will
                hold servos  | 
        
| 
             Eyes  | 
          
             3d print in white with pupil  improvements
                to existing shape  check size  | 
        
| 
             Eyebrows  | 
          
             Lasercut, decide on movement, pivot point,
                and how to connect them to the face, how to connect
                eyebrows to servos and arc of movement  | 
        
| 
             Cheeks  | 
          
             Draw up in Rhino  cutout mold on shopbot 
                use epoxy resin to embed LED on mini board to allow for
                connecting  | 
        
| 
             Mouth  | 
          
             Laser cut mouth and think how to attach Flexure and servo to move mouth, where to
                place servo? Consider pivot point  | 
        
          
          
        
Started
        with 3D print of eyes having drawn up design in Rhino to
        appropriate dimensions
          
        
Attached
eyes
        to servos to see how they fit on the face, is the shape 
        right? Printed in black as our only option so then needed to
        source other colours and consider how to achieve a better
        quality finish
          First prototype of eyes       
                     
                     
                     
                 
                Second prototype of eyes,
          resized and in white
        
        
             
        
          
          
      
    
     
        


   
      
    
 
    
    
      Molds
              for cheeks and embedded LEDs
          
Started
        with drawing cheeks in Rhino using measurements from the face
        and then cut out the mold using the Shopbot. This all went very
        smoothly.
      

      
          
 
            
Backplate
              for face  
                    
          
        
Thought
        of simple ways to connect the servos so they are secure and
        dont interfere with the design of the face. My concern at the
        moment is that they will be heavy so stability of the structure
        is paramount. My solution at the moment is to add a back plate
        to the face which all the servos and linkages can be attached
        using pressfit connectors. This  has required lots of
        testing to get all the parts and lasercuts in place. I found
        drawing up the back plate in Rhino more accurate and easier to
        measure than Inkscape.
      
      
     
    
      
        
      

            Future Plans for Kleeboo   
              
          
    
    
      Files
              for final Project
              
            
Fabrication
            
stl file  left
              cheek Rhino
            
stl file right
              cheek Rhino
              files  3D printing
              eye Rhino
              files pdf face inkscape
              for laser cutting
            
              Programming files
              Arduino IDE
            
programs
              eyebrow servo 
            
programs eye
              servo
              programs
              mouth servo
              program RGB
              LED cheek
program RGB
              cheek
            
              Processing 
              processing 
            
        
      Eagle
              files for Boards   
            
Servos
                
              eagle files 
              servosch
            
      RGB
              LED 
            
              FTDI Connector
FTDI connector sch
              FTDI
                connector brd