Meet the new family members

May I introduce you to the new family members: Farrusco v2.5, and Farrusco Junior.

Farrusco v2 is the new generation of my first robot Farrusco.
The F2 was created with Filipe Valpereiro from InMotion.pt, and this was the robot used for the last robotics workshops season.

The F2.5 version has a cleaner design, we are using two modified servos to work as DC motors as you can see in this tutorial, the motor driver is an ardumoto, and soon I will upload more photos with new addons.

Farrusco Junior is another iteration, he has two modified servos and a small chassis. The modified servos operate as normal servos but they rotate 360º continuously, and you can learn howto hack them watching this video tutorial (in portuguese).
This robot is still a work in progress, and I will upload new pics soon.

All the components were sponsored by InMotion.pt.

Arduino Sound Sensor

Finally I have some time to continue with this investigation and great improvements were achieved with the circuit provided by Ant:  http://www.rev-ed.co.uk/docs/picaxe_sound.pdf

First here are the photos deleted by mistake from flickr:

Headsets microphones

Electrec thingey inside.

The circuit

This is a closeup of the circuit, I´ve added a 10uF capacitor to stabilize the output signal (it´s the green cap on the right).

The problem here is that I can´t imagine myself soldering all this components onto a pcb, I would like to have at least two of these, four would be awesome.

Click the following button to see source code for Arduino and Processing

/* ****************************************************

Arduino Code

**************************************************** */

int analogValue;
int val;

void setup()
{
// start serial port at 9600 bps:
Serial.begin(9600);

}

void loop()
{
// read analog input
analogValue = analogRead(0);

// send values to processing
Serial.println(analogValue, DEC);

// pause for 10 milliseconds:
delay(10);

}

/* ****************************************************

Processing Code

**************************************************** */

// import the Processing serial library
import processing.serial.*;

// declare a font variable
PFont font48;

int linefeed = 10; // Linefeed in ASCII
Serial myPort; // The serial port

// value recieved from the serialport / arduino
int sensorValue;

// mapped value
float sensorValueMap;

// – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – Setup

void setup() {
myPort = new Serial(this, Serial.list()[0], 9600);

// read bytes into a buffer until you get a linefeed (ASCII 10):
myPort.bufferUntil(linefeed);

size (800, 600);
background (0);
//smooth();

// you need to have this font in your machine, if not go to
// Tools – Creat Font – and create your own font
font48 = loadFont(“alask_48.vlw”);

textFont(font48);

}

// – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – Serial Event

void serialEvent(Serial myPort) {
// read the serial buffer:
String myString = myPort.readStringUntil(linefeed);

// if you got any bytes other than the linefeed:
if (myString != null) {

myString = trim(myString);
//println(myString);
// split the string at the commas
// and convert the sections into integers:
int sensors[] = int(split(myString, ‘,’));

// print out the values you got:
for (int sensorNum = 0; sensorNum < sensors.length; sensorNum++) {
//print(“Sensor ” + sensorNum + “: ” + sensors[sensorNum] + “\n”);

// sensor
sensorValue = sensors[0];
//sensorValueSmooth = sensors[1];

}
}
}

// – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – Draw

void draw() {

// set the black backgrounf
background(0);

// run the displayText() function
displayText();

// map the recieved values
sensorValueMap = map(sensorValue, 0, 1024, 0, 800);

// draw a rectangle based on the variable sensorValueMap
rect (0, 100, width, sensorValueMap);
}

// – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – Display Text

void displayText() {

text(“Sensor Value”, 20, 80);
text(sensorValue, 450, 80);

}

// – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – Save image

void keyPressed(){
if(key==’s’)
saveFrame(“sound-######.png”);
}

Robot Fácil com Arduino – 1ª Parte

ENGLISH VERSION

Actualização:

Aqui vai a tradução à muito esperada deste tutorial, espero que vos seja útil.

Decidi remover a Ponte-H, o motor agora está directamente ligado às pilhas AA e o Arduino é alimentado por uma pilha de 9V. Este pequeno robot apenas anda em frente (para já).

Na 2ª parte vou adiccionar a Ponte-H e dois botões Bump. Assim o nosso pequeno robot poderá evitar obstáculos mudando de direcção.

————————————————————

Olá! E bem-vindos(as) ao tutorial Primeiro Robot com Arduino 1ª Parte !
Convém ler esta informação antes, menciona a importância de documentar o vosso processo criativo, e o processo de construção do vosso robot. Assim vocês poderão um dia mais tarde recordar o que fizeram e outros também podem vir a aprender com a vossa experiência.

Índice:

1 – Introdução
2 – Antes de começar
3 – Lista de componentes
4 – Olá Hardware!
5 – Processo de construção
5.1 – Primeiro carro
5.2 – Segundo carro
5.3 – Motor servo e rodas da frente
5.4 – Baterias
5.5 – O Circuito
5.6 – O servo
5.7 – Sensor LDR (Light Dependant Resistor) – Fotoresistência
6 – Programação

—————————————————

1 – Introdução

Neste tutorial verás que não precisas ser nenhum guru electrónico ou um super engenheiro para fazeres um robot simples e divertido.

Este robot não terá nenhum sensor de ultrasons ou infra-vermelho.

Que vai este robot fazer?..  poderás tu perguntar..
Este robot será um procurador da Luz!!

Se decidires seguir este tutorial, deverás estár mais ou menos familiarizado com uma breadboard, com ferro de soldar e se possível saber usar uma pistola de cola quente.

————————————————–

2 – Antes de começar

————-

Alguma vez usaste uma BREADBOARD, também conhecida como Placa de Ensaios ?

Tens aqui um tutorial simples de como funciona:
http://letsmakerobots.com/node/596

————-

Na secção 4 vou mostrar como se lê entradas analógicas e como trabalhar com um motor servo, mas..

Se não sabes:
–    como fazer piscar um LED;
–    ler e interpretar uma entrada analógica, por exemplo ligada a um potenciómetro;
–    usar o comando Serial;
–    entender os principio básicos de OOP (Object Oriented Program).

Aconselho uma visita aos seguintes links:

Getting Started with Arduino

Estes tutorials são muito acessíveis:

http://itp.nyu.edu/physcomp/Tutorials/Tutorials

http://todbot.com/blog/bionicarduino/
http://todbot.com/blog/spookyarduino/

NOTA:

Dá sempre um passo a seguir ao outro. Sempre que montas algo testa o que fizeste, e se for bem sucessido passa para o próximo passo.
Esta é uma boa prática e faz com que poupes tempo e paciência preciosos.

—————————————————

3 – Lista de componentes:

Componentes gerais:

1 Arduino Diecimila ou Duemilanove
1 Breadboard (placa de ensaios)
1 Servo
2 LDR (Light Dependant Resistance)
2 Resistências 10k
2 Botões On / off
5 – Resistências de 1 Ohm  (isto vai depender da potência do motor do teu carro)
Fios condutores (coloridos se possivel)

Components customizáveis::

Baterias – vai depender das necessidades do teu motor

Eu vou usar:

1 pilha de 9V com ligação ao Arduino
3 AA NiMh para alimentar o motor

————

Escolhi usar brinquedos em vez de components pré-feitas. É mais rápido obtê-los são baratos e é divertido usá-los para fins diferentes dos quais foram concebidos. A outra razão é que aumenta a tua capacidade criativa e habituaste a procurar soluções onde aparentemente não existem.

————

Numa loja de produtos chineses encontram-se imensos brinquedos baratos que esperam por ser vandalizados  :]

Este carrinho foi 5€ e vou usá-lo como plataforma e chassis

Este carrinho foi 2€ e vou usar as rodas da frente apenas para a direcção.

——————————————————–

4 – Olá Hardware:

LDR – Light Dependant Resistors – Fotoresistências

Esta parte é para iniciantes em Arduino, vou mostrar sucintamente como se move um motor servo e como se lê entradas analógicas ligadas às fotoresistências (LDR).

This part is for beginners in Arduino, I will show briefly how to move a servo, and read analog inputs through LDR´s.

———–

Ler entrada analógica ligada ao LDR:

O LDR pode ser montado em qualquer direcção, isto significa que não tem polaridade ( + ou – ). O mesmo acontece com as resistências.

LDR

Segue esta imagem, e puxa um fio para a entrada analógica no Arduino.

LDR CODE

———–

Agora para o Servo:

Antes de usares o código para o servo, precisas de instalar a livraria Servotimer1. Do ficheiro ZIP extraí o seu conteúdo para a pasta hardware/libraries dentro da pasta do Arduino. Reinicia o software do Arduino.

Puxa o frio Preto que vem do servo e liga à linha preta na breadboard, o fio Vermelho liga à linha vermelha na breadboard, e o fio Amarelo ao pin digital 9 no Arduino.

Puxa mais dois fios e liga os 5V no Arduino à linha Vermelha na Breadboard, e o GND no Arduino à linha preta na Breadboard.

O Arduino vai ser alimentado pelo cabo USB.

SERVO CODE


Agora que estás mais familiarizado com bites e bytes do Arduino, VAMOS DAR INÍCIO À FESTA  :D

———————————————————

5 – Processo de Montagem

5.1 – Primeiro Carro

Desmonta o carro que vai ser a plataforma e chassis aos components e ao sistema de tracção, ou seja, remove todas as partes excepto as rodas de trás e o seu motor.

Solda um fio a cada um dos pins do motor.

Também soldei um fio preto ao Ground e um fio vermelho à botão on/off que liga à caixa das pilhas.

Esta foi a primeira e última vez que viste solda neste tutorial. :)

———–

5.2 – Segundo Carro

Outro pequeno carrito foi vandalizado, desta vez vou usar as rodas da frente para a direcção.

———–

5.3 – Motor Servo e Rodas da Frente:

Colei as rodas ao Servo, não está um trabalho bonito eu sei.. tenta centrar as rodas o melhor que puderes em relação ao servo.

Depois usei cola quente para colar o servo ao chassis.

ATENÇÃO: Certifica-te que ambas as rodas tocam no chão ou então terás problemas.


A roda da esquerda não toca no chão = PROBLEMA


Ambas as rodas tocam no chão = Problema resolvido       : ]

———–

5.4 – Batterias

Tive sorte com este pequeno carrito. A pilha de 9V encaixa perfeitamente dentro do chassis, e posso usar o compatimento das 3 pilhas AA, e assim poupo espaço para a breadboard no topo do chassis.


———–

5.5 – O circuito

O Arduino é alimentado através da pilha de 9V.
Os fios preto e vermelho ligam o Ground e os 5V do Arduino às filas principais da breadboard.

Agora liga o fio vermelho que vem das baterias AA a uma coluna na breadboard.

Agora eu estou a usar cinco resistências de 1 ohm entre o motor e as 3 baterias AA.

Estas resistências são de baixa intensidade mas são suficientes para reduzir a rotação do motor, o suficiente para este não queimar.

Eu podia usar apenas uma resistência de 5 ohm, mas se usar cinco resistências de 1 ohm tenho mais precisão na velocidade do meu motor. Neste caso se eu quizer aumentar ou reduzir a potência só terei que adiccionar ou remover uma resistência.

Assim o motor não queima e consigo obter uma boa relação velocidade / potência

Nota que o fio do Ground está ligado a outra fileira na breadboard.

À fileira do ground ligo um fio que vai para o motor, à fileira da última resistência ligo o outro fio do motor.

Liga o botão on/off das baterias AA e vê se o motor funciona e se tem força suficiente para mover o teu carrito futuro robot.

———–

5.6 – O Servo

Liga o Servo à breadboard.

Pega em dois fios e liga o vermelho e o preto do servo às fileiras principais na breadboard.
Pega noutro fio e liga o amarelo ao pin digital 9 no Arduino.

———–

5.7 – LDR – Fotoresistências

Último passo

Monta o LDR e as resistências, estes não têm + nem -, por isso podes montá-los em qualquer direcção.


Os fios verdes ligam aos pins analógicos no Arduino 4 e 5.

——————

(testa os LDR como fizeste anteriormente)

Este é o aspecto final do circuito.
Ok, todos os passos físicos estão feitos, agora só falta fazer upload da programação para o Arduino.

———————————————————

6 – Programação!!!

Robot Program

——————————————————-

Fiz umas antenas para os LDR, assim as variações de luz são mais evidentes para o comportamento do nosso robot.

——————————————————-

———————————————————

Espero que este tutorial vos tenha sido útil! E espero também ver os vossos robots em breve.   ;)

———————————————————
———————————————————
———————————————————
5 . Fev . 2009

Só para dizer que já não vai mais haver Part 2.

Eu cheguei a completá-la, mas as os fios e as ligações são tantas, e o resultado final é muito fraquinho..

aqui ficam os meus pedidos de desculpa para aqueles que ficaram à espera, no entanto a intenção foi boa..  :)

3256087317_304c5a6ce7.jpg?v=0

3256917228_e245c527c4.jpg?v=0

Radar Simulator

Few days ago I started wondering how could I make a Radar Simulator with Processing.
I have already placed an ultrasound range finder on a servo motor and sent its data into the radar program, one video will be posted soon.

Now I want to have my wireless communication module setup complete and working on a robot, and I can have the sensor data being displayed on a screen as the robots move around the space. This will be a visual reference of the robot perception, it is also a good exercise of physical computing.

This applet simulates the sensor data through the Y mouse coordinate, have fun :]

Easy Arduino Robot Tutorial – Part I

VERSÃO EM PORTUGUÊS

UPDATE: I decided to remove the H-Bridge part, now the motors are directly connected to the AA batteries, and the Arduino is connected to the 9V battery. This little bot will move only forward.

In Part II, I will add an H-Bridge and two SPDT Bump Switches. The robot will move in both directions and avoid obstacles.

————————————————————

Hi! And Welcome to the Easy Arduino Robot Tutorial – Part I !!
For your own sake read this before you move further : ]

Index:

1 – Introduction
2 – Before Start
3 – Parts List
4 – Hello Hardware!
5 – Assemble Process
5.1 – First Car
5.2 – Second Car
5.3 – Servo and front wheels
5.4 – Batteries
5.5 – The Circuit
5.6 – The Servo
5.7 – LDR
6 – Program!!!

—————————————————

1 – Introduction

In this tutorial you will see that you don´t have to be an electronic guru, or a super skilled programmer to make a simple, easy and funny robot.

It won´t have any IR sensor or ultrasonic.

So what will this robot do.. you may ask..
It will be an insane light seeker!!

If you decide to follow this tutorial, at least you should be able to use a breadboard, and if possible to do a little solder, and a bit of hot glue.

————————————————–

2 – Before Start

————-

Have you ever used one BREADBOARD ?

Here you have a nice tutorial and explanation on the way it works:
http://letsmakerobots.com/node/596

————-


In section 4 I will show you how to read analog inputs and how to make one servo move but..

If you don´t know:
–    how to blink a LED;
–    read a potenciomenter analog input;
–    use the Serial command;
–    understand the basics of OOP (Object Oriented Program).

I suggest you to visit this link:

Getting Started with Arduino

Here is a nice set of tutorials:

http://itp.nyu.edu/physcomp/Tutorials/Tutorials

http://todbot.com/blog/bionicarduino/
http://todbot.com/blog/spookyarduino/

NOTE:
Always take one step at a time. Every time you assemble something test it, and if you are successful, move on to the next step.
This is a good practice, and it will make you save precious time and patience.

—————————————————

3 – Parts list:

Generic parts:

1 Arduino Diemicila
1 Breadboard
1 Servo
2 LDR (Light Dependant Resistance)
2 10k resistors
2 On / off switchs
5 – 1 Ohm resistor (this will depend on your motor power)
Prototype Wires (colored if possible)

Customizable parts:

Batteries – it depends on your motors needs

I will use:

1 9V battery  with power plug to connect to the Arduino
3 AA NiMh to power the motor

————

I choose to use toys instead of premade parts. It is faster to get them and they are also cheap, and fun to work with. Besides, it enhances your criativity and you get used to be a solution finder.

————

In 1 Euro stores, or chinese stores you can find lots of cheap toys, waiting to be vandalized!  : )

This one was 5€ and I will use its chassis as a platform

This little car was 2€ and I will use its front wheels for steering.

——————————————————–

4 – Hello Hardware:

LDR – Light Dependant Resistors

This part is for beginners in Arduino, I will show briefly how to move a servo, and read analog inputs through LDR´s.

———–

Reading LDR analog inputs:

The LDR can be placed in either way and so do the resistors. This means they don´t have a + or – .

Take one wire and connect into one Arduino Analog Pin of your choice

LDR CODE

———–

Now for the Servo:

Before you use the servo code, you must install Servotimer1 library. Unpack it into your hardware/libraries folder to add the library. Then restart the Arduino Software.

Take the black wire that comes from the servo and plug it into the black line on the breadboard, the Red wire into the red line on the breadboard, and the Yellow wire into the Arduino pin 9.

Take two more wires and connect the 5V on the Arduino into the red line on the breadboard and the GND on the Arduino into the black line on the breadboard.

The Arduino can be powered from USB cable.

SERVO CODE

Now that you are more familiar with Arduino bits and bytes, LET THE FUN BEGIN   :D

———————————————————

5 – Assemble Process

5.1 – First Car

Disassemble the car which will provide platform for components and also traction system, and remove all the parts except the rear wheels and the motor.

Solder two cables to the motor pins.

Also soldered one black wire to the Ground pin on the battery case and one red wire to the power switch.

This was the first and the last time you see soldering in this tutorial.     :)

———–

5.2 – Second Car

Another little car was vandalized, this time I will use the front wheels to have the steerings.

———–

5.3 – Servo and Front Wheels:

This is not a very pretty glue work i know..  try to center the wheels the best you can.

Next, I used hot glue to place the servo next to the chassis.

ATTENTION: Certify that both wheels touch the ground when turning, otherwise you might have problems.

Left wheel doens´t touch the ground = PROBLEM

Both wheels touch the ground = Problem solved      : ]

———–

5.4 – Batteries

I was lucky with this little car. The 9V battery fits perfectly inside the chassis,  and I can use the 3 AA batteries case, and save space to put the breadboard on the top.


———–

5.5 – The Circuit

The Arduino is plugged from the 9V battery.
Red and black wires connect the 5V and Ground from the Arduino to the breadboard main row´s.

Now connect the Red wire from the AA batts into one row of the breadboard

Next, I will use five resistor´s of 1 ohm between the motor and the 3 AA batts.

This is low value resistors, each one of this resistors will make the motor go slower.

I could use only one resistor of 5 ohms, but using five of 1 ohm, I can have better control on the motor power.

If I want less or more motor power, I will remove or add another 1 ohm resistor.

This way the motor won´t burn out and it still has got a good speed.

Note the Ground wire is connected to another row.

And this way I connect the motor wires. Turn on the power and see if it moves forward and if has enough power to drive your robot.

———–

5.6 – The Servo

Connect the Servo to the breadboard.

Grab two wires and connect them into the breadboard main row´s 5V and Ground.
Grab another wire and connect the Servo Signal wire into Digital Pin 9 on the Arduino.

———–

5.7 – LDR

Final step:

Place the LDR and resistors, they don´t have + or -. So you can place them in any direction.


The green wires to connect them into the Arduino Analog Input Pins 4 and 5.

——————

( test the LDR as you did before)

This is the final look of our circuit.
Every physical steps are done! So now let´s upload some code into the Arduino.

———————————————————

6 – Program!!!

Robot Program

——————————————————-


I´ve made the LDR antennas longer so it can be more sensitive to light variations.

——————————————————-

———————————————————

I hope you find this tutorial useful!!  And I hope to see your Arduino robots posted soon  ;)

———————————————————
———————————————————
———————————————————

5 . Feb . 2009

just to say there won´t be any part I, I apologize for this.

I´ve done it, but its a bit wacky, too many wires and connections just to achieve a stupid goal… it was a good intention though..

sorry mates

3256087317_304c5a6ce7.jpg?v=0

3256917228_e245c527c4.jpg?v=0