Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SoftwareSerial.h>
- #define clamp(value, min, max) (value < min ? min : value > max ? max : value)
- SoftwareSerial mySerial(13, 12); //rx,tx
- int ddPin = 7;
- void wake(int pin) {
- digitalWrite(ddPin, HIGH);
- digitalWrite(ddPin, LOW);
- digitalWrite(ddPin, HIGH);
- }
- void setup() {
- pinMode(ddPin, OUTPUT);
- mySerial.begin(57600);
- Serial.begin(9600);
- //Use Device Detect to wake Roomba
- wake(ddPin);
- //Initialize Roomba SCI
- // Start SCI
- mySerial.write(128);
- delay(100);
- // Enable control
- mySerial.write(130);
- delay(100);
- // Enable full control, no safety, all commands
- mySerial.write(132);
- }
- // the loop function runs over and over again forever
- void loop() {
- greenStatusOn();
- forward(100s);
- delay(5000);
- redStatusOn();
- mySerial.write(173);
- delay(100000);
- }
- void forward(int v) {
- mySerial.write(137);
- mySerial.write((byte)(v >> 8));
- mySerial.write((byte)v);
- mySerial.write((byte)(0x8000 >> 8));
- mySerial.write((byte)0x8000);
- }
- void greenStatusOn() {
- mySerial.write(139); // control LEDs opcode
- mySerial.write(32); // Status On Green 00100000 Binary = 32 Decimal
- mySerial.write((byte)0); // Power Color Green
- mySerial.write(255); // Intensity set to full
- }
- void redStatusOn() {
- mySerial.write(139); // control LEDs opcode
- mySerial.write(16); // Status On Green 00010000 Binary = 16 Decimal
- mySerial.write(255); // Power Color Red
- mySerial.write(255); // Intensity set to full
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement