历史上的今天

今天是:2024年10月12日(星期六)

正在发生

2019年10月12日 | 基于ARM平台的钢琴游戏 实现琴键按下效果

发布者:Yuexiang 来源: eefocus关键字:ARM平台  钢琴游戏  琴键 手机看文章 扫描二维码
随时随地手机看文章

本阶段任务与步骤
================
1,设置好共享文件夹

2,编译这些代码:
   make

3,将编译好的示例程序piano丢到开发板,观察运行效果
   注意:要将所有的bmp文件也要上传到开发板(已经上传过了就不用重复上传了)

4,修改piano.c,使得钢琴12个琴键均能按下去。
0.png 

单片机源程序如下:

  1. /***********************************************

  2. //

  3. //  Copyright(C), 2013-2016, GEC Tech. Co., Ltd.

  4. //

  5. //  作者: 林世霖

  6. //  微信公众号:秘籍酷

  7. //  日期: 2016-6

  8. //

  9. //  描述: 在LCD上显示音乐钢琴的界面

  10. //

  11. //  GitHub: github.com/vincent040

  12. //  Bug Report: 2437231462@qq.com

  13. //

  14. ***********************************************/


  15. #include

  16. #include

  17. #include

  18. #include

  19. #include

  20. #include

  21. #include

  22. #include


  23. #include

  24. #include

  25. #include

  26. #include

  27. #include


  28. #include

  29. #include

  30. #include


  31. #include "bmp.h"

  32. #include "ts.h"


  33. int main(int argc, char const *argv[])

  34. {

  35.         // 1,打开LCD设备

  36.         int lcd = open("/dev/fb0", O_RDWR);


  37.         // 2,获取LCD设备的参数

  38.         struct fb_var_screeninfo vinfo;

  39.         ioctl(lcd, FBIOGET_VSCREENINFO, &vinfo);


  40.         // 3,为该LCD设备映射显存

  41.         unsigned char *FB;

  42.         FB = mmap(NULL, vinfo.xres * vinfo.yres * vinfo.bits_per_pixel/8,

  43.                                         PROT_READ|PROT_WRITE, MAP_SHARED, lcd, 0);


  44.         // 4,显示整个钢琴的界面

  45.         //    4.1 显示背景(background.bmp)

  46.         bmp2lcd("background.bmp", FB, &vinfo, 0, 0);


  47.         //    4.2 显示标题栏(bar.bmp)

  48.         bmp2lcd("bar.bmp", FB, &vinfo, 0, 0);


  49.         //    4.3 显示12个琴键(bar.bmp)

  50.         int i;

  51.         for(i=0; i<12; i++)

  52.         {

  53.                 bmp2lcd("key_off.bmp", FB, &vinfo, 10+65*i, 47);

  54.         }


  55.         //    4.4 显示LOGO(logo.bmp)

  56.         bmp2lcd("logo.bmp", FB, &vinfo, 214, 355);



  57.         // 5,打开触摸屏设备,开始音乐钢琴

  58.         int ts = open("/dev/event0", O_RDWR);

  59.         struct coordinate coor;


  60.         while(1)

  61.         {

  62.                 // 5.1 等待手指触碰,并顺便获取触碰点坐标(coor.x和coor.y)

  63.                 wait4touch(ts, &coor);


  64.                 // 5.2 根据coor的坐标信息来更新琴键的状态

  65.                 bmp2lcd("key_on.bmp", FB, &vinfo,(coor.x-10)/65*65+10, 47);


  66.                 // 5.3 根据coor的坐标信息播放相应的琴键声音(暂时不做)

  67.                 


  68.                 // 5.4 等待手指的松开

  69.                 wait4leave(ts);


  70.                 // 5.5 将相应的琴键恢复弹起的状态

  71.                 bmp2lcd("key_off.bmp", FB, &vinfo,(coor.x-10)/65*65+10,  47);

  72.         }

  73.         

  74.         return 0;

  75. }








  76.         // int ts = open("/dev/event0", O_RDWR);

  77.         // struct coordinate coor;


  78.         // while(1)

  79.         // {

  80.         //         // 5.1 等待手指触碰,并顺便获取触碰点坐标(coor.x和coor.y)

  81. ……………………


  82. …………限于本文篇幅 余下代码请从51黑下载附件…………




所有资料51hei提供下载:
 06实现琴键按下效果.rar 


关键字:ARM平台  钢琴游戏  琴键 引用地址:基于ARM平台的钢琴游戏 实现琴键按下效果

上一篇:STM32F030 使用内部时钟和外部时钟
下一篇:LPC2000系列Proteus仿真+代码 菜鸟的ARM学习笔记

推荐阅读

10月11日晚间,紫光国微(36.30 -0.95%,诊股)(002049.SZ)披露,拟将全资子公司西安紫光国芯半导体有限公司(以下简称西安紫光国芯)100%股权以约2.2亿元人民币转让给紫光集团下属全资子公司北京紫光存储科技有限公司(以下简称“紫光存储”)。若上述关联交易获股东大会批准,则意味着西安紫光国芯将不再囊括在紫光国微上市平台内。据紫光国微以及西安紫...
在MPLAB-IDE中使用HitechC编译器一、装入编译器: 1、启动MPLAB-IDE,如下图所示选择Project-》Install Language Tool 2、在弹出的安装语言工具对话框里“Language Suite”选项现在显示的是Microchip,点击后面的箭头来选择语言。我使用的工具是HI-TECH PICCME,所以选择为“HI-TECH PICC”。 3、接下来在“Tool Name”里选择编译器组...
HMD Global 在国内推出了两款支持 4G 功能的诺基亚品牌新功能机,分别命名为诺基亚 215 4G 和诺基亚 225 4G。前者的价格为 289 元,已经可以预订,而后者的价格为 349 元,将从 10 月 17 日开始预订。新推出的诺基亚 215 和诺基亚 225 带有 T9 式数字小键盘,就像其他功能手机一样。但是让他们脱颖而出的是对 4G 的支持以及用于...
并联机器人是目前非常成熟的机器人产品,同时也是速度最快的工业机器人,行业也叫蜘蛛手机器人。并联机器人的特点呈现为无累积误差,精度较高;驱动装置可置于定平台上或接近定平台的位置,这样运动部分重量轻,速度高,动态响应好。一、并联机器人与串联机器人串联机器人其串联式结构是一个开放的运动链,其所有运动杆并没有形成一个封闭的结构链。串联机...

史海拾趣

问答坊 | AI 解惑

向版主求助

版主 ,发现这里面有很多好东东  可是我的芯币不够啊 总是不能下载 好着急啊  能不能先送我点啊 ?? 我最近刚着手DSP  觉得这个论坛挺好的  里面的东西很多 谢谢斑竹了哦…

查看全部问答∨

5KW音频放大器,如何实现

刚刚老板找我谈话.说希望我提出一个方案,实现5KW音频放大其他具体要求没说.只说是用于军舰喊话.我跑了趟西四音响市场.都说没有5KW的,最大只有2X2KW.一般常见只有几百W. 买不到看来只有自己DIY了,我自己提出使用电子管FU81四只来实现推挽输出,功率 ...…

查看全部问答∨

STANDARDSDK STANDARDSDK_42有什么区别(新手)

1、用过EVC4.0平台,它上面有STANDARDSDK和STANDARDSDK_42,是不是编真机版时就选前者,跑模拟器就选择后者?它们有什么区别? 2、顺便问问,在用EVC时,比如我选择了STANDARDSDK这个SDK,为什么编译选项Win 32[WCE ARM4V]既可以有release,又可以 ...…

查看全部问答∨

verilog hdl的编译器

大虾们,verilog hdl的编译器 有没有只有上10M的 小软件啊,我只需要一个编译器,顶多加上一个语法检测器。因为我用的是上网本,小电脑处理能力很有限,ISE根本装不上去,加上下个ISE估计就要花好几天时间,推荐下 我该下那个编译器 谢谢啊…

查看全部问答∨

42394443 广嵌arm9群

42394443 广嵌arm9群 开通请加入…

查看全部问答∨

M0的开发板咋挑呀,英蓓特蓝精灵、周立功TinyM0、poweravr的NanoM0

另外还有从坛友签名里翻到的智林Z111xP和龙达电子的 请问主要的区别在哪?硬件的、调试环境的,谢谢啦 在下是brand new的新手,学校里专业是自动化,现在用PLC [ 本帖最后由 krtek 于 2010-9-29 21:06 编辑 ]…

查看全部问答∨

哪位有串口联网模块??

来自:电子工程师技术交流(12425841)…

查看全部问答∨

system verilog 入门

各位前辈,我现在想学system verilog 手头只有一本SV做验证的书,是克里斯。斯皮尔的,现在想从头学起,看看systemverilog的语法,以及初级的设计,希望各位前辈推荐一下~~~麻烦各位啦~~~…

查看全部问答∨

DAC7512 电压设置时间问题?

芯片资料说设置时间只要10us,现在有50us,spi接口是用FPGA口模拟出来的,频率是20MHZ,做的是dds正弦波生成,后来把串口频率改成30MHZ,还是50us,求高手指点…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved