Project Hearoid.

Rich

United Kingdom
robot video thumbnail
robot video thumbnail
robot video thumbnail
robot video thumbnail
robot video thumbnail
robot video thumbnail
robot video thumbnail
robot video thumbnail
robot video thumbnail
robot video thumbnail
robot video thumbnail
robot video thumbnail
robot video thumbnail
robot video thumbnail
robot video thumbnail
robot video thumbnail
robot video thumbnail
robot video thumbnail
robot video thumbnail
robot video thumbnail
robot video thumbnail
robot video thumbnail
robot video thumbnail
robot video thumbnail

Now I have the EZ-B kit and the Hearoid it's time to start my Showcase thread.

I still haven't decided on a name for him yet, all suggestions are welcome.

I won this robot on ebay weeks ago, for the past 2 weeks he has been waiting for me to collect him...

User-inserted image

Today was the day, a road trip to pick him up and bring him back to his new home...

User-inserted image

In his new home (with Omnibot and Wall-e in the background totally unaware they are next in line to be opened up)

User-inserted image

It wasn't long before this happened...

User-inserted image

Now waiting to go in the dishwasher to get nice and clean.

The plan is to make him autonomous, running 24/7 (except for when he knows to go charge himself up) but will also be adding in the various image tracking options.

The only other slight modifications to be made to him are to convert the head to tilt & pan which will involve having to give him a small neck.

The head will include the camera. I haven't yet decided to fit it in one of his eyes or to make it his nose. The issue to overcome with this is the blue tint on the bubble head. The mouth will have a light or some lights in which flicker when he speaks.

The arms will be given some life with servos at the shoulder joints and the elbows provided I can get them to fit in there nicely.

Ultrasonic sensor will be in his chest, probably on a servo to give a wider view.

Original drive wheels and gearbox seem to be in very good shape so will plan to reuse those and just replace the existing motors for the modified servos if they can manage the task.

Speaker and microphone will be in the original positions - if it's not broke why fix it?

Not too big a project but enough to give me a test, help me learn and bring an old robot back to life.

By — Last update

ARC Pro

Upgrade to ARC Pro

Stay at the forefront of robot programming innovation with ARC Pro, ensuring your robot is always equipped with the latest advancements.

United Kingdom
#225  

The odd thing is, part of me wants to see it go up in flames:D Is that bad?..

#226  

WHY you did such good work on your robot

United Kingdom
#227  

The battery not the robot!

#228  

I know you meant the battery,that poor battery hate to be in his shoes

#229  

You'll be disappointed. It's only a good flare, and smoke show. Don't try putting it out, and it will melt almost anything you put it in.

Just don't ruin the charger...

If you get a chance Rich send me an email at [email protected].

Den

United Kingdom
#230  

Sorry, I did see the other message earlier but completely forgot about it. Just sent you email...

United Kingdom
#231  

Well since my battery is toast (not literally, I didn't bother turning it in to an expensive flair) and the new ones haven't turned up yet, nor have my resistors, diodes etc. for the small circuits I want to remake I've not really done much on the robot today, but I have re-written my init script (the script which automatically runs when I start the project from the shortcut).

It still needs a little bit of work but it's getting there. A few bits I need to check but can't until I get the new battery.

Feel free to grab bits of it or ideas or whatever, here it is...


# Init script for start up
# Give verbal commentary
Say("Initiating Startup Sequence")
ControlCommand("Speech Recognition", PauseOn)
Sleep(2500)

# AutoConnect

# Configuration
$noofEZBs = 1
$maxattempts = 3
$waittime = 8000

IF ($noofEZBs = 1)
  Say("Connecting Easy Bee")
ELSEIF ($noofEZBs > 1)
  Say("Connecting Easy Bees")
ENDIF 
$attempts = 1
:begin0
IF (IsConnected(0) = FALSE)
  Print ("Board 0 not connected")
  Print ("Attempting connection")
  Print ("Attempt "$attempts" of "$maxattempts)
  ControlCommand("Connection", Connect0)
  Sleep($waittime)
  $attempts = $attempts++
  IF ($attempts > $maxattempts)
    Goto(failed)
    IF ($noofEZBs >= 2)
      Goto(begin1)
    ELSE 
      Goto(end)
    ENDIF 
  ENDIF 
  Goto(begin0)
ELSE 
  Print("Connected to board 0 OK")
  Say("Board Zero Connected")
ENDIF 
  
:begin1
IF (IsConnected(1) = FALSE)
  Print ("Board 1 not connected")
  Print ("Attempting connection")
  Print ("Attempt "$attempts" of "$maxattempts)
  ControlCommand("Connection", Connect1)
  Sleep($waittime)
  $attempts = $attempts++
  IF ($attempts > $maxattempts)
    Goto(failed)
    IF ($noofEZBs >= 3)
      Goto(begin2)
    ELSE 
      Goto(end)
    ENDIF 
  ENDIF 
  Goto(begin1)
ELSE 
  Print("Connected to board 1 OK")
  Say("Board One Connected")
ENDIF 
  
:begin2
IF (IsConnected(1) = FALSE)
  Print ("Board 2 not connected")
  Print ("Attempting connection")
  Print ("Attempt "$attempts" of "$maxattempts)
  ControlCommand("Connection", Connect2)
  Sleep($waittime)
  $attempts = $attempts++
  IF ($attempts > $maxattempts)
    Goto(failed)
    IF ($noofEZBs >= 4)
      Goto(begin3)
    ELSE 
      Goto(end)
    ENDIF 
  ENDIF 
  Goto(begin2)
ELSE 
  Print("Connected to board 2 OK")
  Say("Board Two Connected")
ENDIF 
  
  
:begin3
IF (IsConnected(3) = FALSE)
  Print ("Board 3 not connected")
  Print ("Attempting connection")
  Print ("Attempt "$attempts" of "$maxattempts)
  ControlCommand("Connection", Connect3)
  Sleep($waittime)
  $attempts = $attempts++
  IF ($attempts > $maxattempts)
    Goto(failed)
    IF ($noofEZBs >= 5)
      Goto(begin4)
    ELSE 
      Goto(end)
    ENDIF 
  ENDIF 
  Goto(begin3)
ELSE 
  Print("Connected to board 3 OK")
  Say("Board Three Connected")
ENDIF 
  
:begin4
IF (IsConnected(4) = FALSE)
  Print ("Board 4 not connected")
  Print ("Attempting connection")
  Print ("Attempt "$attempts" of "$maxattempts)
  ControlCommand("Connection", Connect4)
  Sleep($waittime)
  $attempts = $attempts++
  IF ($attempts > $maxattempts)
    Goto(failed)
    Goto(end)
  ENDIF 
  Goto(begin4)
ELSE 
  Print("Connected to board 4 OK")
  Say("Board Four Connected")
ENDIF 
  
:failed
Print("Connection Failed")
Say("Connection Failed")
$attempts = 1
Return()

:end

# Avoid HBridge random movement at start up
Forward(10,1)
Stop()

# Reset all servos
ServoSpeed(D1,0)
ServoSpeed(D2,0)
ServoSpeed(D7,0)
ServoSpeed(D10,0)
ServoSpeed(D11,0)
ServoSpeed(D12,0)
ServoSpeed(D13,0)
ServoSpeed(D14,0)
ServoSpeed(D19,0)
Servo(D1,50)
Servo(D2,60)
Servo(D7,50)
Servo(D10,50)
Servo(D11,50)
Servo(D12,50)
Servo(D13,50)
Servo(D14,50)
Servo(D19,50)
ReleaseAll()

# Start script for battery monitor
Say("Monitoring Batteries")
ControlCommand("battery", ScriptStart)
Sleep(4000)

# Start script for collission detection
Say("Starting Object Detection")
ControlCommand("irdetect", ScriptStart)
# Move sonar radar randomly then center
ServoRandom(D7,35,45)
ServoRandom(D7,55,65)
ServoRandom(D7,35,45)
ServoRandom(D7,55,65)
ServoRandom(D7,35,45)
ServoRandom(D7,55,65)
Servo(D7,50)
ControlCommand("Radar Scan", PauseOff)
Sleep(1000)

# Test the lamps
Say("Checking Circuits")
$blinkcount = 0
:blinkeyes
IF ($blinkcount <5)
  Set(D8,on)
  Set(D9,on)
  Sleep(100)
  Set(D8,off)
  Set(D9,off)
  $blinkcount++
  Sleep(100)
  GOTO(blinkeyes)
ENDIF 
Set(D9,on)

# Set servo speeds for head and arms
ServoSpeed(D1, 2)
ServoSpeed(D2, 2)
ServoSpeed(D10, 3)
ServoSpeed(D11, 3)
ServoSpeed(D12, 3)
ServoSpeed(D13, 3)
ServoSpeed(D14, 3)

# Test the head movement
Say("Checking Movement")
# Head movement code here...
# Slowly move head tilt to 70 then 50 then 60
:headtilt1
IF (GetServo(D2) < 70)
  ServoUp(D2,1)
  Goto(headtilt1)
EndIf
:headtilt2
IF (GetServo(D2) > 30)
  ServoDown(D2,1)
  Goto(headtilt2)
EndIf
:headtilt3
IF (GetServo(D2) < 50)
  ServoUp(D2,1)
  Goto(headtilt3)
EndIf

# Slowly move head pan to 35 then to 75 then to 50
:headpan1
IF (GetServo(D1) > 35)
  ServoDown(D1,1)
  Goto(headpan1)
EndIf
:headpan2
IF (GetServo(D1) < 75)
  ServoUp(D1,1)
  Goto(headpan2)
EndIf
:headpan3
IF (GetServo(D1) > 50)
  ServoUp(D1,1)
  Goto(headpan3)
EndIf

# Dance
ControlCommand("Script Manager", ScriptStart, "Dance1")

# Turn the rest on
ControlCommand("Speech Recognition", PauseOff)
ControlCommand("Camera", PauseOff)
ControlCommand("Personality Generator", PauseOff)
ControlCommand("Variable Watch", PauseOff)

# All done
Say("System Ready")

#232  

Wow, that's a heck of a start up script. Nice.

Do you have problems with your H-bridge jumping around at start up?