Question analysis
Robot dog firmware.bin
STM32 communicates with OpenMV.zip
voice_control.py
OpenMV.py
Wattless 3D file.zip
Forward.mp4
Back.mp4
Turn left (turn in a circle).mp4
handshake.mp4
PCB_wattless_PCB_2022-11-05.pdf
BOM_Board1_wattless_PCB_2022-11-05.xlsx
Altium_[Training Camp] Wa Weili with a robotic arm_2022-11-05.zip
PDF_[Training Camp] Wa Weili with a robotic arm_2022-11-05.zip
BOM_Board1_wattless_SCH_2022-11-05.xlsx
61565
Gesture recognition system based on FDC2214
Introduction: The gesture recognition of this device uses STM32 chip as the main control chip, which is mainly composed of FDC2214 measurement module, Bluetooth communication module and LCD display module. The system can recognize three types of guessing gestures and five digital gestures, and also implements guessing games and simple calculator functions for human-machine battles.
题目要求
任务
(1)基于 TI 公司传感芯片 FDC2214 设计制作一个手势识别装置,实现对猜拳游戏和划拳游戏的判决。
(2)装置具有训练和判决两种工作模式。在判决模式下实验装置能对指定人员进行猜拳游戏和划拳游戏的判决。这里猜拳游戏的判决是指对手势比划“石头”、“剪刀”和“布”的判定,划拳游戏的判定是指手势比划“1”、“2”、“3”、“4” 和“5”的判定。在训练模式下能对任意人员进行猜拳游戏和划拳游戏的手势训 练,经过有限次训练后,能进行正确的猜拳游戏和划拳游戏的手势判决。
要求
(1)装置工作在判决模式下,能对参赛者指定人员进行猜拳判决,给出手势“石头”、“剪刀”和“布”的准确判决,要求每一次判决的时间不大于 1 秒。
(2)装置工作在判决模式下,能对参赛者指定人员进行划拳判决,给出手势“1”、“2”、“3”、“4”和“5”的准确判决,要求每一次判决的时间不大于1秒。
(3)装置工作在训练模式下,对任意测试者进行猜拳的手势训练,每种动作训练次数不大于 3 次,总的训练时间不大于 1 分钟;然后切换工作模式到判决模式,对被训练的人员进行猜拳判决,要求每一次判决的时间不大于 1 秒。
(4)装置工作在训练模式下,对任意测试者进行划拳的手势训练,每种动 作训练次数不大于 3 次,总的训练时间不大于 2 分钟;然后切换工作模式到判决 模式,对被训练的人员进行划拳判决,要求每一次判决的时间不大于 1 秒。
(5)其他
题目分析
(1)按题目要求,要求1-2实现的是对不同手势的判决,本系统采用六块摆成手掌形状的铜板,不同手势下通过FDC2214测量模块即可实现手势识别
(2)其次是手势判决显示部分,本装置采用LCD屏幕以及舵机控制的机械装置进行对手势判决的显示。
(3)此外还完成了要求中的其他部分实现了人机对抗的猜拳游戏以及简易计算器功能
系统方案
结构方案设计
(1)根据题目要求,实现手势判决,本系统采用六块铜板摆成手掌形状,通过在不同手势下,接触到铜板不同,利用FDC2214模块进行数据采集与数据处理,在不同模块协同下,实现在1s之内对指定人员手势进行判决。结构如图1。
(2)考虑到手势识别装置需便于展示,采用电路板堆叠的方式来尽可能的减小空间,并将所有电路板以及测量元件均固定在一块木板上。
(3)布局方面,手掌放置位置以外为电路模块,手掌放置部位为测量元件。考虑到时间成本以及可控性,所有元件均采用热熔胶来固定,既牢固,又便于调整。
(5)本系统在要求中的“其他”,实现了人机对抗的猜拳游戏,在该游戏中,系统做出的手势通过整个系统左上角的圆形转盘来展现:通过舵机转动不同的角度来改变未遮罩的三角部分所露出的符号,从而达到展示对方手势的目的。

图1 结构设计
系统设计方案
根据题目需求,整体系统共如下几个模块:供电模块、微处理器、FDC2214 测量模块、LCD 显示模块、蓝牙通信模块、对战判决模块。通过手机 APP 来选择系统需要执行的功能,抛弃了传统按键,从而免去其固定性、不可拓展性,让开发变得随心所欲。各模块之间的关联方式如图片 2 所示。

图2 系统结构
理论分析与计算
测量的基本原理
本系统手势识别的测量主要应用了LC谐振的基本原理。在FDC2214测量模块上载有LC谐振电路,由LC谐振驱动器产生谐振,如图片 3所示。当人体靠近铜板时,由于人体产生的干扰,将会改变该谐振的频率,而该频率又可以通过L和C来计算,这样就可以反推出由于人体靠近所带来的额外电容,如公式(1)所示。

图3 FDC2214测量电路
数据处理方式
由于本系统在结构设计时,没有采用矩阵铜板的形式,而是将铜板布局成手的形状,因此在数据处理时,无需获得精密的数据,只需将数值进行低通滤波(滤除高频噪声)、叠加偏置(统一多通道的数据阈值),而后按阈值将数据进行非零即一的划分即可,具体处理如下:
(1)在滤波时,为了去除掉高频噪声,采用了软硬件结合的滤波方式,这里先介绍一下软件处理的方法,硬件处理见下一部分。
(2)对于一个FDC2214的数据,有28个bit,其中包含的小幅值、高频率的分量极为丰富,因此在软件获得数据后的第一步,就是将这28bit的数据整体右移8个bit,把与整体变化趋势无关的数据削去,这样即完成了的低通滤波。
(3)而后,由于各个通道的直流分量并不相同,对每个通道都赋予一个阈值的话较为麻烦,因此在采集到的数据稳定后,会采集所有通道当前的采样值作为偏置。由于手掌接触到铜板时,测量值会下降,因此用该值减去后续采集到的值,即可实现无物体时数据接近0,当物体靠近时,数据上涨。
硬件电路设计
供电电路设计
考虑到时间成本以及电路较为简单,采用了洞洞板焊接的方式制作供电电路板,如图4所示。整体电路采用 12V 圆孔 DC 适配器进行供电,能够完全避免插错线导致的电路损坏。同时,由于电流较大的 LCD 屏为 5V 供电,因此将 5V 和 3V3 分成两路并联的形式,这样虽然会给 3V3 的稳压芯片带来额外的压降,从而导致芯片发热,但考虑到使用 3V3 的模块并没有很大电流,因此其发热不会非常严重。这样的接法大大降低了 LCD 屏幕在启动时产生的电流串扰导致的工作不稳定。

图4 供电电路原理图
测量电路设计
在测量电路方面,并没有完全按照 TI 官网上的电路进行设计,而是将电路中的 0 欧电阻替换成 120 欧的磁珠(如图片 5中的 L2 和 L3)。由于磁珠对高频信号具有更高的阻抗,而对低频信号的阻抗更小,因此在替换后,芯片采集到的信号中高频噪声将会大大减小,因而大大降低了后续数据处理的难度。
图5 测量电路原理图
软件说明
提高手势识别的鲁棒性
对于摆放成手的形状的铜板,想要识别出一个已经放置好的手势是很简单的,根据每块铜板是否有物体接触即可推断出当前手势。但是现实情况是要实现从没有放手到放好手并检测出手势这一流程。由于并不想在系统中添加额外的开关,以告知系统“我已经放好手,请开始检测”,而是想要实现用户随意的将手掌放上去之后,即可在 1 秒内检测出手势。具体实现如图6所示。
图6 手势识别流图
手掌处的铜板作为开始的标志位,当手掌接触到铜板时,所有手指部位的铜板开始采集,连续8次后,将求和结果以阈值的方式划分为不同的手势。这样一来,用户在放置手掌的时候就算不能一步到位的摆出要求手势,前后有一定的时间差,也可以被该判定方法所弥补,大大提高了系统的鲁棒性。
“多核”处理提高工作效率
由于本系统采用的主控为STM32F103,主频只有72MHz。同时,采用的屏幕为16位真彩色屏,分辨率为320x240。如果将运算和显示都放在主控里,将会大大增加主控的压力,导致屏幕显示卡顿以及运算速度缓慢。
为了消除这一影响,本系统采用了“多核”的处理方式,将LCD显示的任务交给了另一块芯片STM32H750。主控芯片F1在需要显示某一张图片的时候,通过串口向H7发送一个包,包内含有显示指定图片的信息;在计算器功能下,还有显示指定数字的信息。不同包头对应的含义如表格 1所示。
表1 包头信息
包头
含义
0xaa
显示指定图片
0xa5
显示计算公式
0x5a
显示计算结果
在显示计算公式时,由于需要用户输入一个字符就显示一个字符,因此在H7中,使用了队列的数据结构,将每次输入的字符储存在队列中,每次刷新屏幕时,根据入队的顺序,在光标处显示字符,每显示一个字符,光标移动一格,以准备显示下一个字符,直至队列尾部。主控F1在执行整体流程的时候,就不需要停下手头所有运算来显示一张图片,而是通过串口发几个字节即可实现显示。
计算器的实现
由于输入方式的限制,该系统中的计算器模式没有完全复刻完整的计算器,只保留了数字0~5、加、减、乘、等于、归零。由于没有括号、乘方、根号这些复杂的运算逻辑,该计算器只有两级的优先度:乘法最高、加减其次。
因此,本系统没有使用传统的堆栈方式来实现计算器,而是使用链表的方式。用户输入字符时,是以字节的形式输入的,在输入完毕按下“=”时,系统会把所有相邻的数字进行组合,以数字和运算符作为最小单元。然后,系统会遍历这一算式,寻找乘号并运算乘号两侧的数字,运算后,整个链表将会减少两个单元,因此系统会将后面的单元链接到运算后的结果之后,并将运算结果链接到前面的算式之后,这样即完成了一次乘法运算。当运算完所有的乘法后,再以同样的方式运算加减法,直至链表的长度减小至2,一个为最终运算结果,另一个为不参与运算的“=”,即可输出结果并显示到LCD上。运算流程如图片7所示。

图7 计算器运算流程
可自由拓展的APP
本系统抛弃了集成在设备上的硬件按钮,取而代之的是使用蓝牙来接收控制指令,用安卓APP来控制整个系统。这样做的好处在于可以方便的修改所需按钮,而不用在需要改动的时候,重新焊接电路板,大大节省了开发时间。
整个界面如图片8所示,界面上方为校名及赛事名称;中间部分为DEBUG区域,在调试过程中,可以通过蓝牙接收并显示系统的一些信息,在最终的演示中,不打印任何信息;界面的下方为键盘矩阵,系统的所有功能都在此处进行操作。

图8 APP控制台界面
演示视频及代码链接:https://pan.baidu.com/s/1VW8SXxrLdm90hrcCDc1dow 提取码:wy3t
BOM下载
61566
OLED智能手表
简介:由STC15W408AS单片机制作的智能小手表,有闹钟和万年历功能。
带有触摸按键,也可以通过串口发送报文来控制。
1,版本说明
这个其实是第三代,简称PULS版本(皮一下~)。
至于前面几代就不发了,(主要是做的不太好)。
V3.0版本加入了触摸IC,并将OLED屏幕的驱动部分集成到了PCB上。
V3.1版本将OLED屏幕的驱动SSD1306换成了SSD1315,程序大致相同,SSD1315要比SSD1306新,而且速度快,可以用5V驱动,
省去了稳压IC。
2,硬件说明
主芯片使用了STC15W408AS,16P封装。
STC15W408AS有8KB的FLASH,和512字节的RAM,以及5KB的EEROM(可以用来存储OLED的字库)。
为了让主板变得小一些,所以没有用微动开关,而是采用3个触摸开关。
触摸IC采用的是TTP233,该芯片只有6个引脚,可以链接一路触摸开关。
由于使用了三个触摸按键,所以需要对于这么一个3个触摸IC。
时钟芯片使用了DS1302,实在是没办法,因为DS3231太gui了(没马内):(
锂电池是150mah,3.7V。对这个手表来说,完全够用。
3,功能介绍
重头戏来了,此手表带有闹钟和万年历功能,
测试视频:
手表PULS版本程序.zip
PCB.zip
be2362862173e43889d5a44331eac2fd.mp4
61567
智能 手表-puls版本
简介:一个小手表
1,版本说明
这个其实是第三代,简称PULS版本(皮一下~)。
至于前面几代就不发了,(主要是做的不太好)。
V3.0版本加入了触摸IC,并将OLED屏幕的驱动部分集成到了PCB上。
V3.1版本将OLED屏幕的驱动SSD1306换成了SSD1315,程序大致相同,SSD1315要比SSD1306新,而且速度快,可以用5V驱动,
省去了稳压IC。
2,硬件说明
主芯片使用了STC15W408AS,16P封装。
STC15W408AS有8KB的FLASH,和512字节的RAM,以及5KB的EEROM(可以用来存储OLED的字库)。
为了让主板变得小一些,所以没有用微动开关,而是采用3个触摸开关。
触摸IC采用的是TTP233,该芯片只有6个引脚,可以链接一路触摸开关。
由于使用了三个触摸按键,所以需要对于这么一个3个触摸IC。
时钟芯片使用了DS1302,实在是没办法,因为DS3231太gui了(没马内):(
锂电池是150mah,3.7V。对这个手表来说,完全够用。
3,功能介绍
重头戏来了,此手表带有闹钟和万年历功能,
测试视频:
be2362862173e43889d5a44331eac2fd.mp4
手表PULS版本程序.zip
PCB.zip
PDF_智能 手表-puls版本_2022-11-05.zip
BOM_手表-puls版本_2022-11-05.xlsx
Altium_智能 手表-puls版本_2022-11-05.zip
61568
【亚特联】两路智能开关
简介:一个基于亚特联CB2S无线WIFI模组设计的两路无线智能开关。
I briefly describe
a two-way smart switch designed based on Atlink WIFI wireless module CB2S. This product can remotely control the opening and closing of two relays through a mobile phone, thereby controlling the power supply of some household appliances such as air conditioners, refrigerators, etc. This can solve the problem of having to wait for a while before turning on the air conditioner after get off work to achieve the cooling effect. At the same time, it can also be connected to small electrical appliances, such as white woven lamps, small light bulbs, etc. In this way, when sleeping at night, you can remotely control the light just by using your mobile phone.
I Hardware Introduction
There are two relays on the entire board, which can control two household appliances. There are also two LED indicators to indicate the relay status. Of course, there are also two buttons on the board that can manually operate the relay status, and will also return to the mobile APP.
The power supply is a 12V input, which is provided to the relay (a relay with a 12V coil must be used). Then the switching power supply MC34063 is used to stabilize the voltage into a 3.3V power supply to supply power to the WIFI module. The reason why switching power supply is used is that it generates less heat, consumes less power and has stable output.
Finished product pictures:
PCB front

PCB back

PCB finished product
35f7210debcc749bd9530e36eeb774bb.mp4
PCB_PCB1_2022-11-05.pdf
BOM_Board1_PCB1_2022-11-05.xlsx
Altium_[Atium] Two-way smart switch_2022-11-05.zip
PDF_[Yatelian] Two-way smart switch_2022-11-05.zip
BOM_Board1_Schematic1_2022-11-05.xlsx
61569
electronic