Let's Make Robots!

Cosma - Prototype 3

Reports from near space

This is the third prototype of Cosma. It is WIP. Nevertheless I thought I share my progress with you...

1. Shield design

The MCU of the robot is an Arduino Mega. I designed a shield for the board, using Fritzing. The shield contains Micro SD card socket, voltage level shifter HEF4050 for the SD card, MPU 6050 (6 DOF accelerometer/gyroscope), I2C voltage level shifter for the MPU 6050 based on BSS138 N-channel MOSFETs, DS1307 based RTC with backup Lithium coin cell battery, connectors for DS18B20 temperture sensor, 4 FSRs, 2 analog sound sensors, ArduEye and EMIC-2, 1.5A LDO (L4940D2T5) for servos, 1.5A LDO (L4940D2T5) for 5V devices and 400mA LDO (MIC2920) for 3.3V devices.

The shield is manufactured by the Fritzing Fab. The shield would have been easily manufactured by a Chinese PCB fab, but I wanted to support these guys in Germany with an order, and the quality of the PCB is outstanding.

To populate the board wasn't a big issue, using my SMD rework station. The only problem was to solder the D2PAK voltage regulator tabs onto the pads. I needed to reflow them with the hot air device of the rework station and overheated the first batch, which led to an internal short-circuit of the voltage regulators between GND and Vin. I discovered the short-circuit after I connected a battery and the battery started to produce magic smoke. After I reflowed the second batch, I firstly measured the resistance between Vin and GND and Vout and GND before I connected a battery to check if the voltage regulators were working properly.


2. Linksprite jpeg color TTL camera

During its journey the robot is able to take snapshots and store the pictures on its micro SD card. I am using the LS Y201 TTL camera from linksprite and the adafruit library. The camera's serial data pins are 3.3V logic, so a voltage divider is needed on the camera's RX pin:

3. TCS3200 based light sensor

The second eye of the robot is a TCS3200 based color sensor. You may ask, what the intention of a color sensor on a spacebot is...Well, the TCS3200 senses the ambient light and measures the excitation purity. The image below shows the sensor with wide-angle lens (I have desoldered the 4 white LED's in the meantime as they are not needed).

As the FreqCount Library only supports one pin as a frequency input pin and dissables other pins to use analogWrite(), I am using  pulseIn() to measure the output frequencies of the color sensor.

The Duty Cycle D is defined as:


τ: pulse duration

T: pulse period

The frequency f is defined as:

The output of the color sensor is a square wave (50% duty cycle) with frequency directly proportional to light intensity. If the pulse duration and the duty cycle are given, the frequency is then computed by:

Because D = ½:

The pulseIn()-function returns the pulse duration τ in microseconds. 1 µs = 10-6 s. The frequency in kHz is therefore computed by:

The pulseIn()-function works on pulses from 10 microseconds to 3 minutes in length, so the highest frequency we can measure is 50 kHz with a duty cycle of 50%.

Accordingly we have to set S0 = L and S1 = H to get an output frequency scaling of 2%.

The minimum output frequency is then 10 kHz and typical 12 kHz.


4. Mechanical construction

The upper body of the robot is a Lynxmotion Humanoid Biped Torso, made of polycarbonate. I covered the two triangular cut-outs with 2mm ABS sheets,  soldered carefully wires on the FSR pins and glued the FSRs in place. This time I wanted to use 2 component casting silicone to imitate flesh and skin, but failed. The silicone cured not equally and shrinked on the corners.

I used then ordinary silicone sealant to model Cosma's thorax and finally covered her bareness with a piece of fabric (from a activated carbon fiber indoor odor remover), laminated onto the polycarbonate with cyanoacrylate.

Next I needed a mounting plate to attach the Arduino Mega and the shield piggyback to Cosma's torso. I manufactured it from 1.5mm aluminium sheet:

Now I was able to assemble the torso, including the pan/tilt unit for the head.

Finally I needed a mounting plate to attach the cameras and sound sensors to the pan/tilt unit. Again manufactured  from 1.5mm aluminium sheet:

Mounted sound sensors:

Mounted cameras:

Cosma wired front:

Cosma wired side:

Cosma wired back:

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Nice build. Looks great.

Great work as usual.  This is beautiful.

she(?) is pretty awesome! thank you very much for sharing this with us!

Thanks, bdk6, metal & mintvelt.

And yes, the robot is definetely female, but isn't that obviously? :D

That's a masterpiece Markus. The clothing is the eye catcher ;-)


I like the head very much. Very impressive sir....

Thanks Vis & Lumi

Thanks, Dickel, RTGRVNSSLT & JerZ!

Nice clean work as usual Markus!  I really like the look quite a bit although bare-breasted would have been fine :)

And good for you using Fritzing. Seems Fritzing gets a lot of flak for being amateurish so it's great seeing some top shelf work being done with it!

Max is responsible for the bare-breasted things :P

I would not call Fritzing amateurish. I have seen many messed up Eagle or KiCad boards, which I would call amateurish. An EDA software is only as good as the user. Fritzing is simple, has some nice features but also restrictions. I can recommand it if you want to layout a simple double sided PCB or Arduino shield.