8678浏览
查看: 8678|回复: 12

[已完结]人气涨上来 Bluno Beetle免费试用-交作业-蓝牙番茄钟PT1

[复制链接]
       首先,感谢DFRobot能给我这次的试用机会(感谢Ashley),很荣幸自己被抽中试用Bluno Beetle。当我被抽中的那一刻,简直不敢相信自己的眼睛,我高兴得三天没睡觉,然后又恶睡了三天。在这里我很抱歉拖了这么久才上交这个教程,这主要是因为我去参加了学校的比赛而耽误了一个多月的时间。
       这次我要做的是番茄钟Pomodoro Timer v1.0,它利用了由弗朗西斯科·西里洛于1992年创立的一种相对于GTD更微观的时间管理方法——番茄工作法,目的是帮助人们提高效率。
[已完结]人气涨上来 Bluno Beetle免费试用-交作业-蓝牙番茄钟PT1图9
番茄工作法的用法如下:
1、每天开始的时候规划今天要完成的几项任务,将任务逐项写在列表里(或记在软件的清单里),并设定你的番茄钟(定时器、软件、闹钟等),时间是25分钟。
2、开始完成第一项任务,直到番茄钟响铃或提醒(25分钟到)。
3、停止工作,并在列表里该项任务后画个X。休息3~5分钟,活动、喝水、方便等等。
4、开始下一个番茄钟,继续该任务。一直循环下去,直到完成该任务,并在列表里将该任务划掉。
5、每四个番茄钟后,休息25分钟。
在某个番茄钟的过程里,如果突然想起要做什么事情——
a.非得马上做不可的话,停止这个番茄钟并宣告它作废(哪怕还剩5分钟就结束了),去完成这件事情,之后再重新开始同一个番茄钟;
b.不是必须马上去做的话,在列表里该项任务后面标记一个逗号(表示打扰),并将这件事记在另一个列表里(比如叫“计划外事件”),然后接着完成这个番茄钟。
[已完结]人气涨上来 Bluno Beetle免费试用-交作业-蓝牙番茄钟PT1图3
图片仅供参考
      我原先的设计是Pomodoro Timer通过LCD显示屏显示时间,每次定时结束后由喇叭发出提示音,自带一路继电器开关。不过后来发现Bluno Beetle接LCD引脚不够用,而且违背了番茄工作法的初衷,即排除一切干扰,专心工作,如果你总是在意计时器的时间,工作时难免就要分神,所以我将LCD换成了12个LED,这样就可以大致地显示出时间,而减少对工作的影响了。可能有同学就会问:Bluno Beetle只有8个IO口,怎么接12个LED呢?
      我想起了译码器,译码器在单片机系统中一般起扩展io的作用,当外设比较多,单片机的引脚不够用的时候,就可以由74LS154把4个单片机io口扩展为16个。增强了单片机控制外设的能力。但它有一个缺陷,就是当Arduino控制74LS154时,依次控制4个引脚时,会意外地点亮其他LED,不过这并没有什么关系,因为这里74LS154是用于控制显示电路,开关速度很快,加上人的视觉暂留,根本看不出其他LED会被点亮。

材料清单:
  • Bluno Beetle * 1
  • Bluno Beetle Shield v1.0 * 1
  • 万用电路板 * 1
  • LED * 12
  • 100Ω电阻 * 13
  • 47Ω电阻 * 1
  • 74HC154 * 1(这是74LS154的CMOS版,功能一样,功耗更小)
  • 7.4V锂电池 * 1
  • 4Ω1W喇叭 * 1
  • B772P三极管 * 2
  • 插线板 * 1(我用的是2500W的公牛插线板,10元一个,带指示灯)
  • 5V继电器 * 1
  • IN4148二极管 * 1
  • 一个盒子
  • 导线若干
[已完结]人气涨上来 Bluno Beetle免费试用-交作业-蓝牙番茄钟PT1图16
[已完结]人气涨上来 Bluno Beetle免费试用-交作业-蓝牙番茄钟PT1图12
[已完结]人气涨上来 Bluno Beetle免费试用-交作业-蓝牙番茄钟PT1图5


工具:
  • 十字螺丝刀
  • 焊台
  • 万用表
  • 裁纸刀
  • 镊子
  • 尖嘴钳
等等

过程:
       首先把Bluno Beetle和Bluno Beetle Shield盾板焊好,接上电池,千万要注意Bluno Beetle的正反面
[已完结]人气涨上来 Bluno Beetle免费试用-交作业-蓝牙番茄钟PT1图15
      其次就是最重要的显示模块,它的核心就是74HC154译码器。
      下图是74LS154的功能表,它的功能与74HC154没有什么区别。
[已完结]人气涨上来 Bluno Beetle免费试用-交作业-蓝牙番茄钟PT1图2
       从图中可以看出A、B、C、D四个引脚与这16个输出端之间有着二进制转换为十进制的关系。
       比如说二进制中的0010对应的就是十进制中的2,把0看作是低电平,1看作是高电平,输入信号到D、C、B、A四个引脚中,74LS154的2号就会被拉成低电平,于是我就写了这样一个控制函数。
  1. /********************************************
  2. 74LS154控制函数
  3. 函数名:pinLED
  4. 函数功能:控制74LS154从0到15一共16个引脚的电平情况
  5. 入口参数:number(范围0-15),控制引脚0-15中的一个输出高电平
  6. ********************************************/
  7. void pinLED(int number) {
  8.      //将十进制数number利用BCD码转换成二进制
  9.      int pinA = number%2;
  10.      int pinB = (number/2)%2;
  11.      int pinC = (number/4)%2;
  12.      int pinD = (number/8)%2;
  13.      digitalWrite(A , pinA);
  14.      digitalWrite(B , pinB);
  15.      digitalWrite(C , pinC);
  16.      digitalWrite(D , pinD);
  17. }
复制代码

接线如下表所示:
Bluno Beetle  74HC154
5V                     Vin
2                        D
3                        C
4                        B
5                        A
A0                     G1
GND                GND
[已完结]人气涨上来 Bluno Beetle免费试用-交作业-蓝牙番茄钟PT1图14
[已完结]人气涨上来 Bluno Beetle免费试用-交作业-蓝牙番茄钟PT1图11
      为了美观,我把LED焊在万用板的正面,把芯片的引脚用尖嘴钳掰弯,导线啥的都焊在背面。
[已完结]人气涨上来 Bluno Beetle免费试用-交作业-蓝牙番茄钟PT1图17
[已完结]人气涨上来 Bluno Beetle免费试用-交作业-蓝牙番茄钟PT1图4
        电阻也焊在背面,这样在正面就看不到除LED以外的元件了。
[已完结]人气涨上来 Bluno Beetle免费试用-交作业-蓝牙番茄钟PT1图18
[已完结]人气涨上来 Bluno Beetle免费试用-交作业-蓝牙番茄钟PT1图19
       接着是改装插线板以及功放了。
[已完结]人气涨上来 Bluno Beetle免费试用-交作业-蓝牙番茄钟PT1图7
       改装插线板时,先焊继电器,在输入端之间焊上二极管,以避免继电器自感高电压对Bluno Beetle造成损坏,将四个引脚用导线引出来。
       用螺丝刀把插线板的四个螺丝拧下,打开后按下图接线,其中最粗的黑色线是接插头,红黑两根较细的则是连在继电器的输入端。
[已完结]人气涨上来 Bluno Beetle免费试用-交作业-蓝牙番茄钟PT1图6
       装好后就是这个样子。
[已完结]人气涨上来 Bluno Beetle免费试用-交作业-蓝牙番茄钟PT1图10

       功放也很简单,我就直接放图了。
[已完结]人气涨上来 Bluno Beetle免费试用-交作业-蓝牙番茄钟PT1图20
        不过要注意B772P是TO-126封装的,和普通的三极管的管脚定义不同,使用时要注意。
[已完结]人气涨上来 Bluno Beetle免费试用-交作业-蓝牙番茄钟PT1图13
       东西做好了以后就开始组装,然后铛铛。。。。。
[已完结]人气涨上来 Bluno Beetle免费试用-交作业-蓝牙番茄钟PT1图8


程序及蓝牙:
P.S. 程序的完整版在文章的底部。

      我发现Bluno Beetle的蓝牙功能很简单,连接完成后就像串口一样收发信息,也难怪被很多人说是蓝牙串口。
[已完结]人气涨上来 Bluno Beetle免费试用-交作业-蓝牙番茄钟PT1图23
[已完结]人气涨上来 Bluno Beetle免费试用-交作业-蓝牙番茄钟PT1图24
      我先用手机app扫描,扫描到BLUNO后点击连接,就像上图这样。输入除1、2、3、4外的任何数字都会弹出菜单,1、2、3、4功能如下。
      1.开始工作,进入计时器模式,定时25分钟后,发出提示音;之后开始休息,进入计时器模式,定时5分钟后,发出提示音。
      2.输入分钟数,进入计时器模式,定时自定义时间,发出提示音。
      3.控制继电器,打开台灯,打开状态下无效。
      4.控制继电器,关闭台灯,关闭状态下无效。

      这是另一段程序,开头这两句是timer1库里的,文件我会放在文章末尾,就是每秒钟中断一次来读取串口中的数据,如果程序处于计时器模式时,只要输入1,即可关闭计时器。
  1. Timer1.initialize(1000000);
  2. Timer1.attachInterrupt( com );
  3. /********************************************
  4. 串口读取控制函数
  5. 函数名:com
  6. 函数功能:由timer1库每1s中断一,读取串口后操作二级菜单
  7. 入口参数:无
  8. ********************************************/
  9. void com(){
  10.   if(SecondGradeMenu){
  11.      switch(mode){
  12.      case 1:
  13.          switch(Serial.read()){
  14.          case '1':
  15.              loopState = 0;//关闭定时器
  16.              Serial.println("Alarm Off.");
  17.              Serial.println();
  18.              break;
  19.          default:
  20.              break;
  21.          }
  22.      default:
  23.          break;
  24.      }
  25.   }
  26. }
复制代码



      我在设计程序的时候想到了通过which语句建立一级菜单和二级菜单,虽然现在没什么用,但以后扩展功能的时候会方便一些。
      最后附上这张签名图。

hnyzcj  版主

发表于 2016-7-6 20:24:05

最后这张照片做什么用的?
回复

使用道具 举报

dsweiliang  初级技神

发表于 2016-7-6 22:12:06

还没写完?
回复

使用道具 举报

dbc0301  高级技匠
 楼主|

发表于 2016-7-7 00:17:15

@hnyzcj
@dsweiliang
写得太困了,明天继续写。。。:)
回复

使用道具 举报

hnyzcj  版主

发表于 2016-7-7 05:38:53

dbc0301 发表于 2016-7-7 00:17
@hnyzcj
@dsweiliang
写得太困了,明天继续写。。。

不错,现在大致看懂你要做什么了
回复

使用道具 举报

dbc0301  高级技匠
 楼主|

发表于 2016-7-9 22:09:49

已经完结了,为什么没有人回帖。
[已完结]人气涨上来 Bluno Beetle免费试用-交作业-蓝牙番茄钟PT1图1


回复

使用道具 举报

heinau  高级技匠

发表于 2016-7-11 11:49:41

赞~~出来的效果还是很不错的~~~
楼主要是有小视频演示一下实际使用效果就更好啦~
回复

使用道具 举报

言@方  学徒

发表于 2016-7-11 12:43:23

来个视频演示效果啦啦啦啦啦
回复

使用道具 举报

源代码  中级技匠

发表于 2016-7-11 21:39:36

求视频~~~~
回复

使用道具 举报

dbc0301  高级技匠
 楼主|

发表于 2016-7-14 12:00:17

@heinau
@言@方
@源代码
做了一个1分钟的视频
回复

使用道具 举报

hnyzcj  版主

发表于 2016-7-14 18:52:38

dbc0301 发表于 2016-7-9 22:09
已经完结了,为什么没有人回帖。

来了,顶你
回复

使用道具 举报

Phoebe  高级技匠

发表于 2016-7-15 14:13:10

赞赞,我也要做一个
回复

使用道具 举报

luna  初级技神

发表于 2016-8-25 12:14:59

楼主焊接技能了得!!
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail