嵌入式记录2——Kame四足巡线机器人
这是本人嵌入式学习记录的第二期,仅作记录。
准备材料
Arduino Nano开发板(拓展版)
Arduino Nano 是一款类似Arduino UNO的开发板。区别是Nano的尺寸更加小巧。Arduino Nano 是一款基于 ATmega328P的开发板。它可以直插面包板的 。Arduino Nano 与Arduino Uno十分类似。它与Uno的区别是Nano没有直流电压供电接口同时Nano通过Mini-B USB 接口与电脑连接。
主要技术参数
微控制器 | ATmega328P |
工作电压 | 5伏特 |
Flash Memory(闪存) | 32 KB (ATmega328P) 其中由 0.5 KB用于系统引导(bootloader) |
SRAM(静态存储器) | 2 KB (ATmega328P) |
EEPROM | 1 KB (ATmega328P) |
模拟输入引脚 | 8个 |
EEPROM | 1Kb |
输入/输出引脚直流电流 | 40 毫安 |
输入电压 | 7-12伏特 |
数字输入输出引脚 | 22个(其中有6个引脚可作为PWM引脚) |
PWM引脚 | 6个 |
3.3V引脚电流 | 50 毫安 |
长 | 45 mm |
宽 | 18 mm |
重 | 7克 |
时钟频率 | 16 MHz |
开发板原理图
黑色胶布
黑色胶布用于搭建小车运行的“轨道”,选用黑色宽度18mm左右的即可。
循迹模块
在此我们使用循迹模块TCRT5000,该模块体积小,灵敏度较高,还可以通过转动上面的电位器来调节检测范围。关于循迹控制,希望后期能加上PID进行高精度的控制,现在这里立个坑。
控制介绍
主控使用Arduino nano控制,不过这次每条腿添加了双线程控制,因此更加灵活,由于Arduino本身没有多线程,因此外置添加了一个Metro库,本质上是用定时器的millis函数写出来的,引用的开源项目可以参考:
Arduino 使用Metor库 简单实现多线程编程_ling3ye的博客-CSDN博客_arduino多线程编程
利用多线程实现对每条腿的控制延迟降低效果较好,同时通过每次旋转前反馈读取舵机角度,避免了大范围抖动旋转从而使舵机损坏,signalLegcontrol()函数针对每一条腿可以实现较好的控制
void signalLegcontrol(int value1,int value2,int cmd1,int cmd2){//单腿多线程控制if(servo1Metro.check()){servo1State =! servo1State;P1_angle = servo[cmd1].read();if(P1_angle < value1){for(P1_angle;P1_angle <= value1;P1_angle++){servo[cmd1].write(P1_angle);delayMicroseconds(1000);} }else if(P1_angle > value1){for(P1_angle;P1_angle >= value1;P1_angle--){servo[cmd1].write(P1_angle);delayMicroseconds(1000);} }else if(P1_angle = value1){servo[cmd1].write(P1_angle);delayMicroseconds(1000); }}if(servo2Metro.check()){servo1State =! servo1State;P2_angle = servo[cmd2].read();if(P2_angle < value2){for(P2_angle;P2_angle <= value2;P2_angle++){servo[cmd2].write(P2_angle);delayMicroseconds(1000);} }else if(P2_angle > value2){for(P2_angle;P2_angle >= value2;P2_angle--){servo[cmd2].write(P2_angle);delayMicroseconds(1000);} }else if(P2_angle = value2){servo[cmd2].write(P2_angle);delayMicroseconds(1000);} }
}
利用该函数模块编写了手动模式和巡线模式两种,步态依旧采用‘X’型步态,同样暂时没有配合PID进行控制,但由于loop部分写得不是很好,仅用switch进行选择控制,因此要重新选择模式只能Reset,就很
嵌入式记录2——Kame四足巡线机器人相关推荐
- 乐高四光感巡线思路解说
乐高四光感巡线思路解说 国际赛现场 视频 http://v.youku.com/v_show/id_XMzc3OTkzNjE4OA==.html 车头朝前光感从左到右编号分别是 1234 巡线原理 车 ...
- 差速巡线机器人设计-满分(100+)的报告-2020
熟悉我个人博客风格的伙伴们一定知道,博客就是分享,目标明确,学生是所有课程最为重要的核心. 如下是学生完成的博客报告,数据截止到23-03-21: 给100分,只是因为满分就是这么多,饱和了,再高也溢 ...
- 使用Arduino Uno构建一个巡线机器人
使用Arduino Uno构建一个巡线机器人 原文 MX 巡线机器人(**LFR)**是一种简单的自主引导机器人,它遵循在地面上绘制的线来检测白色表面上的暗线或黑暗表面上的白线.在本教程中,使用 Ar ...
- 巡线机器人 - PID控制 - 安卓设置
巡线机器人 - PID控制 - 安卓设置 原文 该项目的目的是构建具有PID控制的巡线机器人.我们还将使用Android设备轻松设置主要控制参数,以便更好,更快地进行调谐.项目中用到的舵机也可用MG9 ...
- 差速巡线机器人设计-及格(60+)的报告-2023
实践项目名称:差速巡线机器人设计 实验目的 基于差速机器人底盘和传感器,使用微处理器编程实现机器人快速巡线行驶. 差速巡线机器人设计实验的目的是为了探索差速驱动技术在机器人巡线中的应用.通过设计和制作 ...
- 蓝桥ROS-差速巡线机器人设计-良好(80+)的报告-复现
#勤写标兵挑战赛# 参考资料: 蓝桥ROS机器人之v-rep_pro_edu_v3_6_2 差速巡线机器人设计-良好(80+)的报告-2023 这个案例全部在ROS云课中完成. 第一步:安装v-rep ...
- 差速巡线机器人设计-良好(80+)的报告-2023
如何提分?将一篇报告提升20分以上呢? 差速巡线机器人设计-及格(60+)的报告-2023_zhangrelay的博客-CSDN博客 姓名: 学号: 实践项目1名称:差速巡线机器人设计 60分:缺乏思 ...
- 基于LEGO使用PID算法进行单光巡线机器人设计的心得体会
高中毕业,高考成绩不错,这一个假期的时间相当富裕,准备静下心来研究PID算法,手边有LEGO EV3机器人,正好是很优秀的实验平台,研究完了以后,在这里谈谈我的感想. 公式: 光感测定值 - OFFS ...
- 机器人编程按时巡线_ros机器人编程实践(12.2)- 用turtlebot仿真巡线机器人
前言 巡线设计 用自定义的图片设计gazebo的地板 首先我们需要设计一个gazebo的地板,这里感谢前辈的回答:参考问答 第一步:在home目录下ctrl+h显示隐藏文件 第二步:在.gazebo文 ...
- wedo巡线机器人编程教程_这是一个机器人和编程的时代
图中在草地上自在奔跑的机器人是波士顿动力公司(BostonDynamics) 开发的类人双足机器人Atlas,由麻省理工(MIT)电子工程与计算机科学系的教授马克·雷波特在1992年创立,一直致力于将 ...
最新文章
- 量子计算机科学原理,1000字看懂IBM量子计算机原理
- 操作系统学习:Linux0.12初始化详细流程-进程1调度与读取硬盘数据
- redis集群部署步骤
- EasyUI-子页面增加显示tabs的一个问题
- mysql for Mac 下创建数据表中文显示为?的解决方法
- 利用docker编译Android源码
- 北斗导航 | Modified Tropospheric:对流层延迟计算(matlab代码)
- yum 不小心删除后安装
- (4) ebj学习:ejb发布web service
- gcc 4.4.2 安装
- [转](转载+整理)超详细的cmake教程
- OpenCV3 for python3 学习笔记3-----用OpenCV3处理图像2
- 大航海北斗星导航系统V1.10
- JS中拼接VUE的ONCLICK事件
- vue.js的生命周期
- win7家庭版升级为Win7旗舰版
- wo-27s管理员账户和密码_开机密码忘了怎么解决
- 教你制作QQ空间超高连通率背景音乐链接。
- 队列的介绍和实现(C语言实现)
- 第二期腾讯AI加速器将面向全球招募AI创业者
热门文章
- 南京大学计算机专业考研难吗,计算机专业考研,除了南大和中山,还有哪些大学难度大性价比高...
- H5页面调起手机打电话功能
- C语言 陶陶摘苹果 数组,陶陶摘苹果-题解(C++代码)
- adams2020安装教程(附详细图文安装教程)
- retainall java_瞬间教你学会使用java中list的retainAll方法
- vue3.0中使用echarts
- Django模板中加减乘除基本语法
- 使用QT简单写一个串口助手
- 基于JAVA的教务排课系统毕业设计
- 超详细的CentOS7的下载安装配置教程