投篮计数器,大家都不陌生吧,网上一搜,估计能搜出好多。这次我想做一个具有很多实用功能的投篮计数器。
我的投篮计数器主要是为篮球教学而设计,所以这个计数器不但能够计数,还能够记录,把学生的投篮成绩记录在老师的手机里。
下面我先列一下本项目所具有的功能:
1.投篮计数(最基本的功能,没有这个功能,在强大的装置都是摆设)。
2.投篮计数显示。
3.身份认证,就是能够分辨出谁投了几个。
4.投篮成绩云端存储。
5.教师端定制APP,可以显示学生成绩。
步骤1 激光切割做造型
我用大腿科技的设计软件设计了一个篮球架,结构很简单。然后做了一个长方形的无顶盖盒子,装上四个轮子,当做篮球车。可以放5个球。
简单地制作一个用于固定二哈的支架和用于放点阵屏的框。
步骤2 安装模块
由于红外避障传感器是需要5V工作电压,所以我这次选用的扩展板是robotbit,掌控板反插就可以使用了。传感器接线如下:
红外避障传感器----P1
点阵屏DIN----P13
点阵屏CS-----P14
点阵屏CLK----P15
二哈------IIC
由于点阵屏装在篮筐上方,距离扩展板比较远,我就自己做了5根长一点的杜邦线。
步骤3 掌控板程序编写
1.总体思路:
用二哈确认投篮者身份,红外避障模块判断是否进球,并且掌控板对进球只数进行累加记录,同时通过tinywebdb发送到网络数据库中。教师端手机APP读取网络数据库。
2.二哈调到人像识别,并且录制几个人像信息,我是从网上下载了几张电视剧人物头像到手机里,模拟用。
3.掌控端编写程序,首先是初始化设置,主要是设置wifi,变量初始化。本案例用到了两个变量。
“xuehao”存储的是学生的学号,开机默认为0,就是没有对应的同学。
“zhishu”存储的是学生投篮投进的只数,每次人像识别成功后,xuehao会变成当前识别人像的ID号,zhishu变0。
没投进一个,zhishu就会增加一,直到那个学生都投完。在增加的同时会想数据库发送数据,实现实时更新。
然后编写计数判断程序,
两个判断:
1.当红外避障传感器有障碍的时候,计数。
2.当二哈识别到信息了,就获取相应ID,并赋值给“xuehao”,改学号从零计分。
由于点阵屏显示需要自己画,因此我专门制作一个函数调用,简化程序。
步骤4 APP端设计
APP一共用到了21个标签,1个是软件标题,20个标签标示这次投篮训练有20个学员。
20个标签我分成两行,同一行,每五个一个颜色,第一排第1个是1号学生成绩,第2个是2号成绩,第一排红色第1个就是整排的第6个,方便分辨。
一个文本输入框,用于老师做标记,例如今天是六1班投篮,那么老师在此处做好标记,等比赛结束,老师读取成绩后截频就能保存数据。
两个按键,一个按键按一下就读取网络数据库,把学生投篮的成绩送tinywebdb中下载到手机APP里显示。另一个按键清零,长按可以实现所有学生成绩归零,这样方便下一班训练。
然后给按钮1(读取)编程,当按钮1按下的时候,手机循环读取相应标签的值。这里创建了一个延时变量,方便大家根据实际情况进行更改。读取是一个顺序读取的过程,每次读取后,程序判断目前读取的是哪个标签,然后给出相应的出局,显示在文本标签里。
清零按钮我采用长按响应设计,主要是为了防止误按。长按后,顺序修改相应标签的值。
步骤5 调试
到了这步,基本完工了,接下来就是调试了。
最后一起来看一下项目照片和视频吧,由于找不到助手,所以是一只手操作一只手拍摄,画面不稳。
本项目的程序部分源码已经上传到码云。
https://gitee.com/zslqg/ck2021
calidus2021.04.11
能不能做套真实可用的?商用的?