位置: IT常识 - 正文

毕业设计 基于树莓派的AI视觉机械臂小车(毕业设计基于web难还是JAVA)

发布时间:2024-01-17
毕业设计 基于树莓派的AI视觉机械臂小车 文章目录0 前言1 简介2 主要机器3 树莓派简介4 基本运动-TB6612FNG驱动芯片5 红外避障功能6 最后
0 前言

推荐整理分享毕业设计 基于树莓派的AI视觉机械臂小车(毕业设计基于web难还是JAVA),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:毕业设计 基于openwrt,毕业设计 基于openwrt,毕业设计 基于大数据的交通拥堵预测与优化调度,毕业设计 基于yolov5的,毕业设计 基于yolov5的,毕业设计基于51单片机多功能电子钟的设计,毕业设计基于51单片机多功能电子钟的设计,毕业设计基于web难还是JAVA,内容如对您有帮助,希望把文章链接给更多的朋友!

🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。

为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是

🚩 毕业设计 基于树莓派的AI视觉机械臂小车

🥇学长这里给一个题目综合评分(每项满分5分)

难度系数:3分工作量:3分创新点:5分

🧿 选题指导, 项目分享:

https://gitee.com/dancheng-senior/project-sharing-1/blob/master/%E6%AF%95%E8%AE%BE%E6%8C%87%E5%AF%BC/README.md

1 简介

基于树莓派的AI视觉和机械臂。视觉识别是一个主要内容,是信息输入的重要方式,而机械臂是机器人输出、工作的重要方式,比如农业采摘机器人。因此,AI视觉和机器的互相配合加持对实际生产生活具有很大的意义。

2 主要机器机器人套件蜂鸣器轻触按键漫反射红外光电避障传感模块3 树莓派简介

智能小车的大脑是一块信用卡大小的树莓派板子,所以DIY冲动的朋友可以到各大商城购买一块最新版的树莓派,:

树莓派第三代张这个样子——正面照

简单介绍:

Micro-USB Power–电源插槽CPU四个USB接口一个HDMI接口一个耳机插孔,也可以输出视频40个GPIO引脚一个SD卡插槽,没有硬盘一个网线插口,自带无线网卡树莓派相机插槽Micro-USB Power,树莓派供电接口

所有具体接口如何使用,详细讲解的话会使该篇文章显得拖沓,放在其它篇幅讲解,目前不懂没关系,不影响到我们制作智能小车。

1.电源适配器 5V 2A

2.移动电源 输出5V 2.1A

注意:Pi没有板载稳压芯片,只能且必须用5V的电源给Pi供电。如果电压过大,Pi会永久“变砖”,等着流泪吧!

4 基本运动-TB6612FNG驱动芯片

采用了TB6612FNG驱动芯片,电机电源接口带有反接保护电路,相对于传统的L298N在效率上提高很多,体积上也大幅减小,使用方法和L298N类似。 同时除了使用RPi.GPIO库编程以外,再使用gpiozero库的Motor类来实现电机控制。

毕业设计 基于树莓派的AI视觉机械臂小车(毕业设计基于web难还是JAVA)

实验原理

TB6612FNG是东芝半导体公司生产的一款直流电机驱动器件,具有大电流MOSFET-H桥结构,双通道电路输出,也就是可以驱动两个电机。

扩展板上使用了两块TB6612FNG芯片,但是并联的,只有两路输出,可以用作备份,也可以用作2路4驱。

下面分别是控制两个电机的IO口: STBY口接单片机的IO口清零电机全部停止,置1通过AIN1 AIN2,BIN1,BIN2 来控制正反转 VM 接15V以内电源 VCC 接2.7v – 5V电源 GND 接地

驱动1路:

PWMA 接单片机的PWM口

A01、AO2 接电机1的两个脚

驱动2路:

PWMB 接单片机的PWM口

B01、BO2 接电机2的两个脚

注意: 若是pwm控制,则需要pwm频率100khz ,亲测80khz也好用,同时STBY引脚需要接高电平。

程序编写

#!/usr/bin/env python2# -*- coding: utf-8 -*-import RPi.GPIO as GPIOimport timePWMA = 18AIN1 = 22AIN2 = 27PWMB = 23BIN1 = 25BIN2 = 24GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM)GPIO.setup(AIN2,GPIO.OUT)GPIO.setup(AIN1,GPIO.OUT)GPIO.setup(PWMA,GPIO.OUT)GPIO.setup(BIN1,GPIO.OUT)GPIO.setup(BIN2,GPIO.OUT)GPIO.setup(PWMB,GPIO.OUT)L_Motor= GPIO.PWM(PWMA,80000)L_Motor.start(0)R_Motor = GPIO.PWM(PWMB,80000)R_Motor.start(0)def t_up(speed,t_time): L_Motor.ChangeDutyCycle(speed) GPIO.output(AIN2,False) GPIO.output(AIN1,True) # AIN1高电平为前进 R_Motor.ChangeDutyCycle(speed) GPIO.output(BIN2,False) GPIO.output(BIN1,True) # BIN1高电平为前进 time.sleep(t_time)def t_stop(t_time): L_Motor.ChangeDutyCycle(0) GPIO.output(AIN2,False)#AIN2 GPIO.output(AIN1,False) #AIN1 R_Motor.ChangeDutyCycle(0) GPIO.output(BIN2,False)#BIN2 GPIO.output(BIN1,False) #BIN1 time.sleep(t_time)def t_down(speed,t_time): L_Motor.ChangeDutyCycle(speed) GPIO.output(AIN2,True) # AIN2高电平为后退 GPIO.output(AIN1,False) R_Motor.ChangeDutyCycle(speed) GPIO.output(BIN2,True) # BIN2高电平为后退 GPIO.output(BIN1,False) time.sleep(t_time)def t_left(speed,t_time): L_Motor.ChangeDutyCycle(speed) GPIO.output(AIN2,True) # 左轮后退 GPIO.output(AIN1,False) R_Motor.ChangeDutyCycle(speed) GPIO.output(BIN2,False) GPIO.output(BIN1,True) # 右轮前进 time.sleep(t_time)def t_right(speed,t_time): L_Motor.ChangeDutyCycle(speed) GPIO.output(AIN2,False) GPIO.output(AIN1,True) # 左轮前进 R_Motor.ChangeDutyCycle(speed) GPIO.output(BIN2,True) # 右轮后退 GPIO.output(BIN1,False) time.sleep(t_time) try: while True: t_up(50,3) t_down(50,3) t_left(50,3) t_right(50,3) t_stop(3)except KeyboardInterrupt: GPIO.cleanup()5 红外避障功能

采用了E18-D80NK漫反射式红外光电开关避障传感器模块。同时除了使用RPi.GPIO库编程以外,再使用gpiozero库来实现。 实验原理 E18-D80NK是一种及发射与接收于一体的光电传感器,发射光经过调制后发出,接收头对反射光进行解调输出,有效的避免了可见光的干扰。透镜的使用,也使得这款传感器最远可以检测80厘米距离的物体(由于红外光的特性,不同颜色的物体,能探测到的最大距离也不同,白色物体最远,黑色物体最近)。

检测障碍物的距离可以根据要求,通过尾部的电位器旋钮进行调节。

传感器相关参数

这个NPN型光电开关的输出组是0或1,即数字电路中的高电平与低电平。检测到目标是低电平输出,正常状态是高电平输出。光电开关就三条线:电源、地、输出,输出不需要进行AD转换。

在上面的扩展板TB6612FNG芯片电路图上可以知道连接GPIO的接线情况,A通道为左轮控制,B通道为右轮控制: 程序编写

这里先使用RPi.GPIO库来编写程序,当按下按键后车辆开始行进,左右都没探测到障碍物时直行,左侧探测到障碍物时右转,右侧探测到障碍物时左转,否则就是左右都探测到障碍物停止0.3秒,再后退0.4秒,再左转0.5秒。

#!/usr/bin/python # coding=utf-8 #本段代码实现树莓派智能小车的红外避障效果#代码使用的树莓派GPIO是用的BCM编码方式。import RPi.GPIO as GPIO import time import sys SensorRight = 16SensorLeft = 12PWMA = 18AIN1 = 22AIN2 = 27PWMB = 23BIN1 = 25BIN2 = 24BtnPin = 19Gpin = 6Rpin = 5#智能小车运动函数 def t_up(speed,t_time): L_Motor.ChangeDutyCycle(speed) GPIO.output(AIN2,False)#AIN2 GPIO.output(AIN1,True) #AIN1 R_Motor.ChangeDutyCycle(speed) GPIO.output(BIN2,False)#BIN2 GPIO.output(BIN1,True) #BIN1 time.sleep(t_time)def t_stop(t_time): L_Motor.ChangeDutyCycle(0) GPIO.output(AIN2,False)#AIN2 GPIO.output(AIN1,False) #AIN1 R_Motor.ChangeDutyCycle(0) GPIO.output(BIN2,False)#BIN2 GPIO.output(BIN1,False) #BIN1 time.sleep(t_time)def t_down(speed,t_time): L_Motor.ChangeDutyCycle(speed) GPIO.output(AIN2,True)#AIN2 GPIO.output(AIN1,False) #AIN1 R_Motor.ChangeDutyCycle(speed) GPIO.output(BIN2,True)#BIN2 GPIO.output(BIN1,False) #BIN1 time.sleep(t_time)def t_left(speed,t_time): L_Motor.ChangeDutyCycle(speed) GPIO.output(AIN2,True)#AIN2 GPIO.output(AIN1,False) #AIN1 R_Motor.ChangeDutyCycle(speed) GPIO.output(BIN2,False)#BIN2 GPIO.output(BIN1,True) #BIN1 time.sleep(t_time)def t_right(speed,t_time): L_Motor.ChangeDutyCycle(speed) GPIO.output(AIN2,False)#AIN2 GPIO.output(AIN1,True) #AIN1 R_Motor.ChangeDutyCycle(speed) GPIO.output(BIN2,True)#BIN2 GPIO.output(BIN1,False) #BIN1 time.sleep(t_time)def keysacn(): # 按下按键后,车辆才行进 val = GPIO.input(BtnPin) while GPIO.input(BtnPin) == False: val = GPIO.input(BtnPin) while GPIO.input(BtnPin) == True: time.sleep(0.01) val = GPIO.input(BtnPin) if val == True: GPIO.output(Rpin,1) while GPIO.input(BtnPin) == False: GPIO.output(Rpin,0) else: GPIO.output(Rpin,0)def setup(): GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) # 按物理位置给GPIOs编号 GPIO.setup(Gpin, GPIO.OUT) # 设置绿色Led引脚模式输出 GPIO.setup(Rpin, GPIO.OUT) # 设置红色Led引脚模式输出 GPIO.setup(BtnPin, GPIO.IN, pull_up_down=GPIO.PUD_UP) # 设置输入BtnPin模式,拉高至高电平(3.3V) GPIO.setup(SensorRight,GPIO.IN) GPIO.setup(SensorLeft,GPIO.IN) GPIO.setup(AIN2,GPIO.OUT) GPIO.setup(AIN1,GPIO.OUT) GPIO.setup(PWMA,GPIO.OUT) GPIO.setup(BIN1,GPIO.OUT) GPIO.setup(BIN2,GPIO.OUT) GPIO.setup(PWMB,GPIO.OUT)if __name__ == '__main__': setup() keysacn() L_Motor= GPIO.PWM(PWMA,100) L_Motor.start(0) R_Motor = GPIO.PWM(PWMB,100) R_Motor.start(0) try: while True: SR_2 = GPIO.input(SensorRight) SL_2 = GPIO.input(SensorLeft) if SL_2 == True and SR_2 == True: # 高电平表示无障碍 print("t_up") t_up(50,0) elif SL_2 == True and SR_2 ==False: print("Left") t_left(50,0) elif SL_2==False and SR_2 ==True: print("Right") t_right(50,0) else: t_stop(0.3) t_down(50,0.4) t_left(50,0.5) except KeyboardInterrupt: # 当按下Ctrl+C时,将执行子程序destroy()。 GPIO.cleanup()6 最后
本文链接地址:https://www.jiuchutong.com/zhishi/300730.html 转载请保留说明!

上一篇:GPT-4:关于下一代人工智能模型的事实、谣言和期望

下一篇:PyTorch深度学习实战 | 神经网络的优化难题

  • 网络推广的方法之百度知道问答篇(网络推广的方法和途径)

    网络推广的方法之百度知道问答篇(网络推广的方法和途径)

  • 易直播怎么登录不上去(易直播登陆)

    易直播怎么登录不上去(易直播登陆)

  • 为什么小号扩列不能匹配(小号扩列怎么没有了)

    为什么小号扩列不能匹配(小号扩列怎么没有了)

  • 怎样私信已关注的人(怎样私信已关注的人手机上)

    怎样私信已关注的人(怎样私信已关注的人手机上)

  • qq空间照片我没删怎么不见了(qq空间照片没删无故消失)

    qq空间照片我没删怎么不见了(qq空间照片没删无故消失)

  • 三相220v和三相380v的区别(三相220v和三相380v的电流)

    三相220v和三相380v的区别(三相220v和三相380v的电流)

  • 苹果x屏幕出现黑色圆圈(苹果x的屏幕是什么屏)

    苹果x屏幕出现黑色圆圈(苹果x的屏幕是什么屏)

  • 微信收款有额度限制吗(微信收款有额度吗?)

    微信收款有额度限制吗(微信收款有额度吗?)

  • 微信群最多500人吗(微信加人拉群一个35元)

    微信群最多500人吗(微信加人拉群一个35元)

  • 微信为什么实名认证失败(微信为什么实名认证不了怎么办)

    微信为什么实名认证失败(微信为什么实名认证不了怎么办)

  • ios第三方应用灰色打不开(苹果第三方软件灰色不出现设备信任)

    ios第三方应用灰色打不开(苹果第三方软件灰色不出现设备信任)

  • 本地web登录用户账号是什么意思(本地web登录用户账号是宽带账号吗)

    本地web登录用户账号是什么意思(本地web登录用户账号是宽带账号吗)

  • 骁龙855采用了什么纳米(骁龙855的机器)

    骁龙855采用了什么纳米(骁龙855的机器)

  • 华为手机除了应用市场还可以用别的下载吗(华为手机除了应用市场还怎么下软件)

    华为手机除了应用市场还可以用别的下载吗(华为手机除了应用市场还怎么下软件)

  • 麒麟935相当于骁龙什么(麒麟935处理器相当于高通多少?)

    麒麟935相当于骁龙什么(麒麟935处理器相当于高通多少?)

  • 香港手机卡可以在大陆用吗(香港手机卡可以在大陆浏览国外网站吗)

    香港手机卡可以在大陆用吗(香港手机卡可以在大陆浏览国外网站吗)

  • 手机qq怎么开情侣空间(手机qq如何开启情侣空间)

    手机qq怎么开情侣空间(手机qq如何开启情侣空间)

  • 手机闹钟不响怎么解决(手机闹钟不响怎么回事儿)

    手机闹钟不响怎么解决(手机闹钟不响怎么回事儿)

  • cad怎么取消加载插件(cad文件加载已取消)

    cad怎么取消加载插件(cad文件加载已取消)

  • 电信卡信号差网慢怎么办(电信卡信号变弱)

    电信卡信号差网慢怎么办(电信卡信号变弱)

  • 微信如何转台币(台币怎么微信转账)

    微信如何转台币(台币怎么微信转账)

  • 手机录屏怎么才能没黑边(手机录屏怎么才能录对方声音)

    手机录屏怎么才能没黑边(手机录屏怎么才能录对方声音)

  • 计算机一级excel函数(计算机一级excel操作题视频讲解)

    计算机一级excel函数(计算机一级excel操作题视频讲解)

  • 苹果a1502是哪年出的(苹果a1502是哪年的)

    苹果a1502是哪年出的(苹果a1502是哪年的)

  • iphone自拍镜像怎么关(iphone照相机自拍镜像)

    iphone自拍镜像怎么关(iphone照相机自拍镜像)

  • 用手机隐藏qq腾讯会员(手机qq可以隐藏)

    用手机隐藏qq腾讯会员(手机qq可以隐藏)

  • qq空间手机型号怎么设置(qq空间手机型号修改)

    qq空间手机型号怎么设置(qq空间手机型号修改)

  • 企业投资收益要开发票吗
  • 个税的计算过程
  • 技术咨询服务开什么发票
  • 印刷宣传册是违法吗
  • 支出和成本的关系和区别
  • 购销合同赔偿比例一般多少
  • 业务招待费所得税前扣除标准
  • 在建工程转固定资产凭证附件
  • 收到长期股权投资的现金股利
  • 社保和公积金缴费基数怎么算
  • 支付房屋租金计入什么会计科目
  • 出口退税为0的产品明细
  • 收到差额纳税的发票进项税能抵扣吗
  • 工程交税需要什么资料
  • 接受实物投资的增值税会计核算方法
  • 固定资产处置的账务处理
  • 会计调账有哪些方式
  • 工厂新增项目需要立项、环境评价
  • 公司备用金可以取多少
  • 怎么计算房地产成本单价
  • 调整以前年度企业所得税会计分录
  • 固定资产残值清零怎么处理
  • 预缴增值税的情况四种情形汇总表怎么填
  • 怎么利用喜欢自己的人
  • 常见的dump抓取方法
  • 电脑桌面图标如何更改自定义图片
  • linux 阿里云源
  • 一般纳税人接受固定资产投资时相关的科目可能有
  • 如何禁用开始目录的app自动推荐
  • CENTOS7安装报错
  • 公积金扣款日余额不足,影响征信
  • php 首字母大写
  • 缅甸安达曼海
  • 进料加工贸易方式
  • 微信小程序自定义函数
  • 基于骨骼关键点的动作识别
  • opencv几何变换
  • php怎么转go
  • php邮箱smtp发信源码
  • thinkphp原理及优缺点
  • named命令
  • 奖金的发放应做到
  • phpcms文档
  • 支出在记账凭证里怎么填
  • 开发产品的成本
  • 帝国cms破解授权
  • 个体户核定征收和查账征收哪个好
  • 新准则下其他应收坏账
  • 文化事业建设费2023年是否减免了
  • 预收款开发票,不确认收入可以吗?
  • 上月财务费用多做了,本月怎么调
  • 公司之间的借款利息有最小限制吗
  • 经营性应收项目的计算公式
  • 购买单位什么意思
  • 长期待摊费用如何做分录
  • 老办法退休金如何计算
  • 小规模印花税怎么报
  • 医疗机构药库设置标准
  • 私营企业归谁管
  • 商业银行的固定资产
  • 旅游饮食服务企业会计核算的特点包括
  • sql中的join
  • SQL Transcation的一些总结分享
  • 回顾30年的水文模型参数率定研究
  • windows7禁用usb
  • 怎么进入win7系统
  • win造字软件
  • 电脑死机是什么问题
  • 怎么设置开机启动项?
  • xp更改系统区域设置
  • w10 2021年更新
  • 安装yum的命令
  • Win10 Mobile Build 14327上手视频评测
  • win8怎么添加wifi
  • android应用开发基础
  • bat脚本%1
  • android解析xml的方法中,将整个文件加载到内存
  • jquery中的动画方法有哪些
  • android基于
  • 事业编税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号