这个项目是我们在宁波创客周末完成的一个作品,当时用的是以太连接。 
touchlight 是一款通过触碰而产生灯光开关/颜色变化的情侣间的情感传递的产品,假设情侣在异地,通过 touchlight 就可以利用灯光的变化来让对方知道自己的思念。这个想法和 NABI黑客马拉松 所要求的理念满想的,那我们就来试试看能不能参加。  
 
 
 
创业周末创客版时候,我们在演示 touchlight  
因为当时做的是一个模型,所以我们用的是以太网来连接,目前考虑到了实际的易用性,我们重新写了一下代码,因为牵扯到了某些私有API的问题还没有搞定,下面放出上次用的代码。 
 
			
			
			- #include <SPI.h> 
 - #include <Ethernet.h>
 - #include <EthernetUdp.h>  
 - #include "string.h"
 - 
 - #define Device 1
 - byte mac[] = {  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
 -   IPAddress ip(192, 168, 1, 177);
 - 
 - unsigned int localPort = 8888;    
 - unsigned int Count_send = 0;
 - 
 - char packetBuffer[UDP_TX_PACKET_MAX_SIZE];
 - char  ReplyBuffer[] = "acknowledged";     
 - EthernetUDP Udp;
 - 
 - //const int TrigPin = 8; //+,A
 - //const int EchoPin = 9; 
 - //float distance; 
 - const int blueLed = 13;
 - const int keyPin = 4;
 - 
 - void setup() {
 -     Ethernet.begin(mac,ip);
 -     Udp.begin(localPort);
 -   
 -     Serial.begin(9600); 
 -   //  pinMode(TrigPin, OUTPUT); 
 -   //  pinMode(EchoPin, INPUT);    
 -    
 -     pinMode(blueLed, OUTPUT);
 -     pinMode(keyPin,INPUT);                 //将4号数字口设置为输入状态
 -     digitalWrite(blueLed, HIGH);//常态:显示光
 - 
 -     delay(500);
 - }
 - 
 - void loop() {
 -    // distanceEcho();
 -    // Serial.print(distance);
 - 
 -    // if(distance >  0 && distance < 10.00){//有人靠近  
 -       int n =digitalRead(keyPin);                   //创建一个变量n,将4号数字口的状态采集出来赋值给他。
 -       if (n==HIGH)                             //判断n是否为高电平,如果是执行下面的语句,不是则跳过。
 -       {   
 -              Serial.print("-- people near + keypress() --");
 -               keyPressed();//按键被触发
 -                delay(10);
 -               digitalWrite(blueLed,HIGH);
 -               delay(10);
 -              // Serial.print("high");
 -               digitalWrite(blueLed,LOW);
 -              // Serial.print("low");         
 -       }
 -       
 -       int packetSize = Udp.parsePacket();
 -       Serial.print(packetSize);
 -       Serial.println();
 -       if(packetSize){
 -                digitalWrite(blueLed, HIGH);//有人靠近亮白灯,灯变换
 -                Serial.print("people+light"); 
 -        }else{          
 -               digitalWrite(blueLed, LOW);//有人靠近不亮白灯,灯变换
 -               Serial.print("people+low"); 
 -             }
 -         
 -       Serial.println(); 
 - }
 - 
 - void keyPressed() {
 -      IPAddress ip(192, 168, 1, 178);
 -      int port = 8888;
 -      char Buffer_Str[] = "Heloo world!";
 -      uint8_t *ps_BufferStr = (uint8_t *)Buffer_Str;
 -      
 -      Udp.beginPacket(ip, (uint16_t)port);
 -      Udp.write(ps_BufferStr, strlen(Buffer_Str));
 -      Udp.endPacket(); 
 -  }
 - /* 
 - void distanceEcho(){
 -       digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin 
 -       delayMicroseconds(2); 
 -       digitalWrite(TrigPin, HIGH); 
 -       delayMicroseconds(10); 
 -       digitalWrite(TrigPin, LOW);
 -       distance = pulseIn(EchoPin, HIGH) / 58.0; //将回波时间换算成distance 
 -       distance = (int(distance * 100.0)) / 100.0; //保留两位小数  
 - }
 - */
 
  复制代码
  
这个代码很基础,仅仅做到了能用的阶段。 
 
 
而且用到的原件也就只有两块 UNO 的板子,两块 以太网扩展板,超声波传感器, led 灯,电阻还有两个按钮。。。几乎就是基础教程的内容。。。 
 
话说回来,为什么要做 touchlight ? 
 
1. 当然满足自己的需求,解决不能见面的相思之苦,虽然有很好用的通信工具在,但有时候我们还是需要实体物品的慰借。这个时候,我就想到了用灯光来试试,当时的想法就是这么基础。。。很明显,用灯被吐槽了。 
 
2. 虽说是用灯来表达感情并不是一件多么有想法的事情,但这是比较方便的伪智能的方式,街上的 app 灯就是这样,我认为,用 app 来控制一盏灯的亮或灭,明或暗,这在我看来是有点反智的。不是说不好,但这功能应该算是附加的吧,而不是拿来当主打功能。 
 
3. 当时比赛是用点子来找团队的,我是去试试点子的,凑巧刚好被选上了。 
 
 
 
 
当时因为主打情感而被嫌弃了,而这次比赛的内容是情感智能机器人。就情感来说,是符合的。而后面智能机器人而言,用上我所认知的技能,我能做到智能。但做不成机器人,不管怎么样还是试着发个帖子投个稿。 
 
正在开发的功能: 
 
利用 IFTTT 实现通过关键词来改变颜色。 
 
 
 
 
 |