智宇科技 ZYARJX-1机械臂智能小车 —— 手机端蓝牙控制程序
生活随笔
收集整理的這篇文章主要介紹了
智宇科技 ZYARJX-1机械臂智能小车 —— 手机端蓝牙控制程序
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
arduino文件
#include <Servo.h>Servo myservo1,myservo2,myservo3,myservo4; // create servo object to control a servo const int SERVOS = 4; //舵機數(shù)4個 int value[SERVOS], idle[SERVOS], currentAngle[SERVOS], MIN[SERVOS], MAX[SERVOS], INITANGLE[SERVOS], previousAngle[SERVOS],ANA[SERVOS]; char command; //read the char #define ServoDelayTime 50int delta = 5; //舵機轉動幅度 int delta_bottom = 2; //底座舵機轉動幅度void setup() {// put your setup code here, to run once:Serial.begin(9600); //The monitor UART//-----電機IO口定-pinMode( 8, OUTPUT);pinMode( 9, OUTPUT);pinMode( 10, OUTPUT);pinMode( 11, OUTPUT);//機械手爪定義端口myservo1.attach(2); //手爪電機myservo2.attach(7); //上臂電機myservo3.attach(12); //下臂電機myservo4.attach(13); //底座電機 //手爪 ServoMIN[0] = 10;MAX[0] = 50;INITANGLE[0] = 30;//上臂電機MIN[1] = 10; // This should bring the lever to just below 90deg to groundMAX[1] = 140;INITANGLE[1] = 90; // This should bring the lever parallel with the ground//下臂電機MIN[2] = 40;MAX[2] = 170;INITANGLE[2] = 90;//底座電機MIN[3] = 0;MAX[3] = 170;INITANGLE[3] = 90;//初始化電機myservo1.write(INITANGLE[0]); myservo2.write(INITANGLE[1]); myservo3.write(INITANGLE[2]);myservo4.write(INITANGLE[3]); currentAngle[0]=INITANGLE[0];currentAngle[1]=INITANGLE[1];currentAngle[2]=INITANGLE[2];currentAngle[3]=INITANGLE[3]; }void loop() {// put your main code here, to run repeatedly:if(Serial.available()>0){command = Serial.read();Serial.println(command);} switch (command){case 'F':forward(); //機器人前進break;case 'B':back(); //機器人后退break;case 'R':right(); //機器人右轉break;case 'L':left(); //機器人左轉break;case 'S':stop(); //機器人停止Serial.println("S");break; case '0':Serial.println("Servo all stop");delay(ServoDelayTime);break;case '1':Serial.println("MeArm turn Left");BottomLeft();delay(ServoDelayTime);break;case '2':Serial.println("MeArm turn Right");BottomRight();delay(ServoDelayTime);break;case '3':Serial.println("Arm A Up");Arm_A_Up(); delay(ServoDelayTime);break;case '4':Serial.println("Arm A Down");Arm_A_Down(); delay(ServoDelayTime);break;case '5':Serial.println("Arm B Up");Arm_B_Up(); delay(ServoDelayTime);break;case '6':Serial.println("Arm B Down");Arm_B_Down(); delay(ServoDelayTime);break;case '7':Serial.println("Clamp Open");ClampOpen(); //打開手爪 break;case '8':Serial.println("Clamp Close");ClampClose(); // 閉合手爪break; }}//---------------------------------手爪函數(shù)定義---------------------------------------void ClampOpen() //手爪打開 {myservo1.write(MAX[0]);delay(300); }void ClampClose() {myservo1.write(MIN[0]); //手爪閉合delay(300); } void BottomLeft() // 底座左轉 {if(currentAngle[3] + delta_bottom < MAX[3]) {currentAngle[3] += delta_bottom;}myservo4.write(currentAngle[3]); }void BottomRight() // 底座右轉 {if(currentAngle[3] - delta_bottom > MIN[3]) currentAngle[3] -= delta_bottom;myservo4.write(currentAngle[3]); }void Arm_A_Up() //上臂舵機向上 {if(currentAngle[1] + delta < MAX[1])currentAngle[1] += delta;myservo2.write(currentAngle[1]); }void Arm_A_Down() //上臂舵機向下 {if(currentAngle[1] - delta > MIN[1])currentAngle[1] -= delta;myservo2.write(currentAngle[1]); }void Arm_B_Up() //下臂舵機上升 {if(currentAngle[2] - delta > MIN[2])currentAngle[2] -= delta;myservo3.write(currentAngle[2]); }void Arm_B_Down() //下臂舵機下降 {if(currentAngle[2] + delta < MAX[2])currentAngle[2] += delta;myservo3.write(currentAngle[2]); } void Servo_stop() //停止所有舵機 {myservo1.write(currentAngle[0]);myservo2.write(currentAngle[1]);myservo3.write(currentAngle[2]);myservo4.write(currentAngle[3]); }//---------------------------------運動函數(shù)定義--------------------------------------- void forward() {digitalWrite(8, LOW);digitalWrite(9, HIGH);digitalWrite(11, LOW); digitalWrite(10, HIGH); }void right() {digitalWrite(8, LOW);digitalWrite(9, HIGH);digitalWrite(11, LOW);digitalWrite(10, LOW); }void back() {digitalWrite(8, HIGH);digitalWrite(9, HIGH);digitalWrite(11, HIGH);digitalWrite(10, HIGH); }void left() {digitalWrite(8, LOW);digitalWrite(9, LOW);digitalWrite(11, LOW);digitalWrite(10, HIGH); }void stop() {digitalWrite(8, LOW);digitalWrite(9, LOW);digitalWrite(11, LOW);digitalWrite(10, LOW); }總結
以上是生活随笔為你收集整理的智宇科技 ZYARJX-1机械臂智能小车 —— 手机端蓝牙控制程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Martix工作室考核题 —— 输入一串
- 下一篇: 智宇科技 ZYARJX-1机械臂智能小车