Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "HCPCA9685.h"
- #define I2CAdd 0x40
- #include <SoftwareSerial.h> // knihovna pro seriovou linku
- HCPCA9685 HCPCA9685(I2CAdd);
- int led = 13;
- int servo; // promenna pro servo
- int uhel;
- int uhel4 = 290;
- int uhel5 = 50;
- int uhel6 = 50;
- int uhel7 = 290;
- int uhel8 = 270;
- int uhel9 = 60;
- int uhel10 = 40;
- int uhel11 = 290;
- void kroky() { // Q
- HCPCA9685.Servo(10, 150); delay(500);
- HCPCA9685.Servo(1, 300); delay(500);
- HCPCA9685.Servo(8, 190); delay(500);
- HCPCA9685.Servo(4, 180); delay(500);
- HCPCA9685.Servo(8, 170); delay(500);
- HCPCA9685.Servo(10, 180); delay(500);
- HCPCA9685.Servo(1, 20); delay(500);
- HCPCA9685.Servo(9, 200); delay(500);
- HCPCA9685.Servo(10, 150); delay(500);
- HCPCA9685.Servo(6, 140); delay(500);
- HCPCA9685.Servo(10, 190); delay(500);
- HCPCA9685.Servo(8, 110); delay(500);
- HCPCA9685.Servo(11, 170); delay(500);
- HCPCA9685.Servo(9, 140); delay(500);
- HCPCA9685.Servo(5, 130); delay(500);
- HCPCA9685.Servo(9, 220); delay(500);
- HCPCA9685.Servo(10, 170); delay(500);
- HCPCA9685.Servo(11, 120); delay(500);
- HCPCA9685.Servo(10, 210); delay(500);
- HCPCA9685.Servo(9, 170); delay(500);
- HCPCA9685.Servo(7, 210); delay(500);
- HCPCA9685.Servo(1, 340); delay(500);
- HCPCA9685.Servo(11, 110); delay(500);
- HCPCA9685.Servo(9, 150); delay(500);
- HCPCA9685.Servo(11, 190); delay(500);
- HCPCA9685.Servo(7, 200); delay(500);
- HCPCA9685.Servo(11, 140); delay(500);
- HCPCA9685.Servo(9, 200); delay(500);
- HCPCA9685.Servo(6, 90); delay(500);
- HCPCA9685.Servo(4, 250); delay(500);
- HCPCA9685.Servo(7, 270); delay(500);
- HCPCA9685.Servo(5, 80); delay(500);
- HCPCA9685.Servo(6, 90); delay(500);
- HCPCA9685.Servo(10, 170); delay(500);
- HCPCA9685.Servo(4, 240);
- HCPCA9685.Servo(5, 80); delay(500);
- HCPCA9685.Servo(6, 90);
- HCPCA9685.Servo(7, 250); delay(500);
- HCPCA9685.Servo(8, 140);
- HCPCA9685.Servo(9, 180); delay(500);
- HCPCA9685.Servo(10, 170);
- HCPCA9685.Servo(11, 170); delay(500);
- HCPCA9685.Servo(1, 340); delay(100);
- }
- void krok() { // K
- HCPCA9685.Servo(8, 200);
- HCPCA9685.Servo(10, 110); delay(250);
- HCPCA9685.Servo(4, 200);
- HCPCA9685.Servo(6, 120); delay(300);
- HCPCA9685.Servo(8, 150);
- HCPCA9685.Servo(10, 170); delay(300);
- HCPCA9685.Servo(9, 130);
- HCPCA9685.Servo(11, 210); delay(250);
- HCPCA9685.Servo(5, 130);
- HCPCA9685.Servo(7, 200); delay(300);
- HCPCA9685.Servo(9, 150);
- HCPCA9685.Servo(11, 160); delay(200);
- HCPCA9685.Servo(10, 170);
- HCPCA9685.Servo(11, 160); delay(300);
- HCPCA9685.Servo(8, 140);
- HCPCA9685.Servo(9, 180); delay(300);
- HCPCA9685.Servo(6, 90);
- HCPCA9685.Servo(7, 250); delay(300);
- HCPCA9685.Servo(4, 240);
- HCPCA9685.Servo(5, 80); delay(300);
- HCPCA9685.Servo(1, 200); delay(100);
- }
- void postoj() { // P
- HCPCA9685.Servo(10, 170);
- HCPCA9685.Servo(11, 160); delay(500);
- HCPCA9685.Servo(8, 140);
- HCPCA9685.Servo(9, 180); delay(500);
- HCPCA9685.Servo(6, 90);
- HCPCA9685.Servo(7, 250); delay(500);
- HCPCA9685.Servo(4, 240);
- HCPCA9685.Servo(5, 80); delay(500);
- HCPCA9685.Servo(1, 200); delay(100);
- }
- void postoj2() { // O
- HCPCA9685.Servo(1, 200); // delay(200);
- HCPCA9685.Servo(4, 240);
- HCPCA9685.Servo(5, 80); delay(200);
- HCPCA9685.Servo(6, 90);
- HCPCA9685.Servo(7, 250); delay(200);
- HCPCA9685.Servo(8, 140);
- HCPCA9685.Servo(9, 180); delay(200);
- HCPCA9685.Servo(10, 170);
- HCPCA9685.Servo(11, 160); delay(200);
- HCPCA9685.Servo(1, 350); delay(100);
- HCPCA9685.Servo(4, 200);
- HCPCA9685.Servo(5, 120); delay(200);
- HCPCA9685.Servo(6, 120);
- HCPCA9685.Servo(7, 210); delay(200);
- HCPCA9685.Servo(8, 60);
- HCPCA9685.Servo(9, 270); delay(200);
- HCPCA9685.Servo(10, 240);
- HCPCA9685.Servo(11, 80); delay(200);
- }
- void lehni() { // L
- HCPCA9685.Servo(1, 340); delay(100);
- HCPCA9685.Servo(10, 130);
- HCPCA9685.Servo(11, 200); delay(500);
- HCPCA9685.Servo(9, 80);
- HCPCA9685.Servo(8, 250); delay(500);
- HCPCA9685.Servo(10, 80);
- HCPCA9685.Servo(11, 250); delay(500);
- HCPCA9685.Servo(10, 40);
- HCPCA9685.Servo(11, 290); delay(500);
- HCPCA9685.Servo(6, 50);
- HCPCA9685.Servo(7, 290); delay(500);
- HCPCA9685.Servo(9, 60);
- HCPCA9685.Servo(8, 270); delay(500);
- HCPCA9685.Servo(4, 290);
- HCPCA9685.Servo(5, 50); delay(500);
- }
- void sedni() { // S
- HCPCA9685.Servo(1, 340); delay(100);
- HCPCA9685.Servo(10, 20);
- HCPCA9685.Servo(11, 300); delay(500);
- HCPCA9685.Servo(6, 10);
- HCPCA9685.Servo(7, 330); delay(500);
- HCPCA9685.Servo(4, 170);
- HCPCA9685.Servo(5, 140); delay(500);
- HCPCA9685.Servo(8, 130);
- HCPCA9685.Servo(9, 190); delay(500);
- }
- void vrteni() { // V
- HCPCA9685.Servo(1, 80); delay(100);
- HCPCA9685.Servo(1, 280); delay(100);
- HCPCA9685.Servo(1, 80); delay(100);
- HCPCA9685.Servo(1, 280); delay(100);
- HCPCA9685.Servo(1, 80); delay(100);
- HCPCA9685.Servo(1, 280); delay(100);
- HCPCA9685.Servo(1, 80); delay(100);
- HCPCA9685.Servo(1, 280); delay(100);
- HCPCA9685.Servo(1, 340); delay(100);
- }
- void mavani() { // M
- HCPCA9685.Servo(10, 150); delay(200);
- HCPCA9685.Servo(8, 200); delay(200);
- HCPCA9685.Servo(4, 160); delay(200);
- HCPCA9685.Servo(8, 160); delay(200);
- HCPCA9685.Servo(8, 200); delay(200);
- HCPCA9685.Servo(8, 160); delay(200);
- HCPCA9685.Servo(8, 200); delay(200);
- HCPCA9685.Servo(4, 240); delay(200);
- HCPCA9685.Servo(8, 140); delay(200);
- HCPCA9685.Servo(10, 170); delay(200);
- }
- void cas() { // A
- Serial.print("Cas od spusteni Rasse: ");
- Serial.print(millis() / 1000);
- Serial.println(" vterin.");
- }
- void setup()
- {
- HCPCA9685.Init(SERVO_MODE);
- HCPCA9685.Sleep(false);
- // Wire.begin();
- Serial.begin(115200);
- pinMode(led, OUTPUT);
- }
- void loop() {
- if (Serial.available() > 3) { // pokud je na seriove lince buffer
- servo = Serial.readStringUntil('.').toInt(); // nacteni dat pred teckou do promenne
- uhel = Serial.readStringUntil('\n').toInt(); // nacteni dat za teckou s ukoncenim do promenne
- Serial.print(servo);
- Serial.print(" . ");
- Serial.println(uhel);
- HCPCA9685.Servo(servo, uhel); // provede nastaveni podle promennych
- } // konec cteni
- int x = Serial.available();
- if ( x == 2 )
- {
- char pismeno = Serial.read();
- Serial.println(pismeno);
- switch (pismeno)
- {
- case 'b': { // B
- digitalWrite(led, HIGH); delay (70);
- digitalWrite(led, LOW); delay (70);
- digitalWrite(led, HIGH); delay (70);
- digitalWrite(led, LOW); delay (70);
- digitalWrite(led, HIGH); delay (70);
- digitalWrite(led, LOW); delay (70);
- digitalWrite(led, HIGH); delay (70);
- digitalWrite(led, LOW); delay (70);
- digitalWrite(led, HIGH); delay (70);
- digitalWrite(led, LOW); delay (70);
- }
- break;
- case 'q': // pohyb pro KROKY
- kroky();
- break;
- case 'o': // Postoj2
- postoj2();
- break;
- case 'v': // vrteni ocasem
- vrteni();
- break;
- case 'k': // jeden krok
- krok();
- break;
- case 's': // sedni
- sedni();
- break;
- case 'p': // postoj
- postoj();
- break;
- case 'l': // lehni
- lehni();
- break;
- case 'm': // Mavani levou predni packou
- mavani();
- break;
- case 'e': // snizeni
- uhel4 --;
- uhel8 ++;
- break;
- case 'r': // zvyseni
- uhel4 ++;
- uhel8 --;
- break;
- case 'a': // v případě přejetí znaku 'a' vypíše čas od spuštění Arduina
- cas();
- break;
- case '\r': // přesun na začátek řádku - znak CR
- break;
- case '\n': // odřádkování - znak LF
- break;
- /*
- case 10: // přesun na začátek řádku - znak CR
- break;
- case 13: // odřádkování - znak LF
- break;*/
- default:
- Serial.println(" Neznam prikaz ");
- }
- }
- /* HCPCA9685.Servo(4, uhel4);
- HCPCA9685.Servo(5, uhel5);
- HCPCA9685.Servo(6, uhel6);
- HCPCA9685.Servo(7, uhel7);
- HCPCA9685.Servo(8, uhel8);
- HCPCA9685.Servo(9, uhel9);
- HCPCA9685.Servo(10, uhel10);
- HCPCA9685.Servo(11, uhel11);
- */
- delay(10);
- }
Advertisement
Add Comment
Please, Sign In to add comment