日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

智宇科技 ZYARJX-1机械臂智能小车 —— 手机端蓝牙控制程序

發布時間:2024/5/6 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 智宇科技 ZYARJX-1机械臂智能小车 —— 手机端蓝牙控制程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

arduino文件

#include <Servo.h>Servo myservo1,myservo2,myservo3,myservo4; // create servo object to control a servo const int SERVOS = 4; //舵機數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; }}//---------------------------------手爪函數定義---------------------------------------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]); }//---------------------------------運動函數定義--------------------------------------- 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机械臂智能小车 —— 手机端蓝牙控制程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。