WiShield problem is persistent

by Nerudin on Sunday, 10 January 2010,

Till now I have been unable to get the WiShield to work with my Servo code and the WiShield code merged. I haven't really even tried to modify the page that the WiShield serves up to the computer. By now I wanted to be working on that, modifying the GET (though it looks more difficult than I had expected) to trigger the functions within the Servo code. I decided there was no point wasting time on that seeing as the two codes aren't even working together.

I have been conversing with a forum helper at the official WiShield support forum, who suspects that the WiShield + the Servo codes might be too big in size. This is very bad news as it's impossible shrink the WiShield code without breaking it. I suppose I will try to cut down my Servo code to see if that does the trick.


WiShield problems

by Nerudin on Thursday, 31 December 2009,

Ok so I am still having problems with this WiShield. I am finding it really difficult to get it to control functions uploaded on the Arduino. One of the problems is that when my two codes (one for controlling the Servos and one is for the WiShield to work and serve a page to the computer) are merged, the WiShield doesnt work and the LED turns off. I asked for help on why this was happening at the official forums, but they couldn't really help me as they did not know why.


Servo Problems

by Nerudin on Thursday, 24 December 2009,

I have been having some problems with the movements of the robot. It seems that the two Servo motors which control the movemements of the robot aren't doing what they are supposed to do. The code I sent/uploaded to the Arduino, is meant to make the robot move in a way close to the figure 8, but all it's currently able to do, is to spin left and right in an endless loop. This is similar to what was happening with my first prototype where I was using the MotorShield and the two DC motors. At the time I thought it was a problem with my code, but it turned out that it was infact a problem to do with the Servos not being calibrated.

There are two different types of Servo motors, Regular Servos and 360Servos. 360Servos, as the name suggests, can rotate 360 degrees in either direction. Every 360Servo has something called a 'Centre Value', this value stores the the 'Neutral' position of the Servo. This position is the point where the Servo has the exact same amount of potential rotation in both the clockwise and anticlockwise directions. The value for this point can differ in all Servos, therefore a proper calibration is required to identify the exact 'Neutral' value.

I conducted some research into how to calibrate the Servos, and I discovered two ways to do it. Calibrating the Servos can be done manually, which involves manually rotating the arms of a Servo in one direction until it stops making note, then doing the same going in the opposite direction until it stops.

The other method to calibrate the Servo is automatic. Automatic in the sense that you can use dedicated applications to do the calibration, some are free, some you have to purchase. I was able to get my hands on a free one, but unfortunately it didn't work for me. In the end I was able to use the Serial monitor on the Arduino IDE so that I could send commands/serial data to the Arduino. The Serial Monitor is able to connect and send the serial data to the Arduino at a rate of 19200bps (short for 'Bits Per Second'). The 19200 bps or Baud rate, is the rate in which to transfer data to the Arduino.

With the Serial Monitor I was able to send commands to the Arduino to rotate the Servos. To do this, you have to send commands using the Serial Monitor by typing, e.g. SXX (XX = numerical value) and clicking 'Send'. 'S' is a delimiter and the 'XX' numerical value is the angle of rotation to send to the Servo. The 'Neutral' point can be found by sending the command e.g. s89, s90, s91, s92 and so on and so forth, until the servo stops moving. Each of the Servos have to be calibrated this way seperately, i.e. connected to the Arduino one at a time. My two Servo 'Neutral' points turned out to be at s87.

And that was it, my Servo problems were no more.


WiShield + MotorShield pin conflict

by Nerudin on Thursday, 10 December 2009,

I finally received the WiShield couple of days ago. I have been trying to get it working with everything, i.e. the Arduino and the Motors/Motorshield with not much luck. The way the WiShield works is, it needs to be connected onto the Arduino, Pins 09, 10, 11, 12 and 13 to be precise. Comparing this to the MotorShield, I was able to discover that it requires several of the same pins also required for the WiShield, and because of this, pin conflict occurs on the Arduino.

I have researched into this issue, and have discovered that there isn't really any way of solving it other than getting rid of one of the components causing the conflict. I did find another device called 'Extender Shield', which gave me some hope for a little while, as it was adverticed that it would allow multiple shields to be connected to the Arduino. I found from the makers blog, that all it does is replicate the pins on the Arduino, and does not really solve conflicting pins, which is strange and contradicts what they advertise.

In the end I decided to discard of the MotorShield, which meant that I would be unable to use my current DC motor wheels as they draw too much current if connected to the Arduino without using a MotorShield. It is reported that doing this might cause severe damage to the Arduino controller. As a result, I decided to use Servo motors instead, which are pretty much no different to the DC motors. I also had to change the robot base because the Servo and the wheels that came with the Motors require a bigger space to be fitted. This is the Base/chassis that I am using now -----------

As you can see it comes with a Breadboard, which is needed to build the circuit connecting the Servos and the battery to the Arduino controller. Here is the Circuit required-- ----

For powering everything, the Arduino can only generate 5v of power, which isn't enough for two Servo motors. Therefore to power the Servos I am using 4, 1.5v AAA batteries, which in total give 6v of current needed for two Servos.

and the Arduino can either be powered using an external wired powersupply, a USB cable connected to a PC or a 9v battery. I will be using a 9v battery as I don't want to restrict the robots mobility. The 9v battery can be connected to the Arduino using a 2.1mm DC plug with a 9v battery clip.


Finished (Kit asseembly/build)

by Nerudin on Monday, 23 November 2009,

Last Friday I was finally able to finish assembling and building the Robot Kit. The soldering was the most challenging for me. I find my hands aren't very steady when I want to do something that requires precision, such as soldering wires onto the pins of the motor shield and the terminals on the two Gear motors.





I am quite happy about it so far.

Programming
I have tested it using a test sketch/script using the Arduino environment.

Here is a video of the Arduino robot using the test sketch..

I Had to modify the code as it wasn't running very well.. Essentially, I was unable to get most of the code to work (I am currently looking into why) so had to strip most of it off in an effort to get the basics working. Currently, all it really does is spin in each left and right directions in an endless loop.


I Uploaded it to my youtube account because I couldn't do it on Blogger. Sorry for the bad quality, used my old nokia 6500 to record


Lets get it started!

by Nerudin on Thursday, 12 November 2009,

Finally,

It's starting to feel like I am getting somewhere with my project. A couple of weeks ago I wasn't very enthusiastic about my project at all. Initially I had in mind to buy a R/C car and modify it using an Arduino and various other hardware, but decided to take a different route which did not require as much Electronic/Robotics experience or skills. Taking this route will mean I won't have to spend as much time building the robot, and therefore I can focus on more important aspects of the project. In terms of budget, I believe this route is much more suitable as you buy the core components required as a bundle.

The ideal route was to buy a robotics kit and work from there, focusing on how to controll it from a web page. There was one kit I really liked and also looked easy enough to assemble, i.e. it did not seem to require much knowledge in Electronics or building robots. The kit is called a SERB (Arduino Servo Controlled Robot). Unfortunately I was unable to aquire this kit as it appeared to be out of stock from the only website that sold it.

In the end I decided to buy a different kit. The Kit I bought is called 'Arduino Robot Kit', I was led to believe by various sources that this kit isn't easy to assemble and requires soldering and other electronic skills. I will need to do quite a bit of soldering to assemble all the parts, which I I have never done before.

Unfortunately I did not have a choice, as it was the only other kit using an Arduino micro controller. Last week I did my first soldering attempt. I worked on the Motor shield, which is a very important component of the project. To my surprise the soldering was a success, though it took me quite a while to get the hang of it through trial and error. Fortunately I did not damage the board and so far the Shield is working.

Motor Shield (Assembled)


Prototype
Next week I am hoping to have the kit fully built or atleast partially built, this will be my first prototype. Then I can get started on the programming phase of the Project. It all depends on any problems that arise. For example at the moment I am unable to do any actual work, I keep discovering that I am missing essential tools, the last couple of weeks it was soldering equipment, pliers, wire cutters, wires (i.e. jumper/hookup wires [think that's what they are called]). This week I find out I am missing specific screw drivers required to tighten the screws on the kit. I have already ordered the screws, I am hoping I'll get them in the next few days.

Parts

  • Two 50:1 Micro metal Gearmotors (These are the motors that move the wheels)
  • One pair Micro metal Gearmotor brackets (these are used to hold the wheels and motors in place)
  • One pair 42x19mm Wheels
  • One 3/8" Ball Caster(This is a small wheel, to create balance)

These are all the parts that are needed to build the robot.


The Arduino Micro Controller
The brains of the robot



Chassis



Battery Pack (This will serve as a wireless power source to the whole robot)


Motor Shield (Assembled)


x2 Wheels + 1st Gear Motor


2nd Gear Motor


2x Motor Brackets + Nuts & Bolts
(Needed to screw them to place)


Ballcaster


Nuts & Bolts (These will be used to mount all the components onto the Chassis)


Completed Build
When all the components are succesfully built and assembled, the completed version will look like this.



Electronics

by Nerudin on Saturday, 24 October 2009,

I have been doing research on the Arduino Micro-Controller board. Specifically I have been researching the electronics/wiring of the Arduino, which I am hoping will help me on my own Project.

The research was carried out by reading up on Arduino (using tutorials, MAKEZINE videos on Arduino project such as making an LED blink). These were vary helpful and thought me the the basics of the Arduino.

The inner workings
Through this research I have made some progress in learning the inner workings of the Arduino board itself, Resistors and Wires. This is what I have learnt so far:

The board
So far the main thing I have learnt about the Arduino board is the Input/Output Pins. It's still all a bit hazy at the moment, but I think I understand how they work. I found out that the Pins come in Digital, Analogue and Ground on the Arduino. I am not quite sure the difference between the Digital and Analogue pins quite yet. All I know is that different projects require you to use either Digital or Analogue pins. I will need to go into further research on this so that I can get a clearer understanding.

The Ground pins are used to wire/connect e.g. the LED ground signal to the Arduino. So far I know this is done so that whatever you are working with doesn't break.

Resistors
This is what I have learned about Resistors:

  • They are used to controll the flow of electricity by resisting current.
  • The resistance of "Resistors" are measured in ohms units, also written as this Ω.
  • The bigger ohms a resistor has, the harder the flow of electricity gets.
  • An easy way to think of a Resistor is like in Waterpipes, i.e. the flow of water current. The bigger a pipe the easier the resistance such as a firehydrant used to put out fires, and the smaller the pipe the higher the resistance such as a water fountain where people drink water from.





DMP

by Nerudin on Monday, 19 October 2009,


Finally handed in my FYP Proposal document on thursday 15th October. It contains in good detail about what the project is, what I want to accomplish, objectives (research, learning, etc). So far I feel quite confident about the proposal and even project.

Since the final handin of the Proposal document I have been looking into the overall budget, i.e. how much all the components will set me back. I have been wanting to go to the UWE Robotics department to see if they can help with the budget. fortunately my Interaction Design module was going on a tour to the Robotics department On thursday 15th October to learn about HRI (Human Robotic Interaction).

At the end of the tour I approached our guide(A researcher at the department) and asked if the department help UWE students undertaking Final Year Projects. I explained to him that my FYP was to investigate and create an Internet Controlled Robot. He asked me to email him and then he would be able to tell me of someone that can help me. I have emailed him but he has not replied to me yet.

I am going to chase him up, but if he does not reply this time, I will have to make due. I am thinking I might have to cover the budget myself, really, I am prepared to do this, after all I am hoping it won't be very expensive.

I have also been gathering research, using (mainly) the internet. I have been reading relevant online tutorials, such as learning how the Arduino Micro-Controller works. I have yet to finish this as the content is quite extensive.

Next Stage:
I am still at the Requirement Gathering phase of the project. I have various objectives to look into. I will start with researching how to create the User Interface, everything involved, i.e. programming languages, etc. Also, in my Proposal I mentioned that I will be carrying out a Comparative Analysis, before I start doing that I will need to figure out if it is relevant to my project. Not sure what I will benefit from doing it, yet.

I also will need to obtain an Arduino Micro-Controller so that I can learn how it all works. I will need to make a decision between buying a SERB (Arduino Controlled Servo Robot) kit or buying the Arduino and the rest of the components required seperately.




The Proposal

by Nerudin on Friday, 9 October 2009,

I was able to draft the proposal on time for the friday session. So far it's only 1 page long. For todays session I recieved a lot of good feedback such as other functionalities to add to the project, (i.e. future improvements) from my assigned supervisor of the day. She also suggested that I use an Arduino Microcontroller for my project and not bother with others. I already had some knowledge of the Arduino Microcontroller, such as, it being the cheapest budget wise and easiest to program out of all the others.

I also had a constructive discussion with the group I was assigned into about my project. We also discussed their projects, which in turn helped me to think more deeply about my own. Unfortunately didn't get the chance to ask how much we are required to write for the proposal alone. This session also made me realize that I need to think of a lot of other factors involved with my project, such as the budget. My team mates in todays session suggested that I should go to the UWE robotics department and ask if they are able to help with the budget.




My Intro (WebDroid)

by Nerudin

Hi my name is Farah Ali. This blog will be dedicated to the final year Digital Media Project I am currently undertaking at UWE. My FYP (Final year Project) will be on creating an Internet Controlled Robot. My project is called 'WebDroid. 'I will be posting weekly entries regarding anything related this project, such as progress made (i.e. project, learning and research objectives met) and to reflect on my learning.