2015-11-15 09:20:44 [显示全部楼层]
4507浏览
查看: 4507|回复: 1

#报名NABI黑客马拉松 -- touchlight

[复制链接]
这个项目是我们在宁波创客周末完成的一个作品,当时用的是以太连接。
touchlight 是一款通过触碰而产生灯光开关/颜色变化的情侣间的情感传递的产品,假设情侣在异地,通过 touchlight 就可以利用灯光的变化来让对方知道自己的思念。这个想法和 NABI黑客马拉松 所要求的理念满想的,那我们就来试试看能不能参加。



#报名NABI黑客马拉松 -- touchlight图1

创业周末创客版时候,我们在演示 touchlight

因为当时做的是一个模型,所以我们用的是以太网来连接,目前考虑到了实际的易用性,我们重新写了一下代码,因为牵扯到了某些私有API的问题还没有搞定,下面放出上次用的代码。

  1. #include <SPI.h>
  2. #include <Ethernet.h>
  3. #include <EthernetUdp.h>  
  4. #include "string.h"
  5. #define Device 1
  6. byte mac[] = {  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
  7.   IPAddress ip(192, 168, 1, 177);
  8. unsigned int localPort = 8888;   
  9. unsigned int Count_send = 0;
  10. char packetBuffer[UDP_TX_PACKET_MAX_SIZE];
  11. char  ReplyBuffer[] = "acknowledged";     
  12. EthernetUDP Udp;
  13. //const int TrigPin = 8; //+,A
  14. //const int EchoPin = 9;
  15. //float distance;
  16. const int blueLed = 13;
  17. const int keyPin = 4;
  18. void setup() {
  19.     Ethernet.begin(mac,ip);
  20.     Udp.begin(localPort);
  21.   
  22.     Serial.begin(9600);
  23.   //  pinMode(TrigPin, OUTPUT);
  24.   //  pinMode(EchoPin, INPUT);   
  25.    
  26.     pinMode(blueLed, OUTPUT);
  27.     pinMode(keyPin,INPUT);                 //将4号数字口设置为输入状态
  28.     digitalWrite(blueLed, HIGH);//常态:显示光
  29.     delay(500);
  30. }
  31. void loop() {
  32.    // distanceEcho();
  33.    // Serial.print(distance);
  34.    // if(distance >  0 && distance < 10.00){//有人靠近  
  35.       int n =digitalRead(keyPin);                   //创建一个变量n,将4号数字口的状态采集出来赋值给他。
  36.       if (n==HIGH)                             //判断n是否为高电平,如果是执行下面的语句,不是则跳过。
  37.       {   
  38.              Serial.print("-- people near + keypress() --");
  39.               keyPressed();//按键被触发
  40.                delay(10);
  41.               digitalWrite(blueLed,HIGH);
  42.               delay(10);
  43.              // Serial.print("high");
  44.               digitalWrite(blueLed,LOW);
  45.              // Serial.print("low");         
  46.       }
  47.       
  48.       int packetSize = Udp.parsePacket();
  49.       Serial.print(packetSize);
  50.       Serial.println();
  51.       if(packetSize){
  52.                digitalWrite(blueLed, HIGH);//有人靠近亮白灯,灯变换
  53.                Serial.print("people+light");
  54.        }else{         
  55.               digitalWrite(blueLed, LOW);//有人靠近不亮白灯,灯变换
  56.               Serial.print("people+low");
  57.             }
  58.         
  59.       Serial.println();
  60. }
  61. void keyPressed() {
  62.      IPAddress ip(192, 168, 1, 178);
  63.      int port = 8888;
  64.      char Buffer_Str[] = "Heloo world!";
  65.      uint8_t *ps_BufferStr = (uint8_t *)Buffer_Str;
  66.      
  67.      Udp.beginPacket(ip, (uint16_t)port);
  68.      Udp.write(ps_BufferStr, strlen(Buffer_Str));
  69.      Udp.endPacket();
  70. }
  71. /*
  72. void distanceEcho(){
  73.       digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin
  74.       delayMicroseconds(2);
  75.       digitalWrite(TrigPin, HIGH);
  76.       delayMicroseconds(10);
  77.       digitalWrite(TrigPin, LOW);
  78.       distance = pulseIn(EchoPin, HIGH) / 58.0; //将回波时间换算成distance
  79.       distance = (int(distance * 100.0)) / 100.0; //保留两位小数  
  80. }
  81. */
复制代码

这个代码很基础,仅仅做到了能用的阶段。


而且用到的原件也就只有两块 UNO 的板子,两块 以太网扩展板,超声波传感器, led 灯,电阻还有两个按钮。。。几乎就是基础教程的内容。。。

话说回来,为什么要做 touchlight ?

1. 当然满足自己的需求,解决不能见面的相思之苦,虽然有很好用的通信工具在,但有时候我们还是需要实体物品的慰借。这个时候,我就想到了用灯光来试试,当时的想法就是这么基础。。。很明显,用灯被吐槽了。

2. 虽说是用灯来表达感情并不是一件多么有想法的事情,但这是比较方便的伪智能的方式,街上的 app 灯就是这样,我认为,用 app 来控制一盏灯的亮或灭,明或暗,这在我看来是有点反智的。不是说不好,但这功能应该算是附加的吧,而不是拿来当主打功能。

3. 当时比赛是用点子来找团队的,我是去试试点子的,凑巧刚好被选上了。




当时因为主打情感而被嫌弃了,而这次比赛的内容是情感智能机器人。就情感来说,是符合的。而后面智能机器人而言,用上我所认知的技能,我能做到智能。但做不成机器人,不管怎么样还是试着发个帖子投个稿。

正在开发的功能:

利用 IFTTT 实现通过关键词来改变颜色。




dsweiliang  初级技神

发表于 2015-11-17 14:01:25

这个好,收藏
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

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

硬件清单

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

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

mail