Questions about BotBoarduino capabilities

Hi All,

I juts ordered a BotBoarduino for a project. I need to connect the following components:
4 SRF05 ultrasonic sensors
4 Servos
1 Touch sensor
1 Arduino compatible motor shield
2 Electret microphones like this one: sparkfun.com/products/9964

Does the board have enough pins for connecting all of these sensors and the servos?
I do have an SCC-32 servo controller, and read the post about connecting it to the Arduino board.
What is the best solution, use the SCC-32 or directly connecting the servos to the Bot Board?

Thanks,
Amir.

One more question: what revision of the Arduino board is the BotBoarduino based off? I would like to know the Flash and SRAM available.

Thanks.

The Botboarduino has 20 IO pins. 14 digital and 6 analog. Two digital are reserved for the USART.

First off, if you’re only needing four servos the Botboarduino is plenty powerful. With four servos you’re down to eight digital pins and 6 analog. The two microphones will each need an analog pin. Eight digital, four analog left. Each SRF05 has two pins, a trigger and a signal. To read these sensors you need to pulse the trigger pin and start a timer at the same time, then wait for the signal pin to change. The time between the trigger pulse and the signal pulse is the distance reading. I do not know the specifics for converting the measured time to a distance. You can connect the four signal pins from the four sensors to the same digital pin, and then connect each trigger pin to a digital pin. This will allow you to read one sensor at a time. You’re now down to three digital pins and four analog. You didn’t give any information on the touch sensor or the motor shield so i can’t say anything about those.

So, in summary:

The four SRF05s will require 5 digital pins.
The two microphones will require 2 analog pins.
Each servo will require a digital pin.
This leaves you with 4 analog pins and three digital pins for the motor shield and touch sensor.

Literally the first sentence on BotBoarduino product page:

I also wrote a user manual that I’ve been told contains all sorts of useful information…

Here’s a manual for the SRF-05 robot-electronics.co.uk/htm/srf05tech.htm

The method for connecting two or more ultrasonic sensors is for the SRF-04.

So looking over the SRF05 it looks like you can use them with only one IO pin each, so that will save you one io pin, which is great.

Kurt

Excellent! It looks like the board by itself will satisfy my requirement.
For the touch sensor I haven decided yet which one I would use.
Regarding the Arduiono motor driver, this will directly piggy back on the BotBoarduino.

I am looking forward to play with the board a bit. I had already connect SRF05s to an AtomBoard it worked wonderfully!

Oh. The Motor shield I am going to use is this one: arduino.cc/it/Main/ArduinoMotorShieldR3

Note:
The motor shield takes a minimum of 4 digital pins and up to 8 io pins, so there may need to be some trade offs.

Kurt

Yeah, unfortunately it doesn’t look like this is pin compatible with the boarduino.

Never mind, the motor shield is using Rev 3 pin layout which duplicates the SDA and SLC pins found on the analog output.
I wonder if they did this so you can use i2c on the shields as well.
Also there is an IOREF pin, I am not sure exactly what this would be useful for.
It should still work with the Boarduino.

You should be able to run this shield. I believe I have.

blushingboy.net/p/motorShieldV3/

Alan

I am a novice, and need your help to get started.

I want to use a Botbaorduino to control an AL5D robot arm,
using 6 potentiometers to control 6 servos, through a “master-slave”
style trainer arm. (Very similar to the one build and posted by Devon Simmons
about year ago, see: Post subject: Trainer Controlling an Arm.)

I am comfortable of reading/understanding codes, but completely new
to hardware board stuff. I have read the user manuual
(lynxmotion.com/images/html/build185.htm).
But I think it’s a bit too terse for beginners. I cannot even correctly
count the “20 I/O pins. 14 digital and 6 analog, control upto 18 servos”.
Here are my specific questions.

  1. the 12 3-hole pins near the right edge of the board (labeled 2 - 13) are 12 digital pins.
    The 6 servos can be directly plugged into any 6 of them. Correct? Are these digital pins?

  2. The 6 3-hole pins near the lower right corner (labeled 0 - 5, next to “Analog”).
    These are 6 analog pins. The potentiometers should be connected to them. Correct?
    I assume the lower row is GND, the middle row is 5V, and the top row is for signal. Correct?
    If this is correct, I don’t understand the jumpers at area 11. If the jumpers are put in there,
    then the signal pin for input 0 and 1 are occupied by the jumpers. Where the signal wire go?

  3. In area 12, there are 6 single hole pins (in a row, labeled 0 - 5).
    What are these? are they I/O pins? Are they digital or analog?
    If they are I/O pins, they are for signals?

In any case, I cannot get the correct count of “20 I/O pins. 14 digital and 6 analog”.
And, in addition to the 12 pins in item 1, where can other 6 servos be connected?

  1. A general question. Say I write schech for Botbaorduino, upload it to the board and it
    works correctly. Now I want the controller works independently without connected to a
    computer. What should I do?
    I guess I just power off the board, disconnect it from the computer.
    And once I turn on the power to the board, it will run the uploaded program immediately.
    Correct?

Thanks.

Roger

Hi and welcome. I will try to take a stab at some of your questions. As the description of this product mentions: “introducing the BotBoarduino, a mix of BotBoard II and Arduino Duemilanove…”. So you can gain a lot of information by looking at the Arduino documentation: arduino.cc/en/Main/ArduinoBoardDuemilanove The BotBoarduino has these same capabilities, plus an addition of some stuff like a power buss that allows you to plug servos directly to the board.

Yes these are digital pins. You can control them using the standard Arduino commands like: digitalWrite(2, HIGH);

Yes these are the Analog pins, A0-A5. You can choose to either have +5v or VS power the center pins. This is done by a Jumper just above and to the right of 11 on the diagram. You are right that if you leave the 2 jumpers in #11, A0 and A1 are taken. These connect up to the two power supplies (VS and VL) through a voltage divider (2 resisters one 10K the other 30K), such that you will receive 1/4 of the VS or VL voltage at the pin. This allows you to add code to optionally monitor your batteries and do something like turn off the servos if the voltage gets too low. We use the voltage dividers as you can never supply more than +5v to a pin or you can damage the board. So for example if you are using a 9V battery to power VL, this will drop the voltage to about 2.25 volts… If you are not interested in this or you need all 6 analog pins, you simply undo these jumpers and plug your own stuff in…

These are the 6 analog pins. But as with all Arduinos you can also use an Analog pin for Digital as well. Usually the easiest way is to use the predefined constants A0-A5:
digitalWrite(A0, LOW);

The other two digital pins 0 and 1 are connected to the USB port on the board. They don’t have 3 pin servo like connections as they are used for other things. They are actually connected to the area marked as #10 on the diagram…

That is correct.

Hope this helps and Good luck.
Kurt

Kurt:
Thank you so much for the quick reply. It helps a lot. Still a few more questions:

  1. So there are 14 digital pins (labeled by 0-13) on the right edge, and 6 analog pins
    (located at #11, they are called A0 - A5, right?). These count total 20 I/O pins. Correct?

  2. I can also connect servos to the pins A0-A5. (This would count the total 18 servos). Correct?

  3. You mentioned that the 6 single-hole pins located at #12 are also analog (I/O) pins.
    So the total number of I/O pins are 20+6 = 26?
    Can these pins be used the same way as the pins A0-A5?
    More importantly, what do I call them in the programs?
    The reason I am asking this: I already need all A0- A5 for 6 potentiometers for my project.
    If I need any additional analog input (it is quite possible), I must use these 6 pins.
    (When need to, I can use these pins in the same way as the A0- A5 pins, except that the
    other two wires of the input need to be connected to GND and power, correct?)

  4. A general question. I have been reading arduino.cc/ (otherwise, I would not be able to
    ask even these simple questions!). From what I learned, it seems that a digital I/O pin only has
    Low and High values. To drive a servo, the pin needs to provide numerical values.
    How can we use a digital pin to control a servo?

Thank you again.

Roger

  1. Yes
  2. Yes
  3. The single pin connectors near 6 pin near #12 and the single pins headers on top #19 are the same IO pins that are used in the 3 pin servo like pins that are on the right and bottom right of the board. That both pins labeled as 0 in the analog areas are the same pin (A0)
  4. Harder to answer easily… Yes digital pins only have two values on/off or high/low… Servos work by looking at pulses on an IO pin, where the pin goes high for a certain amount of time and then goes back low. The servo is controlled by how long the signal is high. On most RC servos you need to generate this pulse about every 20ms or about 50 times per second. There are several threads that give examples on how to do this. Also there is a library that takes care of it for you.

Kurt

Thanks again. I feel I start seeing the whole picture now.
So the pins near #12 and #19 are to be used with “shields” (which I still
need to learn). But if I do not use “shields and extensions”, I don’t need
to worry about these pins, right?
Also, there is no way to have more than 6 analog inputs, right?

Roger

If you need more analog inputs I would suggest reading up on analog multiplexors. The 74HC4051 is a very popular and reliable chip. Here’s the the page at the Arduino playground explaining the use of this chip: arduino.cc/playground/learning/4051