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

这篇具有很好参考价值的文章主要介绍了毕业设计 基于树莓派的AI视觉机械臂小车。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


0 前言

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

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

🚩 毕业设计 基于树莓派的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冲动的朋友可以到各大商城购买一块最新版的树莓派,:

树莓派第三代张这个样子——正面照
毕业设计 基于树莓派的AI视觉机械臂小车

简单介绍:

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

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

1.电源适配器 5V 2A
毕业设计 基于树莓派的AI视觉机械臂小车

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

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

4 基本运动-TB6612FNG驱动芯片

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

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

实验原理

毕业设计 基于树莓派的AI视觉机械臂小车
毕业设计 基于树莓派的AI视觉机械臂小车
TB6612FNG是东芝半导体公司生产的一款直流电机驱动器件,具有大电流MOSFET-H桥结构,双通道电路输出,也就是可以驱动两个电机。

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

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

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

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

驱动1路:

PWMA 接单片机的PWM口

毕业设计 基于树莓派的AI视觉机械臂小车
A01、AO2 接电机1的两个脚

驱动2路:

PWMB 接单片机的PWM口

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

B01、BO2 接电机2的两个脚

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

程序编写

#!/usr/bin/env python2
# -*- coding: utf-8 -*-

import  RPi.GPIO as GPIO
import time

PWMA = 18
AIN1   =  22
AIN2   =  27

PWMB = 23
BIN1   = 25
BIN2  =  24

GPIO.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 红外避障功能

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

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

传感器相关参数
毕业设计 基于树莓派的AI视觉机械臂小车

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

在上面的扩展板TB6612FNG芯片电路图上可以知道连接GPIO的接线情况,A通道为左轮控制,B通道为右轮控制:
毕业设计 基于树莓派的AI视觉机械臂小车
程序编写

这里先使用RPi.GPIO库来编写程序,当按下按键后车辆开始行进,左右都没探测到障碍物时直行,左侧探测到障碍物时右转,右侧探测到障碍物时左转,否则就是左右都探测到障碍物停止0.3秒,再后退0.4秒,再左转0.5秒。文章来源地址https://www.toymoban.com/news/detail-416512.html

#!/usr/bin/python  
# coding=utf-8  
#本段代码实现树莓派智能小车的红外避障效果
#代码使用的树莓派GPIO是用的BCM编码方式。

import RPi.GPIO as GPIO  
import time  
import sys 
 
SensorRight = 16
SensorLeft  = 12

PWMA   = 18
AIN1   = 22
AIN2   = 27

PWMB   = 23
BIN1   = 25
BIN2   = 24

BtnPin  = 19
Gpin    = 6
Rpin    = 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 最后

到了这里,关于毕业设计 基于树莓派的AI视觉机械臂小车的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 基于树莓派的智能家居控制系统设计论文参考

    完整论文咨询可WX联系:gyf1842965496 智能家居控制系统功能实现详细介绍:基于树莓派的智能家居控制系统设计https://blog.csdn.net/G1842965496/article/details/125491350#comments_26030679 随着科技的进步,人们生活水平的也在不断变好,人们对居住环境的要求也不再局限于传统的居住方式,而

    2024年02月08日
    浏览(37)
  • 毕业设计-基于机器视觉的室内智能安防车系统 -STM32和 OpenCV

    目录 前言 课题背景和意义 实现技术思路 一、系统整体设计 二、智能安防车硬件系统设计 三、室内安防车自动巡逻机制的实现 四、基于 OpenCV 图像识别的火焰识别 五、分类器设计及软件实现 代码部分 实现效果图样例 最后     📅大四是整个大学期间最忙碌的时光,一边要忙

    2023年04月17日
    浏览(29)
  • 毕业设计:基于计算机视觉的苹果成熟度检测系统 目标检测

    目录 前言 项目背景 数据集 设计思路 更多帮助     📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充

    2024年04月17日
    浏览(38)
  • 毕业设计:基于机器学习的硬币检测识别系统 人工智能 YOLO 计算机视觉

    目录 前言 课题背景和意义 实现技术思路 一、 硬币检测方法 1.1 规格、变形监测 1.2 变色检测 二、 数据集 三、实验及结果分析 3.1 实验环境搭建 3.2 模型训练 最后     📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为

    2024年02月20日
    浏览(54)
  • 毕业设计选题:基于深度学习的舌头分割系统 人工智能 YOLO 计算机视觉

    目录 前言 课题背景和意义 实现技术思路 一、 算法理论基础 1.1 Snake模型  1.2 几何约束  1.3 切片重组 二、 数据集 三、实验及结果分析 最后     📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。

    2024年02月19日
    浏览(64)
  • 基于Java(SpringBoot框架)毕业设计作品成品(30)AI毕业设计AI智能动物大全识别系统设计与实现

    博主介绍: 《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月08日
    浏览(41)
  • 基于Java(SpringBoot框架)毕业设计作品成品(29)AI毕业设计AI智能植物大全识别系统设计与实现

    博主介绍: 《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月08日
    浏览(47)
  • 毕业设计选题 基于深度学习的人流量预测系统 人工智能 YOLO 计算机视觉

    目录  前言 设计思路 一、课题背景与意义 二、算法理论原理 2.1 卷积神经网络 2.2 注意力机制 三、检测的实现 3.1 数据处理 3.2 实验环境搭建 3.3 实验及结果分析 最后        📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要

    2024年01月19日
    浏览(51)
  • 毕业设计选题:基于机器学习的票据表格分割识别系统 人工智能 YOLO 计算机视觉

    目录 前言 课题背景和意义 实现技术思路 一、 算法理论基础 1.1 卷积神经网络 1.3 EM算法 二、实验及结果分析 2.1 数据处理 2.2 模型训练 3.2 结果分析 最后     📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗

    2024年02月22日
    浏览(55)
  • 毕业设计:基于深度学习的绝缘子缺陷检测系统 人工智能 YOLO 计算机视觉

    目录 前言 一、课题背景与意义 二、设计思路 2.1.多尺度特征融合 2.2 绝缘子缺陷检测 三、模型训练 3.1 实验环境 3.2 结果分析 最后 前言  📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各

    2024年01月18日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包