ROBOPHILO IR CODES

From RoboBrothers.com (Livermore, CA) came the first sub US$400 humanoid robot kit to appear late 2007
5 postsPage 1 of 1
5 postsPage 1 of 1

ROBOPHILO IR CODES

Post by hugobiwan » Thu Sep 22, 2011 9:03 pm

Post by hugobiwan
Thu Sep 22, 2011 9:03 pm

Hello from France.

I am a newbie in robotic and just had my robophilo.

My project is very simple : make a little autonomous robot with the great motions of the robophilo.

I am going to use the same method i did with the robosapien using arduino :

- let the original robophilo microcontroller take care of the internal controls in the robot (especially driving the servos)
- program the motions with the provided GUI (easy to use and offers many many motions to remap on the IR remote).
- giving orders to the robot using an arduino board, reacting to sensors, on the robot.

The first step is to understand how the orders are given to the robot by the different I/O I can see, without having to buy the SDK :

- RJ11/232 using serial in the back of the robophilo
- IR receiver
- I/O pins on the PCB.

The most easy is to use the IR receiver, so i dont take any risk for the robot.
I tried to use a USB_UIRT universal receiver to catch the remote codes. I got codes, but it was impossible to send them back with success and to obtain a reaction of the robot.

So i built the multi-protocol transmitter/receiver of Ken Shirriff, that can be made with just one IR led and one resistor on an arduino board, soldering wires on the robophilo IR receiver to catch the codes of the remote, and define the protocol. Look here :http://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html

Yesterday, i had a result and now i just try successfully to send back a code corresponding to key2 on the remote to the robophilo.

Before coding an arduino sketch making me able to add some sensors on the robot and drive hit using the arduino on its back, i share with you the codes i found. Please try them and tell me if all are working. I made an arduino sketch that makes me think that each code must be sent 3 times with a delay of about 10 ms. I am going to verify that tonight.

The robophilo IR codes seems to be in SONY fomat (12 bits/sent 3 times per code).

codes IR robophilo :

key1 : 7DF
Key2 : FDF
Key3 : 57F
Key4 : D7F
Key5 : 37F
Key6 : B7F
Key7 : 77F
Key8 : F7F
Key9 : FF
Key10 : 5FF
Key11 : DFF
Key12 : 3FF

enter : 6DF

walkforward : DF

walkbackward : 9DF

left : ADF
right : EDF

turn 30 right : 2DF
turn 30 left : 4DF

1 : 65F
2 : E5F
3 : 15F
4 : 95F
5 : 55F
6 : D5F
7 : 35F
8 : B5F
9 : 75F
0 : DF

Power servos : 45F

repeat : 5F

setup :3DF

back-up : 5DF
back down :BDF

front-up : 1DF
front-down :DDF

To send the IR codes i use IR Library for arduino, an arduino board and about 5 euros of components. All arduino sketches, and the way to build an instant IR catcher/sender are here : http://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html

With the library, in the arduino sketch it is simple like :

for (int i = 0; i < 3; i++) {
//0x + code = hexadecimal - second variable = number of bits
irsend.sendSony(0xFDF, 12); // code key2
delay(b);
}

I tried with incremental values for the delay and the robot seems to move with a delay of between 5 and 15 milliseconds.

I hope this can help those who like to play with the robophilo :-)

Best regards,

@hugobiwan
Hello from France.

I am a newbie in robotic and just had my robophilo.

My project is very simple : make a little autonomous robot with the great motions of the robophilo.

I am going to use the same method i did with the robosapien using arduino :

- let the original robophilo microcontroller take care of the internal controls in the robot (especially driving the servos)
- program the motions with the provided GUI (easy to use and offers many many motions to remap on the IR remote).
- giving orders to the robot using an arduino board, reacting to sensors, on the robot.

The first step is to understand how the orders are given to the robot by the different I/O I can see, without having to buy the SDK :

- RJ11/232 using serial in the back of the robophilo
- IR receiver
- I/O pins on the PCB.

The most easy is to use the IR receiver, so i dont take any risk for the robot.
I tried to use a USB_UIRT universal receiver to catch the remote codes. I got codes, but it was impossible to send them back with success and to obtain a reaction of the robot.

So i built the multi-protocol transmitter/receiver of Ken Shirriff, that can be made with just one IR led and one resistor on an arduino board, soldering wires on the robophilo IR receiver to catch the codes of the remote, and define the protocol. Look here :http://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html

Yesterday, i had a result and now i just try successfully to send back a code corresponding to key2 on the remote to the robophilo.

Before coding an arduino sketch making me able to add some sensors on the robot and drive hit using the arduino on its back, i share with you the codes i found. Please try them and tell me if all are working. I made an arduino sketch that makes me think that each code must be sent 3 times with a delay of about 10 ms. I am going to verify that tonight.

The robophilo IR codes seems to be in SONY fomat (12 bits/sent 3 times per code).

codes IR robophilo :

key1 : 7DF
Key2 : FDF
Key3 : 57F
Key4 : D7F
Key5 : 37F
Key6 : B7F
Key7 : 77F
Key8 : F7F
Key9 : FF
Key10 : 5FF
Key11 : DFF
Key12 : 3FF

enter : 6DF

walkforward : DF

walkbackward : 9DF

left : ADF
right : EDF

turn 30 right : 2DF
turn 30 left : 4DF

1 : 65F
2 : E5F
3 : 15F
4 : 95F
5 : 55F
6 : D5F
7 : 35F
8 : B5F
9 : 75F
0 : DF

Power servos : 45F

repeat : 5F

setup :3DF

back-up : 5DF
back down :BDF

front-up : 1DF
front-down :DDF

To send the IR codes i use IR Library for arduino, an arduino board and about 5 euros of components. All arduino sketches, and the way to build an instant IR catcher/sender are here : http://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html

With the library, in the arduino sketch it is simple like :

for (int i = 0; i < 3; i++) {
//0x + code = hexadecimal - second variable = number of bits
irsend.sendSony(0xFDF, 12); // code key2
delay(b);
}

I tried with incremental values for the delay and the robot seems to move with a delay of between 5 and 15 milliseconds.

I hope this can help those who like to play with the robophilo :-)

Best regards,

@hugobiwan
hugobiwan offline
Savvy Roboteer
Savvy Roboteer
Posts: 27
Joined: Sat Sep 17, 2011 11:29 pm

random arduino/robophilo using IR codes

Post by hugobiwan » Thu Sep 22, 2011 10:23 pm

Post by hugobiwan
Thu Sep 22, 2011 10:23 pm

Hello !
I have finished a test script and can confirm it seems to work with a delay of about 10 ms.

This is an arduino script making the robophilo move alone with an arduino board on the back, i just made and tested, using IR library ( http://www.arcfn.com/2009/08/multi-prot ... brary.html )

You can customize the script to use any sensors and send any key of the remote. If you program the remote with the GUI, you can now do an autonomous robophilo :-)

//send orders to robophilo
//uses arduino IR library. IR led on pin 3 pwm out with 100 ohms resistor.


#include <IRremote>
#include <IRremoteInt>

//script de pilotage du robophilo

// Some but not all RS commands are defined
#define RP_key1 0x7DF
#define RP_key2 0xFDF
#define RP_key3 0x57F
#define RP_key4 0xD7F
#define RP_key5 0x37F
#define RP_key6 0xB7F
#define RP_key7 0x77F
#define RP_key8 0xF7F
#define RP_key9 0xFF
#define RP_key10 0x5FF
#define RP_key11 0xDFF
#define RP_key12 0x3FF
#define RP_1 0x65F
#define RP_2 0xE5F
#define RP_3 0x15F
#define RP_4 0x95F
#define RP_5 0x55F
#define RP_6 0xD5F
#define RP_7 0x35F
#define RP_8 0xB5F
#define RP_9 0x75F
#define RP_0 0xDF
#define RP_left 0x4ADF
#define RP_right 0xEDF
#define RP_fwd 0xDF
#define RP_bckwd 0x9DF
#define RP_turnleft 0x2DF
#define RP_turnright 0x4DF
#define RP_power 0x45F
#define RP_frontup 0x1DF
#define RP_frontdown 0xDDF
#define RP_backup 0x5DF
#define RP_backdown 0xBDF
#define RP_enter 0x6DF

//on amorce le lancement de codes par la library
IRsend irsend;

//tableau des mouvements de deplacement de base
int mouvementsbase[]={RP_fwd,RP_turnleft,RP_turnright};
//delai entre les ordres en millisecondes
int interval_orders=2000;

//fonction d'envoi de la commande au robot
//il est souhaitable, avec le robophilo, de laisser un délai entre plusieurs ordres

void sendorder(int orderGO){

//on envoie le code de la touche
for (int i = 0; i < 3; i++) {
irsend.sendSony(orderGO, 12); // code key
delay(10);
}
//deux secondes entre chaque ordre
delay(interval_orders);
}

void setup(){
Serial.begin(9600);
}

void loop(){
//test de deplacement aleatoire toutes les secondes
int randmove=random(0,3);
int order;

switch (randmove){
case 0:
order=mouvementsbase[0];
sendorder(order);
break;
case 1:
order=mouvementsbase[1];
sendorder(order);
break;
case 2:
order=mouvementsbase[2];
sendorder(order);
break;
}
}

Best regards,
@hugobiwan
Hello !
I have finished a test script and can confirm it seems to work with a delay of about 10 ms.

This is an arduino script making the robophilo move alone with an arduino board on the back, i just made and tested, using IR library ( http://www.arcfn.com/2009/08/multi-prot ... brary.html )

You can customize the script to use any sensors and send any key of the remote. If you program the remote with the GUI, you can now do an autonomous robophilo :-)

//send orders to robophilo
//uses arduino IR library. IR led on pin 3 pwm out with 100 ohms resistor.


#include <IRremote>
#include <IRremoteInt>

//script de pilotage du robophilo

// Some but not all RS commands are defined
#define RP_key1 0x7DF
#define RP_key2 0xFDF
#define RP_key3 0x57F
#define RP_key4 0xD7F
#define RP_key5 0x37F
#define RP_key6 0xB7F
#define RP_key7 0x77F
#define RP_key8 0xF7F
#define RP_key9 0xFF
#define RP_key10 0x5FF
#define RP_key11 0xDFF
#define RP_key12 0x3FF
#define RP_1 0x65F
#define RP_2 0xE5F
#define RP_3 0x15F
#define RP_4 0x95F
#define RP_5 0x55F
#define RP_6 0xD5F
#define RP_7 0x35F
#define RP_8 0xB5F
#define RP_9 0x75F
#define RP_0 0xDF
#define RP_left 0x4ADF
#define RP_right 0xEDF
#define RP_fwd 0xDF
#define RP_bckwd 0x9DF
#define RP_turnleft 0x2DF
#define RP_turnright 0x4DF
#define RP_power 0x45F
#define RP_frontup 0x1DF
#define RP_frontdown 0xDDF
#define RP_backup 0x5DF
#define RP_backdown 0xBDF
#define RP_enter 0x6DF

//on amorce le lancement de codes par la library
IRsend irsend;

//tableau des mouvements de deplacement de base
int mouvementsbase[]={RP_fwd,RP_turnleft,RP_turnright};
//delai entre les ordres en millisecondes
int interval_orders=2000;

//fonction d'envoi de la commande au robot
//il est souhaitable, avec le robophilo, de laisser un délai entre plusieurs ordres

void sendorder(int orderGO){

//on envoie le code de la touche
for (int i = 0; i < 3; i++) {
irsend.sendSony(orderGO, 12); // code key
delay(10);
}
//deux secondes entre chaque ordre
delay(interval_orders);
}

void setup(){
Serial.begin(9600);
}

void loop(){
//test de deplacement aleatoire toutes les secondes
int randmove=random(0,3);
int order;

switch (randmove){
case 0:
order=mouvementsbase[0];
sendorder(order);
break;
case 1:
order=mouvementsbase[1];
sendorder(order);
break;
case 2:
order=mouvementsbase[2];
sendorder(order);
break;
}
}

Best regards,
@hugobiwan
hugobiwan offline
Savvy Roboteer
Savvy Roboteer
Posts: 27
Joined: Sat Sep 17, 2011 11:29 pm

Post by robofad » Tue Dec 06, 2011 9:37 pm

Post by robofad
Tue Dec 06, 2011 9:37 pm

Hello hugobiwan. :P

I'm new here in the site. So how's your project doing? I haven't done anything yet. I just love robots but my son's the one who makes them. So what's your progress? Would love to see it. :P
Hello hugobiwan. :P

I'm new here in the site. So how's your project doing? I haven't done anything yet. I just love robots but my son's the one who makes them. So what's your progress? Would love to see it. :P
robofad offline
Newbie
Newbie
Posts: 2
Joined: Fri Nov 04, 2011 10:43 pm

Short demo video

Post by hugobiwan » Mon Dec 19, 2011 9:02 pm

Post by hugobiwan
Mon Dec 19, 2011 9:02 pm

Just a short video of the arduino code working.
http://www.youtube.com/watch?v=KwpRG9qhISM
Thank you for you attention !

@hugobiwan
Just a short video of the arduino code working.
http://www.youtube.com/watch?v=KwpRG9qhISM
Thank you for you attention !

@hugobiwan
hugobiwan offline
Savvy Roboteer
Savvy Roboteer
Posts: 27
Joined: Sat Sep 17, 2011 11:29 pm

Post by allanonmage » Fri May 04, 2012 6:45 pm

Post by allanonmage
Fri May 04, 2012 6:45 pm

What made you decide to add an arduino over buying the SDK? Are you more familiar with the Arduino language than C/C++?

I think it's a great idea that you came up with. Do you have a parts list of what you used anywheres?
What made you decide to add an arduino over buying the SDK? Are you more familiar with the Arduino language than C/C++?

I think it's a great idea that you came up with. Do you have a parts list of what you used anywheres?
allanonmage offline
Robot Builder
Robot Builder
Posts: 10
Joined: Sat Jun 04, 2011 4:25 pm


5 postsPage 1 of 1
5 postsPage 1 of 1