2023人形全能赛体操机器人uno代码

  • uno
// @Author  : Hcm

#include <SoftwareSerial.h>        // 软串口
#include <LobotServoController.h>  // 控制舵机
#include <OneButton.h>             // 按钮库

#define KEY_START 9     // 按钮对应的串口
#define FIRST_STOP_ACTION 88                  // 初始化立正动作对应位置
#define FIRST_STOP_ACTION_TIME 1000          // 需要的时间,下面都类似

LobotServoController myse;         // 实例化通信接口
SoftwareSerial BT(10, 11);         // BT(RX, TX)
OneButton button_9(KEY_START, false);   // 实例化按钮 true:按下为低电平 false : 按下为高电平

// 变量定义
unsigned long time_begin;    // millis() 获取的是毫秒 1s = 1000ms
unsigned long count_time=114000;  // 初始动作运行的时间
bool is_read=false;              // 判断是否已经读过数据
bool ready_to_start=false;    // 开始比赛
char val;                    // 接收的值

// 函数定义
void first_stop();
void clickonce2start();

void setup() {
  // 与舵机板通信接口
  Serial.begin(9600);
  Serial.println("Mega is Ready!");
  // 与蓝牙通信
  BT.begin(57600);
  // 按钮事件初始化
  button_9.reset();          //清除一下按钮状态机的状态
  button_9.attachClick(clickonce2start);   // 单击
}

void loop() {
  delay(1000);
  first_stop();
  while(!(ready_to_start))
  {
    button_9.tick();
  }
  Serial.println("Start!");
  ready_to_start = false;
  myse.runActionGroup(100, 1);
  time_begin = millis();
  while(millis() - time_begin < count_time || !(is_read))
  {
    // Serial.println(millis() - time_begin < count_time);
    if (BT.available() && !(is_read))
    {
      val = BT.read();
      Serial.println(val);  // 调试用
      is_read = true;
      // break;
    }
  }
  Serial.println("Ready to show originality action!");
  switch(val)
  {
    case '1':myse.runActionGroup(1, 2);break;//前滚翻
    case '2':myse.runActionGroup(2, 2);break;//后滚翻
    case '3':myse.runActionGroup(3, 2);break;//单手俯卧撑
    case '4':myse.runActionGroup(4, 2);break;//双手俯卧撑
    case '5':myse.runActionGroup(5, 2);break;//左侧身翻360°
    case '6':myse.runActionGroup(6, 2);break;//右侧身翻360°
    case '7':myse.runActionGroup(7, 2);break;//倒立并腿
    case '8':myse.runActionGroup(8, 2);break;//倒立劈叉
    case 'a':myse.runActionGroup(9, 1);break;//12前滚翻+后滚翻
    case 'b':myse.runActionGroup(10, 1);break;//13前滚翻+单手俯卧撑
    case 'c':myse.runActionGroup(11, 1);break;//14前滚翻+双手俯卧撑
    case 'd':myse.runActionGroup(12, 1);break;//15前滚翻+左侧身翻360°
    case 'e':myse.runActionGroup(13, 1);break;//16前滚翻+右侧身翻360°
    case 'f':myse.runActionGroup(14, 1);break;//17前滚翻+倒立并腿 
    case 'g':myse.runActionGroup(15, 1);break;//18前滚翻+倒立劈叉
    case 'h':myse.runActionGroup(16, 1);break;//21后滚翻+前滚翻
    case 'i':myse.runActionGroup(17, 1);break;//23后滚翻+单手俯卧撑
    case 'j':myse.runActionGroup(18, 1);break;//24后滚翻+双手俯卧撑
    case 'k':myse.runActionGroup(19, 1);break;//25后滚翻+左侧身翻360°
    case 'l':myse.runActionGroup(20, 1);break;//26后滚翻+右侧身翻360°
    case 'm':myse.runActionGroup(21, 1);break;//27后滚翻+倒立并腿
    case 'n':myse.runActionGroup(22, 1);break;//28后滚翻+倒立劈叉
    case 'o':myse.runActionGroup(23, 1);break;//31单手俯卧撑+前滚翻
    case 'p':myse.runActionGroup(24, 1);break;//32单手俯卧撑+后滚翻
    case 'q':myse.runActionGroup(25, 1);break;//34单手俯卧撑+双手俯卧撑
    case 'r':myse.runActionGroup(26, 1);break;//35单手俯卧撑+左侧身翻360°
    case 's':myse.runActionGroup(27, 1);break;//36单手俯卧撑+右侧身翻360°
    case 't':myse.runActionGroup(28, 1);break;//37单手俯卧撑+倒立并腿
    case 'u':myse.runActionGroup(29, 1);break;//38单手俯卧撑+倒立劈叉
    case 'v':myse.runActionGroup(30, 1);break;//41双手俯卧撑+前滚翻
    case 'w':myse.runActionGroup(31, 1);break;//42双手俯卧撑+后滚翻
    case 'x':myse.runActionGroup(32, 1);break;//43双手俯卧撑+单手俯卧撑
    case 'y':myse.runActionGroup(33, 1);break;//45双手俯卧撑+左侧身翻360°
    case 'z':myse.runActionGroup(34, 1);break;//46双手俯卧撑+右侧身翻360°
    case 'A':myse.runActionGroup(35, 1);break;//47双手俯卧撑+倒立并腿
    case 'B':myse.runActionGroup(36, 1);break;//48双手俯卧撑+倒立劈叉
    case 'C':myse.runActionGroup(37, 1);break;//51左侧身翻360°+前滚翻
    case 'D':myse.runActionGroup(38, 1);break;//52左侧身翻360°+后滚翻
    case 'E':myse.runActionGroup(39, 1);break;//53左侧身翻360°+单手俯卧撑
    case 'F':myse.runActionGroup(40, 1);break;//54左侧身翻360°+双手俯卧撑
    case 'G':myse.runActionGroup(41, 1);break;//56左侧身翻360°+右侧身翻360°
    case 'H':myse.runActionGroup(42, 1);break;//57左侧身翻360°+倒立并腿
    case 'I':myse.runActionGroup(43, 1);break;//58左侧身翻360°+倒立劈叉
    case 'J':myse.runActionGroup(44, 1);break;//61右侧身翻360°+前滚翻
    case 'K':myse.runActionGroup(45, 1);break;//62右侧身翻360°+后滚翻
    case 'L':myse.runActionGroup(46, 1);break;//63右侧身翻360°+单手俯卧撑
    case 'M':myse.runActionGroup(47, 1);break;//64右侧身翻360°+双手俯卧撑
    case 'N':myse.runActionGroup(48, 1);break;//65右侧身翻360°+左侧身翻360°
    case 'O':myse.runActionGroup(49, 1);break;//67右侧身翻360°+倒立并腿
    case 'P':myse.runActionGroup(50, 1);break;//68右侧身翻360°+倒立劈叉
    case 'Q':myse.runActionGroup(51, 1);break;//71倒立并腿+前滚翻
    case 'R':myse.runActionGroup(52, 1);break;//72倒立并腿+后滚翻
    case 'S':myse.runActionGroup(53, 1);break;//73倒立并腿+单手俯卧撑
    case 'T':myse.runActionGroup(54, 1);break;//74倒立并腿+双手俯卧撑
    case 'U':myse.runActionGroup(55, 1);break;//75倒立并腿+左侧身翻360°
    case 'V':myse.runActionGroup(56, 1);break;//76倒立并腿+右侧身翻360°
    case 'W':myse.runActionGroup(57, 1);break;//78倒立并腿+倒立劈叉
    case 'X':myse.runActionGroup(58, 1);break;//81倒立劈叉+前滚翻
    case 'Y':myse.runActionGroup(59, 1);break;//82倒立劈叉+后滚翻
    case 'Z':myse.runActionGroup(60, 1);break;//83倒立劈叉+单手俯卧撑
    case '+':myse.runActionGroup(61, 1);break;//84倒立劈叉+双手俯卧撑
    case '-':myse.runActionGroup(62, 1);break;//85倒立劈叉+左侧身翻360°
    case '*':myse.runActionGroup(63, 1);break;//86倒立劈叉+右侧身翻360°
    case '/':myse.runActionGroup(64, 1);break;//87倒立劈叉+倒立并腿  
  }
  while(1);
}

void loop1(){
  while(!(ready_to_start))
  {
    button_9.tick();
  }
  Serial.println("Start!");
  ready_to_start = false;
  while(1){
  if(BT.available()){
    Serial.println(BT.read());
    myse.runActionGroup(88, 1);
  }
  }
}

void first_stop()
{
  myse.runActionGroup(FIRST_STOP_ACTION, 1);
  delay(FIRST_STOP_ACTION_TIME);
}

void clickonce2start()
{
  ready_to_start=true;
}

posted @ 2023-10-17 17:59  ihuahua1415  阅读(22)  评论(0)    收藏  举报
*/