kennyho-rass

hcpcakontinual

Jun 3rd, 2020
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "HCPCA9685.h"
  2. #define  I2CAdd 0x40
  3. #include <SoftwareSerial.h>                   // knihovna pro seriovou linku
  4. HCPCA9685 HCPCA9685(I2CAdd);
  5. int led = 13;
  6. int servo;                                   // promenna pro servo
  7. int uhel;
  8. int uhel4 = 290;
  9. int uhel5 = 50;
  10. int uhel6 = 50;
  11. int uhel7 = 290;
  12. int uhel8 = 270;
  13. int uhel9 = 60;
  14. int uhel10 = 40;
  15. int uhel11 = 290;
  16.  
  17. void kroky() {               //  Q
  18.   HCPCA9685.Servo(10, 150);         delay(500);
  19.   HCPCA9685.Servo(1, 300);          delay(500);
  20.   HCPCA9685.Servo(8, 190);          delay(500);
  21.   HCPCA9685.Servo(4, 180);          delay(500);
  22.   HCPCA9685.Servo(8, 170);          delay(500);
  23.   HCPCA9685.Servo(10, 180);         delay(500);
  24.   HCPCA9685.Servo(1, 20);           delay(500);
  25.   HCPCA9685.Servo(9, 200);          delay(500);
  26.   HCPCA9685.Servo(10, 150);         delay(500);
  27.   HCPCA9685.Servo(6, 140);          delay(500);
  28.   HCPCA9685.Servo(10, 190);         delay(500);
  29.   HCPCA9685.Servo(8, 110);          delay(500);
  30.   HCPCA9685.Servo(11, 170);         delay(500);
  31.   HCPCA9685.Servo(9, 140);          delay(500);
  32.   HCPCA9685.Servo(5, 130);          delay(500);
  33.   HCPCA9685.Servo(9, 220);          delay(500);
  34.   HCPCA9685.Servo(10, 170);         delay(500);
  35.   HCPCA9685.Servo(11, 120);         delay(500);
  36.   HCPCA9685.Servo(10, 210);         delay(500);
  37.   HCPCA9685.Servo(9, 170);          delay(500);
  38.   HCPCA9685.Servo(7, 210);          delay(500);
  39.   HCPCA9685.Servo(1, 340);          delay(500);
  40.   HCPCA9685.Servo(11, 110);         delay(500);
  41.   HCPCA9685.Servo(9, 150);          delay(500);
  42.   HCPCA9685.Servo(11, 190);         delay(500);
  43.   HCPCA9685.Servo(7, 200);          delay(500);
  44.   HCPCA9685.Servo(11, 140);         delay(500);
  45.   HCPCA9685.Servo(9, 200);          delay(500);
  46.   HCPCA9685.Servo(6, 90);           delay(500);
  47.   HCPCA9685.Servo(4, 250);          delay(500);
  48.   HCPCA9685.Servo(7, 270);          delay(500);
  49.   HCPCA9685.Servo(5, 80);           delay(500);
  50.   HCPCA9685.Servo(6, 90);           delay(500);
  51.   HCPCA9685.Servo(10, 170);         delay(500);
  52.  
  53.   HCPCA9685.Servo(4, 240);
  54.   HCPCA9685.Servo(5, 80);           delay(500);
  55.   HCPCA9685.Servo(6, 90);
  56.   HCPCA9685.Servo(7, 250);          delay(500);
  57.   HCPCA9685.Servo(8, 140);
  58.   HCPCA9685.Servo(9, 180);          delay(500);
  59.   HCPCA9685.Servo(10, 170);
  60.   HCPCA9685.Servo(11, 170);         delay(500);
  61.   HCPCA9685.Servo(1, 340);          delay(100);
  62. }
  63. void krok() {                //  K
  64.   HCPCA9685.Servo(8, 200);
  65.   HCPCA9685.Servo(10, 110);    delay(250);
  66.   HCPCA9685.Servo(4, 200);
  67.   HCPCA9685.Servo(6, 120);     delay(300);
  68.   HCPCA9685.Servo(8, 150);
  69.   HCPCA9685.Servo(10, 170);    delay(300);
  70.   HCPCA9685.Servo(9, 130);
  71.   HCPCA9685.Servo(11, 210);    delay(250);
  72.   HCPCA9685.Servo(5, 130);
  73.   HCPCA9685.Servo(7, 200);     delay(300);
  74.   HCPCA9685.Servo(9, 150);
  75.   HCPCA9685.Servo(11, 160);    delay(200);
  76.  
  77.   HCPCA9685.Servo(10, 170);
  78.   HCPCA9685.Servo(11, 160);    delay(300);
  79.   HCPCA9685.Servo(8, 140);
  80.   HCPCA9685.Servo(9, 180);     delay(300);
  81.   HCPCA9685.Servo(6, 90);
  82.   HCPCA9685.Servo(7, 250);     delay(300);
  83.   HCPCA9685.Servo(4, 240);
  84.   HCPCA9685.Servo(5, 80);      delay(300);
  85.   HCPCA9685.Servo(1, 200);     delay(100);
  86.  
  87.  
  88. }
  89. void postoj() {              //  P
  90.   HCPCA9685.Servo(10, 170);
  91.   HCPCA9685.Servo(11, 160);         delay(500);
  92.   HCPCA9685.Servo(8, 140);
  93.   HCPCA9685.Servo(9, 180);          delay(500);
  94.   HCPCA9685.Servo(6, 90);
  95.   HCPCA9685.Servo(7, 250);          delay(500);
  96.   HCPCA9685.Servo(4, 240);
  97.   HCPCA9685.Servo(5, 80);           delay(500);
  98.   HCPCA9685.Servo(1, 200);          delay(100);
  99. }
  100. void postoj2() {             //  O
  101.   HCPCA9685.Servo(1, 200);      //  delay(200);
  102.   HCPCA9685.Servo(4, 240);
  103.   HCPCA9685.Servo(5, 80);           delay(200);
  104.   HCPCA9685.Servo(6, 90);
  105.   HCPCA9685.Servo(7, 250);          delay(200);
  106.   HCPCA9685.Servo(8, 140);
  107.   HCPCA9685.Servo(9, 180);          delay(200);
  108.   HCPCA9685.Servo(10, 170);
  109.   HCPCA9685.Servo(11, 160);         delay(200);
  110.   HCPCA9685.Servo(1, 350);          delay(100);
  111.   HCPCA9685.Servo(4, 200);
  112.   HCPCA9685.Servo(5, 120);          delay(200);
  113.   HCPCA9685.Servo(6, 120);
  114.   HCPCA9685.Servo(7, 210);          delay(200);
  115.   HCPCA9685.Servo(8, 60);
  116.   HCPCA9685.Servo(9, 270);          delay(200);
  117.   HCPCA9685.Servo(10, 240);
  118.   HCPCA9685.Servo(11, 80);          delay(200);
  119. }
  120.  
  121. void lehni() {              //  L
  122.   HCPCA9685.Servo(1, 340);           delay(100);
  123.   HCPCA9685.Servo(10, 130);
  124.   HCPCA9685.Servo(11, 200);         delay(500);
  125.   HCPCA9685.Servo(9, 80);
  126.   HCPCA9685.Servo(8, 250);          delay(500);
  127.   HCPCA9685.Servo(10, 80);
  128.   HCPCA9685.Servo(11, 250);         delay(500);
  129.   HCPCA9685.Servo(10, 40);
  130.   HCPCA9685.Servo(11, 290);         delay(500);
  131.   HCPCA9685.Servo(6, 50);
  132.   HCPCA9685.Servo(7, 290);          delay(500);
  133.   HCPCA9685.Servo(9, 60);
  134.   HCPCA9685.Servo(8, 270);          delay(500);
  135.   HCPCA9685.Servo(4, 290);
  136.   HCPCA9685.Servo(5, 50);           delay(500);
  137. }
  138. void sedni() {               //  S
  139.   HCPCA9685.Servo(1, 340);           delay(100);
  140.   HCPCA9685.Servo(10, 20);
  141.   HCPCA9685.Servo(11, 300);         delay(500);
  142.   HCPCA9685.Servo(6, 10);
  143.   HCPCA9685.Servo(7, 330);          delay(500);
  144.   HCPCA9685.Servo(4, 170);
  145.   HCPCA9685.Servo(5, 140);          delay(500);
  146.   HCPCA9685.Servo(8, 130);
  147.   HCPCA9685.Servo(9, 190);          delay(500);
  148. }
  149. void vrteni() {             //  V
  150.   HCPCA9685.Servo(1, 80);           delay(100);
  151.   HCPCA9685.Servo(1, 280);          delay(100);
  152.   HCPCA9685.Servo(1, 80);           delay(100);
  153.   HCPCA9685.Servo(1, 280);          delay(100);
  154.   HCPCA9685.Servo(1, 80);           delay(100);
  155.   HCPCA9685.Servo(1, 280);          delay(100);
  156.   HCPCA9685.Servo(1, 80);           delay(100);
  157.   HCPCA9685.Servo(1, 280);          delay(100);
  158.   HCPCA9685.Servo(1, 340);          delay(100);
  159. }
  160. void mavani() {             //  M
  161.   HCPCA9685.Servo(10, 150);         delay(200);
  162.   HCPCA9685.Servo(8, 200);          delay(200);
  163.   HCPCA9685.Servo(4, 160);          delay(200);
  164.   HCPCA9685.Servo(8, 160);          delay(200);
  165.   HCPCA9685.Servo(8, 200);          delay(200);
  166.   HCPCA9685.Servo(8, 160);          delay(200);
  167.   HCPCA9685.Servo(8, 200);          delay(200);
  168.   HCPCA9685.Servo(4, 240);          delay(200);
  169.   HCPCA9685.Servo(8, 140);          delay(200);
  170.   HCPCA9685.Servo(10, 170);         delay(200);
  171. }
  172. void cas() {                //  A
  173.   Serial.print("Cas od spusteni Rasse: ");
  174.   Serial.print(millis() / 1000);
  175.   Serial.println(" vterin.");
  176. }
  177.  
  178. void setup()
  179. {
  180.   HCPCA9685.Init(SERVO_MODE);
  181.   HCPCA9685.Sleep(false);
  182.   //  Wire.begin();
  183.   Serial.begin(115200);
  184.   pinMode(led, OUTPUT);
  185. }
  186. void loop()   {
  187.   if (Serial.available() > 3)   {                 // pokud je na seriove lince buffer
  188.     servo =  Serial.readStringUntil('.').toInt(); // nacteni dat pred teckou do promenne
  189.     uhel =  Serial.readStringUntil('\n').toInt(); // nacteni dat za teckou s ukoncenim do promenne
  190.     Serial.print(servo);
  191.     Serial.print(" . ");
  192.     Serial.println(uhel);
  193.     HCPCA9685.Servo(servo, uhel);                 // provede nastaveni podle promennych
  194.   }                                               //   konec cteni
  195.   int x = Serial.available();
  196.   if ( x == 2 )
  197.   {
  198.     char pismeno = Serial.read();
  199.     Serial.println(pismeno);
  200.     switch (pismeno)
  201.     {
  202.       case 'b':      {            //  B
  203.           digitalWrite(led, HIGH);          delay (70);
  204.           digitalWrite(led, LOW);           delay (70);
  205.           digitalWrite(led, HIGH);          delay (70);
  206.           digitalWrite(led, LOW);           delay (70);
  207.           digitalWrite(led, HIGH);          delay (70);
  208.           digitalWrite(led, LOW);           delay (70);
  209.           digitalWrite(led, HIGH);          delay (70);
  210.           digitalWrite(led, LOW);           delay (70);
  211.           digitalWrite(led, HIGH);          delay (70);
  212.           digitalWrite(led, LOW);           delay (70);
  213.         }
  214.         break;
  215.       case 'q':                        // pohyb pro KROKY
  216.         kroky();
  217.         break;
  218.       case 'o':                        // Postoj2
  219.         postoj2();
  220.         break;
  221.       case 'v':                        // vrteni ocasem
  222.         vrteni();
  223.         break;
  224.       case 'k':                        // jeden krok
  225.         krok();
  226.         break;
  227.       case 's':                        // sedni
  228.         sedni();
  229.         break;
  230.       case 'p':                        // postoj
  231.         postoj();
  232.         break;
  233.       case 'l':                        // lehni
  234.         lehni();
  235.         break;
  236.       case 'm':                        // Mavani levou predni packou
  237.         mavani();
  238.         break;
  239.       case 'e':                       // snizeni
  240.         uhel4 --;
  241.         uhel8 ++;  
  242.         break;
  243.       case 'r':                        // zvyseni
  244.         uhel4 ++;
  245.         uhel8 --;  
  246.         break;
  247.       case 'a':                        // v případě přejetí znaku 'a' vypíše  čas od spuštění Arduina
  248.         cas();
  249.         break;
  250.           case '\r':         // přesun na začátek řádku - znak CR
  251.          break;
  252.         case '\n':         // odřádkování - znak LF
  253.          break;
  254.       /*
  255.       case 10:        // přesun na začátek řádku - znak CR
  256.         break;
  257.       case 13:        // odřádkování - znak LF
  258.         break;*/
  259.       default:
  260.         Serial.println(" Neznam prikaz ");
  261.  
  262.     }
  263.   }
  264.   /* HCPCA9685.Servo(4, uhel4);
  265.     HCPCA9685.Servo(5, uhel5);
  266.     HCPCA9685.Servo(6, uhel6);
  267.     HCPCA9685.Servo(7, uhel7);
  268.     HCPCA9685.Servo(8, uhel8);
  269.     HCPCA9685.Servo(9, uhel9);
  270.     HCPCA9685.Servo(10, uhel10);
  271.     HCPCA9685.Servo(11, uhel11);
  272.   */
  273.   delay(10);
  274. }
Advertisement
Add Comment
Please, Sign In to add comment