Social Robots
This odd soft egg shape made of foam slowly rotates around its center axis, making a grinding, rolling sound. As you go closer to it, it starts to rotate faster.
Process
Process Reflection
The process for designing and constructing Hermes was fun but rough. I enjoyed making its shell out of foam, it’s rare that I can make something so organic and intentionally imperfect as Hermes. Most of my struggles came after that when I was trying to implement the electronics into this form. I had the idea to try and put the Arduino, servo, battery pack and breadboard into a tin can and then core out the shell and put the self contained can in. I was on the right track with this method and it’s something I’m going to implement into my work in the future, but did not fan out how I planned in this case. The main issue was that the servo needed to be able to rotate a full 360 degrees to get the action that I wanted, but this required the servo to have wide clearance in a small space. The shell of Hermes should have been slightly bigger to allow me more space to work with, but in the end I was able to make everything fit.
The biggest other issue I ran into was Hermes not animating in the way that I was expecting. I chose a tin can to house the electronics because this would also allow me to make a bow in the bottom for Hermes to rotate on. I make this bow by hammering the bottom of the can, but because of this, the bottom was not a symmetrical hemisphere for Hermes to rotate on. Looking back, I should have 3D printed the electronics housing to ensure that I had space for the servo and the bottom was symmetrical. I also did not have enough weight on the end of the servo for it to make Hermes sway the amount that I had intended. However, the end result of a little wiggle that Hermes does is surprisingly still communicative of the happy/social personality that I wanted Hermes to have.
I also ran into some issues with the distance sensor. Initially I planned on using a laser ranger distance sensor, but after a failed attempt to make that sensor work, I reported to the ultrasonic range finder. This sensor is functional, but will randomly report incorrect numbers with will confuse the servo and so the motion of Hermes is not always connected to distance.
//Social robots //Casandra Rausch //A project to physically animate and give personality to unique forms. //This code detects the distance and changes the speed of a continuously rotating servo in response. #include <NewPing.h> #include <Servo.h> #define TRIGGER_PIN 9 #define ECHO_PIN 8 #define MAX_DISTANCE 200 const int GAUGEMOTORPIN = 3; Servo gaugeMotor; // NewPing setup of pins and maximum distance NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); void setup() { Serial.begin(9600); gaugeMotor.attach(GAUGEMOTORPIN); } void loop() { delay(50); unsigned int distance = sonar.ping_cm(); Serial.print(distance); Serial.println("cm"); int Dist = analogRead(distance); int Level = 0; Level = map(Dist, 0, 200, 1, 9); if (Level = 1) { gaugeMotor.write(90); delay(5000); } if (Level = 2) { gaugeMotor.write(80); delay(4500); } if (Level = 3) { gaugeMotor.write(70); delay(4000); } if (Level = 4) { gaugeMotor.write(60); delay(3500); } if (Level = 5) { gaugeMotor.write(50); delay(3000); } if (Level = 6) { gaugeMotor.write(40); delay(2500); } if (Level = 7) { gaugeMotor.write(30); delay(2000); } if (Level = 8) { gaugeMotor.write(20); delay(1500); } if (Level = 9) { gaugeMotor.write(10); delay(1000); } }