arduino robot, various problems

I have a big problem with my arduino robot (original arduino robot from officine arduino) i tried to use a hc-sr04 ping sensor without success on the digital ports, so i looked at what's happening with an oscilloscope, well, all the digital ports can't give a pure square wave, the rise is good, but at the end of the up phase the signal slowly fades and does not fall instantly, so controlling external sensors is impossible , also, the pin remains at nearly 3 volts. (this sensor requires an up of 10-400 microseconds to be triggered, and with that base voltage and what seems like a discharge curve on the LOW, it can't work), also, the pin remains at nearly 3 volts. The strange thing is that the rest of the robot behaves correctly, the lcd works, and all the sketches that i tried worked. i also have a problem with the wheels, the axis or the wheels are off center, so when the robot "walks" the wheels waves and sometimes it touches the frame, slowing down the robot.

I tried to send an email to them but nobody responded. I don't know why they are not giving this (pricey) product the right attention, they messed the name of the i/o ports on it, not created a forum section for it, there's nearly zero useful infos on it on the site.

Someone has this robot and an oscilloscope to try? Tnx

Fabrizio

This is what i get on the oscilloscope on the robot

I have an official Arduino Robot, but I don't have an oscilloscope to check the waves, sorry.

I have however also had some wheel problems (often both aren't touching down so it can't move as it is supposed to). I put in a open post of issues I have been having, around the time you put in yours, and I have received no replies. Sadly, I already have a return label ready to ship my robot back, as the silence about them is stunning, and as you said, these are expensive. Maybe it is early and the bugs need to be worked out.

Before I make my final decision on returning it, I am running all the sketches and I have been checking for posts. I saw your post on the Arduino ports being mislabeled, which ones? I haven't gotten that far. From your findings, it looks like on your robot can't be set up with any sensors, and that too, is something I wanted to do. I have also had trouble with the on/off button not always turning on (something must be loose there).

I am having great troubles with the line following sketch (R02_Line_Follow), did you get that to work? Your post mentions running all the sketches OK, was this one of them? On any design I made (some with electrical tape and some with black construction paper) it doesn't move, quitting miliseconds after starting. I thought it was seeing its own shadow crossing the line, so put a flash light in front of it, with helped it go a couple of inches. At one point I put it on a Lego robot line poster, and used the flashlight trick and it started moving, but I couldn't get it to stop (nor can I get it to run like that again). Could you get this to run for your robot?

Also does your root have an input button that likes to register twice for every push you do? Does pushing on your robot's 'reset' button really allow you to run your sketch again? The one on my robot doesn't let me run the sketch again properly, it will go back to the start screen of the sketch, but won't run anything, I need to power the robot off and back on to run a sketch again.

Did you end up resolving your issue, or are you returning your robot?

I's very sad to not have proper customer support, i have have contacted them another time yesterday, we will see..

I saw your post on the Arduino ports being mislabeled, which ones?

Not really mislabeled, but they have changed it a few times, the first time because it was a mistake, now because it's simpler, but nowhere on the site you can find a complete information. the following quote is form the site

Note: if you have one of the first generation robots, you will see that the TKD* pins are named TDK* on the Robot's silkscreen. TKD* is the proper name for them and is how we address them on the software.

on my robot this is what i get.

and on the site, surprise, no mention, and what is the point in calling it Dx if in the code i have to call it TKD or whatever they mean? And to further complicate things, on this page http://arduino.cc/en/Reference/RobotDigitalWrite they have this code...

Robot.digitalWrite(TDK0, HIGH); // Turn on a Tinkerkit LED connected to TDK0
  delay(1000);
  Robot.digitalWrite(TK0, LOW); // Turn the LED off

as you can see the code says you turn on a pin with TDK0 but when you want to turn it off it becomes TK0.

Also, beware, looking at pins so you have your Dx or TKDx or TDKx =( is up with the pins following down, the positive and negative on some pins are different, for example, on my D0 is from top to bottom, negative, signal, positive but on D3-4-5 is positive, signal, negative. Why in hell is this? when people starts to play with one Dx they may assume that all are mapped equally, and why they don't put headers on that pins? sure i can put headers ( and to be safe a header that i can't reverse) but this may void the warranty? we don't know...

I have also had trouble with the on/off button not always turning on (something must be loose there).

mine is ok

i have not tried the line following sketch but let me say something, the robot has infrared sensors and emitters (the 5 black squares on the bottom), the problem is that sometimes what you see as black with your eyes is actually transparent or white in the infrared, this could be particularly true for plastics like tapes, that can really became undetectable in the IR spectrum, also pointing an external light source is not a great idea since the sensors can be fooled by the reflected IR. If you want to check if the emitters are ok take an old phone with camera (like an iphone 3gs) and in dim light look at the sensors with the camera app, you should see the IR light (newer phones and almost all digital cameras have IR filters so this won't work, or you can try with a cheap webcam). Try to draw your path with a thick marker, maybe it works, i'll try when i have some time.

Also does your root have an input button that likes to register twice for every push you do?

This is contact bouncing, and is normal, the simple way is to put a delay() between 100 and 200 in the code, so it stops a moment after you press the button and ignores the bouncing, a more "good" way is to look at these examples, http://arduino.cc/en/Tutorial/Debounce - http://playground.arduino.cc//Code/Bounce

Does pushing on your robot's 'reset' button really allow you to run your sketch again?

Yes, no problem.

Did you end up resolving your issue, or are you returning your robot?

No i have not resolved my issues, if i can i'll return it.

I have had some issues with the labelling of the pins. As you say they are labelled in one way on the board but called in another way in the code. In general I think the board is poorly documented. I have tried to provide some more detailed schemas on my (new) blog.

As for the code you mention,

Robot.digitalWrite(TK0, LOW); // Turn the LED off

that is clearly wrong. It should read as

Robot.digitalWrite(TKD0, LOW); // Turn the LED off

I hope it helps
.f