Robot Mascot

We’re registered for the 2016 Maker Faire Atlanta.  That means we’ll have a 10′ x 10′ booth there this year to show off our stuff.  The mascot project will be a nice way to show off our robotics skills.  I had a remote presence robot in mind.  The deadline is October 1st.

Current Team Assignments

Control System
Dean
Nithya
Tomis

Operator
Terrence

Design and Fabrication
Abriana
Ben
Daniel
Reuben
Trevor

Collision Avoidance and Telemetry
Edward
Keegan

So far:

  • I have all the sensors on order except for the camera.
  • We have the wheelbase minus the SLA batteries.
  • We have 2 Arduino Megas on the way.
  • Head servos are here.
  • Foot sweep servos are here.
  • XBees are on the way.
  • Shell design is mostly finalized.
  • Waldo rig design is finalized.

 

9 thoughts on “Robot Mascot

  • 07/17/2016 at 7:23 am
    Permalink

    Collision Avoidance work done, may need very slight tweaking for the robot. It uses a motion detector to wake up the arduino when motion is detected, an ultrasonic range finder and a temperature sensor to compensate for the speed of sound changes with changes in air temperature. This allows for more accurate distance readings by the ultrasonic sensor. The code is fully interrupt driven with sleep states between interrupts.

    Next, we have telemetry work using 900Mhz Xbee Pro(s) Radio Frequency Transceivers. We will need to design the simplest full duplex communication protocol for streaming voice, video and data from the booth to the Mascot’s location on the Maker Faire floor.

    I am not particularly fond of the idea of someone wearing an “itchy” waldo operator suite.
    I am also recommending adding the ability to control the Mascot using voice commands and/or
    game controller.

    Both the voice commands and the game controller can be run from a laptop in the booth.
    We can design the voice commands around Google Speech Recognition API technology.
    This will make it possible for more than one person to operate the Mascot and it will also
    provide control system redundancy and it will also make us look more technologically advanced.

    So who is the big gorilla maker group in the Atlanta area that we may want to beat at the Maker Faire?

    I guess it would also help to make sure that the Mascot doesn’t look like it was put together with chicken
    wire and bazooka bubble gum. Should it look like “refrigerator art” or should it look like an exotic
    alien machine from another world? How about a robot that looks like a “dalek” from “Dr. Who” TV show episodes.

    It is a simple shape with one eye and one arm that will easily hide the wheels and can be built out of cheap and light materials and we can spray paint it in Makerspace Forsyth colors.

    It is sure to amuse all the sci-fi fans at the fair. Only one question remains: should we let it roam the Maker Faire floor broadcasting the words “Exterminate! Exterminate!” like in the TV show? People unfamiliar with the show might frown at that, but people familiar with the Show will get a kick out of it and give great accolades to the “dalek” Mascot. The “dalek” may actually put Makerspace Forsyth on the map.

    Reply
  • Andres
    07/17/2016 at 11:19 am
    Permalink

    I think I would like it to look like Gyro Gearloose’s Little Helper.

    Reply
  • 07/17/2016 at 8:38 pm
    Permalink

    A walking stick figure maybe appealing to the audience as well, but not very practical for a working Mascot robot prototype, too much of a balancing act… unless you would like it to walk on all fours… LOL

    Reply
  • Andres
    07/25/2016 at 1:13 pm
    Permalink

    I have the XBees on order, but every forum I’ve looked at is saying that it will be difficult if not impossible to get good video out of this setup, because of the bandwidth. Let me know if anyone has anything on this.

    Reply
    • 07/28/2016 at 6:13 am
      Permalink

      I am thinking H.264 or H.265 codec at 15 fps.

      Reply
      • Andres
        07/28/2016 at 6:27 am
        Permalink

        Okay. The XBees and Arduino Megas have arrived. We just need to look at what parts we actually need in terms of a camera, mic, and video and audio output on the operator side. Any suggestions on that will be welcomed.

        Reply
  • Andres
    07/26/2016 at 12:19 pm
    Permalink

    Okay, I figured out why the control receive sketch isn’t working with the servo. We have to call the SoftwareServo::refresh() method at least once every 50ms or so to keep your servos updating. If we don’t the servo tries to go back to 0 because it isn’t getting a signal until it receives another update from the send sketch. We have to modify the receive sketch so it updates the servos even if it doesn’t get any more data from the control side. Right now the send sketch is set to 200ms which is too long, but that was good because it exposed the flaw in the receive sketch.

    Reply
  • Andres
    08/02/2016 at 12:38 pm
    Permalink

    #include
    String str, str1, str2, str3, str4, str5;
    int val1, val2, val3, val4, val5;
    Servo servo1, servo2, servo3, servo4, servo5;

    void setup() {
    // put your setup code here, to run once:
    servo1.attach(A0);
    servo2.attach(A1);
    servo3.attach(A2);
    servo4.attach(A3);
    servo5.attach(A4);
    str = (Serial.read());
    str1 = str.substring(1,3);
    str1.toInt();
    (val1 = val1 – 100);
    str2 = str.substring(4,3);
    str2.toInt();
    (val2 = val2 – 100);
    str3 = str.substring(7,3);
    str3.toInt();
    (val3 = val3 – 100);
    str4 = str.substring(10,3);
    str4.toInt();
    (val4 = val4 – 100);
    str5 = str.substring(13,3);
    str5.toInt();
    (val5 = val5 – 100);

    }
    void loop(){
    servo1.write(val1);
    servo2.write(val2);
    servo3.write(val3);
    servo4.write(val4);
    servo5.write(val5);
    delay(17);
    }

    Written by Keegan.

    Reply
  • Andres
    08/02/2016 at 12:38 pm
    Permalink

    int val1, val2, val3, val4, val5; void setup() {
    // put your setup code here, to run once:
    Serial.begin(9600);
    }

    void loop() {
    val1 = analogRead(A0);
    val2 = analogRead(A1);
    val3 = analogRead(A2);
    val4 = analogRead(A4);
    val5 = analogRead(A5);
    val1 = map(val1, 0, 1023, 100, 280);
    val2 = map(val2, 0, 1023, 100, 280);
    val3 = map(val3, 0, 1023, 100, 280);
    val4 = map(val4, 0, 1023, 100, 280);
    val5 = map(val5, 0, 1023, 100, 280); Serial.print(val1);
    Serial.print(val2);
    Serial.print(val3);
    Serial.print(val4);
    Serial.print(val5);
    Serial.println();
    }

    Written by Keegan.

    Reply

Share your thoughts with us.