目录
首先肯定不能当场拒绝,先肯定得表达对领导信任自己的能力的感谢,再表达自己马上会准备好这个项目的任务规划书。
接下来就是之后的过程:
(1) 准备理由:准备好具体的理由来解释这个任务不可能完成,比如任务难度,任务时间,任务成本等,基于事实和实际情况判断,而不是个人主观判断
(2) 提出解决方案:提出可能的解决方案和替代方案,比如延长截止日期,增加资源,增加团队成员等
(3) 请求反馈:询问组长是否有其他看法或建议
项目要求是:扫描二维码领取任务,实现物料抓取,粗加工,暂存物料。
项目的创新点在:1. 使用freertos操作系统,多线程进行,减少裸机中某些读写模块对主程序的影响2. 识别采用树莓派的opencv库,树莓派在屏幕上显示二维码任务,树莓派和mcu采用串口通信。3.机器人使用磁编码器测得转速,最后转化为线速度,这样我们就能知道机器人的实时速度 4.结构上,我们做了很长时间的规划核设计,并且硬件结构核主控pcb皆是自己制作(1)我们使用麦克纳姆轮,使得机器人行驶,转弯更加方便.(2)我们使用了三个电源,一个给树莓派供电,一个给电机驱动模块供电,一个其他供电,目的主要是防止电机转动时对单片机或树莓派产生影响 (3)车体,我们是采用的三层亚克力板搭成的工训车,全封闭的,防止灰尘或外部环境对主控或其他模块造成影响。(4)还有模块的选择上,F4串口和定时器是最符合这次比赛需求的,以及串口屏和串口舵机(4自由度机械臂),会使得项目程序设计简单合理。
FreeRTOS中,实际是没有中断的,中断还是由硬件产生。以STM32为例,中断请求的响应还是由STM32的中断服务函数完成,而FreeRTOS在其中的作用可以说成是唤醒某个阻塞或就绪任务。
二维码另一个名称是QR Code,本质上是个密码算法。我们使用一个pyzbar的库结合opencv来做一个动态二维码扫描。
1)批量处理,脚本可以批量处理文件,数据或执行一系列命令。
2) 易于维护和更新,相比于直接在终端中输入命令,使用脚本更易于维护和更新,只需修改脚本内容即可。
Modbus是主从方式通信,一个总线上只有一个主机,但可以有多个从机(这一点类似于IIC的通讯方式)。简单来说,也就是主机问从机答。问啥呢?主要问两个问题--从机的寄存器(线圈)的数值是多少、主机要求从机修改一下寄存器(线圈)的数值并回答。
首先举例数组的创建。
- int a[10] //静态创建
- int* p = (int*)malloc(sizef(int)*10);//动态创建
动态创建任务是在运行时通过动态内存分配函数分配任务内存,静态创建任务是在编译时为任务分配内存。
1) I/O设备管理层:这一层位于整个设备框架的最顶层,为应用程序提供统一的接口来操作底层的硬件设备。
2) 设备驱动框架层:这一层包含了设备驱动程序的基本框架,它负责实现具体的硬件操作细节,以及与上层管理层的接口对接。
3) 设备驱动层:这一层直接与硬件设备通信,包含具体的硬件初始化、数据读写等操作的实现。
两者都有使用,一种是实验室搭建的MQTT服务器,域名是购买的域名,当然云平台也有使用,比如阿里云,腾讯云,华为云,Onenet。
MQTT是一种轻量级的发布/订阅模式通讯协议,专为物联网和移动应用等设计,以实现高效且可靠的消息传输
1)IIC 2)SPI 3)UART 4)JTAG 5)CAN 6)SDIO 7)USB
8)GPIO
1)根据自己的电源需求,比如3.3v,5v,12v等,选择合适的稳压芯片或者线性稳压器
2)使用合适的电源连接器 4)设置保护元件
5)pcb布线时,尽量使电源线宽足够,以承载较大的电流,并尽量减少回路面积,降低电磁干扰。
6)考虑散热问题
1)LDO(低压差稳压器)
2)DC-DC转换器
15. 使用什么样的的电源管理技术
1)散热处理,风扇或散热片
2)增大线宽
3)滤波和稳压