智能寻迹避障清障机器人设计(第四章)

这篇具有很好参考价值的文章主要介绍了智能寻迹避障清障机器人设计(第四章)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

4  Arduino介绍与手机蓝牙APP开发

4.1 Arduino介绍

        在Arduino出现之前,意大利一所高科技技术学校的学生常常抱怨市面上的微控处理器基本上操作复杂,性价比低,无法同时适应多种复杂多变的微传感器。至此,2005年的某一天,该校的老师马西莫·班兹和来这所学校研究的学者大卫·卡泰尔斯一起讨论了现下微控制器的相关问题。于是,两人设计了自己的电路板,马西莫·班兹的学生Banzi设计该电路板的编程语言。该电路板从硬件设计到软件语言编译仅仅只用3天便完成,并根据马西莫·班兹的生活爱好把该电路板命名Arduino,意在怀念自己常去的一个地方。

        Arduino单片机属于AVR单片机,可使用C语言来编程。此外,Arduino把一些简单的参数模块化,使其开发难度大大降低,并支持Windows、Mac OS、Linux、甚至还有的用安卓系统,通过连接手机开发,可见Arduino跨平台能力强。其Arduino相关的MCU型号,以及一些I/O口的相关作用说明如表4.1 Arduino常见版本。

表4.1 Arduino常见版本

MCU

ATmega168/328

ATmega328

ATmega168/328

ATmega168/328

ATmega32u4

ATmega2560

AT91SAM3x8E

工作电压/IO电压

5v

5v

5v

5v

5v

5v

3.3V

数字IO

14

14

14

14

20

14

14

模拟IO

6

6

6

6

12

16

12

时钟频率

16Hz

16Hz

16Hz

16Hz

16Hz

16Hz

84Hz

Flash

16KB/32KB

32KB

16KB/32KB

16KB/32KB

32KB

256KB

512KB

SRAM

1KB/2KB

2KB

1KB/2KB

1KB/2KB

2.5KB

8K

96KB

EEPROM

512bytes/1KB

1KB

512bytes/1KB

512bytes/1KB

1KB

4KB

-

USB芯片

FTDIFT232RL

ATmega16u2

FTDIFT232RL

-

-

ATmega16u2

-

其它特点

早起Arduino版本现已停产

目前使用人数最多的型号适合初学者使用

功能和

Duemilanove一致但更为小巧

最小的Arduino控制器但下载程序得搭配外部的下载器

可以模拟键盘鼠标等USB设备

配置最高的8位Arduino控制器

32位Arduino控制器带有模拟输出引脚2个CAN总线

        本课题使用的Arduino UNO用的芯片型号便是Atmega 328,根据表4.1不能发现该Arduino的数字I/O口以及模拟I/O口数,以及一些实验中需要注意的参数等等。

4.1.1 Arduino UNO R3管脚图

        如图4.1.1所示,Arduino拥有6路数字I/O口可以直接使用PWM输出;并且Arduino支持SPI通信;模拟I/O口D18、D19可以使用I2C总线连接OLED显示屏的SDA和SCL;Arduino板还可以进行异步全双工通信,大大解决了很多单片机只能发送或者接收的缺陷,使得该单片机进行一边发送数据一边接收数据。

智能寻迹避障清障机器人设计(第四章),机器人,c语言,人工智能,信息与通信

图4.1.1 Arduino UNO管脚图

4.1.2 Arduino UNO R3实物图

        如图4.1.2所示,Arduino UNO R3主板拥有14个数字I/O口,并且多数I/O口都拥有二个及其以上特定输出。如:有的数据I/O口不仅可以用来直接输出PWM信号,而且可以用来做SPI通信插口,可见其I/O口的功能强大。除此之外,该主板还有6个模拟I/O口,支持TX/RX全双工通信,可以通过USB口或者外接电源口供电,也可以经过VIN与GND或者VCC与GND供电,其Arduino输出电压可以选择3.3V的DC电压或者5V的DC电压,可直接通过USB口载代码,相对方便。

智能寻迹避障清障机器人设计(第四章),机器人,c语言,人工智能,信息与通信

图4.1.2 Arduino UNO R3实物图

4.1.3 Arduino编程介绍

        虽然说Arduino的编程和很多类型单片机的编程差不多,都是使用常见的C语言编译,但同时也要学会区分于其他编程,Arduino在使用时常常要使用封装函数,从而减轻其工作量,在其书写时还应注意其格式。如所要使用引脚的引脚以及其引脚模式要在void setup()函数里面注明,而主函数要写进void loop()函数里面才能连续运行。由于Arduino很多库函数都是开源的,一些常见的功能可直接调用库函数,要实现一些拓展功能也可以在网上下载其库函数来调用,如:红外控制函数库,舵机控制函数库以及LCD函数库等等。

4.2 手机蓝牙APP的开发

        本课题开始只使用了红外遥控器控制,但由于实验红外遥控与小车所设置的PWM信号产生影响,对实验中很多数据产生了一定的影响,故而使用了简单易学的AppInventor开发了一款蓝牙遥控APP,该AppInventor支持在线编译,编译完成即可以直接直接打包APK,然后通过扫码下载到手机里面安装即可。现在简单的讲述一下如何在AppInventor开发APP,首先通过QQ登录AppInventor官网,创建新的项目,先是设计前端页面,可直接把需要的布局、按键、标签、滑动模块、计时器、蓝牙客户端等拉进编辑页面,根据所需要的效果改动按键、标签、布局的大小形状等,编辑好前端,下面便是后端逻辑层,逻辑层首先要确定APP运行的先后问题,以及APP在手机上面显示时的布局大小、形状、点击按键时运行哪一步都要有明确的顺序问题。如本课题的蓝牙APP很简单,主要二个页面便完成,一个是按键选择页面,一个是蓝牙选择页面。当打开APP进入的是按键选择页面,其大多数按键标签等的布局前端设计好了,后端主要对按键的点击状态做出判断,先要初始化按键以及蓝牙的状态,并设置好需要用到的按键、列表、计时器的状态;设置按下按键时显示蓝牙选择列表;当选择列表里对应的蓝牙对应的蓝牙时,显示对应的连接状态;并通过计算器定时获取接收到的信息并在标签中显示出来,下面便主要是调用相应的按键状态发送设置好的字符串,编程主要代码如图4.2.1所示。

智能寻迹避障清障机器人设计(第四章),机器人,c语言,人工智能,信息与通信

图4.2.1 蓝牙APP主要编程代码

        最终,根据本课题所需要的功能做了如图4.2.2所示的手机蓝牙APP,该APP可以通过发送指令控制智能小车,也可以通过按键来控制小车的运动以及速度,通过接收的数据可以观看智能小车的实时状况如小车运动状态、运动模式、以及测距距离等等。

智能寻迹避障清障机器人设计(第四章),机器人,c语言,人工智能,信息与通信

图4.2.2 蓝牙APP手机展示效果图

4.3 本章小结

        本章讲述了Arduino的发展历程以及Arduino一些引脚的功能利用;并对Arduino的一些相关编程规则做出了介绍;还描述了如何使用AppInventor开发蓝牙APP,并对该APP的使用及其能实现的功能作出一系列的介绍。文章来源地址https://www.toymoban.com/news/detail-780291.html

到了这里,关于智能寻迹避障清障机器人设计(第四章)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器人制作开源方案 | 智能循迹避障小车

    作者: 刘元青、邹海峰、付志伟、秦怀远、牛文进 单位: 哈尔滨信息工程学院 指导老师: 姚清元       智能小车是移动式机器人的重要组成部分,而移动机器人不仅能够在经济、国防、教育、文化和生活中起到越来越大的作用,也是研究复杂智能行为的产生、探索人类思

    2024年01月16日
    浏览(60)
  • 无人驾驶动态避障策略调研 | 机器人动态避障策略 | 行人轨迹预测 | 机器人导航

    最近在研究机器人协同路径规划策略,发现现有paper中的obstacle都是静态的,但是在实际场景中,常有动态障碍的情形,如走动的行人等等。 为了更好的了解相关技术,我开始调研无人驾驶领域中的动态避障策略: 无人驾驶技术是多个技术的集成,包括了传感器、定位与深度

    2023年04月08日
    浏览(37)
  • 机器人的避障常用方案

    提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本

    2024年02月12日
    浏览(41)
  • 【数学建模】机器人避障问题

    已知: 正方形5的左下顶点坐标 ( 80 , 60 ) (80,60) ( 80 , 60 ) ,边长 150 150 150 机器人与障碍物的距离至少超过 10 10 10 个单位 规定机器人的行走路径由直线段和圆弧组成,其中圆弧是机器人转弯路径。 机器人不能折线转弯,转弯路径由与直线路径相切的一段圆弧组成,也可以由两

    2024年04月17日
    浏览(52)
  • 绳牵引并联机器人动态避障方法

    绳牵引并联机器人在受限空间中如何躲避动态障碍物,是个有挑战的课题。 来自哈尔滨工业大学(深圳)的熊昊老师团队,开展了一项有趣的研究,论文《Dynamic Obstacle Avoidance for Cable-Driven Parallel Robots With Mobile Bases via Sim-to-Real Reinforcement Learning》发表在SCIEI收录期刊IEEE Robot

    2024年03月24日
    浏览(47)
  • 遨博协作机器人ROS开发 - 机械臂自主避障

    目录 一、简介 二、环境版本 三、学习目标  五、任务实施 六、任务拓展 七、课堂小结 八、课后练习 大家好,欢迎关注遨博学院带来的系列技术分享文章(协作机器人ROS开发),今天我们来学习一下“机械臂自主避障”。 主机系统版本:Windwos10 64位 处理器型号:Intel-i7 虚

    2023年04月10日
    浏览(41)
  • 机器人避障路径规划的MATLAB模拟退火算法

    机器人避障路径规划的MATLAB模拟退火算法 在机器人路径规划中,避免障碍物是一个重要的问题。模拟退火算法是一种启发式优化算法,可以用于解决路径规划问题。在本文中,我们将使用MATLAB实现一个基于模拟退火算法的机器人避障路径规划程序。 首先,我们需要定义问题

    2024年02月06日
    浏览(44)
  • 机器人动态避障的DWA算法及Matlab实现

    机器人动态避障的DWA算法及Matlab实现 机器人的动态避障是实现智能导航和避免碰撞的关键任务之一。其中,动态窗口方法(Dynamic Window Approach,DWA)是一种常用的算法,能够在实时环境中进行局部路径规划和动态避障。本文将详细介绍DWA算法的原理,并提供Matlab代码来实现机

    2024年02月06日
    浏览(47)
  • 基于蚁群优化的机器人避障算法仿真

    基于蚁群优化的机器人避障算法仿真 随着机器人技术的发展,机器人的避障能力也变得越来越重要。蚁群优化算法是一种智能优化算法,具有全局搜索能力和强鲁棒性。本文将介绍如何使用ACO蚁群优化算法实现机器人的避障功能,并用Matlab进行仿真。 算法原理 蚁群优化算法

    2024年02月12日
    浏览(41)
  • 冰达ROS机器人使用-实现slam建模、自主导航、避障

    1.在windows中下载好远程连接工具: xshell 、 puty 1 2.机器人有两种模式: 模式 说明 AP模式 机器人自己创建一个热点,电脑端连接该热点,实现局域网互通 WiFi模式 机器人和电脑同时连接一个路由器,实现局域网通信 ps:本文使用AP模式,因为用起来比较方便 3.在机器人AP模式下

    2023年04月08日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包