Mar 022011
 

As an idea for a class project, I decided to try turning an inexpensive RC truck into a Robot.

phidget sbc robot truck

My criteria was that it must:

  • Have full movement and steering capability
  • Inlcude a camera
  • Be accessible over the internet (Wi-Fi)

Building the Phidget SBC Robot Truck

My prime candidate for a controller was the Phidget SBC (single board computer). It has wireless and ethernet capability, webcam capability, can control other phidgets (such as a motor controller) and has an integrated interface kit for sensing and control (8 digital out, 8 digital in, and 8 analog in).

For a platform I chose a 1:15 scale Dodge M80 RC truck, but any mid to large size RC vehicle should do. A larger truck would have made the build much easier and concealed more electronics, but the $19 price tag on this truck was too good to pass up. In hindsight it worked out for the best because concealing all the electronics would have greatly reduced the “wow” factor.  :)

Removing the original RC board:

The first step was to pop the truck open and see what kind of space I had to work worth. Four screws through the bottom of the chassis released the body. I also removed the “tinted” windows so I could see inside the truck when it was reassembled. Note the LED headlights! (which were not LEDs, more on that later).

testing steering voltage

Next I opened the chassis cover to identify where to tie in the Phidget SBC. I was a little disappointed that the steering motor was a regular DC motor (meaning there is no fine control of the steering). A servo would have been nice but would also require a third phidget board.  My plan is to hook the drive motor and steering motor both to the same phidget Motor Controller which I can access via the Phidget SBC.

I also tested the voltage that the RC board was sending to the steering motor since it looked a bit small. It turned out to be roughly 5 volts.

rc truck circuitry

Since I’m using my own single board computer and motor controller, all I really need are the drive and steering motors along with access to the battery pack. So I snipped the wires to the motors, headlights and battery pack and removed the antenna and frequency selector switch along with the main board.

remove the board

I’ll keep this RC board in case I want it for another project. A tri-frequency radio transmitter with a four-output receiver may come in handy some day!

Mounting the Phidget SBC and Motor Controller:

bigphoot009mcmount2

I mounted the Phidget motor controller to a thin piece of panel-board and screwed that to the chassis of the truck. Power wires from the battery pack and the SBC both connect to the Motor controller power port. This eliminated the need for a dedicated power distribution rail and kept the SBC and MC wired in parallel with the battery pack. The battery pack takes 5 AA batteries. Using 1.2 V rechargeable NiMH batteries will give me 6 volts, which is the minimum for the SBC, so I may have to switch to a larger external battery pack in the future.

Take note! You don’t want to connect external power (wall adapter) to the boards in this configuration since you’ll likely overcharge the batteries or cause fire or injury!! In the video I have the external power connected only when there are NO batteries in the truck.

mc mounted

phidget motor controller mounted

The drive motor wires were connected to the Motor(0) port and the steering motor wires were connected to the Motor(1) port. The wires did have to be extended. For the USB all I had was a large cable, so I connected it between the MC and the SBC then coiled the rest under the truck bed.

sbc mounted

phidget sbc mounted

The SBC was mounted to the rails of the truck bed. The usb devices (MC, WiFi dongle and webcam) were plugged into the back of the SBC. On closer inspection I realized that the WiFi dongle was putting a strain on everything due to it’s larger physical size. That was remedied by using the little extension USB cable that came with the SBC.

I plugged the headlights into Port 7 and GND on the output side of the SBC’s interface kit. Because the amperage is regulated, they didn’t light the mini-incandescent bulbs (which I had assumed to be LEDs). I removed the incandescents and replaced them with miniature green LEDs. They worked like a charm.

bigphoot lights

Controlling the Phidget SBC Robot Truck:

There are well over a dozen languages which can be used to program Phidgets. I used Visual Basic 6 since that is what we’ve been using in class. While it isn’t the newest language, it’s easy to pick up and there are some nifty active-X controls available for it. In the future I may re-do the controls in Java to allow use on both windows and linux.

bigphoot ui

The fwd, left right, etc are for testing, while the joystick is a more intuitive control. It’s a customizable Active-X from GlobalMajic.

Coding the Interface:

Here’s a copy and  explanation of the VB6 code in case you find it helpful! (and remember to load the Phidget’s reference under Project, References!)

 

Dim WithEvents remotekit As PhidgetInterfaceKit
Dim WithEvents remotemc As PhidgetMotorControl
'the dim line needs to reference both the phidgets we used
'I called one remotekit and the other remotemc

Private Sub Form_Load()
'set and call for both the Motor controller and
'the onboard 8/8/8. Note we must specify
'the wireless IP address, as well as the
'proper port and individual serial number of each phidget.
Set remotekit = New PhidgetInterfaceKit
Call remotekit.OpenRemoteIP("192.168.2.232", 5001, 45519)
Set remotemc = New PhidgetMotorControl
Call remotemc.OpenRemoteIP("192.168.2.232", 5001, 82588)
End Sub

Private Sub Command1_Click()
'geared motor at wheels seems to work ok with 
'pwm set to 30. Your's will differ.
remotemc.Velocity(0) = 30
End Sub

Private Sub Command2_Click()
'stop button should kill power to both motors
remotemc.Velocity(0) = 0
remotemc.Velocity(1) = 0
End Sub

Private Sub Command3_Click()
'geared motor at wheels seems to work ok with 
'pwm set to 30. Your's will differ.
remotemc.Velocity(0) = -30
End Sub

Private Sub Command4_Click()
'tiny motor for steering seems ok at 80.
'still makes noise though. Your's may differ.
remotemc.Velocity(1) = -80
End Sub

Private Sub Command5_Click()
'tiny motor for steering seems ok at 80.
'still makes noise though. Your's may differ.
remotemc.Velocity(1) = 80
End Sub

Private Sub lightson_Click()
'using the on board 8/8/8 to power the led headlights
remotekit.OutputState(7) = True
End Sub

Private Sub lightsoff_Click()
'using the on board 8/8/8 to turn off the led headlights
remotekit.OutputState(7) = False
End Sub

Private Sub joy1_JoyMove()
'Maps motor velocity to joystick x and Y
'values whenever the joystick moves.set your
'deadzone, max and mins in the properties window.
remotemc.Velocity(0) = joy1.YPos
remotemc.Velocity(1) = -(joy1.XPos)
End Sub

 

I ran the program alongside my web browser so that I could see what BigPhoot was seeing.

controlling BigPhoot with video!

Controlling BigPhoot with video!

The phidget SBC has a built-in webserver so that you can access the video feed. But in the picture above, I already had the phidget control page open so I just watched it though that.

Future Mods:

  1. A horn!
  2. More power!

Bigphoot came with a built in 5-cell battery bay (AA). It simply isn’t enough. I used five 1.2V NiMH cells each capable of  2200 mAh. They lasted for about 10 minutes of use. First of all, they barely supplied the 6V needed for the phidgets . My boards were probably drawing 500 mA and the motors more than that.

In fact, I had originally wanted to use a phidget Low Voltage (LV) motor controller. It was capable of handling 1500 mA. here’s what I saw when I fired up the program:

bigphoot012lverror

Danger Will Robinson!

This tells me that the truck motors use more power than I had allotted. The next modifications for Bigphoot will have to include a larger battery pack or a trailer for hauling a lead-acid battery :)

 

  23 Responses to “Phidget SBC Robot Truck – “BigPhoot””

  1. sir,
    i am also making the project similarly like this, but want to make fully automated and wireless in ur project a wire is connected to computer. is it possible to remove that wire?

    • The wire that you see in the video is just a 9v power wire that was used because the battery voltage was low when the video was shot. There isn’t actually any wired connection to the computer.

      • hello sir,
        thank you very much. well i have also got the big foot. trying to make the similar model like this but i am having the problem regarding the programming of the model. can you please help me in programming for phidget sbc2 controller? if you can provide me the full program that u have been used will be helpful to me. please sir i seriously need your help.
        thanks again

      • is it remote control or controlled from computer?

  2. hello sir,
    i am confusing in power drive system. should i use stepper motor as power drive of the robot. well i require 3kg-cm torque or should i use servo motor for both steering and power drive? please suggest me.

    • The RC truck that was used to create the “bigphoot” robot just had 2 DC motors – one for driving the rear wheels and one for steering the front wheels. (the DC motor for steering was a small 3v motor and would just stop when the wheels reached their limit of movement). However, this was inefficient and didn’t allow fine steering of the wheels.
      I think a 12v geared DC motor makes an excellent drive motor while stepper or servo motors are best for steering.

      • thank you sir, but i don’t have dc motor controller so i am thinking to use a stepper motor for the steering purpose and servo motor for driving purpose or vice-verse. what’s your suggestion?

        • If your servo is the continuous rotation type, you can use it to drive the wheels. It will also probably have more torque than the stepper motor. In my experience, steppers aren’t well suited where much torque is needed.

  3. ok sir, thank you very much.

  4. well hello sir , how should i control the servo motor well i have phidget 8 servo motor controller ? how should i program it with the visual basic

  5. well my phidget SBC2 is not detecting it’s 8/8/8 kit and phidget.com is not providing me the solution. do you have any idea? well it is showing an error version 1.0.8 mismatch 1.0.9 expected while double click on the 8/8/8 kit tab, i have updates all of its driver required. and is their any adptor which will support phidgetSBC2. i have asus wifi adaptor it is been detected by SBC2 but not consider it as adaptor. please reply soon.

    • Make sure that you have both the latest phidget firmware _and_ the latest phidget drivers on your pc. If the firmware or the pc driver is older, you will get a type mismatch. You might want to go into the SBC2 setup and update all the packages but also download and install the latest pc software from phidgets.com. This should ensure that the version numbers match and allow you to communicate with the onboard 8/8/8.

  6. thank you sir, well i have phidget advanced 8 servo motor controller. does it generates PWM to control the speed of servos and how do i calculate the PWM for the perticular motor.

  7. sir, how do i load the Phidget’s reference under Project, References?
    please let me know i am not getting it.

    • Hi Ankit,
      That only applies if you are using visual basic. If you are, you will find the “project” menu near the file menu at the top of the screen. Within the project menu is an option called “references” click it and scroll down until you see the “phidget21″ library. Be sure to place a check-mark in the box. If you do not see the “phidget21″ library, then it means you haven’t run the windows-based phidget installer from phidgets.com. It needs to be installed before visual basic will be able to use the phidget library. Try that and see how it goes.

  8. thank you sir , i got it……….

  9. hello sir,
    i am using ir distance adaptor and sharp distace sensor for obstacle avoidence could you please tell me where should get the code for this. and one more thing i have made the code for servo motor control it is working but the motors are not moving i don’t understand what is the problem? please reply me soon.

  10. sir i have done coding in vb for my phidget advanced 8servo motor controller it is working when i m using it seperately when i am using it with phidget sbc2 it is showing me error: version mismatch; webservice:1.0.8, expected 1.0.9. according to your suggestion i have downloaded all the latest phidget library and firmware but it is not working. while connecting it through net it is shoeing all the packges are up to date. now what should i do? please suggest.

    • If everything is up to date on the sbc2 (all packages under the system, packages menu) then you should re-check the phidget version on your computer. Have you installed the very latest “phidget control panel” for windows and also the “bonjour” service? You need both. Did you uninstall “phidget control panel”, download the latest phidget installer, and try it?
      Also try restarting the “phidget control panel” after updating packages on the sbc2

  11. well that problem has been solved but a new problem is occurring, my phidget SBC2 is not detecting it’s interface kit and the advanced 8 servo motor controller. it detects in starting but when i run my program it’s gone is it due to the power supply or anything else?

  12. Im trying to do a similar project to this and ive been looking for a long time and haven’t found anything …What if I wanted to use a phidget mini joystick to control it?

Leave a Reply to Hunter Gill Cancel reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>