2011 in review

The WordPress.com stats helper monkeys prepared a 2011 annual report for this blog.

Here’s an excerpt:

The concert hall at the Syndey Opera House holds 2,700 people. This blog was viewed about 12,000 times in 2011. If it were a concert at Sydney Opera House, it would take about 4 sold-out performances for that many people to see it.

Click here to see the complete report.

Posted in Uncategorized | Leave a comment

The µBipedino(TM) robot kit

A couple of weeks ago I saw a nice video of kids playing with a tiny biped robot made by Easybotics. I contacted the owner and asked if I could create a similar robot based on an ATmega328 microcontroller that can be programmed in Arduino IDE, either directly in C, or, by using the ArduBlock tool, in a graphical manner, connecting blocks to write the program. He responded quickly saying that he has no problem with that, in fact, we could collaborate to build an Arduino compatible robot. After exchanging design ideas, we decided to go separate ways, as I wanted a simple robot board kit to be assembled by the customer or bought already ready assembled, and he wanted a more sophisticated board with a built in USB port and SMD parts. I started to prototype a robot and design the main board and today I have it ready for demos.

But first, let me introduce the µBipedino(TM) (pronounced micro-Biped-eeno) robot to you:

  • micro-biped using 2 servos per leg for walking and dancing
  • ATmega328 microcontroller at 3.3V, 8MHz with Arduino bootloader
  • runs on a 3.6V LiIon battery
  • built in charger with charging status LED (MAX1555)
  • high side switch to enable the power to the servos by the microcontroller
  • On/Off power switch with power status LED
  • dual IR proximity sensor (38kHz) to detect objects on the Left/Right/Center
  • trim-pots to adjust the IR LEDs light emitting level
  • removable head board with built in Buzzer and dual RGB LEDs
  • 4 extra connections for additional servos or sensors
  • programmable start/select button
  • keyed FTDI cable connector  for programming
  • board size: 5x5cm (2×2″)
  • robot size: 6x6x10.5cm (2.5×2.5×4″)

Want to see it? Here are the pictures:

  

  

   

And the schematic and the PCB design:

I expect to have kits in the store sometime mid-January, perhaps even sooner if all works well.

Oh, yeah, want to see it in action? There you go:

 

Posted in uBipedino | Tagged , , , , | 1 Comment

The Robot Builder’s R-duino V2

I finally got the boards in my hands and soldered and tested one board. It works as it is supposed to, but still has little things I want to fix in the next revision. Here are some pictures:

Highlights:

  • ATmega328P DIP28 package (yellow rectangle) mounted in a socket to be easy replaced
  • SN754410 dual H-bridge (purple rectangle) with 1A continuous current draw per motor (2A peak)
  • screw terminals for motor connection (green squares)
  • correct hole placements and female headers to fit the Arduino Diecimila perfectly
  • extended the board on the left side so the sensor and servo connectors do not interfere with any shieds
  • replaced the bulky 220uF capacitors with lower profile 100uF capacitors so they fit under the shields
  • installed the 5V 3A voltage regulator flat on the board with the hole aligned to the mounting hole of the board (red square at the top of the board)
  • a 3.3V 250mA voltage regulator to power off sensors that need that voltage (pink square at the bottom of the board)
  • added a second power switch for the motors and servos (brown rectangle at the top of the board)
  • 6 connectors for servos (top left corner), with Ground (black), Voltage (orange), Signal (yellow) pins
  • 6 connectors for sensors (bottom left corner), with Ground (black), 5V (red), Signal (yellow) pins
  • jumper J1 to select the power for the servo connectors either 5V (shunt in red rectangle position) or battery voltage (shunt in orange rectangle position)
  • jumpers J2 and J3 to select the control mode for the motors, either 2 signal pins (shunt in black rectangle positions) or 3 signal pins per motor (shunt in grey rectangle positions) with the loss of 2 control pins for servos
  • relocated the reset button (light green rectangle) to the upper right corner, close to the edge of the board
  • ISP header for hardware programmer (blue rectangle)
  • relocated FTDI header (dark blue rectangle) at 90 degree for easy access from under a shield
  • doubled the female headers with male headers perfectly spaced so you can build your own shield from a perf board or use wire jumpers for custom connections

Lowlights:

  • the electronics power switch is hard to flip when under a shield
  • the motor power switch does not fit between the jumper and voltage regulator on the board, I had to solder it sideways, but it may be a good thing. I will look into sourcing 90 degree switches
  • the 3.3V regulator has to be mounted in reverse, wrong pad connections in Eagle

I guess third time is the charm, so the next revision of the board will have these issues fixed. Until then, look at how nicely the board fits my Compact robot:

Of course, I added the kit to the store here and have updated the Assembly Guide that you can download here.

Posted in Arduino | Leave a comment

Using RCX Lego sensors with Arduino

Looking at what search terms people used to get to my blog, I found that people are looking to find a way to use old Lego sensors (from the RIS kit) with Arduino. It is very simple.

1. Hardware. You need to cut a Lego cable (not the one connected to the sensor, use an extension cable) in 2 and use each half to connect a sensor to Arduino. Split the cable in 2 wires, solder a male pin to each wire and plug one wire in a GND pin and the other wire in any available analog pin, let’s say A0.

2. Software. You need to set the pin as Output and High for about 10 milliseconds for the sensor capacitor to charge, then set the pin back to Input and do a analog reading. Remember, when you set an analog pin to Output you need to use the equivalent digital pin mapping, not the analog channel! Use the reading as raw value (0-1024) or convert it to percent by using the map command. Here is a sample code:

#define legoSensorPin 14 // digital pin D14 is analog pin A0
#define legoSensor 0 // this time we define the analog channel

void setup(){
  Serial.begin(9600);
  Serial.println("Start");
}

void loop(){
  int raw=ReadLegoSensor(); // we read the raw value of the sensor
  Serial.print("Raw value: ");
  Serial.println(raw); // and print it to the monitor
  byte percent=map(raw, 0, 1024, 0, 100); // we convert raw to percent
  Serial.print("Percent value: ");
  Serial.println(percent); // and print it to the monitor
}

int ReadLegoSensor(){
  pinMode(legoSensorPin, OUTPUT); //set pin as output
  digitalWrite(legoSensorPin, HIGH); //set output high
  delay(10); // wait a bit
  pinMode(legoSensorPin, INPUT); //set pin as input
  int value=analogRead(legoSensor); //read the input
  return value; //return the raw value
}

That’s it! I hope someone will find this useful!

Posted in Uncategorized | Leave a comment

Wrong use of Arduino name

I was told that the Arduino name is trademarked so I can’t use it without paying a license and have the written approval from the Arduino team. I mistakenly thought that if the word Arduino is used in conjunction with other words is ok. So I have changed the name of the board to Robot Builder’s R-duino. I will order new boards with this name and also with a few other improvements in the following week. Until I get them in stock, no kit will be sold that contains boards that wrongfully use the Arduino name.

Apologies to the Arduino team and thanks for understanding.

Posted in Uncategorized | 2 Comments

The RBA kit is in the store!

I finally had time to finish up the assembly guide for the RBA kit. Phew!

One big observation: the first batch of 10 boards have the Tx and Rx pins not swapped, so if you plug in the FTDI cable the board can’t be programmed. For this reason, the first 10 customers will receive for free an adapter that swaps the pins. All you need to do is plug the adapter into your FDTI board or cable, then plug the female part of the adapter into the RBA board. This bug will be corrected in the next batch.

Here is a picture of the assembled board:

And here is my LMR Start Here Robot with the RBA on it:

Posted in Uncategorized | Leave a comment

The Robot Builder’s R-duino

I’ve been asked, even though there are plenty of similar products out there, to make a board that combines the Robot Builder’s Shield with the Arduino. Make it the same footprint as a regular Arduino board, but keep the same features of the RBS. I said, why not use the µBotino? Well, because is not shield compatible. People want to add other shields, like a color LCD shield, or an xBee shield. So I started to fiddle around and see if I can cram everything I wanted on the same board using TH (through hole) components. Not everything I wanted got there, but most of the stuff made it. Sure, I want a board that satisfies all needs, but that would make it bigger (and there are plenty out there like that) or use SMD. So here is what I got done:

Features:

  • same size as a regular Arduino board, with 3 mounting holes,
  • 6 servo connectors (selectable power – J1, digital pins 8-13),
  • 6 sensor connectors (regulated 5V, all analog pins),
  • a SN754410 H-bridge (1 amp per motor, digital pins 4-7, uses Timer0 for PWM),
  • screw connectors for motors,
  • pins 2 and 3 (external interrupts) available for encoders,
  • a FTDI connector (to program the board using a USB-serial cable),
  • a ISP connector (to program the board using a hardware prorgammer),
  • polarized Molex connector for the battery (4.5-12V, no more than 6V if you use servos),
  • 3A LDO voltage regulator,
  • reset button,
  • pin D13 LED,
  • power LED,
  • power switch,
  • all Arduino female pins are doubled with male pins, arranged to allow easy prototyping shields,
  • filtering caps near the sensor and servo 3 pin connectors.

J1 is to select power to the servos, either regulated 5V or directly from the battery.
J2 and J3 are to select the motor control mode, either 2 pin mode (Enable High, one Dir for PWM and the other for direction) or 3 pin mode (PWM on Enable, 2 direction pins). In 3 pin mode, 2 I/O pins allocated for servos are routed to the motors, so you end up with 4 servo connectors available. The LED on D13 has no selecting jumper, so it will flicker when a servo is connected to the same pin.

One more thing, the board does not have a 3.3V regulator, so even though the 3.3V pins are in place, they are not connected to anything and do not provide power for other shields. I don’t think I can cram in a TO92 regulator in there…

Here are the pictures of the PCB layout and the schematic, the blue is the bottom copper -GND plane, the red is the top copper – 5V plane. Round pins are male, oval pins are female (click for a larger image):

  
I have ordered 10 boards at SeeedStudio, they should arrive in about 3 weeks. The parts should arrive sooner, but after Canada Post’s strike, mail is backed up and it seems forever until… oh, the parts come by FedEx, never mind… Yeah… Can’t wait to test one!
Posted in Arduino | Tagged , , , | Leave a comment

Version 3 of the boards and kits is in the store!

After a few days of hard work, taking pictures and writing the new assembly and usage guides, a bit of testing and adapting the code for the new features of the RBS, the products are in the store. Now I can focus on the other projects…

Pictures of the assembled boards:

 

You can find the guides on the Downloads page from my store: http://robotxdesigns.ca/

Posted in Arduino | Leave a comment

The new boards are in!

I have received today the third version of the Robot Builder’s Shield and the µBotino controller from PCBcart. They look as good as the second version and so far I did not discovered any mistakes (silk screen related or miss placed holes…). The DPDT switch part I designed in Eagle came out good and the switch fits perfectly in the holes. So far, it’s all good. I have to assemble a board (of each) and test it out on a robot before I put them in the webstore. Also, I am still waiting for the long leads female headers for the shield and a big bundle of male header pins, probably during the following week they’ll be here. So, just a wee bit of waiting and you can get them!

Here are some pictures:

 

And here I put some parts on the µBotino board to see how the changes look like:

 

The µServotino is next, I was just waiting for confirmation that the power switch fits perfectly, didn’t want to order more boards and have problems. These boards will come from Seeed Studio this time and they will have white silk screen, as they offer black silk screen only for white boards. Sorry for the delay, but I don’t want to get bad boards.

Posted in Arduino | Leave a comment

Almost out of stock!

I have only 1 RBS v2 in stock and 3 µBotino v2. I have ordered new boards, but it will take about a month to get here from China. But the new boards will have some improvements:

The Robot Builder’s Shield V3:
- added jumpers for the user to set the control mode for the motors, either 2 pin mode like the previous version, or standard 3 pin mode, at the expense of losing 2 servo pins

Schematic and board:

 

The µBotino V3:
- replaced the SPDT power switch with a DPDT switch so the servos and motors do not get power that leaks through the voltage regulator when powered through the FTDI cable
- repositioned parts on the board, mainly swapping power connector with power switch positions, moved J2 near J1
- added 2 pin header for optional different servo power than for the motors, remove J1 if used
- moved some silk screen text to be easier to understand the pin name/number for the lower part of the board

Schematic and board:

 

Things that were too difficult (or impossible in the current format) to do:

The RBS V3:
- could not separate the power for the motors from the power for the servos
- did not add a LDO V-reg to replace the Arduino 7805, if one needs it, can do it in the prototyping area

The µBotino V3:
- did not have enough space to add motor control mode selection jumpers like I did to the RBS V3

All things considered, I think I’m at the last version of these boards, no more modifications, unless some stupid error comes through. I hope not… Now it’s µServotino’s turn to get a new version.

Posted in Arduino | Leave a comment