久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10171|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

使用單個arduino nano控制使用麥克納姆輪小車的簡易源碼方案

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:400160 發(fā)表于 2018-9-19 18:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
之前項目做了個簡易的移動平臺方案,圖方便就使用了arduino,然后一個兩軸手柄控制方向,帶動四個兩相步進(jìn)電機(jī) 算是個比較偷懶的解決方案了,但是比較直接明了

arduino源程序如下:
  1. #include <math.h>
  2. #include <Stepper.h>

  3. //Stepper control
  4. #define LF 6
  5. #define RF 7
  6. #define RR 8

  7. //right and left button
  8. const int leftBtn = A3;
  9. const int rightBtn = A2;
  10. //Joystick
  11. const int xAxis = A0;
  12. const int yAxis = A1;
  13. int range = 10;

  14. //Initialise the stepper motors
  15. const int stepsPeRFevolution = 1600;  //number of steps per revolution
  16. Stepper RightFront(stepsPeRFevolution, 2,3,4,5);

  17. void setup() {
  18.   Serial.begin(9600);
  19.   RightFront.setSpeed(0);

  20.   pinMode(rightBtn, INPUT);
  21.   pinMode(leftBtn, INPUT);

  22.   pinMode(xAxis, INPUT);
  23.   pinMode(yAxis, INPUT);

  24.   pinMode(LF, OUTPUT);
  25.   pinMode(RF, OUTPUT);
  26.   pinMode(RR, OUTPUT);
  27.   digitalWrite(rightBtn, HIGH);
  28.   digitalWrite(leftBtn, HIGH);
  29. }

  30. void loop() {
  31.   int xVal = map(analogRead(xAxis), 0, 1023, 0, range);
  32.   int yVal = map(analogRead(yAxis), 0, 1023, 0, range);
  33.   int turnright = digitalRead(rightBtn);
  34.   int turnleft = digitalRead(leftBtn);
  35.   Serial.println(xVal);
  36.   Serial.println(yVal);
  37.   Serial.println(turnright);
  38.   Serial.println(turnleft);
  39.   if (turnright == HIGH)
  40.   {
  41.     RightFront.setSpeed(5);
  42.     moveCW(10);   //clockwise rightsideBackwards, leftsideForwards
  43.   }
  44.   else if (turnleft == HIGH)
  45.   {
  46.     RightFront.setSpeed(5);
  47.     moveACW(10);   //anticlockwise leftsideBackwards,rightsideForwards
  48.   }
  49.   else if (turnright == LOW && turnleft == LOW)
  50.   {
  51.     if (xVal == 5)
  52.     {
  53.         if (yVal == 0) {
  54.           RightFront.setSpeed(20);
  55.           goBackward(10);
  56.         }
  57.         else if (yVal == 9)
  58.         {
  59.           RightFront.setSpeed(20);
  60.           goForward(10);
  61.         } else {
  62.           if (yVal >= 7 ) {
  63.             RightFront.setSpeed(10);
  64.             goForward(10);
  65.           }
  66.           else if (yVal <= 3) {
  67.             RightFront.setSpeed(10);
  68.             goBackward(10);
  69.           }
  70.         }
  71.     }
  72.     else if (yVal == 5)
  73.     {

  74.         if (xVal == 0) {
  75.           RightFront.setSpeed(20);
  76.           moveRight(10);
  77.         }
  78.         else if (xVal == 9)
  79.         {
  80.           RightFront.setSpeed(20);
  81.           moveLeft(10);
  82.         } else {
  83.           if (xVal >= 6 ) {
  84.             RightFront.setSpeed(10);
  85.             moveLeft(10);
  86.           }
  87.           else if (xVal <= 4) {
  88.             RightFront.setSpeed(10);
  89.             moveRight(10);
  90.           }
  91.         }
  92.     }
  93.   }
  94. }

  95. //Methods for stepper movement
  96. void goForward(int mSteps) {
  97.   RightFront.step(mSteps);
  98.   digitalWrite(LF, LOW);
  99.   digitalWrite(RF, HIGH);
  100.   digitalWrite(RR, HIGH);
  101. }

  102. void goBackward(int mSteps) {
  103.   RightFront.step(-mSteps);
  104.   digitalWrite(LF, HIGH);
  105.   digitalWrite(RF, LOW);
  106.   digitalWrite(RR, LOW);
  107. }

  108. void moveRight(int mSteps) {
  109.   RightFront.step(-mSteps);
  110.   digitalWrite(LF, LOW);
  111.   digitalWrite(RF, LOW);
  112.   digitalWrite(RR, HIGH);
  113. }

  114. void moveLeft(int mSteps) {
  115.   RightFront.step(mSteps);
  116.   
  117.   digitalWrite(LF, HIGH);
  118.   digitalWrite(RF, HIGH);
  119.   digitalWrite(RR, LOW);
  120. }

  121. void moveACW(int mSteps) {
  122.   RightFront.step(-mSteps);
  123.   digitalWrite(LF, HIGH);
  124.   digitalWrite(RF, HIGH);
  125.   digitalWrite(RR, HIGH);
  126. }

  127. void moveCW(int mSteps) {
  128.   RightFront.step(mSteps);
  129.   digitalWrite(LF, LOW);
  130.   digitalWrite(RF, LOW);
  131.   digitalWrite(RR, LOW);
  132. }

  133. void moveRightForward(int mSteps) {
  134.   RightFront.step(mSteps);
  135.   digitalWrite(LF, LOW);
  136.   digitalWrite(RF, LOW);
  137.   digitalWrite(RR, HIGH);
  138. }

  139. void moveRightBackward(int mSteps) {
  140.   RightFront.step(mSteps);
  141.   digitalWrite(LF, LOW);
  142.   digitalWrite(RF, LOW);
  143.   digitalWrite(RR, HIGH);
  144. }

  145. void moveLeftForward(int mSteps) {
  146.   RightFront.step(mSteps);
  147.   digitalWrite(LF, LOW);
  148.   digitalWrite(RF, LOW);
  149.   digitalWrite(RR, HIGH);
  150. }

  151. void moveLeftBackward(int mSteps) {
  152.   RightFront.step(mSteps);
  153.   digitalWrite(LF, LOW);
  154.   digitalWrite(RF, LOW);
  155.   digitalWrite(RR, HIGH);
  156. }

  157. void turnRight(int mSteps) {
  158.   RightFront.step(mSteps);
  159.   digitalWrite(LF, LOW);
  160.   digitalWrite(RF, LOW);
  161.   digitalWrite(RR, HIGH);
  162. }

  163. void turnLeft(int mSteps) {
  164.   RightFront.step(mSteps);
  165.   digitalWrite(LF, LOW);
  166.   digitalWrite(RF, LOW);
  167.   digitalWrite(RR, HIGH);
  168. }

  169. void stopRobot(int delay_ms) {
  170.   RightFront.step(0);
  171.   delay(delay_ms);
  172. }

  173. void hardStop() {
  174.   RightFront.step(0);
  175. }
復(fù)制代碼

所有資料51hei提供下載:
MecanumStepperMotor.7z (1.03 KB, 下載次數(shù): 62)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:539741 發(fā)表于 2020-1-31 11:10 | 只看該作者
正好   畢設(shè)需要用這個
回復(fù)

使用道具 舉報

板凳
ID:813064 發(fā)表于 2020-12-10 17:44 | 只看該作者
不錯,簡單明了
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人午夜性成交 | 刘亦菲国产毛片bd | 一级片免费视频 | 中文字幕日韩一区 | 粉嫩国产精品一区二区在线观看 | 成人一区二区在线 | 精品一区二区三区四区五区 | 欧美精品首页 | 成人精品国产免费网站 | 色综合成人网 | 在线只有精品 | 亚洲精品在线看 | 国产高清视频在线 | 亚洲三级国产 | 日韩成人精品视频 | 91毛片网| 亚洲国产成人精品女人 | 第一区在线观看免费国语入口 | 91社区视频 | 天天av天天好逼 | 成人av免费看| av资源在线看 | 日日夜夜精品视频 | 99热这里都是精品 | 色综合久久伊人 | 一区二区三区精品 | 亚洲国产中文字幕 | 欧美亚洲激情 | 国产日韩免费观看 | 精品av| 91精品久久久久久久久 | 免费观看毛片 | 中文日韩在线视频 | 久久人人网| 东方伊人免费在线观看 | 欧美一区二区三区在线观看 | 女同videos另类 | 成年无码av片在线 | 国产中文在线观看 | 国产精品久久久久一区二区三区 | 国产免费麻豆视频 |