python树莓派红外反射传感器


Posted in Python onJanuary 21, 2019

本文实例为大家分享了python树莓派红外反射传感器的程序,供大家参考,具体内容如下

1、工具

rpi3,微雪ARPI600,Infrared Reflective Sensor

2、基本原理

Infrared Reflective Sensor 输出数字和模拟信号

模拟信号通过ARPI600上的AD转换芯片TLC1543进行转换

TLC1543通信使用rpi的GPIO口,模拟SPI,进行模拟信号输入端口选择,和输出读取

程序通过读取DOUT判断与障碍物接近和远离

在接近障碍物时读取AD转换数值

3、连接实物

python树莓派红外反射传感器

4、python程序(根据ARPI600提供程序修改)

#!/usr/bin/python
# -*- coding:utf-8 -*-
import RPi.GPIO as GPIO
import time
 
Clock = 16
Address = 20
DataOut = 21
DOUT = 17
 
 
def ADC_Read(channel):
 value = 0;
 for i in range(0,4):
 if((channel >> (3 - i)) & 0x01):
  GPIO.output(Address,GPIO.HIGH)
 else:
  GPIO.output(Address,GPIO.LOW)
 GPIO.output(Clock,GPIO.HIGH)
 GPIO.output(Clock,GPIO.LOW)
 for i in range(0,6):
 GPIO.output(Clock,GPIO.HIGH)
 GPIO.output(Clock,GPIO.LOW)
 time.sleep(0.001)
 for i in range(0,10):
 GPIO.output(Clock,GPIO.HIGH)
 value <<= 1
 if(GPIO.input(DataOut)):
  value |= 0x01
 GPIO.output(Clock,GPIO.LOW)
 return value
 
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(Clock,GPIO.OUT)
GPIO.setup(Address,GPIO.OUT)
GPIO.setup(DataOut,GPIO.IN,GPIO.PUD_UP)
GPIO.setup(DOUT,GPIO.IN)
 
lastdata = 2
try:
 while True:
 data = GPIO.input(DOUT)
 if lastdata and (lastdata == 1):
  continue
 if data == 0:
  print 'Near the Obstacles'
  print 'AD: %d ' % ADC_Read(6)
 if data == 1:
  print 'Far the Obstacles'
 lastdata = data
 time.sleep(0.1)
except:
 GPIO.cleanup()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python去掉字符串中重复字符的方法
Feb 27 Python
python通过scapy获取局域网所有主机mac地址示例
May 04 Python
python实现忽略大小写对字符串列表排序的方法
Sep 25 Python
人脸识别经典算法一 特征脸方法(Eigenface)
Mar 13 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
Jul 14 Python
初次部署django+gunicorn+nginx的方法步骤
Sep 11 Python
详解Python中打乱列表顺序random.shuffle()的使用方法
Nov 11 Python
使用python的turtle函数绘制一个滑稽表情
Feb 28 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
Mar 16 Python
Python3自定义json逐层解析器代码
May 11 Python
解决Keras 中加入lambda层无法正常载入模型问题
Jun 16 Python
pycharm 使用tab跳出正在编辑的括号(){}{}等问题
Feb 26 Python
python实现自动解数独小程序
Jan 21 #Python
python 将对象设置为可迭代的两种实现方法
Jan 21 #Python
python 实现敏感词过滤的方法
Jan 21 #Python
python执行精确的小数计算方法
Jan 21 #Python
详解安装mitmproxy以及遇到的坑和简单用法
Jan 21 #Python
python dict 相同key 合并value的实例
Jan 21 #Python
关于python之字典的嵌套,递归调用方法
Jan 21 #Python
You might like
老机欣赏|中国60年代精品收音机
2021/03/02 无线电
PHP MySql增删改查的简单实例
2016/06/21 PHP
PHP仿微信发红包领红包效果
2016/10/30 PHP
thinkphp下MySQL数据库读写分离代码剖析
2017/04/18 PHP
Windows 下安装 swoole 图文教程(php)
2017/06/05 PHP
php使用str_replace替换多维数组的实现方法分析
2017/06/15 PHP
深入理解JavaScript系列(6) 强大的原型和原型链
2012/01/15 Javascript
全面解析Bootstrap中nav、collapse的使用方法
2016/05/22 Javascript
AngularJS入门教程之ng-class 指令用法
2016/08/01 Javascript
jquery判断类型是不是number类型的实例代码
2016/10/07 Javascript
vue通过watch对input做字数限定的方法
2017/07/13 Javascript
vue组件中的数据传递方法
2018/05/14 Javascript
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
2019/06/06 jQuery
解决layer弹出层自适应页面大小的问题
2019/09/16 Javascript
JavaScript实现tab栏切换效果
2020/03/16 Javascript
基于JS+HTML实现弹窗提示是否确认提交功能
2020/06/17 Javascript
[03:15]2014DOTA2国际邀请赛 专访国士无双信心满满
2014/07/12 DOTA
[01:20:37]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
web.py中调用文件夹内模板的方法
2014/08/26 Python
在Docker上部署Python的Flask框架的教程
2015/04/08 Python
详解TensorFlow查看ckpt中变量的几种方法
2018/06/19 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
2018/08/03 Python
基于PyQt4和PySide实现输入对话框效果
2019/02/27 Python
python根据时间获取周数代码实例
2019/09/30 Python
Java文件与类动手动脑实例详解
2019/11/10 Python
TensorFlow tf.nn.conv2d实现卷积的方式
2020/01/03 Python
详解python日志输出使用配置文件格式
2021/02/10 Python
HTML5实现视频直播功能思路详解
2017/11/16 HTML / CSS
捷克体育用品购物网站:D-sport
2017/12/28 全球购物
印度民族服装购物网站:BIBA
2019/08/05 全球购物
什么是数组名
2012/05/10 面试题
结婚典礼证婚词
2014/01/08 职场文书
个人实习生的自我评价
2014/02/16 职场文书
勤俭节约演讲稿
2014/05/08 职场文书
党支部评议意见
2015/06/02 职场文书
小公司融资,商业计划书的8切记
2019/07/15 职场文书