#报名NABI黑客马拉松 -- touchlight
这个项目是我们在宁波创客周末完成的一个作品,当时用的是以太连接。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;
charReplyBuffer[] = "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 实现通过关键词来改变颜色。
这个好,收藏
页:
[1]