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;
}
2023人形全能赛体操机器人uno代码的更多相关文章
- DingTalk机器人C#代码
前面已经介绍了机器人的事情,今天直接贴一下代码. using System; using System.Collections.Generic; using System.ComponentModel ...
- QQ聊天机器人 Delphi代码
QQ聊天机器人 前几日,看到杂志上有一篇关于开发QQ聊天机器人的文章.谈到了对QQ循环发送消息内容,感觉倒也很好玩,于是拿起Delphi开始了我的QQ聊天机器人之路. 首先要明白自己要做什么, ...
- Opengl创建机器人手臂代码示例
/*******************************************************robot.cpp*基于opengl的机械手臂示例代码*s:机械臂逆时针旋转*S:机械臂 ...
- ROS系统MoveIt玩转双臂机器人系列(一)
一.ROS系统的MoveIt模块简介 机器人操作系统ROS目前最受关注的两个模块是导航(Navigation)和机械臂控制(MoveIt!),其中,机械臂控制模块(后面简称MoveIt)可以让用户快速 ...
- Office 365 机器人(Bot)开发入门指南 (新篇)
最近在整理书稿时,发现我在2017年7月份写的这篇 Office 365 机器人(Bot)开发入门 的内容,因为相关平台的升级,已经完全不能体现当前的开发过程,所以我再专门写一篇新的开发入门指南给有兴 ...
- Python实现机器人聊天
今天午休的时候,无意之中看了一篇博客,名字叫Python实现机器人,感觉挺有的意思的.于是用其写了一个简单的Python聊天,源码如下所示: # -*- coding: utf- -*- import ...
- SharpGL学习笔记(八) 矩阵堆栈和变换的综合例子: 机器人
我们先引入关于"矩阵堆栈"的官方说法: OpenGL的矩阵堆栈指的就是内存中专门用来存放矩阵数据的某块特殊区域.实际上,在创建.装入.相乘模型变换和投影变换矩阵时,都已用到堆栈操作 ...
- 研发团队如何借助Gitlab来做代码review
代码review是代码质量保障的手段之一,同时开发成员之间代码review也是一种技术交流的方式,虽然会占用一些时间,但对团队而言,总体是个利大于弊的事情.如何借助现有工具在团队内部形成代码revie ...
- Gitlab来做代码review
Gitlab来做代码review 代码review是代码质量保障的手段之一,同时开发成员之间代码review也是一种技术交流的方式,虽然会占用一些时间,但对团队而言,总体是个利大于弊的事情.如何借助现 ...
- 使用图灵机器人api搭建微信聊天机器人php实现
之前通过hook技术实现了微信pc端发送消息功能,如果在结合图灵机器人就能实现微信聊天机器人. 代码下载:http://blog.yshizi.cn/131.html 逻辑如下: 下面我简单介绍一下步 ...
随机推荐
- python 二级 语言基本元素笔记-字符串
l='12345' 1.递增顺序: 正向递增从0开始 负向从[-1]开始,l[1]=2,l[-1]=5 2.切片操作:左开右闭,l[2:5]=3,4 3.导入库,引入 库名.函数名 input函数 输 ...
- Cordova基本使用(二)
cordova的打包发布版app流程简介 除了第一遍官网给的打包发布版的方法,我们可以自己多敲几次命令来实现. 基本上使用如下的几个命令就完成这个过程,先列出整个过程: 1.cordova选定ando ...
- React从webpack迁移到rsbuild 纪实
Why 随着团队项目规模越来越大之后,继从babel-loader迁移到esbuild之后发现打包.热重载性能随着时间迭代之后又慢慢开始成为性能瓶颈,所以决定用新的打包工具去解决这个问题.esbuil ...
- 形态学图像处理(Morphological Image Processing)
形态学图像处理(Morphological Image Processing) 前言 本博客为个人总结数字图像处理一课所写,并给出适当的扩展和相应的demo. 写博客跟做 checkpoint ...
- docker build 镜像时,无法访问网络
前言 在使用 docker build 命令构建 Docker 镜像时遇到无法联网的情况,可能会有多种情况的发生. 检查主机网络设置 检查你的主机是否配置了代理服务器或防火墙,这可能会阻止 Docke ...
- 【服务器】npm配置国内镜像源
[服务器]npm配置国内镜像源 零.问题 配置Node.js的HTTPS的时候,下载不了 一.解决 这里使用的是淘宝的镜像: npm config set registry https://regis ...
- 《机器人SLAM导航核心技术与实战》第1季:第5章_机器人主机
<机器人SLAM导航核心技术与实战>第1季:第5章_机器人主机 视频讲解 [第1季]5.第5章_机器人主机-视频讲解 [第1季]5.1.第5章_机器人主机_X86与ARM主机对比-视频讲解 ...
- Crealens.ai 免费体验GPT-4o 生图+吉卜力风格化
自己的一张日常照片,能在几秒内变身为一幅充满童话感的吉卜力风插画?90%的人不知道,如今只需一句话,就能在 ChatGPT 里实现"AI 生图"--这就是 GPT-4o 生图功能的 ...
- Sql查询(Select)语句实例
span { color: rgba(255, 0, 0, 1) } Select 结构: 句子结构: Select 列名 [all/distinct] from 表名 where 条件 group ...
- AbstractAutoProxyCreator#postProcessBeforeInstantiation
一.定义 postProcessBeforeInstantiation 是 Spring AOP 动态代理的核心扩展点,通过提前创建代理对象优化性能,并支持丰富的自定义逻辑(如事务.安全) 二.代码分 ...