25 Apr 2013
前天在DFRobot买的意大利原装Arduino UNO R3到手了,比某宝上的山寨贵,不过还是喜欢原装的东西,贵也贵得值,拆开包装一看,一张信用卡大小的蓝色小板子,很不错。
准备学习的工具
晚上有时间做了一个小实验,GND针脚与13号针脚,LED就亮了,一闪一闪,不明真相,好像默认是不会闪的吧,是不是售前测试给我装了个来测试的。
接下来就是去看 "http://study.163.com/course/introduction.htm?courseId=194002":http://study.163.com/course/introduction.htm?courseId=194002 的视频了,这套视频不错。
什么是Arduino,Arduino是一个开源的单板机控制器,采用了基于开放源代码的软硬件平台,构建于开放源代码 simple I/O 接口版,并且具有使用类似Java,C 语言的Processing/Wiring开发环境。参考维基百科 "https://zh.wikipedia.org/wiki/Arduino":https://zh.wikipedia.org/wiki/Arduino
25 Apr 2013
按照图片所示接线,四个电阻都是220Ω。
/**
* 连接2、4、6、8四个针脚,这四个灯会间隔1秒依次亮起后又依次熄灭
*/
void setup() // setup函数为初始化函数,第一次启动Arduino或重启执行,且只执行一次.
{
pinMode(2, OUTPUT); // pinMode函数是把一个引脚设置为INPUT(输出)或OUTPUT(输出).
pinMode(4, OUTPUT);
pinMode(6, OUTPUT);
pinMode(8, OUTPUT);
}
void loop() // loop函数是setup后执行,是一个死循环,类似while(true).
{
digitalWrite(2, HIGH); // digitalWrite函数是把一个引脚设置为HIGH(高电平)或LOW(低电平).
delay(1000); // delay函数是睡眠,此处睡眠1秒.
digitalWrite(4, HIGH);
delay(1000);
digitalWrite(6, HIGH);
delay(1000);
digitalWrite(8, HIGH);
delay(1000);
digitalWrite(8, LOW);
delay(1000);
digitalWrite(6, LOW);
delay(1000);
digitalWrite(4, LOW);
delay(1000);
digitalWrite(2, LOW);
delay(1000);
}
24 Apr 2013
BitTorrent Sync是一个非常强的同步软件,不需要远程服务器的支持,完全是机器与机器之间的通讯。
一、安装BitTorrent Sync
1.1 在Raspberry Pi树莓派里安装
$ wget http://btsync.s3-website-us-east-1.amazonaws.com/btsync_arm.tar.gz
$ tar zxvf btsync_arm.tar.gz
$ ./btsync
解压出来就是一个可执行文件,执行它之后会在当前用户目录下产生.sync目录
此时打开 "http://raspberrypi-ip:8888/gui":http://raspberrypi-ip:8888/gui 即可打开web管理界面,界面非常简洁。
1.2 在OS X下安装,这个做得非常不错,为retina屏而生的
下载http://btsync.s3-website-us-east-1.amazonaws.com/BTSync.dmg,直接安装到应用目录下即可。
已经添加了Raspberry Pi的目录了,这个时候同步太方便了,同步速度完全是局域网的速度。
24 Apr 2013
手上的Raspberry Pi是ModeB的第二版,GPIO接口方面有有所变动,具体看http://www.elinux.org/Rpi_Low-level_peripherals的说明。
前天买的实验小物品今天收到了,明天Arduino也会到,今天就先用Raspberry Pi来玩一下GPIO先,第一次玩这种电路的东西,总是小心翼翼的,怕不小心把板子给毁了,新手一枚...
接线前找了很多例子,网上很多例子没有使用220欧的电阻,而我手上只有200欧的电阻,担心不行,后来找到了http://www.bianbian.me/2012/07/raspberry-pi-led-test.html这个例子,看板子是第一版的,主要看音频接口的颜色,黑色就是国产的第一版,蓝色就是英国产的第二版。
根据它的接线方式是一个GND即地线接口,看刚刚那个网址就能看到板子上有5个地线接口,电压是0v的,第二个是GPIO17,即音频口向上下排左边第6个接口,
由于Fritzing中没有Raspberry Pi Rev2版的图片,暂时使用Rev1版的图,刚好使用到的两个接口是一样的
这个实验用到的元件有
- Raspberry Pi Rev2板子一块
- 220欧电阻一只
- Led灯一枚
- 杜邦线两根
- 面包板一块
代码,目前新版本中的系统已经默认装好GPIO的库了
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11, GPIO.OUT)
while True:
GPIO.output(11, GPIO.LOW)
time.sleep(1)
GPIO.output(11, GPIO.HIGH)
time.sleep(1)
$ vim testled.py
$ sudo python testled.py
执行代码就可以看到Led灯一闪一闪的,第一个小实验,还是挺有意思的。
19 Apr 2013
mosquitto是一个开源的mqtt服务器,官网: "http://mosquitto.org/":http://mosquitto.org
paho是eclipse的一个开源项目,使用c、java、lua实现了mosquitto客户端,官网: "http://www.eclipse.org/paho/":http://www.eclipse.org/paho
一、 安装mosquitto
$ brew install mosquitto
$ /usr/local/sbin/mosquitto // 启动mosquitto服务器
二、 下载并编译paho的jar包
$ wget http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.java.git/snapshot/org.eclipse.paho.mqtt.java-0.2.1.zip
$ unzip org.eclipse.paho.mqtt.java-0.2.1.zip
$ cd org.eclipse.paho.mqtt.java-0.2.1
2.1 编译jar包
$ cd org.eclipse.paho.client.mqttv3
$ ant
2.2 编译Sample例子
$ cd org.eclipse.paho.sample.mqttv3app
$ mkdir bin
$ javac -d bin -classpath ../org.eclipse.paho.client.mqttv3/target/ship/org.eclipse.paho.client.mqttv3.jar src/org/eclipse/paho/sample/mqttv3app/Sample.java
$ java -classpath ../org.eclipse.paho.client.mqttv3/target/ship/org.eclipse.paho.client.mqttv3.jar:bin org.eclipse.paho.sample.mqttv3app.Sample -b localhost
运行Sample将会看到
再看一下服务器的反应
实现订阅,如果其它客户端连接进来则收到提示消息
$ java -classpath ../org.eclipse.paho.client.mqttv3/target/ship/org.eclipse.paho.client.mqttv3.jar:bin org.eclipse.paho.sample.mqttv3app.Sample -b localhost -a subscribe
服务器的反应,是一个订阅类型的客户端
启动一个新客户端
订阅客户端的反应
服务器的反应
参考: http://mobilave.info/blog/2012/Quick_start_guide_for_the_Paho_MQTT_Java_Client.html