Advertisement
Guest User

Roomba Model 4230 control code

a guest
Jun 18th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.53 KB | None | 0 0
  1. #include <SoftwareSerial.h>
  2.  
  3. #define clamp(value, min, max) (value < min ? min : value > max ? max : value)
  4.  
  5. SoftwareSerial mySerial(13, 12); //rx,tx
  6. int ddPin = 7;
  7.  
  8. void wake(int pin) {
  9.   digitalWrite(ddPin, HIGH);
  10.   digitalWrite(ddPin, LOW);
  11.   digitalWrite(ddPin, HIGH);
  12. }
  13.  
  14. void setup() {
  15.   pinMode(ddPin,  OUTPUT);
  16.   mySerial.begin(57600);
  17.   Serial.begin(9600);
  18.   //Use Device Detect to wake Roomba
  19.   wake(ddPin);
  20.   //Initialize Roomba SCI
  21.   // Start SCI
  22.   mySerial.write(128);
  23.   delay(100);
  24.   // Enable control
  25.   mySerial.write(130);
  26.   delay(100);
  27.   // Enable full control, no safety, all commands
  28.   mySerial.write(132);
  29. }
  30.  
  31. // the loop function runs over and over again forever
  32. void loop() {
  33.   greenStatusOn();
  34.   forward(100s);
  35.   delay(5000);
  36.   redStatusOn();
  37.   mySerial.write(173);
  38.   delay(100000);
  39. }
  40.  
  41. void forward(int v) {
  42.   mySerial.write(137);
  43.   mySerial.write((byte)(v >> 8));
  44.   mySerial.write((byte)v);
  45.   mySerial.write((byte)(0x8000 >> 8));
  46.   mySerial.write((byte)0x8000);
  47. }
  48.  
  49. void greenStatusOn() {
  50.   mySerial.write(139);       // control LEDs opcode
  51.   mySerial.write(32);        // Status On Green 00100000 Binary = 32 Decimal
  52.   mySerial.write((byte)0);   // Power Color Green
  53.   mySerial.write(255);       // Intensity set to full
  54. }
  55.  
  56. void redStatusOn() {
  57.   mySerial.write(139);        // control LEDs opcode
  58.   mySerial.write(16);         // Status On Green 00010000 Binary = 16 Decimal
  59.   mySerial.write(255);        // Power Color Red
  60.   mySerial.write(255);        // Intensity set to full
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement