10870浏览
查看: 10870|回复: 0

[K10教程] 行空板K10 | 大屏真香之电子鱼缸

[复制链接]
本帖最后由 怀若谷 于 2024-12-5 14:44 编辑

【本系列目录】
1.行空板K10 | 大屏真香之模拟时钟
2.行空板K10 | 大屏真香之温湿度计
3.行空板K10 | 大屏真香之电子鱼缸

行空板K10 | 大屏真香之电子鱼缸图5

file:///C:/Users/ruogu/AppData/Local/Temp/ksohtml13440/wps1.png
今天跟大家分享一个用行空板K10制作的电子鱼缸作品。其功能是模拟一个电子鱼缸,有水草、沙石等环境,里面有鱼在游动,按下行空板自带的按键可以给鱼喂食。希望这个作品能给大家带来一点“闲趣”!

演示视频↓

【实现原理】

行空板K10 | 大屏真香之电子鱼缸图1file:///C:/Users/ruogu/AppData/Local/Temp/ksohtml13440/wps2.jpg
     使用一张图片作为鱼缸的整体背景,图片可以通过网上查找、实物拍摄、AI生成等方式获得。再找一张背景为透明的鱼的PNG图片,通过程序控制图片左右移动呈现鱼游动的效果。需要注意的是,透明背景的PNG图片需存在TF卡上进行加载才有透明效果。当按下按键B后,在屏幕上不断画小圆,作为“鱼食”。“鱼”感知到有“鱼食”后,不断改变调整自己的坐标已接近“鱼食”。当两者挨近时,“鱼食”消失,呈现被吃掉的效果。



制作步骤

【硬件准备】
行空板K10 | 大屏真香之电子鱼缸图2
file:///C:/Users/ruogu/AppData/Local/Temp/ksohtml13440/wps3.png
行空板K10 × 1     USB线 × 1
行空板K10 | 大屏真香之电子鱼缸图3
file:///C:/Users/ruogu/AppData/Local/Temp/ksohtml13440/wps4.png
TF卡 × 1

【软件准备】
1.下载、打开软件
行空板K10 | 大屏真香之电子鱼缸图4
file:///C:/Users/ruogu/AppData/Local/Temp/ksohtml13440/wps5.jpg
Mind+ V1.8.1 RC1.0(公测版) ——上传模式

2.加载扩展模块
行空板K10 | 大屏真香之电子鱼缸图6
file:///C:/Users/ruogu/AppData/Local/Temp/ksohtml13440/wps6.jpg主控板——行空板K10
【图片素材】
1. 背景图片
行空板K10 | 大屏真香之电子鱼缸图7
file:///C:/Users/ruogu/AppData/Local/Temp/ksohtml13440/wps7.jpg
将获取的鱼缸图片进行旋转和裁剪,得到分辨率为240*320PNG图片。
2. 鱼的图片
行空板K10 | 大屏真香之电子鱼缸图8
file:///C:/Users/ruogu/AppData/Local/Temp/ksohtml13440/wps8.jpg
将获取的鱼的图片进行旋转、去除背景和翻转,得到两张分辨率为30*54PNG图片。
3. 存入TF
行空板K10 | 大屏真香之电子鱼缸图10
file:///C:/Users/ruogu/AppData/Local/Temp/ksohtml13440/wps9.jpg
将三张图片存入TF卡中,然后将卡插入行空板K10的卡槽中。

【编写程序】
一、主程序
(一)初始化部分
行空板K10 | 大屏真香之电子鱼缸图9
file:///C:/Users/ruogu/AppData/Local/Temp/ksohtml13440/wps10.jpg
1. 设置变量dirc”,记录鱼游动的方向。
2. 设置变量fish_x”,记录鱼的X坐标值,初始值为30-120的随机数。
3. 设置变量fish_y”,记录鱼的y坐标值,初始值为20-270的随机数。
4. 设置变量eaten”,记录鱼食是否被吃或者触底,初始值为0,表示未吃/未触底。
5. 设置变量forgea”,记录鱼是否处于觅食过程,初始值为0,表示不在觅食。
6. 启动子线程1,子线程1负责执行鱼的觅食指令。

(二)主循环部分
行空板K10 | 大屏真香之电子鱼缸图11
file:///C:/Users/ruogu/AppData/Local/Temp/ksohtml13440/wps11.jpg
1. 将TF卡内的背景图片bg.png显示在(0,0)处。
2. 运行函数fish( )”,参数为变量“dirc”,具体功能待后面进行定义。
3. 将设置的缓存内容显示出来。
4. 设置等待时长。
行空板K10 | 大屏真香之电子鱼缸图13

file:///C:/Users/ruogu/AppData/Local/Temp/ksohtml13440/wps12.png
运行结果
二、函数fish()
(一)向右游动
行空板K10 | 大屏真香之电子鱼缸图12
file:///C:/Users/ruogu/AppData/Local/Temp/ksohtml13440/wps13.jpg
1. 建立一个带数字值输入项的函数fish(a)”。
2. 当方向参数a=0时,代表方向向右,执行以下指令:
1)将TF卡内的鱼向右的图片f1.png显示在(fish_xfish_y)处。
2)将变量“fish_y”的值增加3,实现向右移动的效果。
3)如果变量fish_y”的值大于260,代表鱼接近右边缘,则将变量“dirc”的值设为1,实现改变方向,向左移动。
(二)向左移动
行空板K10 | 大屏真香之电子鱼缸图14
file:///C:/Users/ruogu/AppData/Local/Temp/ksohtml13440/wps14.jpg
3. 当方向参数a=1时,代表方向向右,执行以下指令:
1)将TF卡内的鱼向左的图片f2.png显示在(fish_xfish_y)处。
2)将变量“fish_y”的值减少3,实现向左移动的效果。
3)如果变量“fish_y”的值小于20,代表鱼接近左边缘,则将变量“dirc”的值设为0,实现改变方向,向右移动。
行空板K10 | 大屏真香之电子鱼缸图17
file:///C:/Users/ruogu/AppData/Local/Temp/ksohtml13440/wps15.png
运行结果
三、按键B触发
行空板K10 | 大屏真香之电子鱼缸图15
file:///C:/Users/ruogu/AppData/Local/Temp/ksohtml13440/wps16.jpg
1.设置变量“ food_x”,记录鱼食X坐标,初始值为为236
2.设置变量“ food_y”,记录鱼食Y坐标,初始值为为60
3.设置变量“ forage”的值为1,表示正在觅食。
4.运行函数“food”,具体功能待后面进行定义。

四、函数food
行空板K10 | 大屏真香之电子鱼缸图16
file:///C:/Users/ruogu/AppData/Local/Temp/ksohtml13440/wps17.jpg
1. 当鱼食没有被吃掉时即变量“eaten”的值为0),重复执行以下指令:
(1)将变量“food_x”的值减少2,实现鱼食向下落的效果。
(2)如果鱼和鱼食的相对位置很接近,则将变量“eaten”的值设置为1,表示被吃掉了。
(3)如果变量“food_x”的值小于50,也将变量“eaten”的值设置为1,表示鱼食触底消失。
(4)以(food_x,food_y)为圆心画一个半径为2的圆,作为“鱼食”。
(5)设置等待时长,用以控制鱼食的下落速度。
2. 如跳出循环,则意味着变量“eaten”的值为1,重新设置变量“eaten”的值为0,进入无鱼食状态,停止画圆。
3. 设置变量“forage”的值为0,进入无鱼食状态,鱼恢复左右游动状态。
行空板K10 | 大屏真香之电子鱼缸图19
file:///C:/Users/ruogu/AppData/Local/Temp/ksohtml13440/wps18.png
运行结果
五、子线程1
行空板K10 | 大屏真香之电子鱼缸图18
file:///C:/Users/ruogu/AppData/Local/Temp/ksohtml13440/wps19.jpg
1. 子线程1启动后,需循环执行全部指令。
2. 根据变量forage”的值判断是否进入觅食状态,当其值为1时,执行以下指令:
(1)根据鱼食和鱼的X坐标值的大小比较结果,来调整鱼的X坐标值,实现向上向下游动。
(2)将鱼的X坐标值约束在20-190的范围内。
(3)根据鱼食和鱼的y坐标值的大小比较结果,来调整鱼的Y坐标值,实现向左向右游动,同时改变方向。
(4)将鱼的Y坐标值约束在10-270的范围内。
3.设置一定的等待时长,控制鱼游动的速度。
行空板K10 | 大屏真香之电子鱼缸图20
file:///C:/Users/ruogu/AppData/Local/Temp/ksohtml13440/wps20.png
运行结果
【完整程序】
file:///C:/Users/ruogu/AppData/Local/Temp/ksohtml13440/wps21.jpg

行空板K10 | 大屏真香之电子鱼缸图21

电子鱼缸程序文件.zip

168.63 KB, 下载次数: 7

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail