Advertisement
hCollider

FRSDK

Mar 19th, 2019
517
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "MeccaBrain.h"
  2. #include <SPI.h>
  3. #include "nRF24L01.h"
  4. #include "RF24.h"
  5.  
  6. MeccaBrain servik(3);
  7. MeccaBrain servik2(2);
  8. RF24 radio(9,10);
  9.  
  10. #define STEP 2
  11.  
  12. byte address[][6] = {"1Node","2Node","3Node","4Node","5Node","6Node"};
  13. byte data;
  14.  
  15. const int leftSpeedPin = 6;
  16. const int rightSpeedPin = 5;
  17.  
  18. const int leftDirPin = 7;
  19. const int rightDirPin = 4;
  20.  
  21. const int speed = 255;
  22.  
  23. void setup() {
  24.   Serial.begin(9600);
  25.   Serial.write("Loading... ");
  26.  
  27.   radio.begin();
  28.   radio.setAutoAck(1);        
  29.   radio.setRetries(0,15);    
  30.   radio.enableAckPayload();    
  31.   radio.setPayloadSize(32);    
  32.  
  33.   radio.openReadingPipe(1,address[0]);    
  34.   radio.setChannel(0x60);  
  35.  
  36.   radio.setPALevel (RF24_PA_MAX);
  37.   radio.setDataRate (RF24_250KBPS);
  38.  
  39.   radio.powerUp();  
  40.   radio.startListening();
  41.  
  42.   pinMode(5, OUTPUT);
  43.   pinMode(leftSpeedPin, OUTPUT);
  44.   pinMode(rightSpeedPin, OUTPUT);
  45.   pinMode(leftDirPin, OUTPUT);
  46.   pinMode(rightDirPin, OUTPUT);
  47.   for (int i=0; i<75; i++) {
  48.     servik.communicate();
  49. }
  50. Calm();
  51.  
  52. //goForward(speed);
  53. }
  54.  
  55. void loop()
  56. {
  57.   data = 0;
  58.   data = GetRadioData();
  59.   Serial.println(data);
  60.   if (data == 1)  goForward(255);
  61.   if (data == 2)  goBackward(255);
  62.   if (data == 3)  rotateLeft(255);
  63.   if (data == 4)  rotateRight(255);
  64.   if (data == 0)  stopGo();
  65.  if(Serial.available())
  66. {
  67.   int data = Serial.read();
  68.   if (data == 'A') Greetings();
  69.   if (data == 'B') MilitaryGreeting();
  70. }
  71. delay(50);
  72. }
  73.  
  74. byte GetRadioData()
  75. {
  76.    byte pipeNo, gotByte;                          
  77.    while( radio.available(&pipeNo))
  78.    {
  79.     radio.read( &gotByte, sizeof(gotByte));
  80.     return gotByte;
  81.    }
  82.    return gotByte;
  83.      
  84. }
  85.  
  86. void stopGo()
  87. {
  88.   analogWrite(leftSpeedPin, 0);
  89.   analogWrite(rightSpeedPin, 0);
  90.   digitalWrite(leftDirPin, LOW);
  91.   digitalWrite(rightDirPin, LOW);
  92. }
  93.  
  94. void goForward(int speed)
  95. {
  96.   //Serial.write("Motor going");
  97.   analogWrite(leftSpeedPin, speed);
  98.   analogWrite(rightSpeedPin, speed);
  99.   digitalWrite(leftDirPin, HIGH);
  100.   digitalWrite(rightDirPin, HIGH);
  101. }
  102.  
  103. void goBackward(int speed)
  104. {
  105.   analogWrite(leftSpeedPin, speed);
  106.   analogWrite(rightSpeedPin, speed);
  107.   digitalWrite(leftDirPin, LOW);
  108.   digitalWrite(rightDirPin, LOW);
  109. }
  110.  
  111. void rotateLeft(int speed)
  112. {
  113.   analogWrite(leftSpeedPin, speed);
  114.   analogWrite(rightSpeedPin, speed);
  115.   digitalWrite(leftDirPin, LOW);
  116.   digitalWrite(rightDirPin, HIGH);
  117. }
  118.  
  119. void rotateRight(int speed)
  120. {
  121.   analogWrite(leftSpeedPin, speed);
  122.   analogWrite(rightSpeedPin, speed);
  123.   digitalWrite(leftDirPin, HIGH);
  124.   digitalWrite(rightDirPin, LOW);
  125. }
  126.  
  127. void Calm()
  128. {
  129.   Serial.write("Calibrating 1st servo... ");
  130. for(int i = 0; i <= 0; i++)
  131. {
  132.   servik.communicate();
  133.   servik.setServoPosition(0,i);
  134. }
  135. Serial.write("Calibrating 2nd servo... ");
  136. for(int i = 0; i <= 215; i+=10)
  137. {
  138.   servik.communicate();
  139.   servik.setServoPosition(1,i);
  140. }
  141. Serial.write("Calibrating 3rd servo... ");
  142. for(int i = 0; i <= 0; i+=10)
  143. {
  144.   servik.communicate();
  145.   servik.setServoPosition(2,i);
  146. }
  147.  
  148. Serial.write("Calibrating done ");
  149. }
  150.  
  151.  
  152. void Greetings()
  153. {
  154.   Serial.write("Greeting... ");
  155. for(int i = 0; i <= 119; i+=10)
  156. {
  157.   servik2.communicate();
  158.   servik2.setServoPosition(0,i);
  159. }
  160.  
  161. for(int i = 0; i <= 130; i+=10)
  162. {
  163.   servik2.communicate();
  164.   servik2.setServoPosition(1,i);
  165. }
  166.  
  167. for(int i = 0; i <= 180; i+=10)
  168. {
  169.   servik2.communicate();
  170.   servik2.setServoPosition(2,i);
  171. }
  172.  
  173. for(int i = 180; i >= 100; i-=10)
  174. {
  175.   servik2.communicate();
  176.   servik2.setServoPosition(2,i);
  177. }
  178.  
  179. for(int i = 0; i <= 180; i+=10)
  180. {
  181.   servik2.communicate();
  182.   servik2.setServoPosition(2,i);
  183. }
  184.  
  185. for(int i = 180; i >= 100; i-=10)
  186. {
  187.   servik2.communicate();
  188.   servik2.setServoPosition(2,i);
  189. }
  190.  
  191. for(int i = 0; i <= 180; i+=10)
  192. {
  193.   servik2.communicate();
  194.   servik2.setServoPosition(2,i);
  195. }
  196.  
  197.  
  198.  
  199.  
  200. for(int i = 119; i >= 0; i-=10)
  201. {
  202.   servik2.communicate();
  203.   servik2.setServoPosition(0,i);
  204. }
  205.  
  206. for(int i = 130; i <= 215; i+=10)
  207. {
  208.   servik2.communicate();
  209.   servik2.setServoPosition(1,i);
  210. }
  211.  
  212. for(int i = 180; i >=0; i-=10)
  213. {
  214.   servik2.communicate();
  215.   servik2.setServoPosition(2,i);
  216. }
  217.  
  218. }
  219.  
  220. void MilitaryGreeting()
  221. {
  222.   Serial.write("Millitary Greeting... ");
  223. for(int i = 0; i <= 117; i+=9)
  224. {
  225.   servik.communicate();
  226.   servik.setServoPosition(0,i);
  227. }
  228.  
  229. for(int i = 0; i <= 80; i+=10)
  230. {
  231.   servik.communicate();
  232.   servik.setServoPosition(1,i);
  233. }
  234.  
  235. for(int i = 0; i <= 190; i+=10)
  236. {
  237.   servik.communicate();
  238.   servik.setServoPosition(2,i);
  239. }
  240.  
  241.  
  242. delay(1000);
  243.  
  244. for(int i = 119; i >= 0; i-=10)
  245. {
  246.   servik.communicate();
  247.   servik.setServoPosition(0,i);
  248. }
  249.  
  250. for(int i = 130; i <= 215; i+=10)
  251. {
  252.   servik.communicate();
  253.   servik.setServoPosition(1,i);
  254. }
  255.  
  256. for(int i = 180; i >=0; i-=10)
  257. {
  258.   servik.communicate();
  259.   servik.setServoPosition(2,i);
  260. }
  261.  
  262.  
  263. //Calm();
  264. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement