西电A测-自动货物分拣系统

题目介绍:有一个自动货物分拣系统的项目,系统由颜色识别系统,履带传送系统和机械臂分拣系统构成。该项目利用红、绿、蓝三色木块代表不同货物种类,能够通过对货物种类的自动判断,对不同货物进行智能分拣。
测试时,将红、绿、蓝三色木块间隔放在履带上,要求在规定的秒数内将木块输送到颜色识别区进行自动识别。如果当前木块是规定的目标颜色,则启动机械臂进行分拣,将其从履带上取下放在测试前现场指定的位置。其他颜色木块不做分拣,直接传送到履带末端。

前言

此文章针对XDer A测,写在这里,供大家做A测时学习参考,本人代码文件名后缀带有lwy,只在CSDN上发表过,其他平台非本人上传,转载请包含出处。
STM32学习不易,系统学习STM32知识见B站正点/野火视频。第一次写blog,若有bug,请海涵,同时望及时告知更正。

目录

  • 西电A测-自动货物分拣系统
    • 前言
    • 一,软件下载安装
    • 二,驱动安装
    • 三,软件基础操作:
    • 四,STM32L476介绍
    • 五,lwy代码重要部分的解释
      • 5.1 颜色识别TCS230
      • 5.2 电机控制MX1616
      • 5.3 机械臂舵机控制SSC32
    • 六,步骤
    • 七,注意事项

一,软件下载安装

本人使用CUBEMX+KEIL5,所以此教程需要安装:
KEIL5,KEIL5中STM32L4库,CUBEMX,CUBEMX中STM32L4的HAL库包

  1. KEIL5下载:下载+破解,安装步骤:自己搜视频 或B站野火/正点 STM32视频
  2. KEIL5安装后需要STM32L4系列库,下载地址:请点击STM32

    下载到电脑文件为:Keil.STM32L4xx_DFP.2.6.1.pack。双击它,然后Next


    正确安装,成功后双击KEIL打开 device中显示出STM32L4 Series:
  3. CUBEMX下载:TI官网+csdn搜下载教程
  4. CUBEMX安装后需要STM32L4系列的HAL库包:双击软件 CUBEMX 后点击

    找到STM32L4,安装你想要的版本(选择对应版本前面的正方形框选中后,点击下面INSTALL Now)

    正确安装后显示为绿色(页面如下):

二,驱动安装

  1. 串口驱动
    安装串口驱动是为了使用串口通信模块,使单片机的数据通过串口通信模块,发送到电脑端;或者数据通过电脑发送给单片机。安装老师A测群中文件:

    此实验使用软件SSC-32 Servo Sequencer Utility.exe,通过串口通信,将数据发送到绿色开发板用来控制机械臂转动的位置。
  2. stlink驱动
    安装步骤见:链接
    安装STLINK驱动是为了可以正常下载程序烧录到开发板,代码通过STCLK 和STDIO引脚下载。


正确安装stlink驱动后,插上开发板,设备管理器,显示如下:STM32 STLINK / STM32 Debug

3. Windows上下载串口调试助手:(非必须)

三,软件基础操作:

STLINK 下载程序:选择图示魔术棒Options for target

在下图中点击Debug

点击下图中Settings

选择ST-LINK,SW。前述正确安装STLINK驱动后,在下图SW Device中会显示Device中显示名称(可能和我的信息不一样)

四,STM32L476介绍


这个才是STM32L476的引脚顺序,不是开发板上标的字母,接线一定盯着上面这张图!

上图中,引脚接线整理如下:



开发板实物图:可以参考需要接线的引脚

五,lwy代码重要部分的解释

后缀含lwy为本人自己添加的文件,内部已添加注释。

Main.c文件(不断修改,可能和图中一些细节不一样):

5.1 颜色识别TCS230


对于TCS230来说,当选定一个颜色滤波器时,它只允许某种特定的原色通过,阻止其它原色的通过。例如:当选择红色滤波器时,入射光中只有红色可以通过,蓝色和绿色都被阻止,这样就可以得到红色光的光强;同理,选择其它的滤波器,就可以得到蓝色光和绿色光的光强。通过这三个光强值,就可以分析出反射到TCS230传感器上的光的颜色。TCS230传感器有红绿蓝和清除4种滤光器,可以通过其引脚 S2 和 S3 的高低电平来选择滤波器模式,如下图。

L表示低电平,H表示高电平
当被测物体反射光的红、绿、蓝三色光线分别透过相应滤波器到达TAOS TCS230RGB感应芯片时,其内置的振荡器会输出方波,方波频率与所感应的光强成比例关系,光线越强,内置的振荡器方波频率越高。TCS23传感器有一个OUT引脚,它输出信号的频率与内置振荡器的频率也成比例关系,它们的比率因子可以靠其引脚S0和S1的高低电平来选择,如下图。

在CUBEMX中配置时钟树,定时器TIM4 如下:

f0=TIM4时钟Prescaler∗CounterPeriod=80MHz2000∗4000=10Hzf_0=\frac{TIM4时钟}{Prescaler*CounterPeriod} =\frac{80MHz}{2000*4000} =10Hzf0​=Prescaler∗CounterPeriodTIM4时钟​=2000∗400080MHz​=10Hz
解释:上图中配置TIM4时钟=80MHz,开一个定时器TIM4,分频后为10Hz,即间隔1/10Hz =0.1s触发一次中断,在中断服务函数中改变颜色滤波器并进行计算处理。
同时需要开启一个定时器TIM3,采集颜色传感器TCS230引脚OUT信号,捕获方波脉冲个数:

HAL配置的参数在下图代码中可以体现:

需要自己写的TCS230颜色识别代码如下(colorHALbylwy.c):

上述芯片原理介绍参考原文链接为:链接1
链接2

5.2 电机控制MX1616




电机通过PWM控制即改变方波占空比,占空比越大,速度越快。使用TIM2配置引脚PA0输出PWM方波。

通过CUBEMX配置产生方波,方波频率:
f1=TIM2时钟Prescaler∗CounterPeriod=80MHz2000∗4000=10Hzf_1=\frac{TIM2时钟}{Prescaler*CounterPeriod} =\frac{80MHz}{2000*4000} =10Hzf1​=Prescaler∗CounterPeriodTIM2时钟​=2000∗400080MHz​=10Hz
需要自己写的电机控制代码如下:


其中函数HAL_TIM_SET_COMPARE用来设置传送带运动速度。

5.3 机械臂舵机控制SSC32

绿色开发板如下:


USB SSC32路舵机控制是专为人形机器人、蜘蛛机器人、机械手等多舵机使用而量身定做的多路舵机控制器。该控制器不但保留了原版的所有功能,还在原版的基础上作了升级,将原来的RS232串口改成了USB接口,方便电脑没有串口的用户使用。控制器还增加蓝牙接口,可实现无线远程控制。USBSSC32路舵机控制控制方式包括实时、定时、定速控制等。
单个舵机和舵机群运动命令:
# <ch> P <pw> S <spd>… # <ch> P <pw> S <spd> T <time><cr>
<ch> :舵机通道号,值为0 – 31。
<pw> :脉冲宽度,单位微秒(us),值为500 – 2500。
<spd> :单通道的运动速度,单位us/秒。(可选)
<time> :所有通道的速度,单位毫秒(ms),最大65535。(可选)
<cr> :结束回车符,ASCII码中的13。(必选)
<esc> :取消当前的命令,ASCI码中的27。


舵机0,1,2,3,4,5移动到1500位置,同时在1000ms内完成,这个命令能协调多个舵机的速度,即使多个舵机的初始位置相差很远,都可以使他们同时开始转动并同时停止到指定位置上。P后面的数字代表舵机的绝对角度,每组设备参数不同,需要借助软件SSC-32 Servo Sequencer Utility调整,需要自己写的机械臂抓取代码如下(ssc32hal.c):

软件SSC-32 Servo Sequencer Utility页面:

SSC32舵机详细介绍见:链接

六,步骤

  1. 正确并且成功安装软件及驱动
  2. 对应引脚正确接线
  3. 测试代码能否编译下载
  4. 调节传送带速度参数,观察传送带速度变化是否与预期相符,若是传送带不动或速度不变,重新检查步骤1-3
  5. 改代码,在while循环内识别的颜色应与测试要求一致
  6. 借助软件SSC-32 Servo Sequencer Utility调节机械臂参数,并将参数更新到ssc32hal.c文件中。

七,注意事项

(对于新手,注意事项挺多的,累了,有机会就添加)

目录

  • 西电A测-自动货物分拣系统
    • 前言
    • 一,软件下载安装
    • 二,驱动安装
    • 三,软件基础操作:
    • 四,STM32L476介绍
    • 五,lwy代码重要部分的解释
      • 5.1 颜色识别TCS230
      • 5.2 电机控制MX1616
      • 5.3 机械臂舵机控制SSC32
    • 六,步骤
    • 七,注意事项

【西电A测:设计和制造一款自动货物分拣系统】相关推荐

  1. 西电A测|基于Arduino uno的温度检测控制仿真系统

    西电A测|基于Arduino uno的温度检测控制仿真系统 温度检测控制仿真系统 Proteus仿真电路图 Arduino IDE编写程序 结果验证 功能拓展 温度检测控制仿真系统 功能要求:Ardu ...

  2. 西电B测——基于simulink的2PSK和2DPSK调制解调系统实现

    这是学校的B级测试实验,仅供学习交流使用 误码率曲线绘制需要用到bertool工具: bertool工具教程: 通信专业Simulink---画误码率曲线(使用bertool工具)_Enpiyahh的 ...

  3. 西电A测 | 基于Arduino uno的电子密码锁仿真系统 | 使用Proteus仿真 | Arduino IDE编写

    西电A测 | 基于Arduino uno的电子密码锁仿真系统 | 使用Proteus仿真 | Arduino IDE编写 | ATMEGA328P 电子密码锁系统 Arduino UNO Arduin ...

  4. 西电算法分析与设计核心考点汇总(期末真题,教材算法导论)

    文章目录 前言 一.历年考题 1.1 判断题 1.2 单选题 1.3 复杂度计算 1.4 分治 1.5 算法设计(01背包,最短路径) 1.6 最大子数组问题 1.7 算法设计(最长回文串) 二.核心 ...

  5. 西电A测:串口通信仿真

    文章目录 intro 软件安装 流程 1. 创建虚拟串口 2. 使用 XCOM 测试串口 3. Arduino 编程 4. 仿真 FAQ 最后 ref 题目:Arduino UNO(Atmega328 ...

  6. 西电B测-计算机专业-计算机网络综合设计实验一站式指南(以2023.4为基准)

    XDU-B级达标测试系统-计算机网络综合设计实验-唐军 本指南以2023年4月计网B测为基准,此次验收老师为唐军老师,之后的测试题目和内容均可能有变更,仅供参考. 目录 一.测试文档 二.验收流程 三 ...

  7. MATLAB simulink 2FSK调制与解调实验,附仿真文件(西电B测)

    simulink仿真文件链接:https://download.csdn.net/download/weixin_42845306/17893972 整个报告是用LaTeX写的,摘要目录总结参考文献什 ...

  8. 西电计算机专业课资料汇总

    文章目录 1.面向对象程序设计 2.计算机通信与网络 3.机器学习与数据挖掘 4.计算机组成原理 5.编译原理 6.算法分析与设计 7.数据库 8.软件工程概论 9.软件体系结构 10.数据结构机考 ...

  9. 基于单片机的自动追日系统设计_基于单片机的自动浇花系统的设计

    龙源期刊网 http://www.qikan.com.cn 基于单片机的自动浇花系统的设计 作者:吴蓓 张阳 来源:<现代信息科技> 2018 年第 03 期 摘 要:为了解决人们生活中由 ...

最新文章

  1. Angular CLI在线安装和离线安装
  2. 13 种在 Linux 系统上检测 CPU 信息的工具
  3. (1) 漂亮的日期控件
  4. Datawhale-零基础入门NLP-新闻文本分类Task04
  5. 随行笔记小程序个人信息页源码
  6. 是介于小型机和微型计算机,第一章计算机基础解析.ppt
  7. java模拟时间_使用生成器模拟时间分片
  8. security框架工作笔记002---CSRF跨站点请求伪造(Cross—Site Request Forgery)_理解和防御
  9. 德国 IT 薪酬大揭秘!
  10. caffe 使用自带的_net.py绘制网络图问题
  11. 【Android UI设计与开发】第04期:引导界面(四)仿人人网V5.9.2最新版引导界面...
  12. steam饥荒服务器配置修改,饥荒联机版专用服配置修改器
  13. html调用js的方法
  14. 安卓检测root代码
  15. 读书笔记:在改变的时代改变自己
  16. 《历史是个什么玩意儿》袁腾飞最新语录
  17. 如何预防计算机病毒英语作文,电脑病毒的英文作文
  18. 商业智能BI能做什么
  19. 软件著作权转让的流程是怎么样的
  20. 加州大学圣地亚哥分校计算机科学排名,加州大学圣地亚哥分校计算机科学硕士排名第18(2020年TFE Times排名)...

热门文章

  1. 在博客和论坛发外链还有用吗?
  2. 计算机毕业设计Java二手交易平台网站(源码+系统+mysql数据库+lw文档)
  3. 偏导,方向导数以及梯度的理解
  4. Android:更换应用图标
  5. R ggplot图例的调整
  6. Cisco Umbrella
  7. 年薪百万的金融人在露富,年薪百万的互联网人在抠门…
  8. ecstore session使用
  9. pythonppt_python学习课件.ppt
  10. Socionext为纵行科技ZETag云标签开发LSI,推动“LPWAN2.0泛在物联 ”建设