注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

吉大释然

0101 0100 0010 1011

 
 
 

日志

 
 

Lab7 跑马灯之弹弹惊魂  

2013-06-15 09:59:49|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

目的和要求

在RPi的Linux上做一个轮盘游戏机,具有两个按钮,一个负责启动,一个负责停止。具有某个或多个输出设备,如 LED、LED矩阵、双位7段数码管、LCD、蜂鸣器、舵机等,可任选其中一个或多个的组合。按下启动按钮,输出设备上 就出现各种变化,如流水灯、递增递减的数字、舵机的旋转等,按下停止按钮,输出设备就固定在当时的状态上。程序 运行的过程,会在shell输出数据。程序必须用C/C++语言写。实验报告要画出电路图(Frizting),说明使用的库, 附连线的照片,拍实际的视频上传到优酷并在报告中给出URL,要附源码。

至于自己的实现,就想要做一个走马灯,中间夹一个蜂鸣器充当炸弹,如果按下终止按钮时,停在了蜂鸣器上,哈哈。。。这辈子就算交代了~

准备工作

  • Led 6个
  • 蜂鸣器 1个
  • 面包板
  • Rpi
  • 杜邦线、面包线管够

电路连接

电路的连接其实很简单,用两个开关做输入,控制跑马灯起止,剩余的每个部件都由一个独立的GPIO口子控制,通过GPIO输出HIGH来使能,输出LOW来关闭。
因为电阻不够,就几个设备共用了一个电阻,因为在设计上单次只点亮一个设备,所以毫无影响的。
(这里连线采用的是扇出?的方式)
Lab7 跑马灯之弹弹惊魂 - yzchen1991 - 吉大释然

计算机端代码

代码的逻辑也很简单,轮回得点亮设备,在终止按钮按下时停止即可。


#include <wiringPi.h>
#include <stdio.h>
#include <stdlib.h>

int main (int argc,char* argv[])
{
int count_dev = 7;
int start_btn = 7;
int stop_btn = 6;
int bomb_led = 3;

int dev[count_dev] = {0,1,2,3,4,5,8};
int i,dev_en = 0;
if ( wiringPiSetup() == -1 ) {
printf("Setup wiringPi failed!");
return 1;
}

for ( i=0;i < count_dev;i++) {
pinMode(led[i], OUTPUT);
digitalWrite(led[i],LOW);
}
pinMode(7,INPUT);
pinMode(6,INPUT);

printf("Game Start!\n");

while(1) {
//printf("%d\n",digitalRead(7) );

if (digitalRead(start_btn)){
printf("New Round:\n");
while(1){
digitalWrite(led[dev_en],HIGH);
delay(50);
if (digitalRead(stop_btn)) break;
digitalWrite(led[dev_en],LOW);
dev_en = (dev_en+1) % count_dev;
}
if 
printf("%d\n",dev_en);

if (dev_en == bomb_led){
printf("Boom! You're dead.\n");
}
printf("-------------\n");
}

}
return 0;
}

参考:胡大大的LAB7
[del]虽然胡大大给的电路图有一些问题,但是代码是很好用得[/del]

效果

Lab7 跑马灯之弹弹惊魂 - yzchen1991 - 吉大释然
详细请见视频:http://v.youku.com/v_show/id_XNTcwOTc3MjY4.html

  评论这张
 
阅读(203)| 评论(3)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018