1
0

Gripper.ino 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #include "Arduino.h"
  2. #include "AX12A.h"
  3. #define DirectionPin (10u)
  4. #define BaudRate (1000000ul)
  5. #define ID1 (4u)
  6. #define ID2 (5u)
  7. #include <XYZrobotServo.h>
  8. #ifdef SERIAL_PORT_HARDWARE_OPEN
  9. #define servoSerial SERIAL_PORT_HARDWARE_OPEN
  10. #else
  11. #include <SoftwareSerial.h>
  12. SoftwareSerial servoSerial(10, 11);
  13. #endif
  14. int input = 0;
  15. XYZrobotServo servo1(servoSerial, 2);
  16. const uint8_t playtime = 200;
  17. int x ,position;
  18. int val[10] = {0,0,0,0,0};
  19. int choice;
  20. void ax12_1(int position){
  21. if((position<300) || (position>700)){
  22. Serial.print("invalide position. Try again");
  23. return;}
  24. ax12a.moveSpeed(ID1,position, playtime);
  25. }
  26. void ax12_2(int position){
  27. if((position<300) || (position>700)){
  28. Serial.print("invalide position. Try again");
  29. return;}
  30. ax12a.moveSpeed(ID2,position, playtime);
  31. }
  32. void a116(int position){
  33. if((position<300) || (position>700)){
  34. Serial.print("invalide position. Try again");
  35. return;
  36. }
  37. servo1.setPosition(position, playtime);
  38. }
  39. void setup() {
  40. Serial.begin(9600);
  41. Serial.setTimeout(1);
  42. ax12a.begin(BaudRate, DirectionPin, &Serial3);
  43. ax12a.setEndless(ID1, OFF);
  44. ax12a.setEndless(ID2, OFF);
  45. servoSerial.begin(115200);
  46. ax12a.move(ID1,512);
  47. ax12a.move(ID2,512);
  48. servo1.setPosition(512, playtime);
  49. }
  50. void loop() {
  51. if (Serial.available()){
  52. //Serial.print(test);
  53. for(int n = 0; n < 10 ; n++){
  54. val[n] = Serial.readString().toInt();
  55. }
  56. position = 0 ;
  57. for(int i = 2; i < 5;i++){
  58. position = position * 10 + val[i];
  59. }
  60. choice = val[0];
  61. Serial.print("Motor: ");
  62. Serial.print(choice);
  63. Serial.print(" position: ");
  64. Serial.print(position);
  65. switch(val[0]){
  66. case 1:
  67. ax12_1(position);
  68. Serial.print("Ready");
  69. break;
  70. case 2:
  71. a116(position);
  72. Serial.print("Ready");
  73. break;
  74. case 3:
  75. ax12_2(position);
  76. Serial.print("Ready");
  77. break;
  78. }
  79. }
  80. }