IRobot Create to be always on

51 views
Skip to first unread message

Andrey Dogadin

unread,
Dec 22, 2011, 5:31:01 AM12/22/11
to iRobot Create Forum
Hi everybody,

As most of us i'm trying to create telepresense robot based on iRobot
Create :)
I have a problem and i think you could help me.
How can i make iRobot be always on, be always ready to receive
commands? In my case when i press Power button Robot boots and then
get in Demo Mode. Then i'm sending START and FULL bytes and Robot is
ready to process m commands, However after some minutes it sleeps and
i have to press Power button again.

I'm pretty sure that most of you has already solved this problem and
can advise me something?

Kind regards,
Andrey/

David Kavanagh

unread,
Dec 22, 2011, 8:11:35 AM12/22/11
to irobot-cr...@googlegroups.com
I turn on the create via the dock connector (raising pin 3) and put
the robot in full mode (communication). I haven't seen it switch off,
but perhaps I haven't used it enough yet. Also, I monitor pin 8 to
check for power, so if it does go off, I could simply raise pin 3
again.

David

> --
> You received this message because you are subscribed to the Google Groups "iRobot Create Forum" group.
> To post to this group, send email to irobot-cr...@googlegroups.com.
> To unsubscribe from this group, send email to irobot-create-f...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/irobot-create-forum?hl=en.
>

Andrey Dogadin

unread,
Dec 22, 2011, 8:51:49 AM12/22/11
to iRobot Create Forum
Am i right that you have used some special hardware to operate with
dock connector?

David Kavanagh

unread,
Dec 22, 2011, 9:55:17 AM12/22/11
to irobot-cr...@googlegroups.com

Andrey Dogadin

unread,
Dec 22, 2011, 10:54:57 AM12/22/11
to iRobot Create Forum
I'm not very familiar with Arduino, but schema looks pretty simple, so
i have to try to implement it. Unfortunately there is no source code
on github, so may i ask you to provide me with your source code for
handling PC->ATMega->IRobot communication?

David Kavanagh

unread,
Dec 22, 2011, 11:02:13 AM12/22/11
to irobot-cr...@googlegroups.com
Yea, I'm sorry. I fully intend to get everything up there. Here's the
code I've used so far. I want to write a module that I'd simply
include in the main code, but haven't had the time to do the packaging
yet.
Let me describe what this code does.
- ensures the create is turned on
- sets full command mode
- it cycles the power LED from red-green and back until..
- when the bumper is hit, the bot is put into the docking demo, and
will try to dock with the charging base

I also have code in there that dumps some debug to the serial port,
which you can see by using the serial monitor in the arduino dev app.
http://arduino.cc/en/Main/Software

David

int i;
int up;
int led=2;
int dock_on=0;
int CREATE_POWER_SWITCH = 22; // digital output pin
int CREATE_POWER_ON = 34; // digital input pin

void setup() {
pinMode(CREATE_POWER_SWITCH, OUTPUT); // controls power on create
pinMode(CREATE_POWER_ON, INPUT);
if (digitalRead(CREATE_POWER_ON) == LOW) {
digitalWrite(CREATE_POWER_SWITCH, LOW);
digitalWrite(CREATE_POWER_SWITCH, HIGH); // switch power on
digitalWrite(CREATE_POWER_SWITCH, LOW);
delay(3500);
}
// initialize USB port
Serial.begin(9600);
// initialize serial port and create interface
Serial3.begin(57600);
Serial3.print(128, BYTE);
Serial3.print(132, BYTE);
i=0;
up=1;
}

void loop() {
// update LED color
Serial.print("led = ");
Serial.print(led);
Serial3.print(139, BYTE);
Serial3.print(led, BYTE);
Serial3.print(i, BYTE);
Serial3.print(250, BYTE);
if (up) {
i++;
if (i==255) {
up = 0;
}
}
else {
i--;
if (i==0) {
up = 1;
}
}
// get bump sensor state
Serial3.print(142, BYTE);
Serial3.print(7, BYTE);
int bump = Serial3.read();
Serial.print(" bump = ");
Serial.print(bump);
if (bump > 0 && dock_on == 0) { // either bump bit high
led=8;
dock_on = 1;
Serial.print(" was bumped");
Serial3.print(136, BYTE);
Serial3.print(1, BYTE); // attemp cover and dock
}
//
// if (Serial.available()) {
// int inByte = Serial.read();
// Serial3.print(inByte, BYTE);
// }
Serial.print("\n");

Andrey Dogadin

unread,
Dec 22, 2011, 11:08:53 AM12/22/11
to iRobot Create Forum
Thanks a lot for your help!
Looks like it should work :-)

On Dec 22, 6:02 pm, David Kavanagh <dkavan...@gmail.com> wrote:
> Yea, I'm sorry. I fully intend to get everything up there. Here's the
> code I've used so far. I want to write a module that I'd simply
> include in the main code, but haven't had the time to do the packaging
> yet.
> Let me describe what this code does.
>  - ensures the create is turned on
>  - sets full command mode
>  - it cycles the power LED from red-green and back until..
>  - when the bumper is hit, the bot is put into the docking demo, and
> will try to dock with the charging base
>
> I also have code in there that dumps some debug to the serial port,
> which you can see by using the serial monitor in the arduino dev app.http://arduino.cc/en/Main/Software

David Kavanagh

unread,
Dec 22, 2011, 11:09:30 AM12/22/11
to irobot-cr...@googlegroups.com
I've been busy working on getting my acrylic stand made (it's at the
water-jet cutter's shop now). I want to get back to the communication
bit. I intend to have some low level stuff running on the Arduino, but
mostly, have it operate as a pass through (and USB->serial converter)
for the netbook.

Gutierre Andrade

unread,
Feb 4, 2016, 11:54:43 AM2/4/16
to iRobot Create Forum, a.do...@googlemail.com
Hi.
Now I'm starting some research in this area.

You would like to send me the script that you used to connect and send command to the robot? I'm trying to create a script in python, but I'm having problems.
Thanks
Reply all
Reply to author
Forward
0 new messages