硬件使用Raspberry pi、mpu 6050。开发使用python。
当前的简单操作可以用来讲PPT。如果把蓝牙放进去,直接连接手机,大拇指和小拇指伸开其它三指蜷起,就能接电话了。
Tag Archives: raspberry pi
pcduino使用心得对比raspberry pi
之前一直在用raspberry pi,为了试验方便今天又买了一个pcduino。两者做个对比。
优点:
1)pcduino使用TF卡,而raspberry pi使用SD卡。如果想raspberry pi美观点使用TF卡,还需要买相应的卡托。
2)pcduino的运行速度要比raspberry pi快。编译同样的go的版本raspberry pi用49分,pcduino用42分钟。
3)有python,升级安装工具是apt-get,直接用之前raspberry pi初始化安装的脚本,修改一下就跑起来了。
4)pcduino与arduino的链接会更方便一些。
缺点:
1)pcduino的系统安装比raspberry pi麻烦,需要先烧内核,然后再安装系统。
2)pcduino的体积比raspberry pi大出不少,宽度都是5.5cm,但是pcduino的长度是12.5,raspberry pi是8.5.
3)感觉pcduino的做工不如raspberry pi 原产的做工好,pcduino比较粗糙。
4) 板载的2G初步感觉有点鸡肋。如果要学习linux、python、golang、mysql、C等装上就没有空间了,必须要用SD。
以后再研究看看,是否能做个什么来辅助内存。
raspberry pi 串口控制51单片机
制作小车都用raspberry pi上的口有些麻烦,所以把一些基础控制给51单片机解决,raspberry pi控制高层应用。所以测试一下raspberry pi串口连接调试51单片机。
第一步:
sudo apt-get install python-serial
sudo easy_install pyserial
第二部接线部分图
raspberry pi板子串口接线图
杜邦线连接
代码部分
raspberry pi python串口控制代码
#!/bin/env python # -*- coding:utf-8 -*- # ------------------------------- # Filename: # Revision: # Date: 2013-02-5 # Author: simonzhang # Email: simon-zzm@163.com # WWW: www.simonzhang.net # ------------------------------- import serial import time #### 定义小灯亮灭初始值 i = 0 #### 实例化串口 ser = serial.Serial('/dev/ttyAMA0', 9600, timeout = 0.5) for j in range(10): if ser.isOpen() == False: ser.open() #### 每次循环对上值次取反 if i == 0: i = 1 else: i = 0 #### 向串口发送字符 ser.write(chr(i)) #### 获取串口返回值 #### linux为福阻塞模式,在阻塞模式下 #### 会报错,所以抱起来就好了。 try: re = ser.readlines() except: pass print re time.sleep(2)
51单片机代码
#include#include typedef unsigned char uint8; typedef unsigned int uint16; uint8 num; sbit D0 = P0^0; void init() { SCON = 0x50; TMOD = 0x20; TH1 = 0xFD; TL1 = 0xFD; TR1 = 1; //打开定时器 ES = 1; EA = 1; //打开总开关 } void interrupt_uart() interrupt 4 { if(TI) { TI = 0; REN = 1; } if(RI) { RI = 0; num = SBUF; if (num == 1) { D0 = 0; SBUF = 0; } else { D0 = 1; SBUF =1; } REN = 0; } } main() { init(); while(1); }
源码下载
raspberrypito51
raspberry pi 开机wifi自动启动并发邮件通知(二)
比之前脚本添加了,测试公网IP的函数。
def get_global_ip():
get_html = urllib2.urlopen(‘http://iframe.ip138.com/ic.asp’).read()
_re_ip = re.compile(r’\d{2,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}’, re.DOTALL)
_global_ip = _re_ip.findall(get_html)[0]
return _global_ip
raspberry pi HC-SR04超声波测距
所购买的HC-SR04的超声波模块介绍如下:
1、典型工作用电压:5V。
2、超小静态工作电流:小于 2mA。
3、感应角度:不大于 15 度 。
4、探测距离:2cm-400cm
5、高精度:可达 0.3cm。
6、盲区(2cm)超近。
实测raspberry pi电压4.7V。所以直接测试一下,但是需要获取系统时间和系统处理耗时,测试结果精度不高,可以区三次平均数。
代码如下:
#!/bin/env python # -*- coding:utf-8 -*- # ------------------------------- # Revision: # Date: 2012-12-11 # Author: simonzhang # Email: simon-zzm@163.com # Web: www.simonzhang.net # ------------------------------- import time import RPi.GPIO as GPIO import datetime as dt # 初始化 # 需要注意输出与输入的接口 # 17为发射,18为接收 GPIO.setmode(GPIO.BCM) GPIO.setup(17, GPIO.OUT) GPIO.setup(18, GPIO.IN) GPIO.output(17, False) while 1: time.sleep(1) # IO 触发,给10us的高电平 # 模块自动发送8个40khz的方波 GPIO.output(17, GPIO.HIGH) time.sleep(0.00001) GPIO.output(17, GPIO.LOW) # 获取发射完毕时间 t1 = time.time() # 未接收为False,循环检查开始接受点 # 转为True为开始接受 while GPIO.input(18) == False: pass # 循环检查开始接收,转为False。则为接受完毕 while GPIO.input(18): pass # 获取接受完毕时间 t2 = time.time() # 计算发送与接收时间差 t3 = t2-t1 print t3 # 空气中1个标准大气压在温度15度时速度为340m/s # 25度为346m/s # 所以按照一秒钟34000厘米计算 # 根据硬件文档,该模块探测距离在2-400cm之间 # 测试范围的时间间隔应该为0.000117到0.023529 # 为了方便取值自行变化一点 if 0.0235 > t3 > 0.00015: distance = t3*34000/2 print 'Distance: %f cm' % distance else: print 'Null'