树莓派控制无线小车大报告
基于树莓派的智能车辆自动导航技术研究
基于树莓派的智能车辆自动导航技术研究智能车辆是未来交通领域的一个重要发展方向,而自动导航技术则是实现智能车辆的关键。
本文将探讨基于树莓派的智能车辆自动导航技术的研究内容和进展。
一、引言智能车辆自动导航技术是指利用计算机视觉、传感器等技术,使车辆能够在无人驾驶的情况下自动感知、计算和控制,实现路线规划、避障和车道保持等功能。
树莓派作为一种小型而强大的计算机平台,被广泛应用于智能车辆的研究中。
二、树莓派在智能车辆中的应用树莓派作为一个低功耗、高性能的嵌入式计算机平台,可方便地实现车辆的感知和决策。
通过连接摄像头模块和传感器,树莓派可以实时获取车辆周围的图像和环境信息,并通过图像处理和数据分析等算法,确定车辆的行驶方向和速度。
此外,树莓派还具备良好的扩展性,可以通过连接其他硬件模块,如超声波传感器和红外线传感器,进一步提高车辆的环境感知能力。
三、基于树莓派的智能车辆自动导航技术研究内容1.视觉感知和识别通过树莓派连接摄像头模块,实时获取车辆周围的图像信息,利用计算机视觉技术对图像进行处理和分析,实现道路识别、交通标志识别和车辆检测等功能。
其中,道路识别是智能车辆自动导航的基础,通过识别道路的边缘和特征物体,实现车道保持和车辆位置定位。
2.路径规划和导航基于树莓派的智能车辆可以通过激光雷达等传感器获取周围环境的三维点云信息,根据点云数据进行路径规划和导航。
利用树莓派的计算能力,可以实现实时的路径规划和障碍物避障,确保车辆行驶的安全和高效。
3.环境感知和决策树莓派连接超声波传感器和红外线传感器等硬件模块,可以实时感知车辆周围的障碍物和环境信息。
通过数据的处理和分析,树莓派可以对周围环境进行判断和决策,如判断前方是否有障碍物,并作出相应的行驶控制。
四、基于树莓派的智能车辆自动导航技术研究进展近年来,基于树莓派的智能车辆自动导航技术取得了一系列进展。
例如,研究人员通过利用树莓派的计算能力和图像处理算法,实现了实时的道路识别和车道保持功能。
无线智能遥控小车--电子设计实验报告
****************大学班级:****** 作者:******指导老师:****电 子设 计 之无线遥控智能小车1引言1.1编写目的本概要设计说明书是针对电子设计的课程要求而编写。
目的是对该项目进行总体设计,在明确系统需求的基础上划分系统的功能模块,进行系统开发的分工,明确各模块的接口,为进行后面的详细设计和实现做准备。
满足无线遥控爱好者对智能小车的设计要求,想通过这份概要设计给爱好者一个好的设计思路,设计方法进行参考。
本概要设计说明书的预期读者为本项目小组成员以及无线遥控爱好者。
1.2背景a.实践题目的名称:无线遥控智能小车b.项目的任务提出者:***,***,***c.项目的开发者:***,***,***d.面向用户:所有无线遥控爱好者,对智能小车感兴趣,想借此提高动手能力的用户。
鉴于电子设计课程要求,需要一份设计实品,加之小组成员对智能小车有着独特的爱好,所以这次设计选择了遥控智能小车作为电子设计的题目。
2总体设计2.1需求规定●所设计智能小车功能:主要功能:无线遥控,避障;附加功能:超声波测距、速度调节、液晶显示、音乐、流水灯和散热系统。
★通过无线串口对小车进行无线遥控,可以在遥控,避障这两个主要功能之间自由切换。
★遥控时,通过遥控器上的按钮可以方便灵活地控制小车前进,后退,左转和右转等。
★避障时,利用红外传感器探测障碍物,从而达到避障的目的。
●小车安装了超声波传感器,可以进行距离测量,如果距离过近,蜂鸣器发出警报,并将距离等数据实时传到液晶屏上显示。
★通过按钮同时控制一些其他功能,如音乐,风扇和流水灯等。
2.2运行环境最好是室内平地2.3基本设计概念和处理流程整体框图:2.4所需器件★小车模型(三轮,带电机)★ATMAGE16单片机最小系统(3个,小车上两个一个负责接受无线,控制电机,另外一个则是负责其他功能,最后一个遥控器上的)★直流电机驱动模块,采用两个LM298驱动模块分别控制两个电机★传感器模块,采用红外传感器2个,超声波传感器两个★无线串口模块★电源模块(5v,12v)★按键模块,用于无线遥控小车★LCD1602液晶一块★电机一个★蜂鸣器一个★锂电池一块★南孚电池若干节★发光二级管若干★键盘(8个按钮)3接口设计3.1用户接口小车主要有避障和遥控两种模式,通过控制小车上的一个模式选择开关,手动遥控时自动模式无效,同样小车处于自动状态时,手动遥控无效。
智能小车的实训报告
智能小车的实训报告1. 实训本次实训是一项基于智能小车的项目,旨在让学生学习并掌握智能控制和物联网技术的应用。
在实训中,我们使用了Raspberry Pi作为核心控制器,通过各类传感器和执行器实现智能小车的控制。
实训期间,我们学习了基本的Python编程语言,同时掌握了一些树莓派操作和调试技巧。
通过完成一系列的课程设计,我们不仅加深了对智能控制和物联网技术的理解,也训练了自己的实践能力和创新思维。
2. 实训内容2.1 实验一:智能小车的搭建在实验一中,我们首先学习了如何搭建智能小车的硬件平台。
通过对各种模块和传感器的接线和配置,我们最终完成了一辆基本的智能小车,并成功地将它连接到了树莓派上。
2.2 实验二:避障控制实验二是围绕智能小车的避障控制展开的,我们使用超声波传感器测量周围物体的距离,并通过程序控制小车的行进方向和速度,以实现避障功能。
在实验过程中,我们需要不断调试代码和参数,逐步完善小车避障的精准度和鲁棒性。
2.3 实验三:智能追踪实验三是针对小车能够追踪指定物体的控制,我们使用了摄像头来捕捉物体的图像,并通过OpenCV进行图像处理,最终根据识别出的物体位置控制小车的运动。
在实验中,我们不仅学习了图像处理的基础知识,还掌握了如何使用Python调用OpenCV和摄像头。
2.4 实验四:手势识别实验四是一个拓展性比较强的实验,我们使用了一款手势识别模块,实现了对小车的手势控制。
通过手势识别模块的数据处理和解析,我们能够将自己的手势指令转化为小车的运动指令,并实现多种手势的控制操作。
3. 实训收获通过本次实训,我们不仅学到了很多智能控制和物联网技术的应用知识,还锻炼了自己的实践能力和团队协作能力。
在实验过程中,我们需要不断调试和优化代码,同时也需要和同学合作,互相帮助和交流。
除此之外,我们还学到了如何独立思考和创新,不仅是在完成课程设计时,也体现在我们对未来的探索和思考上。
这是一次非常有意义的实训,让我们受益匪浅。
使用树莓派制作智能小车
使⽤树莓派制作智能⼩车电影⾥,时不时地可以看到⼀些这样的场景,⼀辆⼩车,上⾯装有摄像头,这辆⼩车可以通过电脑或都是⼿机进⾏远程遥控,车上摄像头拍到的画⾯,可以实时地显⽰在电脑或⼿机上,就像下图这样。
没有接触过这⽅⾯的朋友或许会觉得这是⼀门很⾼⼤上的技术活,其实,并不然,这种⼩车做起来其实很简单。
那么,这样⼦的⼩车,需要怎么去做呢?其实,我们只需要准备⼀块控制⼩车的电路板(开发板),2到4个电机(马达)、⼩车架⼦⼀个、摄像头以及摄像头云台⼀个,以上这些基础配件,然后对开发板进⾏编程、控制就可以了,整体硬件成本加起来不到500块钱。
开发板:开发板有很多种,⽐如51单⽚机、树莓派、STM32、Arduino、micro:bit等等,都可以做为⼩车的控制板,我使⽤的是树莓派开发板,然后,可持树莓派有很多版本、型号,最便宜的树莓派zero 68元就可以买到,不过不建议买这种,没有⽹卡,需要另外买⽹线模块,我使⽤的是树莓派3B,价格220元,带有⽆线和有线⽹卡,还带有蓝⽛。
⼩车架⼦:某宝上有很多这种车架⼦,各式各样的,只需要在某宝上搜索“智能⼩车”就能找到,带上马达⼀整套,也就五六⼗块钱。
摄像头+云台:某宝上也是⼀搜⼀⼤堆,⽐如我下⾯⽤的那个,45块钱。
配件准备好了,就是给⼩车的开发板装系统,然后对⼩车进⾏编程控制。
⼩车的控制最主要有两⽅⾯的控制,⼀个是⼩车的前后左右的运动控制,⼀个是摄像头的拍摄、上下左右转运的控制。
#-*- coding:UTF-8 -*-import RPi.GPIO as GPIOimport time#⼩车电机引脚定义LeftIn1 = 20LeftIn2 = 21LeftSpeed = 16RightIn1 = 19RightIn2 = 26RightSpeed = 13#设置GPIO⼝为BCM编码⽅式GPIO.setmode(GPIO.BCM)#忽略警告信息GPIO.setwarnings(False)#电机引脚初始化操作def car_init():global pwm_LeftSpeedglobal pwm_RightSpeedglobal delaytimeGPIO.setup(LeftSpeed,GPIO.OUT,initial=GPIO.LOW)GPIO.setup(LeftIn1,GPIO.OUT,initial=GPIO.LOW)GPIO.setup(LeftIn2,GPIO.OUT,initial=GPIO.LOW)GPIO.setup(RightSpeed,GPIO.OUT,initial=GPIO.LOW)GPIO.setup(RightIn1,GPIO.OUT,initial=GPIO.LOW)GPIO.setup(RightIn2,GPIO.OUT,initial=GPIO.LOW)#设置pwm引脚和频率为2000hzpwm_LeftSpeed = GPIO.PWM(LeftSpeed, 2000)pwm_RightSpeed = GPIO.PWM(RightSpeed, 2000)pwm_LeftSpeed.start(0)pwm_RightSpeed.start(0)#⼩车前进def run(delaytime):GPIO.output(LeftIn1, GPIO.HIGH)GPIO.output(LeftIn2, GPIO.LOW)GPIO.output(RightIn1, GPIO.HIGH)GPIO.output(RightIn2, GPIO.LOW)pwm_LeftSpeed.ChangeDutyCycle(80)pwm_RightSpeed.ChangeDutyCycle(80)time.sleep(delaytime)#⼩车后退def back(delaytime):GPIO.output(LeftIn1, GPIO.LOW)GPIO.output(LeftIn2, GPIO.HIGH)GPIO.output(RightIn1, GPIO.LOW)GPIO.output(RightIn2, GPIO.HIGH)pwm_LeftSpeed.ChangeDutyCycle(80)pwm_RightSpeed.ChangeDutyCycle(80)time.sleep(delaytime)#⼩车左转def left(delaytime):GPIO.output(LeftIn1, GPIO.LOW)GPIO.output(LeftIn2, GPIO.LOW)GPIO.output(RightIn1, GPIO.HIGH)GPIO.output(RightIn2, GPIO.LOW)pwm_LeftSpeed.ChangeDutyCycle(80)pwm_RightSpeed.ChangeDutyCycle(80)time.sleep(delaytime)#⼩车右转def right(delaytime):GPIO.output(LeftIn1, GPIO.HIGH)GPIO.output(LeftIn2, GPIO.LOW)GPIO.output(RightIn1, GPIO.LOW)GPIO.output(RightIn2, GPIO.LOW)pwm_LeftSpeed.ChangeDutyCycle(80)pwm_RightSpeed.ChangeDutyCycle(80)time.sleep(delaytime)#⼩车原地左转def spin_left(delaytime):GPIO.output(LeftIn1, GPIO.LOW)GPIO.output(LeftIn2, GPIO.HIGH)GPIO.output(RightIn1, GPIO.HIGH)GPIO.output(RightIn2, GPIO.LOW)pwm_LeftSpeed.ChangeDutyCycle(80)pwm_RightSpeed.ChangeDutyCycle(80)time.sleep(delaytime)#⼩车原地右转def spin_right(delaytime):GPIO.output(LeftIn1, GPIO.HIGH)GPIO.output(LeftIn2, GPIO.LOW)GPIO.output(RightIn1, GPIO.LOW)GPIO.output(RightIn2, GPIO.HIGH)pwm_LeftSpeed.ChangeDutyCycle(80)pwm_RightSpeed.ChangeDutyCycle(80)time.sleep(delaytime)#⼩车停⽌def brake(delaytime):GPIO.output(LeftIn1, GPIO.LOW)GPIO.output(LeftIn2, GPIO.LOW)GPIO.output(RightIn1, GPIO.LOW)GPIO.output(RightIn2, GPIO.LOW)pwm_LeftSpeed.ChangeDutyCycle(80)pwm_RightSpeed.ChangeDutyCycle(80)time.sleep(delaytime)摄像头控制有两部分,⼀是拍摄、⼆是云台转动。
遥控小车工作总结报告
遥控小车工作总结报告
近年来,遥控小车技术在各个领域得到了广泛的应用,从工业生产到科研实验,都能看到遥控小车的身影。
作为一种高效、灵活的工具,遥控小车在工作中发挥着重要的作用。
本文将对遥控小车的工作进行总结报告,探讨其在不同领域的应用和发展趋势。
首先,遥控小车在工业生产中的应用日益广泛。
它可以替代人工完成一些重复性、繁琐的工作任务,提高生产效率和产品质量。
例如,在汽车制造厂,遥控小车可以用于搬运零部件和组装线的运输,大大减少了人力成本和生产时间。
在仓储物流领域,遥控小车也能够实现货物的自动搬运和分拣,提高了仓库的运作效率。
其次,遥控小车在科研实验中也有着重要的应用价值。
它可以携带各种传感器
和设备,用于环境监测、地质勘探、植物生长观测等领域。
通过遥控小车的灵活操作,科研人员可以远程获取数据,进行实时监测和分析,为科学研究提供了便利和支持。
此外,随着人工智能和无人驾驶技术的发展,遥控小车的功能和性能也在不断
提升。
未来,我们可以预见,遥控小车将更加智能化和自主化,能够更好地适应各种复杂环境和任务需求。
同时,随着成本的不断下降,遥控小车的应用范围也将不断扩大,为人类的生产生活带来更多的便利和效益。
综上所述,遥控小车作为一种高效、灵活的工具,在工业生产和科研实验中有
着重要的应用价值。
随着技术的不断进步和应用的不断拓展,遥控小车的发展前景也十分广阔。
我们期待着遥控小车在未来能够发挥更大的作用,为人类社会的发展和进步做出更大的贡献。
智能小车控制实验报告
一、实验目的本次实验旨在通过设计和搭建一个智能小车系统,学习并掌握智能小车的基本控制原理、硬件选型、编程方法以及调试技巧。
通过实验,加深对单片机、传感器、电机驱动等模块的理解,并提升实践操作能力。
二、实验原理智能小车控制系统主要由以下几个部分组成:1. 单片机控制单元:作为系统的核心,负责接收传感器信息、处理数据、控制电机运动等。
2. 传感器模块:用于感知周围环境,如红外传感器、超声波传感器、光电传感器等。
3. 电机驱动模块:将单片机的控制信号转换为电机驱动信号,控制电机运动。
4. 电源模块:为系统提供稳定的电源。
实验中,我们选用STM32微控制器作为控制单元,使用红外传感器作为障碍物检测传感器,电机驱动模块采用L298N芯片,电机选用直流电机。
三、实验器材1. STM32F103C8T6最小系统板2. 红外传感器3. L298N电机驱动模块4. 直流电机5. 电源模块6. 连接线、电阻、电容等7. 编程器、调试器四、实验步骤1. 硬件搭建:- 将红外传感器连接到STM32的GPIO引脚上。
- 将L298N电机驱动模块连接到STM32的PWM引脚上。
- 将直流电机连接到L298N的电机输出端。
- 连接电源模块,为系统供电。
2. 编程:- 使用Keil MDK软件编写STM32控制程序。
- 编写红外传感器读取程序,检测障碍物。
- 编写电机驱动程序,控制电机运动。
- 编写主程序,实现小车避障、巡线等功能。
3. 调试:- 使用调试器下载程序到STM32。
- 观察程序运行情况,检查传感器数据、电机运动等。
- 调整参数,优化程序性能。
五、实验结果与分析1. 避障功能:实验中,红外传感器能够准确检测到障碍物,系统根据检测到的障碍物距离和方向,控制小车进行避障。
2. 巡线功能:实验中,小车能够沿着设定的轨迹进行巡线,红外传感器检测到黑线时,小车保持匀速前进;检测到白线时,小车进行减速或停止。
3. 控制性能:实验中,小车在避障和巡线过程中,表现出良好的控制性能,能够稳定地行驶。
开题报告智能小车
开题报告智能小车1. 引言智能小车是一种通过自主导航和感知环境的能力来实现移动的车辆。
它可以应用于各种任务,如自动驾驶、物流仓储和环境监测等领域。
本文将介绍我打算开发的智能小车,并说明开发的目的、背景和方法。
2. 项目背景随着人工智能技术的快速发展,智能小车成为了一个热门的研究领域。
智能小车可以利用自身的传感器来感知周围的环境,并根据环境变化做出相应的行动。
它可以通过计算机视觉和深度学习等技术来实现对道路和障碍物的识别,进而做出安全的行驶决策。
本项目的目的是开发一个基于机器学习和计算机视觉的智能小车,通过对车辆周围环境的感知和数据分析,实现自主导航和避障功能。
这对于提高交通安全性、优化物流效率和提升人们生活质量具有重要意义。
3. 开发方法3.1 硬件平台为了实现智能小车的功能,我们需要选择适合的硬件平台。
考虑到成本和灵活性,我计划使用树莓派作为主控板,搭配相应的传感器和执行器。
3.2 软件设计智能小车的软件设计包括两个主要部分:感知和决策。
感知部分主要利用计算机视觉和传感器输入,获取车辆周围环境的信息。
决策部分根据感知到的信息,通过机器学习算法和规则引擎,进行决策和控制小车的行为。
在感知部分,我们将利用摄像头获取车辆前方的图像,并利用图像处理算法进行道路和障碍物的识别。
同时,我们还将使用超声波传感器和红外传感器来检测车辆周围的距离和障碍物。
在决策部分,我们将采用深度学习算法来训练小车的行为模型。
通过给定的输入信息,小车将能够做出合理的决策,如加速、减速、转弯和停止等。
3.3 开发流程本项目的开发流程包括以下几个步骤:1.确定需求和功能:明确智能小车的需求和功能,包括自主导航、避障等功能。
2.硬件选型和搭建:选择适合的硬件平台,并搭建相应的电路和传感器系统。
3.软件设计和编码:设计智能小车的软件架构,并进行编码实现。
4.数据采集和预处理:采集车辆周围环境的数据,并进行预处理。
5.模型训练和优化:利用采集的数据,训练智能小车的行为模型,并进行优化。
5.智能小车-按键控制小车的启动
实验五:树莓派平台-------按键控制小车启动实验1、实验前准备图1-1 树莓派主控板图1-2 按键开关2、实验目的ssh服务登录树莓派系统之后,编译运行按键控制小车启动实验后,按下KEY 启动小车,小车会自动先前进1s,后退1s,左转2s,右转2s,原地左转3s,原地右转3s,接着停止0.5s。
3、实验原理按键消抖:通常我们的按键开关一般都是机械弹性开关,当机械触点断开,闭合时,由于机械触点的弹性作用,一个按键开关子在闭合时不会马上就能稳定的接通,在断开时也不会一下子彻底断开,而是在闭合和断开时会伴随着一连串的抖动。
图3-1 按键抖动状态图抖动时间一般都是由按键的机械特性决定的,一般都会在10ms以内,为了确保程序对按键的一次闭合后一次断开只响应一次,必须进行按键的消抖处理,有硬件消抖和软件消抖。
其中,软件消抖指的是检测出键闭合后执行一个延时程序,产生5ms~10ms 的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。
当检测到按键释放后,也要给5ms~10ms的延时,待后沿抖动消失后才能转入该键的处理程序。
硬件消抖是在开关两段接一个0.1uf的电容。
本次实验我们采取的是软件延时去抖。
4、实验步骤4-1.看懂原理图图4-1 树莓派主控板电路图图4-2 按键图4-3 树莓派40pin引脚对照表4-2 由电路原理图可知按键是直接连接到主控板上的wiringPi编码的10口。
我们设置10口为输入模式,并当按下按键时通过检测该引脚的电平状态,来判断按键是否被按下。
4-3 程序代码如下:输入:gcc KeyScanStart.c -o KeyScanStart -lwiringPi -lpthread ./KeyScanStart接着./initpin.sh初始化引脚。
实现智能小车的设计报告
实现智能小车的设计报告
一、项目背景
智能小车是一款结合了机械、机电、计算机等多种技术的智能机器人,能够获取环境信息、自主探索并完成各种任务。
智能小车在工业自动化、智能家居、物流配送等领域有着广泛地应用,在科研和商业领域都有着重要的地位和作用。
二、项目目的
本项目旨在通过设计制作智能小车,探索机器人控制、机械设计及电路控制等多方面知识,并应用到实际中,提高学生工程设计能力和动手能力。
三、设计方案
本智能小车采用树莓派单片机控制,配合多种传感器实现环境感知、路径规划和控制等功能。
车身采用3D打印技术制作,机身外型为椭圆形,具有一定的稳定性和降低空气阻力的特点。
底盘采用两轮驱动设计,其中一轮为万向轮,以提高小车的灵活性和控制性能。
四、技术方案
1.单片机控制
树莓派作为本项目的主控制器,采用GPIO输出信号控制各种功能模块,包括机械模块、传感器模块和电路模块等。
2.传感器模块
小车的传感器模块包括超声波传感器、巡线传感器、红外避障传感器等,这些传感器用于获取小车周围环境信息,提高小车的自主探索和避障能力。
3.路径规划
小车的路径规划采用A*算法,根据当前位置、目标位置以及环境地形等因素制定最优路径,并实时更新路径信息。
4.电路控制
小车的电路控制采用PWM技术,控制小车速度和方向,配合电池电量检测和保护电路等技术,保证小车的安全和稳定性。
五、结论
通过本项目的实践设计,掌握了机器人控制、机械设计和电路控制等技术,加深了对工程设计的理解,提高了动手操作能力。
同时,本项目的可拓展性和适用范围广泛,具有较高的应用价值和发展前景。
基于树莓派的智能小车控制系统设计
基于树莓派的智能小车控制系统设计智能小车控制系统已经成为现代科技的研究热点之一。
它使得机器人具有更好的自主感知和行为决策能力,为人类生产和生活提供了更多便利和选择。
在这篇文章中,我们将探讨基于树莓派的智能小车控制系统的设计原理、实现方法以及其在实际应用方面的优势。
一、设计原理基于树莓派的智能小车控制系统的设计原理主要包括三个方面:感知模块、控制模块和决策模块。
1.感知模块感知模块主要是通过多种传感器来感知环境,包括红外线传感器、超声波传感器、摄像头和麦克风等。
通过收集和处理感知模块所得到的数据信息,可以实现对其所处环境的自主感知。
2.控制模块控制模块主要是根据感知模块所提供的数据信息,通过控制电机、舵机和灯光等组成的执行器来实现小车的运动控制、转向控制和灯光控制。
3.决策模块决策模块主要是通过分析感知模块所提供的数据信息,从而得出连续动作序列,完成运动控制、转向控制和灯光控制等行为决策。
二、实现方法基于树莓派的智能小车控制系统的实现方法主要包括硬件实现和软件实现两个方面。
1.硬件实现硬件实现主要包括小车的机械结构设计和电路设计。
机械结构设计需要满足小车运动的必要条件,保证小车在各种情况下的稳定性和安全性。
而电路设计则包括了电源管理、传感器接口设计、执行器控制和通信接口等电路部分。
树莓派板载GPIO(General Purpose Input Output)口提供了以电平信号为基础的输入输出接口,使用树莓派适配板将这些口映射到通用接口上,即可完成与各种硬件的连接。
2.软件实现软件实现主要包括操作系统安装、驱动程序编写和应用程序开发等方面。
在树莓派上,可以安装常用的操作系统,如Raspbian 等,针对赛车所用的传感器与执行器设备编写驱动程序,并根据实际需求使用Python等编程语言进行应用程序开发。
三、实际应用基于树莓派的智能小车控制系统在现实中已经有了广泛的应用。
例如,可以用于智能家居场景中的清洁机器人、智能物流配送中的 AGV 等。
【树莓派】树莓派小车(三)Python控制小车
【树莓派】树莓派⼩车(三)Python控制⼩车正⽂之前由于最近忙于复习赶考,所以暂时没有拿起树莓派⼩车,直到昨天,终于空出时间来把代码整理⼀下来和⼤家分享。
正⽂在中,讲到了树莓派的引脚定义⽅式有两种:PHYSICAL NUMBERINGGPIO NUMBERING我采⽤的是第⼆种⽅式。
开始写1. 导⼊库import RPi.GPIO as GPIOimport time2. 定义接⼝⽅式以及接⼝位置GPIO.setmode(GPIO.BCM)IN1 = 17IN2 = 18IN3 = 27IN4 = 22IN5 = 23IN6 = 24IN1 - IN4为L298N接⼊,IN5和IN6为红外线模块接⼊。
车轮驱动⽅式:IN1和IN2负责驱动车轮转动(前进)。
IN3和IN4负责驱动车轮转动(后退)。
3. 初始化def init():GPIO.setup(IN1, GPIO.OUT)GPIO.setup(IN2, GPIO.OUT)GPIO.setup(IN3, GPIO.OUT)GPIO.setup(IN4, GPIO.OUT)GPIO.setup(IN5, GPIO.IN)GPIO.setup(IN6, GPIO.IN)连接L298N的接⼝设为输出,因为需要输出的信号来驱动电机。
连接红外线模块的接⼝为输⼊,因为需要输⼊的信号来做出判断。
4. 基础⽅向⾏为def up():GPIO.output(IN1, GPIO.HIGH) //右侧车轮前进GPIO.output(IN2, GPIO.HIGH) //左侧车轮前进GPIO.output(IN3, GPIO.LOW)GPIO.output(IN4, GPIO.LOW)def down():GPIO.output(IN1, GPIO.LOW)GPIO.output(IN2, GPIO.LOW)GPIO.output(IN3, GPIO.HIGH) //右侧车轮后退GPIO.output(IN4, GPIO.HIGH) //左侧车轮后退def turn_left():GPIO.output(IN1, GPIO.HIGH) //右侧车轮前进GPIO.output(IN2, GPIO.LOW)GPIO.output(IN3, GPIO.LOW)GPIO.output(IN4, GPIO.LOW)def turn_right():GPIO.output(IN1, GPIO.LOW)GPIO.output(IN2, GPIO.HIGH) //左侧车轮前进GPIO.output(IN3, GPIO.LOW)GPIO.output(IN4, GPIO.LOW)需要说明的是:由于不含舵机,转弯的操作是单边车轮驱动,带动车⾝转动5. 红外控制init()n = 5while (n > 0): //总共转弯五次in_left = GPIO.input(IN5) //左侧红外线接收器in_right = GPIO.input(IN6) //右侧红外线接收器up() //未遇到障碍时直⾏if (in_left == GPIO.LOW):down()time.sleep(1)turn_right()time.sleep(1)n = n - 1continueif (in_right == GPIO.LOW):down()time.sleep(1)turn_left()time.sleep(1)n = n - 1continueif (in_right == GPIO.LOW & in_left == GPIO.LOW):down()time.sleep(1)turn_right() //如果两侧都有障碍,就右转(个⼈喜好)time.sleep(1)n = n - 1continuestop()GPIO.cleanup() //清空GPIO接⼝配置信息如果前⽅遇到障碍,就后退⼀秒,然后转弯,最后继续直⾏,直到遇到下⼀个障碍。
无线遥控小车设计报告
修後2栄衣挈题目:基于STM32勺无线遥控小车的设计专业: 班级: 姓名: 学号: 成绩:年 月曰课程设计要求与参数 课设要求设计一个基于STM32微控制器的无线遥控小车,车上装有无线模块,通过 遥控器远程控制小车的运动状态。
实现小车的前进、后退、停止、左转弯、右转弯、导师签字:加速、减速等控制。
参数飞思卡尔智能车体,车轮直径55mm电池电压:12VSTM32F103ZET最小系统:供电电压3.3VNRF24L01无线模块:供电电压3.3VBTN7971B!机驱动模块:供电电压5V---15V360度舵机降压模块日程安排12月15日一一12月16日:查阅相关资料,确定设计思路,提出设计方案12月17日一一12月19日:搭建小车模型,设计硬件电路12月20日一一12月23日:完成软件部分的编程设计12月24日:硬件及软件测试12月25日:完成课程设计报目录课程设计要求与参数---------------------------------- 1 课设要求------------------------------------- 1参数--------------------------------------- 1日程安排------------------------------------- 1第一章课题研究的目的、背景、意义------------------------ 31.1课题研究的目的------------------------------- 31.2课题研究的背景------------------------------- 31.3课题研究的意义 ------------------------------ 4第二章设计方案------------------------------------ 52.1设计思路----------------------------------- 52.2硬件设计方案------------------------------- 62.3软件设计方案------------------------------- 6第三章硬件设计------------------------------------ 73.1STM32F103ZET6简介-------------------------- 73.2NRF24L01 无线模块--------------------------- 83.2.1 NRF24L01 无线模块简介 --------------------- 83.2.2 无线模块与微控制器的连接 ---------------------- 93.3舵机------------------------------------- 93.4BTN7971B电机驱动模块 ------------------------- 93.5 遥控器设计---------------------------------- 10第四章软件设计------------------------------------ 11第五章调试与测试---------------------------------- 13结论------------------------------------------ 14参考文献--------------------------------------- 14第一章课题研究的目的、背景、意义1.1课题研究的目的掌握嵌入式软件项目的设计流程掌握MDK-ARM开发环境的基本使用方法掌握NRF24L0无线模块的通信协议及使用方法掌握脉冲宽度调制(PWM的原理及应用掌握直流电机调速的方法1.2课题研究的背景随着社会的发展,人们对科学技术的要求越来越高,在我们的身边随处都可见一些高科技的产物,这些是时代的产物。
wifi智能小车实训报告
wifi智能小车实训报告一、实训内容概述为了更好地培养我们计算机科学与技术专业的学生的实际操作能力,我们学校开展了一次为期一个月的Wifi智能小车实训。
该实训旨在通过设计并组装Wifi智能小车来锻炼同学们的动手能力和技术能力,同时也为同学们提供了一个了解物联网相关技术的机会。
二、实训过程详述1、选购器材在实训之前,我们需要先选购实验所需的器材。
其中包括Wifi模块、HC-SR04距离传感器、小车底盘、直流电机、轮子等材料。
我们采购时不仅需要关注价格,同时也需要注意品质和适配程度,以保证实训顺利进行。
2、组装小车底盘我们首先要组装小车底组,这就需要将小车底盘、直流电机和轮子等器材放在一起进行组装。
这一步需要大家仔细阅读说明书,并在老师的指导下逐步进行。
3、添加HC-SR04距离传感器为了使小车具备自主避障能力,我们需要为小车添加 HC-SR04距离传感器。
至于如何添加,就需要我们具备一定的编程开发知识,老师为我们介绍了 Arduino IDE 和 MicroPython 两种编程工具。
4、编写程序代码在添加完传感器之后,接下来就要编写程序了。
代码的编写包含了两个部分,一个是确定小车的移动方向和速度,并通过串口监视器将数据实时传输到电脑端;另外一个部分是实现HC-SR04距离传感器的功能,保证小车能够自主避障。
5、本地测试和远程调试经过以上步骤,我们可以在本地使用电脑的串口通信端口来测试小车的各项功能。
当测试通过后,我们就可以将代码迁移到ESP8266 Wifi 模块中进行远程调试。
这意味着我们可以通过手机等电子设备操作小车,并进行观察调试。
三、实训成效总结通过本次实训,我们不仅学会了组装小车、添加传感器和编写程序代码等技能,还了解了IoT物联网相关知识。
在实验过程中,我们遇到了一些组装困难、调试难度大等问题,经过不断尝试,最终成功解决了问题。
整个过程让我们切实感受到了科技带给我们的便利和乐趣,进一步增强了我们对于计算机技术的热爱。
无线遥控小车实训报告
一、实训背景随着科技的不断发展,自动化和智能化技术日益普及。
无线遥控小车作为自动化领域的一个典型应用,不仅可以锻炼学生的动手能力,还能提高对电子技术、单片机原理、无线通信等方面的理解。
本次实训旨在通过设计和制作无线遥控小车,使学生掌握相关电子技术和编程技能。
二、实训目的1. 熟悉无线通信技术在遥控系统中的应用。
2. 掌握单片机编程及外围电路设计。
3. 了解电机驱动电路的设计原理。
4. 培养团队合作精神和实践能力。
三、实训内容1. 硬件选型本次实训所选用的硬件包括:- 主控芯片:AT89C51单片机- 无线通信模块:nRF24L01- 电机驱动模块:L298N- 电机:直流电机- 电源模块:锂电池- 其他元件:电阻、电容、二极管等2. 系统设计无线遥控小车系统主要由以下几个部分组成:- 遥控器:负责发送控制信号- 接收模块:接收遥控器发送的控制信号- 主控模块:根据接收到的信号控制小车运动- 电机驱动模块:驱动电机实现小车运动3. 软件设计软件设计主要包括以下内容:- 遥控器程序:实现按键扫描和信号发送- 接收模块程序:实现信号接收和解码- 主控模块程序:根据接收到的信号控制小车运动4. 系统调试在完成硬件组装和软件编写后,进行系统调试,确保小车能够按照预期运行。
调试过程中,主要关注以下几个方面:- 无线通信是否稳定- 控制信号是否准确- 小车运动是否平稳四、实训过程1. 硬件组装根据系统设计,将各个模块连接起来,包括单片机、无线通信模块、电机驱动模块、电机等。
2. 软件编写使用C语言编写遥控器、接收模块和主控模块的程序。
在编写过程中,注意以下事项:- 代码结构清晰,便于阅读和维护- 代码注释完整,便于理解- 注意信号处理和电机控制算法3. 系统调试在完成硬件组装和软件编写后,进行系统调试。
首先,检查无线通信是否稳定,确保遥控器能够发送和接收信号。
然后,测试控制信号是否准确,观察小车运动是否平稳。
树莓派实习报告
一、实习背景随着科技的飞速发展,物联网、人工智能等领域逐渐成为我国科技创新的热点。
树莓派作为一种开源的微型计算机,以其低廉的价格、丰富的接口和强大的性能,成为了学习嵌入式系统、物联网和人工智能等领域的重要平台。
为了提高自身在相关领域的实践能力,我选择了树莓派作为实习项目。
二、实习目的1. 熟悉树莓派的硬件和软件环境,掌握树莓派的基本操作和编程方法。
2. 学习树莓派在物联网、人工智能等领域的应用,提高自己的实践能力。
3. 通过实习项目,培养自己的团队合作能力和沟通能力。
三、实习内容1. 树莓派硬件学习在实习初期,我首先了解了树莓派的硬件结构。
树莓派是一款基于ARM架构的微型计算机,拥有多个接口,如GPIO、UART、I2C等。
通过查阅相关资料,我掌握了树莓派的硬件连接方法和接口功能。
2. 树莓派软件学习在熟悉硬件的基础上,我开始学习树莓派的软件环境。
树莓派主要使用Linux操作系统,常用的发行版有Raspbian、Ubuntu等。
我选择了Raspbian进行安装,并学习了树莓派的软件配置方法。
3. 树莓派编程学习为了更好地应用树莓派,我学习了Python编程语言。
Python是一种简单易学的编程语言,在树莓派上有着广泛的应用。
我通过学习Python语法、库函数和编程技巧,掌握了树莓派的编程方法。
4. 实习项目开发在实习过程中,我参与了以下项目:(1)树莓派智能家居系统该项目旨在利用树莓派实现对家庭环境的智能控制。
通过使用GPIO接口,我实现了对家庭灯光、空调、窗帘等设备的远程控制。
同时,我还使用了MQTT协议,实现了设备之间的通信。
(2)树莓派人脸识别门禁系统该项目旨在利用树莓派和摄像头实现对人员的身份验证。
我使用了OpenCV库进行人脸检测和识别,实现了门禁系统的基本功能。
(3)树莓派智能交通信号灯系统该项目旨在利用树莓派实现对交通信号灯的智能控制。
通过使用传感器和摄像头,我实现了对交通情况的实时监测,并自动调整信号灯状态。
基于树莓派的红外避障小车
(5)传感器部分:红外避障模块。红外传感器模块连与树莓派,正 常工作时,红外避障模块的工作电压为5V左右,但红外避障模块上 的红外接发器接受到遇障碍物而折回的红外时,电压会下降0.1V左 右。进而产生信号,是树莓派执行避让语句。
(2)电源部分:包括四节1.5V (5号)电池,5000毫安移动电源。四 节1.5V (5号)电池为L298n提供6V电压,5000毫安移动电源为树莓 派提供稳定的5V电压。
(3)驱动部分:包括小车底盘、L298n电机驱动、直流电机(2个)、 三个车轮(两个前轮和一个万向轮)。L298n驱动前轮,配合万向轮实 现前进、后退以及左右转向。
制小车的目的;利用红外避障传感器模块实时监测小车距离障碍物的距离,设计基于红外线反射测距的避障算法以达到避障目的。
关键词: 避障小车;红外避障;树莓派;L 2 9 8 n ;程序实例
中图分类号:TP391
文献标识码:A
文章编号:1007-9416(2018)01-0089-02
1 硬件设计
(1)避障小车硬件组成包括:小车底盘、3个车轮(两个前轮一个 后轮)、两个直流电机、红外模块、红外避障传感器(2个)、电源盒、移动 电源(小型)、无线网卡、树莓派。PS:3个车轮中,两个前轮由直流电机 直接驱动,后轮选择万向轮。
( 2) 初始化GPI O端口: 不要忘记的在设置完信息交流通道 (channel)后,还要定义GPIO端口为输入端还是输出端,代码如下:
(3)定义基础方向:避障行为是由基础方向+树莓派选择调用构 成,所以需要在此处先定义最基本的基础移动方式。代码如下:
2.智能小车-小车前进实验
实验二:树莓派平台-------小车前进实验1、实验前准备图1-1 树莓派主控板图1-2 4个直流减速电机2、实验目的S SH登录树莓派后./运行之后,先延时2s,一直循环前进1s。
3、实验原理对于4路直流减速电机的控制我们采用的是TB6612FNG驱动芯片来驱动电机。
通过控制驱动芯片的AIN1,AIN2,BIN1,BIN2,PWMA,PWMB的电平高低来控制电机的正转,反转,停止。
本次实验主要是控制AIN1为高电平,AIN2为低电平,BIN1为高电平,BIN2为低电平,进而通过控制PWMA,PWMB在0-255之间控制小车的速度。
一路PWM控制小车一侧电机的速度。
4、实验步骤4-1.看懂原理图图4-1 树莓派电路图图4-2 电机驱动芯片TB6612FNG图4-3 树莓派40PIN引脚对照表4-2 由电路原理图可知AIN1,AIN2,PWMA,BIN1,BIN2,PWMB分别接在树莓派主控板上的40,38,36,37,35,33物理引脚上。
AIN1-----40----29(wiringPi编码)AIN2-----38----28(wiringPi编码)PWMA-----36----27(wiringPi编码)BIN1-----37----25(wiringPi编码)BIN2-----35----24(wiringPi编码)PWMB-----33----23(wiringPi编码)图4-4 引脚控制逻辑表4-3 程序代码如下:注:因为树莓派的40pin均可作为普通的GPIO口来使用,想用到PWM,则需要用到wiringPi中的软件PWM库。
可以在任意的树莓派GPIO上输出PWM信号。
使用前需包含相应的头文件:#include <wiringPi.h>#include <softPwm.h>当编译程序时,必须加上pthread库,如下:gcc advance.c -o advance -lwiringPi -lpthread具体详情见树莓派软件与文档文件夹中的wiringPi用户手册!输入:gcc advance.c -o advance -lwiringPi -lpthread ./advance即可看到小车前进的现象。
基于树莓派和GPS导航的智能避障小车设计
计算机科学与人工智能河南科技Henan Science and Technology总第811期第17期2023年9月收稿日期:2023-04-12作者简介:李承泽(2002—),男,本科生,研究方向:电子信息科学与技术。
基于树莓派和GPS 导航的智能避障小车设计李承泽(西北大学信息科学与技术学院,陕西西安710119)摘要:【目的】实现无人驾驶智能多功能小车的自动感知、规避障碍物功能,并使其按GPS 导航的路径行驶。
【方法】基于树莓派和GPS 导航对智能避障小车进行设计,以自主开发的多功能控制系统为小车的指挥协调中枢,从而实现小车高速行驶时的黑线循迹单元功能。
同时,系统通过轮询机制来实现均衡负载,可确保小车的操作能准确感知规避障碍物,并减少由每1s 进行一次数据传输造成的系统繁忙或网络拥塞。
【结果】研究结果表明,智能避障小车可自动准确地感知和规避障碍物,并按规划路径行驶。
【结论】基于树莓派和GPS 导航的智能避障小车设计具有良好的商业应用前景。
关键词:树莓派;GPS 导航;多功能控制系统;自动驾驶中图分类号:TP368.1文献标志码:A文章编号:1003-5168(2023)17-0031-04DOI :10.19968/ki.hnkj.1003-5168.2023.17.006Design of Intelligent Obstacle Avoidance Vehicle Based on RaspberryPi and GPS NavigationLI Chengze(School of Information Science and Technology,Northwestern University,Xi'an 710119,China)Abstract:[Purposes ]This paper aims to realize the automatic perception and obstacle avoidance functionof the unmanned intelligent multi-functional vehicle,and make it travel according to the path of GPS navigation.[Methods ]Based on Raspberry Pi and GPS navigation,the intelligent obstacle avoidance carwas designed.The self-developed multi-functional control system was used as the command and coordi⁃nation center of the car,so as to realize the black line tracking unit function when the car was running athigh speed.At the same time,the system realizes balanced load through the polling mechanism,which can ensure that the operation of the car can accurately perceive and avoid obstacles,and reduce the sys⁃tem busyness or network congestion caused by data transmission every 1s.[Findings ]The results show that the intelligent obstacle avoidance vehicle can automatically and accurately perceive and avoid ob⁃stacles,and drive according to the planned path.[Conclusions ]The design of intelligent obstacle avoid⁃ance vehicle based on Raspberry Pi and GPS navigation has a good commercial application prospect.Keywords:Raspberry Pi;GPS navigation;multifunctional control system;autonomous driving0引言基于GPS 的树莓派智能小车可通过状态分析系统来自动规划路线和识别交通信号,从而保证车辆的安全运行[1-5]。
3.智能小车-小车前后左右综合实验
实验三:树莓派平台-------小车前进后退左右综合实验1、实验前准备图1-1 树莓派主控板图1-2 4个直流减速电机2、实验目的ssh服务登录树莓派系统之后,编译运行小车前进后退左右实验后,先延时2s,前进1s,后退1s,左转2s,右转2s,原地左转3s,原地右转3s,停止0.5s,并且一直循环下去。
3、实验原理对于4路直流减速电机的控制我们采用的是TB6612FNG驱动芯片来驱动电机。
通过控制驱动芯片的AIN1,AIN2,BIN1,BIN2,PWMA,PWMB的电平高低来控制电机的正转,反转,停止。
本次实验主要是控制AIN1,AIN2,BIN1,BIN2的电平状态,进而通过控制PWMA,PWMB在0-255之间控制小车的速度。
一路PWM控制小车一侧电机的速度。
4、实验步骤4-1.看懂原理图图4-1 树莓派主控板电路图图4-2 电机驱动芯片TB6612FNG图4-3 树莓派40PIN引脚对照表4-2 由电路原理图可知AIN1,AIN2,PWMA,BIN1,BIN2,PWMB分别接在树莓派主控板上的40,38,36,37,35,33物理引脚上。
AIN1-----40----29(wiringPi编码)AIN2-----38----28(wiringPi编码)PWMA-----36----27(wiringPi编码)BIN1-----37----25(wiringPi编码)BIN2-----35----24(wiringPi编码)PWMB-----33----23(wiringPi编码)图4-4 引脚控制逻辑表4-3 程序代码如下:注:因为树莓派的40pin均可作为普通的GPIO口来使用,想用到PWM,则需要用到wiringPi中的软件PWM库。
可以在任意的树莓派GPIO上输出PWM信号。
使用前需包含相应的头文件:#include <wiringPi.h>#include <softPwm.h>当编译程序时,必须加上pthread库,如下:gcc advance.c -o advance -lwiringPi -lpthread具体详情见树莓派软件与文档文件夹中的wiringPi用户手册!输入:gcc CarRun.c -o CarRun -lwiringPi -lpthread ./CarRun接着./initpin.sh初始化引脚。
编程智能小车实验报告
一、实验目的1. 了解智能小车的基本组成和原理。
2. 掌握编程智能小车的基本方法。
3. 培养动手能力和创新思维。
二、实验原理智能小车是一种能够通过编程实现自主移动、避障、寻找目标等功能的微型车辆。
它主要由以下几部分组成:1. 控制模块:负责整个系统的运行,如Arduino、Raspberry Pi等。
2. 传感器模块:用于检测周围环境,如红外传感器、超声波传感器等。
3. 驱动模块:负责控制小车前进、后退、转向等动作,如电机驱动器。
4. 电源模块:为整个系统提供电源。
本实验采用Arduino作为控制模块,通过编写程序实现小车的智能控制。
三、实验器材1. Arduino UNO控制板2. L298N电机驱动器3. 2个直流电机4. 2个车轮5. 1个红外传感器6. 1个超声波传感器7. 连接线若干8. 移动平台(如小车底盘)四、实验步骤1. 准备工作(1)搭建硬件电路:将电机驱动器、传感器、车轮等模块按照电路图连接到Arduino控制板上。
(2)编写程序:使用Arduino IDE编写控制小车运动的程序。
2. 编写程序(1)初始化传感器:设置红外传感器和超声波传感器的引脚,并初始化它们。
(2)编写主循环:在主循环中,读取传感器的数据,根据数据控制小车的运动。
(3)编写避障程序:当红外传感器检测到障碍物时,小车需要减速或停止,超声波传感器用于测量障碍物距离。
(4)编写寻找目标程序:当小车遇到目标时,根据目标位置调整小车方向,实现跟踪。
3. 调试与优化(1)调试程序:将编写好的程序上传到Arduino控制板,观察小车运行情况,根据实际情况调整程序。
(2)优化程序:根据实验需求,对程序进行优化,提高小车运行效率。
五、实验结果与分析1. 实验结果通过编程实现的小车能够完成以下功能:(1)自主移动:小车能够按照设定的路径前进、后退、转向。
(2)避障:当遇到障碍物时,小车能够减速或停止,避免碰撞。
(3)寻找目标:当遇到目标时,小车能够根据目标位置调整方向,实现跟踪。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-2-
第一章 绪论 1. 设计要求
(1)设计一个无线遥控的小车,小车通过树莓派无线连接至电脑通过电脑控 制小车的运动。
(2)小车可以前进、后退、左转、右转、左转圈、右转圈。
2. 设计内容
- 11 -
GPIO.output(23, False) break
# Forward if ch == 'w': GPIO.output(27, False) GPIO.output(18, True) GPIO.output(22, False) GPIO.output(23, True)
# Backward if ch == 'x': GPIO.output(27, True) GPIO.output(18, False) GPIO.output(22, True) GPIO.output(23, False)
音源输出 3.5mm 插孔,HDMI
板载存储 SD/MMC/SDIO 卡插槽
网络接口 10/100 以太网接口
外设
8xGPIO、UART、I2C、带两个选择的 SPI 总线,+3.3V,+5V,ground(负 极)
额定功率 700mA(3.5W)
电源输入 5V / 通过 MicroUSB 或 GPIO 头
ARM1176JZF-S 核心(ARM11 系列)700MHz
-5-
Broadcom VideoCrore IV,OpenGL ES 2.0,1080p 30 h.264/MPEG-4 AVC GPU
高清解码器
内存
512MByte
USB 接口 4(支持 USB hub 扩展)
影像输出
Composite RCA(PAL & NTSC),HDMI(rev 1.3 & 1.4),raw LCD Panels via DSI 14 HDMI resolution from 640x350 to 1920x1200 plus various PAL andNTSC standards
(1)基于 L298N 的电机驱动模块设计与实现 (2)树莓派与电脑连接的设计与实现 (3)树莓派控制小车的设计与实现
第二章 系统需求分析 1. 设计思路
(1)分析无线遥控小车基本控制技术以及各种通行方案,并以此为基处提出 自己的无线控制小车的初步方案。
(2)确定无线控制小车的总体设计,包括基于 L298N 电机驱动模块的方案设 计以及系统应拥有的各项功能。
-4-
(2)L298N 步进电机驱动板有四个 IO 输入口,简单的说就是 1.2 两个 IO 口通过高低电平控制一个电机的正反转,,所以,我们要做的就是通过树莓派的 IO 口输出高低电平就可以控制电机的转向。
2. 树莓派相关
(1)树莓派具体参数
网卡
BroadcomBCM2835(CPU,GPU,DSP 和 SDRAM,USB)
stdscr = curses.initscr() stdscr.clear()
while True: ch = stdscr.getkey()
# Quit if ch == 's': curses.endwin() GPIO.output(27, False) GPIO.output(18, False) GPIO.output(22, False)
总体尺寸 85.60 x 53.98 mm(3.370 x 2.125 in)
操作系统 Debian GNU/linux,Fedora,Arch Linux ARM,RISC OS, XBMC
(2)树莓派安装系统 准备工作: 1)最好最准备一张 4G 以上的 SD 卡,最好是高速卡,推荐 Class4 以上的卡,
(1)模块接口 +5V:芯片电压 5V。 VCC:电机电压,最大可接 50V。 GND:共地接法。 A-~D-:输出端,接电机。 A~D+ :为步进电机公共端,模块上接了 VCC。 EN1、EN2:高电平有效,EN1、EN2 分别为 IN1 和 IN2、IN3 和 IN4 的使
能端。 IN1~ IN4:输入端,输入端电平和输出端电平是对应的。
因为卡得速度直接影响树莓派的运行速度。 2)下载树莓派 debian 系统镜像文件, 3)在 windows 下安装镜像的工具 win32diskimager 安装实战: 1)解压下载的 debian 系统压缩文件,得到 img 镜像文件 2)将 SD 卡使用读卡器后,连上电脑
-6-
3)解压并运行 win32diskimager 工具 4)在软件中选择 debain 的 img 文件,“Device”下选择 SD 的盘符,然后选 择“Write”然后就开始安装系统了,根据 SD 速度,安装过程有快有慢
开始
初始化 读取数据
Key=?
Key=q
Key=e
Ky=x
Key=s
向左转 圈
向右转 圈
前进
左拐
右拐
后退
停止
- 10 -
程序所用语言为 python,选用 python GPIO,因为该库是树莓派官方资料中 推荐的且容易上手。python GPIO 是一个小型的 python 库,可以帮助用户完成 raspberry 相关 IO 口操作。但是 python GPIO 库还没有支持 SPI、I2C 或者 1-wire 等总线接口。除了 python GPIO 之外,还有众多的 python 扩展库,毫无疑问的 说 python 非常适合树莓派,树莓派也非常适合 python。
源程序如下: import RPi.GPIO as GPIO import curses import time from curses import wrapper
GPIO.setmode(GPIO.BCM)
GPIO.setup(27, GPIO.OUT) GPIO.setup(18, GPIO.OUT) GPIO.setup(22, GPIO.OUT) GPIO.setup(23, GPIO.OUT)
系统方案框图如下图所示。
-3-
左电机 1 右电机 1
左电机 2 右电机 2
LN1
LN2
L298N
LN3
LN4
无线网卡
树莓派
系统方案框图
USB1
移动电源
USB2
第三章 系统软硬件设计与实现
1. L298N 芯片相关
L298N 是 SGS 公司的产品,内部包含 4 通道逻辑驱动电路。是一种二相和四 相电机的专用驱动器,即内含二个 H 桥的高电压大电流双全桥式驱动器,接收标 准 TTL 逻辑电平信号,可驱动 46V、2A 以下的电机。其引脚排列如下图图所示, 1 脚和 15 脚可单独引出连接电流采样电阻器,形成电流传感信
计算机学院
嵌入式方向综合工程设计技术报告
题 目: 树莓派控制无线小车
姓 名:
学号
姓 名:
学号
姓 名:
学号
指导老师:
起止时间: 2014 年 9 月 至 2015 年 1 月
西安电子科技大学计算机工程系
摘要: 树莓派由注册于英国的慈善组织“Raspberry Pi 基金会”开发,
2012 年 3 月,英国剑桥大学埃本·阿普顿正式发售世界上最小的台式机,又称 卡片式电脑,外形只有信用卡大小,却具有电脑的所有基本功能,这就是树莓派 电脑板,中文译名"树莓派"。
树莓派 GPIO
L298N 驱动板
Pin(GPIO 27)
IN1
Pin(GPIO 18)
IN2
Pin(GPIO 22)
IN3
Pin(GPIO 23)
IN4
Pin(+5V)
+5V
Pin(GND)
GND
3.无线网卡相关
无线网卡用来连接电脑和树莓派,用电脑来控制树莓派。 无线网卡规格:
-9-
遵循标准 传输速率 发射功率
树莓派用途广泛,专为业余兴趣者和想学习编程的年轻人们设计的,提供一 个具有基本功能的,廉价的硬件平台。它是一款基于 的微型电脑主板,以 SD 卡为内存硬盘,卡片主板周围有四个 USB 接口和一个网口,可连接键盘、鼠 标和网线,同时拥有视频模拟信号的电视输出接口和 HDMI 高清视频输出接口。 其尺寸只有信用卡大小,运行速度比台式机稍慢,但已具备了电脑的所有基本功 能,只需接通电视机和键盘,就能执行如电子表格,文字处理,玩游戏,播放高 清视频等诸多功能。
5)安装结束后会弹出完成对话框,说明安装就完成了,如果不成功,关闭 防火墙一类的软件,重新插入 SD 进行安装。其中 Ext3 区属于 linux 的文件系 统,就和 Windows 的文件系统 NTFS、FAT32、FAT16 一样,Swap 区为 linux 的虚 拟内存区,主要在物理内存不够用的时候,做缓存用。
(3)进行树莓派、电机、L298N、小车框架的组装和对各器件的选择及连接, 大体分配实现各个器件及模块的基本功能和要求。
(4)进行软件系统的设计,对 L298N 内部结构和工作情况做了充足的研究, 了解树莓派及其相关,完成控制软件的编写。
2. 总体方案
树莓派无限控制小车大致上有五部分组成。包括小车电机部分、L298N 部分、 树莓派部分、无线网卡部分以及移动电源部分。其中小车部分由四个电机以及小 车框架组成,小车的四个轮子每个一个电机。L298N 通过与四个电机的连接来控 制四个电机的转动,每边的电机并联。移动电源主要给树莓派以及 L298N 控制电 机模块供电。无线网卡主要用来连接电脑与树莓派,通过电脑控制树莓派下达命 令,控制电机的转动。
第二章 系统需求分析……………………………………………3 1.设计思路………………………………………………………3 2.总体方案………………………………………………………3