Introduction: Multi-Functional Star Wars Astromech Droid

E4-B4

Astromech droid for the home.

Video links for mobile devices that won't play the video thumbnails above:

The Making of E4-B4 Astromech Droid Video

E4-B4: Showcase Video, Part 1

E4-B4: Rocket Man Video

E4-B4: Fancy a Drink?

E4-B4: Dome Flaps Test

E4-B4: Utility Flaps Servo Test

E4-B4: Utility Tool Deployment Test

E4-B4: Drive System Test

E4-B4 features.

The head.

  • Retractable smoke and gas detector,
  • Retractable alcohol sensor (for mobile breath tests),
  • Retractable 6x LED spotlight,
  • Two 8x8 RGB LED light panels (logic display that are programmable to make patterns and digits) connected via i2c protocol (to be fitted when they become available),
  • 16x2 LCD display connected via i2c protocol showing live time, date, battery voltage and CPU temperature updates, and any custom messages,
  • Miroir MP60 pico projector with servo tilt mechanism to adjust projected viewing height, and connected via HDMI to the tablet PC,
  • RGB LED board (only using red and blue that alternate between colours),
  • Two sound sensors connected via ADC (analogue to digital conversion),
  • Servo controlled electroluminescent (EL) dome edge lighting,
  • Sound reactive LED for speech (or should I say bleeps & bloops),
  • 640x480 resolution video camera that streams live video at 20fps with no latency used for facial, object, colour, and symbol recognition with tracking ability. It can also record video and take still photos,
  • And a 180 degree heavy duty servo for left and right head movement. I sacrificed the full 360 degree rotation for 180 to have the servo linked up to the camera and sound sensors for position tracking.

The Body.

  • Retractable electronics platform for easy maintenance,
  • Retractable horizontal servo claw with ultrasonic distance sensor (mainly designed to hold a can of beer) with servo flap cover,
  • Retractable vertical manipulator arm and servo claw with servo flap cover,
  • Retractable multi-tool utility with servo flap cover,
  • Retractable blow torch utility with servo flap cover,
  • Retractable photosensitive diode sensor (reacts to different ambient light situations) with servo flap cover,
  • Retractable 3x USB and memory card hub (connected to tablet PC) with servo flap cover,
  • Passive infrared (PIR) sensor,
  • Bluetooth/AUX amplified speaker,
  • Height adjustable water jet and pump with servo flap cover,
  • Acer W3 tablet PC with Windows 8.1,
  • And removable front skin panel with magnetic fasteners.
  • Legs and feet.
  • Retractable rocket boosters with flickering LED for booster flames,
  • Retractable rocket booster leg covers,
  • LED illuminated inner leg panels,
  • LED under foot lighting,
  • Ultrasonic distance sensors for object detection and avoidance which is tied in with autonomous and user controlled drive movement.
  • And two 12v 30 watt DC motors with gearbox's.

The Electronics.

  • An EZ-B v4 WiFi robot controller,
  • SSC-32 servo control board,
  • 15 amp DC motor controller and H-bridge,
  • 10x 5 volt 3 amp UBEC voltage regulators,
  • 4x dropdown Buck converters,
  • 6x 5v brick relays,
  • 12 volt remote control board for 7.4v system and 12v DC motor batteries (for remote power On and Off),
  • And 5000mAh 7.2v and 12v NiMh battery packs. (I may change the 12v NiMh to a much higher mAh LiPo or SLA battery soon).

Other Functions.

  • Runs on the EZ-Robot EZ-Builder for PC software,
  • Autonomous abilities (some are already online such as medication dispenser, home surveillance, and personality generator, but many others are still in development such as 3D room mapping),
  • Speech recognition for most of the controls (too many to list), drive movement and dynamic conversation,
  • Sound reactive LED which illuminate when sound files are played,
  • Optional remote iPhone accelerometer drive control (tilt your iPhone in any direction, and E4 will drive the same direction),
  • Custom programmed AIML chatbot brain for dynamic 2 way conversation, ("how does that work with an Astromech Droid" you may ask... read on).
  • On screen text to speech "droid" translator for when E4-B4 speaks (when E4 speaks with his bleeps and bloops, the translator displays what is said in English large font text, much like how R2-D2 talks to Luke in his X-wing fighter with the cockpit translator),
  • Custom made mobile app for smartphone control via WiFi or cellular connection (can be controlled or get video feed from almost anywhere in the world),
  • Video and music player,
  • Gets latest news, weather and traffic reports via RSS feeds which is displayed using the droid translator,
  • Random personality generator,
  • Hands free video calling
  • Uses R2-D2 sound files (which I love, but may make my own one day), and custom made sound effects,
  • Home monitor and security mode which uses E4's camera, sensors, and alarm sound files if needed,
  • Reminder notifications for humans or for autonomous procedures such as the security mode mentioned above,
  • Every operation E4 can perform is custom coded and programmed specifically for him, but can be easily adapted for other robots.

It may sound too good to be true, but this little home made really can do all of what is listed above... and more.

So a quick story of why I decided to build E4-B4. So my mother was recently diagnosed as terminally ill, so she moved in with me, and I gave up work to become her full time carer. To fill the time I had to myself and to keep my hands and brain busy, building my childhood dream was a good project to get my teeth stuck in to. Also, instead of just building a showpiece robot, I wanted to make him filly functional where he could monitor my mother when I pop to the shops, and to dispense her medication. Another reason for the build, was that the new Star Wars movie was about to be released (at time of writing), so I recently watched the other movies which I'm a huge fan of. While watching them, they also gave me the inspiration to build my own Astromech droid which is something I always wanted to do. So while building it, I thought I would document it and share it with everyone here on Instructables to hopefully give someone the inspiration to build their own, or just so you can have a read and look at some photos and videos.

About the build. There are so many great scale replica Astromech builds around that people have done, but I want to stay away from doing an exact prop replica build, and do a custom scratch build with unique paint job along with useful utility tools and sensor array, while still keeping with the overall original design. E4 was designed and built to be practical, not just a show piece as mentioned above.

So what's with the name E4-B4 (Eiifor-Befour)? Well its kinda based on the EZ-B 4 robot controller from EZ-Robot which is at the heart of this little droid, and is powered with his own on-board tablet PC running Windows 8.1 which is located where the "burtt acoustic signaler" and system ventilation vents on R2-D2's chest area is found (the two silver squarish panels). E4 is mainly built using MDF with a HIPS (high impact polystyrene) skin, and movement will be powered by 12v 30 watt gearbox/motors for the drive system. In place of the "Optical Holographic Projector" in R2's head, is a pico portable projector which extends or mirrors the tablets display, so no holograms... yet.

There are a lot of steps to this Instuctable, but that's because it's a lot robot that has lots of abilities and functions. E4-B4 was designed and made to be useful and functional around the home, and not just a showcase robot (and the fact I've always wanted my own Astromech droid, and wanted it to be unique). If reading lots of writing is not your thing, then the pictures I've uploaded to each step should give you a good idea of how things went together, should you decide to build your own Astromech droid.

As you can see from the list above, this little guy has a lot going on, so I will try and keep this Instructable detailed but as simple to follow as I can. There will be lots of pictures and blueprints to look at which should help with the build process whether it's a full build you're looking to do, or just looking for ideas. This Instructable is mainly a guide of how I built my own droid using the tools and materials I had laying around, or had access to, but if you decided to build your own, you may very well have other better ways and ideas of achieving what is needed, but hopefully this will give you some ideas. If you have any questions with any aspect of the build, please feel free to post your questions and I will do my best to answer them. If the answers require detailed information, the answers will be found in the last step with all of the relevant text, pictures,and video clips where appropriate.

For a look at the build diary I kept during the entire build process, with all of the pitful's and perils, fun and games, and overall enjoyment and learning curve I had building and programming this little guy, check out the E4-B4 Build Diary Showcase.

So, let's get on with the build.

Step 1: Tools, Materials and Blueprints.

Materials.

As with any build, tools and materials are needed. Here is a list of what I used to build E4-B4.

For the body and frame build...

  • 12mm MDF sheets,
  • 2x2" wood batons,
  • 6x draw runners (4 short, 2 slightly longer),
  • 2x swivel caster wheels,
  • 18" (45cm) diameter plastic dome lampshade,
  • 6" (15cm) diameter lazy Susan bearing,
  • 3mm thick HIPS (high impact polystyrene sheets),
  • Steel and copper modelling wire,
  • Magnets,
  • 3mm steel strips,
  • 2x trolley wheels with rubber tyres,
  • Dried up marker pens,
  • Thin scraps of plastic,
  • Cardboard Kitchen roll tube,
  • 3" (7.5cm) plastic pipe,
  • The trigger of a water squirter bottle,
  • 3mm diameter clear hose,
  • Small plastic bottle,
  • Grey plastic spray primer,
  • Gloss blue, gloss burgundy, and metallic gold plastic spray paint,
  • Clear coat lacquer.

Electronics...

  • EZ-B v4 WiFi robot controller,
  • SSC-32 servo control board,
  • 15 amp DC motor controller and H-bridge,
  • 10x 5 volt 3 amp UBEC voltage regulators,
  • 4x drop-down Buck converters,
  • 6x 5v brick relays,
  • 12 volt 2 channel remote control board,
  • 10x 180 degree micro servos,
  • 18x 180 degree heavy duty servos
  • 2x micro servo robot claws,
  • 2x Photosensitive diode sensors,
  • Passive infrared (PIR) sensor,
  • Bluetooth/AUX amplified speaker,
  • Smoke and gas sensor,
  • Alcohol detection sensor,
  • LED pen torch,
  • 4x ultrasonic distance sensors,
  • 2x red LED tea lights,
  • 4x red LED strip lights,
  • Red electroluminescent (EL) wire,
  • 2x RGB LED 8x8 matrix boards,
  • EZ-B v4 camera,
  • Pico pocket projector,
  • Serial / i2c LCD display,
  • 2x 3.3v REB LED boards,
  • 6v water pump,
  • 2x amplified sound sensors,
  • USB/memory card hub,
  • Headphone extension cable (male to male),
  • HDMI to micro HDMI cable (male to male),
  • 12 gauge electrical wire,
  • 20 gauge electrical wire,
  • Selection of circuit board jumper cables,
  • Servo extension cables,
  • High amp electrical terminal blocks,
  • High mAh (milliamp hours) 7v and 12v battery packs.
  • Acer W3 tablet PC (or similar).

Tools...

  • Drill with various size drill and screwdriver bits,
  • Dremel with cutting discs and sanding drums,
  • Scissors,
  • Craft knife with new blades,
  • Precision screwdrivers,
  • Jigsaw,
  • Wire cutters/strippers,
  • Pair of pliers,
  • Heat shrink for electrical wire,
  • Lighter,
  • Soldering iron and solder,
  • Heat gun
  • Pencil and ruler,
  • Masking tape,
  • Modelling clamps
  • Clothes pegs
  • Sand paper (rough and fine grades),
  • Heavy duty wood adhesive,
  • P6000 glue
  • Plastic weld glue,
  • Silicone adhesive,
  • Screws of various sizes,
  • And safety equipment (face mask, gloves, goggles).

System and Software...

  • Windows 7, 8.1 or 10,
  • EZ-Builder software for PC,
  • AIML chatbot program (either Pandorabot or Program O).
  • Audacity music editor for creating sound effects (optional)
  • iOS or Android smartphone (optional),
  • Good quality speech recognition microphone (optional for use with speech recondition),
  • Video calling program such as Vsee or Skype (optional).

Let's begin.

Step 2: The Body.

The body frame is made up of 12mm MDF and 2x2" wood batons for the
supports which were strategically placed for maximum balance and strength.

To start, I measured and cut four discs measuring 18 inches in diameter. (Use the dome as a template, as this will be what the size of the build will be based on).

Then I cut another disk slightly smaller in diameter so that the dome fits over it and sits flush with the base of the disc.

Next, I cut five 2x2" batons and fixed three of them to the one of the discs, evenly spaced between the three. I then placed another disc to the top of the baton supports, making sure that the two discs are properly aligned, and mark out around the batons on to the disk. Cut these three sections out. A section was cut out in the middle of the upper disc for the cables to feed through.

Using a length of 2x2, cut three square sections, these were attached to the outer supports at the same height as the two smaller batons. Attach the two smaller batons to the base disc, each side of the centre cutout of the upper disc.

Lower Body Frame.

The body frame is made up of 12mm MDF and 2x2" wood batons for the supports which were strategically placed for maximum balance and strength.

I started by measuring and cut four discs measuring 18 inches in diameter. (Use the dome as a template, as this will be what the size of the build will be based on). I then cut another disk slightly smaller in diameter so that the dome fits over it and sits flush with the base of the disc.

Next, I cut three ... inch 2x2 batons and fitted them evenly spaced to the base disc for the lower tier. With another disc, I placed it on top of the supports, marked around the supports, then cut the sections out. I also cut a section out in the centre for the cables to feed through.

I cut two more 2x2 lengths measuring... and fixed them to the upper disc, each side of the centre cutout. Three square pieces of 2x2 were cut and fitted to the inside of the longer supports, the same height as the smaller ones.

The upper disc was mounted on to the lower disc and fixed in to place which now formed the middle tier.

NOTE: In the photos, you will notice that there is a square cutout on the base disc. This was originally for a third centre foot/leg, but decided against the idea as I wanted a two legged droid. This cutout was later filled.

Using some 2x1 baton, I cut out some triangles and fitted them to the underside of the base disk. This will be the supports for the lower body skirt.

With the frame turned the right way up again, I cut two more 2x2 sections, the same height as the protruding outer supports, and attached these to the upper disc, each side of the centre cutout.

The next job was to fit the first two utility tool runners. These were placed each side of the upper disc and screwed down. Two small holes were cut in to the disc next to the rear of the runners, and dropped a couple of heavy duty servos in to place. Then using a length of steel wire, I cut two measures pieces to make linkages, then attached theses to some custom made servo horns, and the runners.

A couple of small strips of MDF and 2x1 baton were cut and fixed together to form two platforms for two further utility tool runners. Runners were screwed in place, two more HD servos were fitted on some 2x1 support struts, and linkages made and attached.

Then I rested the tablet PC on the centre front of the disc and marked around it. This was cut out, and a couple of brackets were made out of some scrap plastic for the tablet to sit on. A couple of holes were drilled for he tablets cables to feed through. This pretty much completes the lower section of the body frame.

Upper Body Frame.


Using another 18" MDF disc which will now form the upper tier, another middle section was cut out (same as the middle tier section), for the cable feed through. Four 2x2 batons measuring ..... inches were cut and fixed to the upper tier disc, evenly spaced.

Another cutout was made on the front of the disc for the tablet to fit flush. Also, another small cutout was made for the resting recess of a manipulator claw.

Two draw runners were placed on the disc and holes were drilled ready for them to be fixed down later. These runners will hold an MDF platform which will house most of the electronics which can be slid out from the rear of the body. The panel was cut to shape ready to be fitted shortly. This won't have servos moving the platform and will be manually moved when needed for easy maintenance.

I then masked everything off on the lower and upper body sections and spray painted them. I went for a burgundy and gold colour schemed or the inside of the body as this would be the colours used for some of the outer body parts. The painting of the frame is optional, but personally, I don't like to have to an unfinished look and have the wood showing. In the pictures, you will see that some of the supports are blue. The reason was that they were already painted, and as these supports will never be seen, I didn't want to waste and spray paint on these.

When the painting was done, the runners were fitted and platform attached.

A further runner was fitted as well which will house a retractable utility claw. As before, a servo was fitted, and linkage made and connected.The upper tier was then fitted to the support struts of the lower body frame.

So now I had a sturdy frame with 5 servo controlled retractable arms, and a manually retractable electronics platform. With the main part of the frame done, it was now time to start on the legs and feet.

Step 3: Legs and Feet.

Video link for mobile devices:

E4-B4: Drive System Test

Much like the body frame, the legs and feet were made from MDF, 2x2 and 2x1 batons.

The legs were done first. These were cut from MDF to the size seen in my blueprints, and have a similar shape to R2-D2's legs. Four pieces were cut with a section cut out of two of them to allow the retractable rocket boosters to fit through. These will be the front leg panels. Some lengths of 2x2 were cut to form the legs framework and were fixed to the uncut back leg panels (as seen in the photos).

Wiring for the inner leg LED's, booster servos, outer leg panel servos, booster LED's, feet ultrasonic distance sensors and under foot LED lighting were all traced down the leg sections, and covered with burgundy vinyl sheet.

A micro servo was fitted to the lower section of the outer leg panel. A HD servo was fitted to the upper inner leg section for the booster deployment. At this point, I made and fitted the booster rockets. These were made from a piece of kitchen roll tubing, an LED tea light, some pieces of adhesive vinyl, and a couple of strips of plastic. The tea light was opened up and a couple of long wires soldered to the power solder points. This was fitted inside one end of the tubing which was then covered in gold vinyl with burgundy detailing. Two lever arms made from scrap plastic were fitter to the HD servo and each side of the boosted with a screw each sides the boosted could pivot.

With the body frame jacked up, both legs were fitted to round spacers I made from MDF cut offs which were fitted to the frame. All of the wires were traced through a hole that was cut on the back of the legs and through the centre of the spacers, and then fed through to the body. (Make sure your wires are labelled so you know what belongs to what). To cover the top shoulder sections, I cut and formed with a heat gun, a couple of pieces of HIPS sheet. These were glued in place.

Next job was to build the feet. I started with the base which was cut from MDF, two inner side panels made and fitted, and a section cut out of the base for the main drive wheel to fit through. The wheels were fixed to the motor/gearboxes, and then fitted to the inner foot panels. A couple of lengths of steel rod were cud and fed through the gearbox and wheels to form an axle for added support.

A swivel caster was screwed towards the rear of each foot base, along with 2 sets of red LED strip lights. The lights are 5x LED units for bicycle. Some 1.5" MDF pieces were cut and attached to the base of the feet to create a skirt, with holes drilled in the front pieces, and ultrasonic distance sensors installed. At this point, the feet were attached to the legs, and all of the cabling traced through the legs and in to the body frame.

The outer feet covers were attached, and some detailing was added which would all be painted the same colour.

Now with the outer leg panels and feet fitted, appropriate masking was done then any gaps were filled where necessary, and rubbed down ready for painting. These were then primed with grey printer, then had about 8 coats of blue paint, and finally coated with a few coats of clear lacquer. The body was then put to one side and left for the lacquer to cure for a couple of weeks. When the lacquer had cured, all of the panels were wrapped with film and masking tape to protect the paintwork while work continued.

The final steps for the legs and feet, were to add some detailing using vinyl adhesive sheet, some spare thick grade wire, and some HIPS cutoffs.

Step 4: Body Skins.

Video link for mobile devices:

E4-B4: Utility Flaps Servo Test

This I thought was going to be a challenging job, but in the end, it
wasn't as bad as I thought. Here's how I made the front and rear skins for the body section.

The skins are made of three 1mm thick HIPS (High Impact Polystyrene) sheets. I used a flat matte blue colour sheet as a store near me had it available. The first sheet was used to make the side panels and inner front skin. Starting with the side panels, they were marked and cut to size with a knife and straight edge. The panels were actually cut slightly larger than they need to be. These panels were then screwed to a couple of semi circle MDF templates (same circumference as the body frame discs). The screw holes will later be cut away which is why the panels were cut slightly larger.

Using a heat gun, regular passes were made over the panels until hey started to form to the templates. Patience is key here, and making sure that heat is not concentrated in one place for too long, and that the heat gun is not too close to the sheet (about 20cm is good). Once formed and cooled, these were put to one side for painting.

A paper template was made and fitted to the body, and outlines drawn and cut for the tablet PC and utility tools to fit through. Like the side panels, the front inner skin was cut and heat formed. Once cooled, the paper template was placed inside of the skin, and all of the holes were cut out.

Using a second HIPS sheet, another slightly wider front skin was cut out and heat formed. When cooled, the inner skin was placed inside the outer skin panel, and the cut outs marked. Now, when cutting the outer skin panels, these should be cut slightly larger (about 1/2 inch) and the cut out pieces kept and put to one side. These will be the utility tool flaps.

Using some plastic cement, I attached the inner and outer panels together (clamped in place with cloths pegs and scrap HIPS cutoffs to protect the outer skin), and were put aside to set.

The rear skin was much simpler as it only needed to be one thickness. This was cut and heat formed like the other panels. Two flaps were cut out, which would be where the power override switch and charging port will be accessed.

With all of the skins and flaps cut, they were rubbed down, primed, painted blue, and clear coated.

After a couple of weeks (curing time), some detailing was added to the side panels using some burgundy vinyl sheet, and the panels attached to the body. Some high power magnets were attached to the inside edges of the side skin panels, top, middle, and bottom, on the front and back of both panels.

Next, I moved on to the front skins. I cut two semi circle pieces out using HIPS, trimmed down and formed flaps which were heated with a lighter and bent 90 degrees. These were fitted to the top and bottom of the front skin to help keep the shape, and for added reinforcement.

Using some small brass hinges, a small cut was made between the two skins, and hinge slid in place using a little glue. I then placed the flaps (which needed a little trim) on to their relevant gaps, and glued to the hinges.

The next part was to fit the micro servos. These were connected to the EZ-B v4 robot controller, and calibrated to 90 degrees and disconnected from the EZ-B. Some gold plated copper wire lengths were cut with one end formed in to a loop using needle nose pliers. Servo horns were attached, with a small screw going through the wire loop, and in the furthest hole available in the horn. This wire would be the linkage for the flaps. A linkage loop was made simply by gluing a small nut on to the centre of the flap. With the flaps closed, the copper wire was measured, bent 90 degrees at the meeting point of the nut, excess wire cut off, and then hooked the linkage in to the nut. This was repeated on all of the flap servos. Servo extension wires were connected, and traced inside of the skin, using a little drop of glue to hold them in place.

To finish the front skin off, some thin strips of gold vinyl adhesive sheet was cut using a sharp knife and straight edge, carefully measured and attached to the skin. I followed my own design using the flaps I had cut, and cutout for the tablet. To finish off the detailing, a few pieces of burgundy vinyl were drawn out, cut, and attached.

Using a bore drill attachment, two holes were cut for the speaker and passive infrared sensor. The speaker was taken apart, battery removed, and wires soldered to the power soldering points. The outer cover of the speaker was painted gold, and when dry, the speaker was fed through the centre hole and re-attached. A small amount of glue was dabbed around the speaker, and then placed on the skin where it was left to set. The PIR sensor was fitted to the skin from the inside, using glue to hold it in place.

Final steps for the front skin was to attach two strips of mild steel in each side. This would further strengthen the skin panel, and will also be used to secure the skin in place with the magnets fitted earlier.

Similar to the front skin, the two flaps for the rear skin were glued in place, but without servos. Two small handles were made using a piece of scrap HIPS, and glued in place. A small washer was glued to the inside edge of the flaps, and small lower strength magnets were fitted to the inside of the skin. This will hold the flaps closed.

Again, similar to the front skin, thin gold strips were cut and stuck to the rear skin to form the detailing. Again, loosely based in R2-D2's design, but used some artistic license.

Two further mild steel strips were fitted to the side edges of the rear skin.

So, with the skins done, it was time to fit and connect some of the electronics up.

Step 5: Electronics, Part 1.

This step concentrates on the electronics in the body section.

What is included is the EZ-B v4 robot controller, an SSC-32 servo controller, 2 channel 15 amp motor controller with H-bridge, four relay switches for the leg lights, feet lights, water pump, and retractable torch which will go in the dome. There are also two drop-down Buck converters, one for the leg and booster lights, and one for the under foot lighting, and also nine BEC 5v regulators for the four relays, four ultrasonic distance (ping) sensors, and one for the motor controller.

The four relays were hooked up to the BEC's and connected to four digital ports of the EZ-B. The ground wires from the lights and water pump went straight to the 7v battery plug, and the positive wires were cut and fed through the relays.

Four more BEC's were also connected to the EZ-B digital ports, and these were connected to the two foot ping sensors. The other two will be connected in the "Electronics" step.

The motor controller was hooked up to the final BEC to power the motor controllers logic, and again went to a digital EZ-B port. There's four wires from the motor controller "motor 1", "motor 2", "PWM 1", and "PWM 2". These went to four signal pins on the EZ-B which will control both feet motors and give independent speed control. Finally, the positive and ground wires to power the motors were hooked up with the other ends going to a 12v battery plug. (The battery plugs were made from plugable terminal blocks). Most important is that a ground wire from the battery ground terminal needs to go to a ground port on the EZ-B to create a common ground, or the motor controller will not function properly.

The SSC-32 servo controller was connected to one of the EZ-B's UART ports which sends the signals to the SSC-32, along with a positive and ground wires to power the logic. A power and ground lead were hooked up to the + and - on the SSC-32 to power the servos, and these Leeds went to the 7v battery plug.

So with everything fixed to the retractable electronics platform and connected, a couple mire jobs needed doing.

The water jet was made from a miniature water pump, some clear water hose, and the end of a water squirter bottle trigger. The trigger was cut away and the hose fitted in place. This went to the water pump output, with the water input going to a small plastic bottle. When the relay is triggered, the pump will turn on and squirt water until a command is sent to turn the relay off. More on that later.

Next was to feed a headphone extension cable, HDMI cable, and power lead for the tablet PC. The power lead, from an AC/DC adapter, was cut and the ends went to terminal plugs so it could be plugged in and charged.

In regards to the terminal plugs, I cut a strip down so I had 8 terminals. Two for the 7v battery, two for the 12v battery, two for the tablet, and two for the pico projector (to be fitted later). The other end was for the different charges needed (if you do this, please make sure the correct wires for each device/battery match and polarity is correct when both ends of the terminal plugs meet.

The next describes how the utility tools were made.

Step 6: Utility Tools.

Video link for mobile devices:

E4-B4: Utility Tool Deployment Test


USB hub. Here, I used a 3x USB hub and memory card reader. All that was done here was to take the casing off and paint it gold (or you could cover it in gold vinyl adhesive sheet). This was reassembled and attached to one of the retractable arms.

Multi-tool. The same was done like the USB hub, but the only difference was to glue a couple of magnets to the tool, and a strip of magnetic tape stuck to the retractable arm so the tool could easily be removed when needed.

Light sensor 1. Here, a striped out an old permanent marker pen, cleaned it up, painted it gold, and fitted a light sensor inside one end, with the wires coming out of the other. This was then glued to another retractable arm.

Blowtorch. This was also dismantled and painted, and had a couple of magnets glued to it so it could be removed to refill it. Magnetic tape was attached the the retractable arm.

Beer claw. This made from a humanoid gripper available from the EZ-Robot store. I cut the ends off the gripper and glued some aluminum stops that were bent in to shape around a drinks can. A ping sensor was attached and would read when a hand got close which would open the claw. The gripper was painted gold, and attached to the larger retractable arm.

Finally, the manipulator arm was made using EZ-Bits, another humanoid gripper, two HD lever servos and a ping sensor. These were fitted together so it could fold up on itself when the arm is retracted. The arm sections were covered with a piece of kitchen roll tube and painted gold. The arm was then attached to the upper tier of the body, making sure it was staring hand flush with the frame so that the flap on the front skin would close properly.

All of the ping sensors, sensor, and servos were connected to the SSC-32, making written notes of what was connected to what number servo ports.

Time to start in the dome.

Step 7: The Dome.

Video link for mobile devices:

E4-B4: Dome Flaps Test

This step is in two parts. In this step, I'll describe how I made the head section, then I'll explain how I made the dome in the following step. As mentioned previously, I used a heavy duty 180 degree servo to turn the dome, instead of it turning 360 degrees. This was because I wanted to use the servo feedback to be used with camera recognition and sound sensor tracking. This could have been done with a 360 degree or continuous rotation servo, but a feedback pot would have needed to be connected to the servo and EZ-B. Using a 180 servo was easier and cheaper, and if E4 need to look behind him while tracking, he can look at 90 degrees, and turn the other 90 degrees.

The Head Section.

This was made using the two left over MDF disc's that were cut at the start of the build. First off, I measured and marked the centre of the two disc's (these have to be exact centre, of the servo will not turn the dome properly). On the larger disc, I fitted a servo horn with the geared servo mounting insert facing up, and located dead centre.

On the smaller disc, a small section was cut out for the HD servo to fit in to, making sure the servo gear was also dead centre. A 6" lazy Susan bearing was fitted to the underside of the smaller disc, then four holes were drilled in the disc to gain access to screw the bearing to the larger disc. The two disc's were mounted together with the servo gear now sitting in the servo horn. The bearing was screwed down, and a large hole was drilled through both disc's about 2 inches away from the servo. Then I placed a jigsaw, sitting on the smaller disc) and cut a 180 degree semi circle channel. This is where the wires will feed through and move unrestricted from side to side when the dome turns. The larger disc was now attached to the four supports of the bodies upper tier section.

At this point, I started work on the three utility tools.

Smoke/gas sensor and alcohol sensor: Like the light sensor in the previous step, these were made from old marker pens, painted gold, and sensors installed. Small cutouts were made for the sensor modules to fit flush.

The spotlight was made from a pen torch I found in a £1 shop. This was stripped apart, wires soldered to it, painted gold, and reassembled.

Using some PVC pipe, I cut three pieces then cut a channel out of each one, them heated with a heat gun to reduce the circumference to just slightly bigger than the marker pens. Three "L" bracket was made from MDF scraps, and the PVC pipes screwed to them. A small hook was inserted to the base of each pen, then servos were attached to the MDF disc, and linkages made and connected to the newly made utility sensors/spotlight.

The Dome.

This was made from an 18" diameter plastic lampshade I found online. I drew out where the lights, eye piece, LCD screen, projector flap, and sensor flap panels needed to be cut, then cut these out with a multi tool (Dremel in my case). The edges were rubbed down, then using a finer grade paper, I sanded the dome down for better paint adhesion. The dome was then primed and painted gold. Then the rest of the section that were to be burgundy was masked off and painted, and then the whole dome was lacquered.

When the lacquer had cured, I fitted some micro servos to the inside of the dome, and the flaps added with linkages made and connected.

The eye piece was made from a square piece of MDF with one side sanded down to match the contours of the dome. This was then painted burgundy and clear coated. I found a large clear plastic sphere inking which I bought, measured with the hole I cut out of the MDF piece, and cut the plastic sphere with a cutting disc on a Dremel to create the lens. People normally paint this black, but I wanted it clear for the camera and secondary light sensor. Besides, when mounted, you cannot see in side of the dome much, and the lens has a dark tinted look. Out of the whole build, the eye piece is my favourite part.

The red and blue light panel was made from the top of a fabric conditioner bottle which had a great frosted effect which would defuse the light really nicely.

The holo lens was made using a magnifying eye piece. Because shining the projector through this (with the magnifying lens removed) would lose some of the projection aspect ratio, I decided to use this, with the lens still in place, for a sound reactive RGB LED board, that would flash along with Astromech sound effects. I placed a small piece of white foam next to the lens to defuse the light, and the magnifying lens made the light even brighter (a great and cheap way to make a super bright, low powered LED).

Finally, the EL wire was fixed to the rim of the dome using very small amounts of silicone adhesive (which is safe to use with EL wire, as some glued can melt the plastic covering). The EL wire was attached in two parts. First I did one half of the dome and allowed it to set making sure the wire was taught, then I did the second half. Both ends were fed through two small pre-drilled holes.

Oh, and that colourful bit you see next to the eye piece, is just a
piece of cardboard I coloured in to fill a gap, and is only temporary. This will be the logic lighting panel, and the card will be replaced with 2 of the EZ-Robot 8x8 RGB LED arrays with i2c backpacks that will be available in the store soon.

With all of that done, it was time to fit the rest of the electronics.

Step 8: Electronics, Part 2.

This step concentrates on the electronics in the head section, but then goes on to connecting everything up.

Two drop-down Buck converters were set and fixed to the head section for the spotlight and for the EL light. The EL transformer was opened and two wires soldered to the battery terminals. As before, the ground wires went straight to the battery, and the positive cut and passed through the "normally open" relays already in place in the body section.

Next, a 5v regulator was placed in the head section and connected to a 2x16 LCD screen. The SLA and SDA pins on the screen had jumper wires attached, and will be connected to the SLA and SDA pins on one of the EZ-B v4's i2c ports.

A small "L" bracket was made from MDF scraps, with the camera and a second light sensor attached.

A much smaller "L" bracket was made with a small RGB LED board fixed to it.

Next, the pico projector was put in place with the power, HDMI, and audio AUX cables connected. A small counter balance was made from MDF and a hinge, then the projector was fitted to it. A servo with a custom made horn was attached above the projector which will adjust the projectors viewing angle. I did try to bypass the projectors power switch and run it through the relay, but was unsuccessful in doing so. So I did it the dirty way, and attached a micro servo to the projector, and servo horn fixed to the power switch. Like I say, it's a "dirty" way of doing it, but it work, and works really well.

Then all of the cables were fed through the hole and in to the body section. NOTE: make sure the hole that was drilled is large enough to accommodate all of the cables for the head section and dome peripherals.

Now was the time to connect everything up.

NOTE: All drop-down Buck converters should be set to the correct device voltage BEFORE a device is connected to it. Voltages set in the factory may not be the correct voltage for your device which can cause damage to your device which you wish to connect to the buck converter.

All relays go to digital +, - and signal pins,

Both dome RGB boards go to ground pins and three signal pins for each board.

The camera connects to the v4's camera port.

The LCD screen SDL and SDA pins connect to an i2c port, with the 5v regulator wires going to spare + and - pins.

Two 8x8 RGB arrays will be connected to the other two i2c ports when they become available (an update will be posted when this is done).

The motor controllers 5v regulator was connected to + and - digital pins, along with the two PWM and two MOTOR wires connected to four digital signal pins.

In regards to hooking up the SSC-32 to the EZ-B, it was connect via a serial connection to one of the EZ-B's UART ports. All of the servos, with the exception of the dome left/right and water jet servos, were hooked up to the SSC-32.

The four ping sensors needed 8 digital ports. A ping sensor is connected as follows... + and - goes via a 5v regulator and connects to ground and positive pins on one digital port. The trigger goes to one signal pin, and the echo goes to an adjacent signal pin.

The PAR sensor connects to a digital port via a 5v regulator.

The speaker goes through a buck converter and then to the 7v battery (the speaker I used is 4v which was set in the buck converter).

All analog sensors were connected to ADC ports in the EZ-B.

And the HDMI, power lead, USB hub, and headphone extension cables were connected to the tablet PC.

Every system was tested when the were connected to make sure everything was working correctly.

Finally, the servos in the dome were connected to servo extension cables I already put in place, and fitted the LDC screen in to its housing, connected the EL wire, and second RGB board in to the magnifying lens.

Then the dome was placed on to the head section which should have a nice snug fit and should not slide when the servo turns the head section. Although it was done throughout the build of the head section, make sure everything is aligned correctly such as the projector, retracting sensors/spotlight, camera, and RGB LED board.

So 118 days later, the build was finally done. Now to move on to the fun part (not that building E4 wasn't fun too), and that's bringing life to this little droid, so to speak.

Step 9: Programming.

The next couple of steps will go through some of the basic programming and making of the mobile app. Not to make these steps too long, I will share some of the scripts for the basic functions which can be adapted for most robots using the EZ-Robot platform.

For E4-B4's programming and controls, I used EZ-Robot's EZ-Builder for Windows software which you can get your own copy of here. Full details of using the EZ-Robot platform, with tutorials of using the controls and writing scripts (some of the tutorials I wrote myself as a community drive to help others) can be found here. So here is I programmed E4-B4.

After opening a new EZ-Builder project, the first thing I needed to do was to set up the servos. As I'm using the SSC-32, this was a bit of a different procedure than setting up servos directly connected to the EZ-B. First off, a single line of script is needed and needs to run when the EZ-B v4 and SSC-32 connects to your EZ-Builder project...

#This is the initialization script for the ssc-32 connected to UART port 0,

#and this only needs to be run once every time the project is opened and a connection is made.

UARTInit(0,0,38400)

I added a "Script Manager" to my project which I renamed "Setup Control Menu", and set up the retractable arms in the body. So, the utility tool arms use the following script...

#USB ARM DEPLOY

#Servo positions are P500 minimum which is equal to servo position 1,

#and P2500 maximum which is equal to servo position 180.

$pos = "P1400"

#The S700 is for servo speed.

$m_speed = "S700"

UARTWrite(0,0,"#6"+$pos+$m_speed,13)

NOTE: You will see a lot of the scripts that I have posted here, have a
# next to some of the code. Anything that has this hash in front of it, is a line of script that will not run, and is only used for making notes.

Because of the way most digital servos are designed, they tend to make an irritating buzzing noise when in a holding position. So to combat this, I added some additional lines of script that will release a servo from its holding position. This essentially cuts the power to the servo and will not hold any weight. This is fine for the horizontal retractable arms and flaps as there is no weight for the servo to hold. The release scripts are mainly used in the "Retract Arm" and "Close Flap" commands. So here is what the script now looks like...

For utility arm deployment...

#USB ARM RETRACT

#This RETRACT script must run first to initialize a servo after a servo release command.
$pos = "P600"

$m_speed = "S700"

#is speed control

UARTWrite(0,0,"#6"+$pos+$m_speed,13)

#A small 100 millisecond sleep is added for smooth transition.

sleep(100)

#Now the DEPLOY script can run successfully.

#USB ARM DEPLOY

$pos = "P1400"

$m_speed = "S700"

UARTWrite(0,0,"#6"+$pos+$m_speed,13)

and for utility Arm retract...

#USB ARM RETRACT
$pos = "P600"

$m_speed = "S700" #is speed control

UARTWrite(0,0,"#6"+$pos+$m_speed,13)

#A sleep is added to give time for the arm to retract.

SLEEP(4000)

#USB ARM RELEASE

#Notice the "P0" below. This is the only value under P500 that can be used. This releases the servo.

$pos = "P0"

$m_speed = "S700"

UARTWrite(0,0,"#6"+$pos+$m_speed,13)

The dome and body flaps also use similar scripts with their minimum and maximum positions adjusted for each servo where needed. The first script manager has each individual script for each individual action, for example... Flap open, flap close, tool deploy, tool retract, and so on. This is also done for "lights On" and "Off" and starting/stopping sensor readings.

To combine the movements for opening a flap then deploying a utility tool, a second script manager was added to the EZ-Builder project. I will use the USB hub tool as an example. In the new script manager, which I renamed "Master Control Menu", you could copy and paste the script commands from the "Setup Control Menu", but there is an easier way. Every time you add a new script of control, this automatically generated something called a "Control Command" also called a "Cheat Sheet" Command. These are shortcut commands to start, stop, pause, and resume a specific script. So, to deploy the USB hub, I use the following script...

ControlCommand("Setup Control Menu", ScriptStart, "USB flap open")

#This sleep command allows time for the flap to open before the arm deploys.

Sleep(2000)

ControlCommand("Setup Control Menu", ScriptStart, "USB arm deploy")

And to retract the USB hub, the following is used...

ControlCommand("Setup Control Menu", ScriptStart, "USB arm retract")

#This sleep gives enough time for the tool to retract before the flap closes.

Sleep(4000)

ControlCommand("Setup Control Menu", ScriptStart, "USB flap close")

The same is used with all of the other utility tools, with the length of the Sleep() commands adjusted for each tool. (To be safe and not risk damaging anything, I suggest to remove the front skin to set up and test the combination scripts).

The dome servo is set up differently as it is connected directly to the
EZ-B, so uses a different and simpler script than the SSC-32 UART commands for manual control. To do a simple turn of the dome, you can use the following script...

#This command sets the servo speed.

#Servo speeds range from "0" which is fastest, and "10" which is slowest.

#This example assumes the servo is connected to digital port "D0".

Servospeed(D5,2)

#This command tells how much degrees the servo should turn.

#Servo centre position is "90" with "1" being minimum

#and "180" being maximum.

Servo(D5,120)

In the mobile interface which can be used on a PC of mobile device, I have a script that turns the dome 10 degrees at every button press. This is useful if I want to look through E4-B4's camera on a PC or mobile device...

if(getservo(d13)>10)
servodown(d13,7)

endif

sleep(100)

To alternate the flashing of the red and blue LED's, I use a simple loop script that flashes between red and blue every two seconds until I manually stop the script, I I use a control command to do so...

#This assumes that the red LED is connected to digital port D22, and blue to D23.

:loop
set(d22,ON)

sleep(2000)

set(d22,Off)

sleep(30)

set(d23,On)

sleep(2000)

set(d23,off)

sleep(30)

set(d22,ON)

sleep(2000)

set(d22,Off)

sleep(30)

set(d23,On)

sleep(2000)

set(d23,off)

sleep(30)

Goto(loop)

I use the ultrasonic distance sensor on the beer claw to recognize when someone's hand is close to give or pick up an object. This will trigger a control command script to open then close the claw...

ControlCommand("Random Talk Board", Track_14)
sleep(1500)

ControlCommand("Master Control Menu", ScriptStart, "Beer Arm Deploy")

sleep(5000)

:loop

# get the distance of the ping sensor

$distance = getping(d19, d20)

if ($distance < 6)

ControlCommand("Setup Control Menu", ScriptStart, "Beer claw open")

sleep(2000)

ControlCommand("Setup Control Menu", ScriptStart, "Beer claw close")

sleep(2000)

ControlCommand("Master Control Menu", ScriptStart, "Beer Arm Retract")

ControlCommand("Beer test", ScriptStop)

endif

# A delay to prevent the script from running too quickly

sleep(50)

goto(loop)

A similar script is used for object avoidance using the ping sensors in the feet when E4 is moving around. If an object such as a wall is detected on the left foot, he will stop and turn right, then continue moving forwards. And if the right foot detects something, he will stop, turn left, then move forwards.

For something different, I'll give an example of the smoke and gas detection sensor...

:loop
$smoke=getADC(adc2)

if($smoke>40)

saywait("I am now sensing smoke, or gas fumes in the area.")

Sleep(10000)

elseif($smoke>60)

saywait("Warning. I am now sensing an increased level of smoke, or gas fumes in the area.")

endif

sleep(100)

goto(loop)

Here's another script example. When a certain time is reached, E4 will will remind someone to take their pills, then dispense them...

#The name of this script is called "Pills".

waituntiltime(16, 35)
say("It is 4 35 pm, and time for your afternoon medication.")

ControlCommand("Random Talk Board", Track_14)
sleep(1500)

ControlCommand("Master Control Menu", ScriptStart, "Beer Arm Deploy")

sleep(5000)

:loop

$distance = getping(d19, d20)

if ($distance < 6)

ControlCommand("Setup Control Menu", ScriptStart, "Beer claw open")

sleep(2000)

ControlCommand("Setup Control Menu", ScriptStart, "Beer claw close")

sleep(2000)

ControlCommand("Master Control Menu", ScriptStart, "Beer Arm Retract")

#This will stop this script from running when the action is completed.

ControlCommand("Pills", ScriptStop)

endif

sleep(50)

goto(loop)

sleep(2000)

This particular script can be added to a navigation and face recognition script, so E4 can navigate and find the person (providing that persons face has been added to E4-B4's facial recognition library), then dispense the pills at the set time.

Speech recognition is a fairly simple system to set up to execute scripts. This can be used to execute pretty much any script or command in E4's project. As long as the computer your using has been properly set up and trained for speech recognition, and a good microphone is used, you simply type in a phrase what you would say to the robot, then add the scrip command you want it to execute when that phrase is recognized. Here,you can write the needed script commands, or use control commands.

As mentioned, these are just a handful of simple script examples that E4-B4 uses, but he also has tons more such as object and colour recognition, chatbot and text translator program, and a personality generator which helps give E4 autonomous abilities. More details of what controls and abilities are available to use, and with many script examples which can be used, changed or adapted for most robots, can be found on the EZ-Robot website. I'm building on E4-B4's autonomous program bit by bit, so one day he will be able to auto dock and charge his batteries, and do random security sweeps of the house. He already has a home security system in place, where he can take action (such as alerting me on Twitter and start streaming a live video feed, or sound an alarm and take/send photos) if a noise is detected, a light comes on when it's not expected to, or his PIR sensor is triggered.

As I said, I could go on listing all of the scripts here on this Instructable, but this would make the Instructable very long indeed as E4-B4 has tons of code programmed. Remember, if you have any questions regarding anything about E4-B4's build or programming, feel free to ask and I'll do my best to respond to you. You can also have a look at one of E4-B4's projects by clicking here, and opening the file with EZ-Builder. These projects were made available for sharing with anyone, and contain a lot of the controls and programming scripts that are used, including the object and facial recognition programming that is seen in the videos.

Step 10: Speech Recognition Control Setup.

E4-B4 relies heavily on speech recognition commands, although he can be control in other ways as well. This step will go though the process of training Windows Speech Recognition, and the basic setup for the EZ-Builder speech recognition control.

Windows Speech Recognition.

Supported languages for Windows 8.1 Speech Recognition are as follows...
English United Kingdom, English United States, German French, Spanish, Japanese, Mandarin (Chinese Simplified), Mandarin (Chinese Traditional).

Now, we will go through a step by step guide for setting up and training Windows Speech Recognition.

1.) Open your computers "Control Panel", then click on "Speech Recognition".

2.) Click on "Train your computer to better understand you". This will now open the Speech Recognition Voice Training wizard.

3.) Click on "Next", then read the sentence that is shown on screen which will be... "I am now speaking to my computer".

4.) Follow the on-screen instructions to complete the
speech recognition training session. The "Training Wizard", will guide you through some tasks that are designed to help your computer hear how you say the commands available through Speech Recognition.

There is also some further custom training you can do, such as an
extended training session that you can select. You can also add words or phrases directly in to the speech recognition dictionary, which helps your computer understand words or phrases which it may have difficulty understanding.

1.) Open up the "Speech Recognition" program.

2.) Say “Open Speech Dictionary” OR Right-click on Speech Recognition Bar.

3.) Click on "Open the Speech Dictionary". Click on or say "Add a new word".

4.) Type in the word or phrase you want to train. Then click on "Next".

5.) Check the "Record a pronunciation upon Finish" box. Then click "Finish".

6.) Make sure speech recognition bar says “Listening”.

7.) Click the "Record" button.

If the word or phrase was successfully recognized, you will see a message saying "Recording was successful".
8.) If you want to add more words or phrases, check the "I want to make more modifications to the Speech Dictionary upon Finish" box. Then click on "Finish".

Loading the EZ-Builder Speech Recognition Control.

To get started, we first need to add the "Speech Recognition Control" to your EZ-Builder project.

1.) On your computer, load up the most recent release of the EZ Builder software.

2.) Click on the "Project" tab from the EZ-Builder menu ribbon.

3.) Now click on the "Add Controls" tab.

4.) Select the "Audio" category tab and then click on the "Speech Recognition" icon to add this control to your EZ Builder project.

When you click on the little gear icon, this will open up the speech recognition control editor. This is where you add the phrases you say to the robot, and the actions the robot will take when these commands are heard.

The Phrase list.

This is where you add the words or phrases to be spoken by you or other
users. The phrase list comes preset with some basic phrases and commands which can be used as is, edited, deleted or added to, As an example, you can write... hello robot.

NB: Any text entered here does not need any punctuation or capital letters.

The Command list.

This is where you can add a single line of script by clicking on the
text input box, or a multiline script by clicking on the "pencil" icon. When the Phrase to the left of this command is recognized, this script will run.

I wrote a full tutorial for everything related to training and using speech recognition, which can be found by clicking here.

Step 11: Mobile Control Interface and App.

The EZ-Builder software gives you the ability to create your own mobile app which you can use on an iOS or Android smartphone or tablet, or on a PC. It gives you some basic tools to control a robot, but to really make yourself a dynamic and unique app, and make it appropriate for your robot, a lot of work is needed on your part, but if you have a creative side and can think outside of the box, you can do some pretty amazing things.

The screen shots above are my first draft mobile control interfaces so I could set everything up. I may at some point play about with this again and redesign them, but for now I'm quite happy with them. As you have seen, I have two mobile interfaces as E4-B4 has a lot of functions. The background colours and app buttons were all made using Microsoft Paint. It's not he greatest program in the world as it has limitations, but with some lateral thinking, you can make some pretty decent stuff.

My app is designed in such a way where one button has two functions. This saves a lot of room on the app screen where you don't need to have an On button and an Off button for example. One button does both. For example, to make E4-B4 move forward and stop using the same button, I use the following script...

if (!$pressed)
Forward() $pressed = 1

ELSE Stop() $pressed = 0

endif

As this script uses a variable, this needs to be defined first. You simply do this by placing a "Run Once" script in the EZ-Builder connection control as follows...

$pressed = 0

Pretty much all of the app buttons have this "toggle" design. I have also added a window to view the camera through. If you access the app using a cellular connection using a remote desktop (VPN) program, then this video feed, and indeed full control over E4-B4, can be done from anywhere in the world that you can get an Internet connection. This works great as part of a home security system.

Once you have finished designing and programming your new mobile app, you can save it to EZ-Robots "Cloud" server where you can access your app on your smartphone. Or you can save your project locally on your computer and access it using the VPN idea I mentioned above.

The app took me about two days to design and put together with designing the buttons with MS Paint, and writing the scripts (some of which use control commands that was mentioned in the previous steps), but it's worth it as it makes controlling E4-B4 so easy, and you can quite happily tell your friends "Hey, I made my own smartphone app.

Step 12: IPhone Accelerometer Drive Control.

One of the ways E4-B4's drive system can controlled, is via an iPhone using the iPhone's built in accelerometer. To do this, download an iOS app called "Sensor Stream". This communicates with a computer via WiFi and sends all of the iPhone's accelerometer, gyro, and compass data. This data can be extracted and be used to control motors, servos, or additional sensors. The following programming code is used to move E4-B4 forwards, backwards, left, right, and stop. In the EZ-Builder software, add the "iPhone Sensor Stream control, then open the app on your iPhone, and add the IP address on the sensor stream control to the iPhone. Then add a empty script control, and add the following script...

:loop
#Forwards slow

if($AccelerometerY >0.3000 and $AccelerometerY <-0.4500)

forward()

sleep(100)

#Forwards Fast

elseif($AccelerometerY >0.5000)

forward()

sleep(100)

#Reverse

elseif($AccelerometerY <-0.3000)

reverse()

sleep(100)

#Stop elseif($AccelerometerY <0.2500 and $AccelerometerY >-0.2500)

Stop()

sleep(100)

endif

#Turn Left

if($AccelerometerX >0.4000)

Left()

sleep(100)

#Turn Right

elseif($AccelerometerX <-0.4000)

Right()

sleep(100)

#Stop

elseif($AccelerometerX <0.3500 and $AccelerometerY >-0.3500)

Stop()

sleep(100)

endif

goto(loop)

Now, when you press "Connect to PC" on the iPhone app, and click "Start" on the new script (above), your robot will now drive in the direction you tilt the iPhone. This is just a basic example to help get you up and running if you decide to try this, but there is much more that can be done with this interface.

Step 13: Aditional Features.

Apart from the EZ-Robot platform, E4-B4 uses a few other sub programs he uses, or can use.

Vsee. This is a video calling program similar to Skype, but is a very lightweight program and has an auto answer function. Skype API can be a bit tricky to use, but the Vsee application is such a breeze to use.

RSS feeds. This is where E4 can show you the latest weather, news, traffic, of tell you a joke using live RSS feeds. This will get parsed back to EZ-Builder, and will then run through E4-B4's Astromech translator. This will then display the feeds information on the tablets screen using speech recognition.

Media player. Using speech recognition, manual control, or autonomously using the personality generator and camera tracking, E4 can be your personal drinks server, DJ, or photo and movie projectionist. To give you an example, a simple way to get E4 to play a music track, you can use the following script command which will play the music track using Windows media player or WinAmp music player...

exec("C:\Users\steve_000\Music\iTunes\iTunes Media\Music\Michael Jackson\01 Beat it.m4a")

This works the same way as playing a movie, or showing photos. Pictures and video can be either seen on the tablets screen, or using the pico projector in E4-B4's dome.

I should mention about the Astromech translator I've talked about. This is a plugin program available from EZ-Robot called "Display Popup", and will display and speech synthesis phrases in the form of text. As Astromech's such as R2-D2 don't speak the way we do, the text to speech synthesis volume is muted, and the "beeps" and "boops" sound files are translated into text that humans can understand. This plugin is great for people that are hard of hearing, and a lot of fun with an Astromech Droid. The text font size and colour can be changed, as can the text background for easier viewing and customizing the look.

Security Droid. Using things like your Twitter account, your email account, or a remote desktop application, as well as the on-board sensors and system operations, E4-B4 makes a great security guard. He can monitor movement, detect body heat, change in lighting conditions, then alert you and send and/or record what he sees to you remotely to your mobile device so you can take further action if necessary. It is also possible to hook up your already existing home security system to E4-B4's controller via a TCP server connection so he can talk and share information with the security system.

There are many more possibilities that are achievable... really the only limit is your imagination and skill level.

Step 14: Final Thoughts.

I hope that you found this "Astromech droid for the home "Instructable useful and interesting, and hope that you enjoyed reading, looking at, and watching the content. He was a fun project to work on, and was a great challenge (with some sleepless nights with my brain going in to overtime working things out) to work out some of the functions and design features. I'm no expert on robotics or fabrication by any stretch of the imagination, but I hope that this build will inspire some of you if you plan on building your own robot. Even if you don't go want to include every feature E4-B4 has, hopefully the building part will be of use to somebody to make a relatively cheap Astromech droid of their own. That's the beauty of this build... you can make it as simple and cheaply, or more complex and spend a little more on building extra features as you wish.

There will be some further updates coming up such as a more robust room mapping system, and an autonomous battery charging dock which you can see on the following step when these additions are made and become available.

Thanks for reading, and happy building. :)

Step 15: Updates and Members Questions Answered.

As mentioned, there are a few updates that I have planned for E4-B4, such as building a charging alcove and installing and programming a second wireless camera autonomous docking and battery charging, improve on the room mapping abilities and object recognition, install the new 8x8 RGB LED with i2c backpack matrix boards for his dome logic display when they become available, and to add a distance speech recognition microphone to improve recognition accuracy. These and any other updates and more will be posted here in this step when available.

Also, if you have any questions that require detailed information or images, leave you questions in the "Comments" section, and I will do my best to respond and post your answers here, along with your user name for easy reference.

Sci-Fi Contest

Second Prize in the
Sci-Fi Contest

Tech Contest

Participated in the
Tech Contest

Robotics Contest

Participated in the
Robotics Contest