玩转树莓派:树莓派智能小车DIY全过程手机控制循迹避障(包含源码)
基于树莓派的智能小车的设计与开发

基于树莓派的智能小车的设计与开发
韩改宁;苏静池;张瑞斌
【期刊名称】《电子设计工程》
【年(卷),期】2024(32)1
【摘要】针对疫情期间或者特殊行业无接触配送的需求,基于树莓派4B处理器及Raspberry操作系统,采用Python开发语言及TensorFlow、OpenCV和
RPi.GPIO等实现开发。
通过车载摄像头采集图像,利用OpenCV技术对图像进行处理,实现循迹功能;通过建立深度学习模型,对红绿灯数据集进行训练,利用训练好的模型实现红绿灯识别功能;通过红外避障模块实现道路避障功能。
在带有红绿灯、障碍物和四个弯道的长方体模拟轨道进行测试,能准确地完成两圈行驶。
该设计原理清晰,易于实现,在无接触配送、无人驾驶等方面具有很高的应用价值。
【总页数】5页(P6-10)
【作者】韩改宁;苏静池;张瑞斌
【作者单位】咸阳师范学院计算机学院
【正文语种】中文
【中图分类】TN4
【相关文献】
1.基于Arduino和树莓派的智能小车的设计与实现
2.基于树莓派单片机的多功能智能小车设计
3.基于树莓派的防疫辅助智能小车的设计
4.基于云开发与树莓派变形监测系统的设计实现
5.基于树莓派的智能小车远程控制系统设计
因版权原因,仅展示原文概要,查看原文内容请购买。
智能寻迹小车实验报告

智能寻迹小车实验报告
实验目的:
设计一个智能寻迹小车,能够依据环境中的黑线自主行驶,并避开障碍物。
实验材料:
1. Arduino开发板
2. 电机驱动模块
3. 智能车底盘
4. 红外传感器
5. 电源线
6. 杜邦线
7. 电池
实验步骤:
1. 按照智能车底盘的说明书将车底盘组装起来。
2. 将Arduino开发板安装在车底盘上,并与电机驱动模块连接。
3. 连接红外传感器到Arduino开发板上,以便检测黑线。
4. 配置代码,使小车能够依据红外传感器检测到的黑线自主行驶。
可以使用PID控制算法来控制小车的速度和方向。
5. 测试小车的寻迹功能,可以在地面上绘制黑线,观察小车是否能够准确地跟随黑线行驶。
6. 根据需要,可以添加避障功能。
可以使用超声波传感器或红外避障传感器来检测障碍物,并调整小车的行驶路线。
实验结果:
经过实验,可以发现小车能够依据红外传感器检测到的黑线自主行驶,并能够避开障碍物。
小车的寻迹功能和避障功能能够实现预期的效果。
实验总结:
本次实验成功设计并实现了智能寻迹小车。
通过使用Arduino 开发板、电机驱动模块和红外传感器等材料,配合合适的代码配置,小车能够准确地跟随黑线行驶,并能够避开障碍物。
该实验展示了智能小车的基本原理和应用,为进一步研究和开发智能车提供了基础。
基于单片机的智能小车红外避障循迹系统设计与制作

基于单片机的智能小车红外避障循迹系统设计与制作随着科技的高速发展,人们对生活质量的要求越来越高,无人驾驶汽车已经被广为研发和试用,由此智能小车的快速发展也是在情理之中。
通过对基于单片机的智能小车的硬件及软件设计分析,实现红外避障循迹功能,并给出程序系统框图加以分析,最后通过实践证明这一设计的可行性和可靠性。
标签:AT89S52 单片机;智能小车;系统框图;红外避障;循迹1 系统总体设计2 系统的硬件设计与制作在智能小车红外避障循迹系統的设计上,其硬件设计主要在电机模块和传感器模块等这两个部分的内容。
2.1 硬件的设计硬件的设计主要体现在电机和传感器的选择上,在电机设计上采取360度伺服舵机,可以实现连续的速度与位移控制,且其本身存在分别负责伺服舵机的电源、接地、信号控制的红、黑、白三条输入线,还存在基准电路及比较器。
这一结构可以更好地实现智能小车的控制。
传感器的设计上选择了QTI红外传感器,通过接受不同的反射光强度,实现对不同颜色物体的探测,且探测QTI传感器能够自动输出不同的电平信号,为智能小车避障的实现提供了有力的保障。
2.2 硬件的制作硬件的制作主要介绍电路板的焊制及焊制方法,为智能小车的功能实现提供坚实的基础。
2.2.1 电路板的焊制电路板的焊制优劣直接影响到成果的效果展示,电路板的焊接内容主要是焊接电阻、电容、发光二极管、晶振、三极管、STM32、USB、三端稳压、电机驱动。
2.2.2 元件的焊制方法按照先焊一边再焊另一边的方法,先把焊锡丝放在焊盘的中间,放上电烙铁,焊锡丝融化后立马拿开焊锡丝,再拿开电烙铁,一定要注意焊锡的量不能过多也不能过少,一只手用镊子把贴片元件放平夹着,另一只手用电烙铁把焊盘上的焊锡融化,马上把贴片元件的一端推到焊锡处,再把元件的另一端焊盘焊上少量焊锡,推到元件的一端处。
由于元件种类较多,一般按照元件的大小从小到大的顺序焊接。
焊接完成后就可以进行组装,组装完毕后,组装过程中,要注意电源的正负极,不可接反。
基于STM32的智能循迹避障小车

基于STM32的智能循迹避障小车【摘要】本文介绍了一款基于STM32的智能循迹避障小车。
在引言中,我们简要介绍了背景信息,并阐明了研究的意义和现状。
在我们详细讨论了STM32控制系统设计、循迹算法实现、避障算法设计、硬件设计和软件设计。
在结论中,我们分析了实验结果,讨论了该小车的优缺点,并展望了未来的发展方向。
通过本文的研究,我们验证了该智能小车在循迹和避障方面的性能,为智能移动机器人领域的研究提供了新的思路和方法。
【关键词】关键词:STM32、智能小车、循迹避障、控制系统、算法设计、硬件设计、实验结果、优缺点、未来展望1. 引言1.1 背景介绍智能循迹避障小车是一种基于STM32单片机的智能机器人,在现代社会中起着越来越重要的作用。
随着科技的发展,人们对智能机器人的需求也日益增长。
智能循迹避障小车不仅可以帮助人们完成一些重复性、繁琐的任务,还可以在一些特殊环境下代替人类进行工作,提高效率和安全性。
循迹功能使智能小车能够按照特定的路径行驶,可以应用于自动导航、自动驾驶等领域。
而避障功能则使智能小车具有避开障碍物的能力,适用于环境复杂、存在风险的场所。
通过将这两个功能结合起来,智能循迹避障小车可以更好地适应各种复杂环境,完成更多的任务。
本文旨在探讨基于STM32的智能循迹避障小车的设计与实现,通过研究其控制系统设计、循迹算法实现、避障算法设计、硬件设计和软件设计等方面,为智能机器人领域的发展做出一定的贡献。
1.2 研究意义智能循迹避障小车的研究旨在利用先进的STM32控制系统设计和算法实现,实现小车的智能循迹和避障功能,从而提高小车的自主导航能力和适应性。
研究意义主要包括以下几个方面:1. 提升科技水平:通过研究智能循迹避障小车,促进了在嵌入式系统领域的发展,推动了智能控制和算法设计的进步,增强了人工智能在实际应用中的影响力。
2. 提高生产效率:智能循迹避障小车可以应用于仓储物流、工业自动化等领域,可以替代人工完成重复、枯燥的任务,提高了生产效率和效益。
十个中文例程教会你轻松上手制作Arduino智能小车

十个中文例程教会你轻松上手制作Arduino智能小车Arduino简介Arduino 是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的arduino 板)和软件(arduino IDE)。
适用于艺术家、设计师、爱好者和对于“互动”有兴趣的朋友们。
Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。
板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器对Arduino的编程是利用Arduino编程语言(基于Wiring)和Arduino开发环境(based on Processing)来实现的。
基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信(比如Flash, Processing, MaxMSP)来实现。
你可以自己自己动手制作,也可以购买成品套装;Arduino所使用到的软件都可以免费下载。
硬件参考设计(CAD 文件)也是遵循availableopen-source协议, 你可以非常自由地根据你自己的要求去修改他们。
本文精选了Arduino教程、例程、设计案例,集结了国内外官方资料和资深工程师的经验,是学习AArduino的必备宝典。
小车、机器人篇1、Arduino互动玩偶BOXZ此设计制作在2013年Atmel AVR英雄视频大赛中荣获奖励,并且参与了2014的深圳制汇节。
BOXZ,昵称盒仔,其创意始于2012年6月初。
当时的想法是设计一款基于Arduino 的入门级机器人,可以和三五好友在有限的空间里进行踢足球等互动,而且要做到取材容易制作简单,在设计的上采用了模块化的接插结构,同时还要注重外观拥有个性。
2、基于Arduino的自平衡遥控小车车模平衡控制也是通过负反馈来实现的。
因为车模有两个轮子着地,车体只会在轮子滚动的方向上发生倾斜。
基于单片机的自动寻迹避障小车设计

三、软件设计
电机控制函数根据预设算法输出控制信号,控制电机的动作。最后,我们在 主程序中调用这些函数,实现小车的自动循迹避障寻光功能。
四、测试与结论
四、测试与结论
为了验证系统的可行性和稳定性,我们对智能小车进行了多次测试。测试结 果显示,该系统能够准确地检测黑色引导线、前方障碍物和光源,并能够根据预 设算法自动调整小车的行驶方向和速度,实现了自动循迹避障寻光功能。因此, 基于单片机技术的自动循迹避障寻光智能小车系统具有广泛的应用前景和市场潜 力。
三、实验与测试
三、实验与测试
1、实验环境:在实验室内模拟实际环境进行测试,包括各种路面情况(如平 滑路面、颠簸路面)、各种障碍物类型等。
三、实验与测试
2、测试指标:测试指标包括小车的平均速度、稳定性、准确性等。通过这些 指标可以评估小车的性能并对其进行优化。
三、实验与测试
3、实验结果分析:根据实验结果分析小车的性能表现,针对不足之处进行改 进和优化。
5、执行器
5、执行器
执行器包括舵机和摄像头。舵机用于调节小车的行驶方向,摄像头用于拍摄 和传输图像数据。
三、软件设计
三、软件设计
软件设计是实现小车自动循迹避障寻光功能的关键。我们使用C语言编写程序, 通过调用单片机的外设接口接收传感器数据,根据预设算法处理数据并输出控制 信号,控制电机驱动模块和执行器的动作。
3、传感器:传感器部分包括寻迹传感器和避障传感器。寻迹传感器用于检测 小车行驶路径,避障传感器则用于检测前方障碍物。常见的传感器类型有红外线 传感器和超声波传感器。
一、硬件设计
4、电机:电机部分包括两个电机和相应的驱动器。电机驱动器用于接收控制 器的指令,控制电机的转动方向和速度。
智能避障小车实验报告与总结.doc

智能避障小车实验报告与总结.doc
"
一、实验目的
本次实验的目的主要是为了开发一款智能避障小车,能够在遇到障碍物的时候自动的
调整小车的行驶线路,从而实现自动避障的功能。
二、实验简介
本次实验是借助Arduino组装智能避障小车,小车拥有机械减速装置和两个安装在小
车前面的发射装置,用来发射超声波信号来检测障碍物,当安装在小车前面的发射装置检
测到障碍物的时候,小车会自动的重新调整走行线路,避免进入发射装置检测到的障碍物。
三、实验流程与原理
1. 硬件接线:
硬件从实验清单上将所需电子元件按照所需顺序连接上Arduino开发板,包括:
发射装置、接收装置、步进电机、电机驱动板和超声波传感器。
2. 编程:
编程采用Arduino IDE,将发射装置发射的超声波信号,接收装置接收的反射信号使用超声波模块采集,并且利用Arduino的程序控制电机驱动板,从而调节小车的行驶方向,最终实现自动避障的功能。
3. 运行实验:
将程序上传到Arduino板上,观察小车的避障功能,当小车行驶到障碍物的时候,小车会自动的重新调整方向,避免进入发射装置检测到的障碍物。
四、实验结果与总结
本次实验,通过无线式避障小车,能够在行驶过程中自动检测到障碍物并调整行驶方
向自动避障,且能排除许多可能发生的外界干扰,满足了自动避障的要求,从而达到了实
验目标。
基于单片机的智能小车设计(红外避障及循迹)

轮式移动机器人的设计报告单片机系统课程设计智能小车(避障及循迹)的设计毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
引言
当我们手里有一个树莓派的时候,就可以发挥自己的想象力。创造出与众不同的各种东西。
搭建网络服务器、私有云、网络监控器、无人机航模、行走机器人等等等等。今天呢,教大
家如何把手里的树莓派用起来。玩转树莓派嘛 怎么可能让你的树莓派放在角落里吃灰呢。
软件
我将提供大家三种不同语言的小车控制程序所以运行环境请根据需要搭建。系统版本可以是
树莓派Raspbian Jessie或者Ubuntu等。视频网络传输Mjpgstreamer.
我配置好运行环境之后制作的镜像系统
C语言版
树莓派官方系统自带Gcc编译器 , 只需安装编译WiringPi库。
Python版
最近的系统已经默认安装了python-RPi.GPIO ,进行无线网络远程遥控的时候需安装
pip,flask。
Scratch
什么都不用动 打开Scratch软件 设置GPIOSERVER ON就可以了。
青少年可以从SCRATCH编程中学习编程思想,以及算法基础并养成良好的逻辑思维。
高中到大学可以进阶初步学习Python/C语言编程,Python语言是一种较为容易入门的机器学
习语言。
对于有C语言基础的同学学习用WiringPi控制树莓派的GPIO,掌握C语言并应用到自己的实践
中。
硬件
树莓派3代B型主板
部分配件
别小看树莓派 相信出色的你能玩出更多新花样 先看一下我制作的哪些功能
红外避障
黑线循迹
手机软件控制
Scratch编程 红外跟随
下面开始进入主题
为了节省工作量呢 我从C语言版本开始说。
系统配置中文环境和拼音我就不罗嗦了
sudo apt-get install ttf-wqy-zenhei (安装中文字体库)
sudo apt-get install scim-pinyin (安装中文输入法 当然了你也可以全装其他的输入法)
我建议最好用远程桌面的方式连接,以便小车运行时方便修改代码。
树莓派安装xrdp 就可以直接用笔记本自带的远程桌面工具进行远程操作了。最新的系统安
装步骤:
sudo apt-get install xrdp
sudo apt-get install tightvncserver
然后在windows打开远程桌面连接 打开对应的IP地址,即可连接成功
远程桌面界面
C语言安装wiringPi库
WringPI库介绍
wiringPi 安装
方案 A——使用 GIT 工具,通过 GIT 获得 wiringPi 的源代码。
git clone git://git.drogon.net/wiringPi
测试一下是否安装成功:
$gpio -v
先来搭建手机远程控制的功能,稍后再进行与传感器的结合。
简单看一下树莓派上即 服务端代码:carserver.c
几种初始化wiringPi的函数
首先在程序的开始的时候需要调用上面的任意的函数来对wiringpi 进行初始化,否则你的
程序不能正常工作。wiringPiSetup() 该函数初始化wiringPi,幵假定程序将使用wiringPi
的管脚定义图。具体管脚映射,可以通过gpio readall命令来查看。该函数需要root权限。
驱动电机使用四个引脚。1、4控制一侧,5、6另外一侧。编码方式为wPi。
引脚定义
pinMode函数
原型 void pinMode (int pin, int mode) ;使用该函数可以将某个引脚配置为INPUT(输
入)、 OUTPUT(输出) 、PWM_OUTPUT (脉冲输出) 或者GPIO_CLOCK(时钟)。在我们的
小车C语言控制程序中我们分别设置了GPIO1,GPIO4,GPIO5,GPIO6这四个引脚来控制左右
两侧的电机。此时我们是通过GPIO的输出来实现的,所以这里设置mode为OUTPUT。
digitalWrite函数
函数原型void digitalWrite (int pin, int value) ;使用该函数可以向指定的管脚写入
HIGH(高)或者LOW(低)写入前,需要将管脚讴置为输出模式。wiringPi将任何的非0值作
为HIGH(高)来对待,因此,0是唯一能够代表LOW(低)的数值。如下图,定义小车前进
时,将GPIO1置为高GPIO4置为低(左侧前进),将GPIO5置为高GPIO6置为低(右侧前进)。
通过接收到的字符进而控制小车动作
全部代码占用篇幅。完整代码稍后评论区
组装小车
树莓派引脚接线
整体供电使用两节3.7V的18650锂电池。树莓派需要5V供电,所以需要使用一个转5V的降压
模块Lm2596模块。编译carserver.c然后等组装好之后运行。
安卓软件APP源码就不贴出来了。需要的话可以给我留言。
Scratch控制版
部分源码
好累 ,,能不能偷个懒。python代码原理大同小异。初始化GPIO,定义小车点后左右停止
的函数。然后通过GET POST方法发送接收信号。然后控制树莓派进行响应。