12月 12

mth01-spi 在raspberry pi上的调试

使用raspberry pi 2B主板,python2.7.13,mth01-spi传感器(没有使用reset管脚)。

#!/bin/env python
# -*- coding:utf-8 -*-
# Revision:
# Author:      simonzhang
# Email:       simon-zzm@163.com
# Web:         www.simonzhang.net
# -------------------------------
import RPi.GPIO as GPIO
import time


def MTH01Data():
    GPIO.setmode(GPIO.BCM)
    # 初始化
    GPIO.setup(16,GPIO.IN) # SDA
    GPIO.setup(20,GPIO.IN) # SCK
    GPIO.setup(21,GPIO.OUT) # SC
    # SC高电压,然后低电压输出数据
    GPIO.output(21,GPIO.HIGH)
    time.sleep(0.02)
    data = 0
    datatemp = 0
    GPIO.output(21, GPIO.LOW)
    # 获取数据
    for i in range (32):
        while GPIO.input(20) == 0:
            continue
        datatemp = GPIO.input(16)
        data = data<<1
        if datatemp == 1:
            data = 1+data
        while GPIO.input(20) == 1:
            continue
    # 拉高电压停止输出数据
    GPIO.output(21, GPIO.HIGH)
    GPIO.cleanup()
    # 处理数据 
    data = int(data)
    data16 = hex(data)
    tempTmp = int(data16[2:5], 16)
    humiTmp = int(data16[5:7], 16)
    temp = float(tempTmp-400)/10.0
    humi = humiTmp
    # 输出
    print time.strftime("%b %d %Y %H:%M:%S", time.gmtime(time.time()))
    print temp,'C'
    print humi,'%'
    print "=" * 10

def main():
    while True:
        MTH01Data()
        # 每10秒钟检测一次
        time.sleep(10)
 
if __name__ == '__main__':  
    main()

源码及资料

10月 14

python用echarts生成图表

在Centos7 64位下python2.7.13需要生成图表,开始想使用matplotlib。但是安装后出现问题。
最后决定用echarts生成图表再转成图片。这个想法找到了一个方便的库,详细记录如下。

安装相关库
pip install pyecharts
pip install pyecharts-snapshot

安装html转图片、pdf工具
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2
mv phantomjs-2.1.1-linux-x86_64 /usr/local/src/phantomjs
ln -sf /usr/local/src/phantomjs/bin/phantomjs /usr/local/bin/phantomjs

防止phantomjs转图片乱码,安装字体。
在centos中执行:yum install bitmap-fonts bitmap-fonts-cjk
在ubuntu中执行:sudo apt-get install xfonts-wqy

官方脚本修改如下

#!/bin/env python
# -*- coding:utf-8 -*-

from __future__ import unicode_literals

from pyecharts import Line, Pie, Grid
from pyecharts_snapshot.main import make_a_snapshot

attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
v1 = [5, 20, 36, 10, 10, 100]
v2 = [55, 60, 16, 20, 15, 80]
line = Line("折线图示例")
line.add("商家A", attr, v1, mark_point=["average"])
line.add("商家B", attr, v2, is_smooth=True, mark_line=["max", "average"])
line.render('test.html')

make_a_snapshot('test.html', 'test.jpeg')

通过实验已经成功,但是还有些小问题未解决。

官方文档如下
https://github.com/chenjiandongx/pyecharts/blob/master/docs/zh-cn/documentation.md#%E5%BC%80%E5%A7%8B%E4%BD%BF

6月 22

tensorflow使用gpu

显卡1060,cpu i7 7700,16G内存。
CUDA_VISIBLE_DEVICES=1 只使用gpu1
CUDA_VISIBLE_DEVICES=0,1 只用gpu0和gpu1
CUDA_VISIBLE_DEVICES=”0,1” 加引号与不加引号作用相同
CUDA_VISIBLE_DEVICES=0,2,3 只用gpu0,gpu2,gpu3不适用gpu1
CUDA_VISIBLE_DEVICES=“” 使用cpu

开始测试
CUDA_VISIBLE_DEVICES=0 python xxxx.py

测试结果,CNN使用gpu速度提高大约5倍。但是lstm没有提高,在工作模式时CPU比GPU快3倍。

部分内容出处http://www.acceleware.com/blog/cudavisibledevices-masking-gpus