python 角度傳感器模擬_python樹莓派紅外反射傳感器

本文實例為大家分享了python樹莓派紅外反射傳感器的程序,供大家參考,具體內容如下

1、工具

rpi3,微雪ARPI600,Infrared Reflective Sensor

2、基本原理

Infrared Reflective Sensor 輸出數字和模擬信號

模擬信號通過ARPI600上的AD轉換芯片TLC1543進行轉換

TLC1543通信使用rpi的GPIO口,模擬SPI,進行模擬信號輸入端口選擇,和輸出讀取

程序通過讀取DOUT判斷與障礙物接近和遠離

在接近障礙物時讀取AD轉換數值

3、連接實物

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()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持。 ad51e517755f8fd6a7ec83ced4ecfaf3.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/529378.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529378.shtml
英文地址,請注明出處:http://en.pswp.cn/news/529378.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JAVA awt eventqueue_線程“AWT-EventQueue-1”中的異常java.lang.NullPointerException

嗨&#xff0c;我收到錯誤Exception in thread "AWT-EventQueue-1" java.lang.NullPointerExceptionat P6.itemStateChanged(P6.java:215)at javax.swing.AbstractButton.fireItemStateChanged(AbstractButton.java:2023)at javax.swing.AbstractButton$Handler.item…

java構造方法賦值內存圖_java 面向對象(九):類的結構:構造器(一)簡介;屬性賦值順序;JavaBean的概念...

1.構造器(或構造方法)&#xff1a;Constructor構造器的作用&#xff1a;* 1.創建對象* 2.初始化對象的信息2.使用說明&#xff1a;* 1.如果沒顯式的定義類的構造器的話&#xff0c;則系統默認提供一個空參的構造器* 2.定義構造器的格式&#xff1a;權限修飾符 類名(形參列表){}…

java 集合modcount_源碼|jdk源碼之LinkedList與modCount字段

鏈表是對上一篇博文所說的順序表的一種實現。與ArrayList思路截然不同&#xff0c;鏈表的實現思路是&#xff1a;不同元素實際上是存儲在離散的內存空間中的。每一個元素都有一個指針指向下一個元素&#xff0c;這樣整個離散的空間就被“串”成了一個有順序的表。從鏈表的概念來…

idea 新建ssm java ee_IDEA搭建SSM項目實現增刪改查

首先打開IDEA&#xff0c;File—>New—>Project創建項目選擇左側導航欄里的Maven&#xff0c;勾上勾&#xff0c;選擇webapp按如下圖進行填寫創建完成后進入項目&#xff0c;右下角彈出的提示點擊右邊的Enable Auto-Import&#xff0c;自動配置連接數據庫&#xff0c;我用…

php mail centos_centos怎么發送郵件

一、安裝sendmail與mail1、安裝sendmail&#xff1a;1) centos下可以安裝命令&#xff1a;yum -y install sendmail2) 安裝完后啟動sendmail命令&#xff1a;service sendmail start2、安裝mail安裝命令&#xff1a;yum install -y mailx二、發送郵件1、通過文件內容發送發送命…

php文件的作用,php入口文件的作用-PHP問題

php入口文件的作用php入口文件能夠完成主動加載性能。解析PHP入口文件的主動加載性能php的主動加載&#xff1a;正在php5之前&#xff0c;咱們要用某個類或類的辦法&#xff0c;那必需include或許require&#xff0c;之后能力應用&#xff0c;每一次用一個類&#xff0c;都需求…

emacs php 配置文件,如何配置emacs進行正確的PHP開發?

我使用web模式(http://web-mode.org/)混合HTML / PHP文件和php模式為純PHP文件.最新版本的php-mode還推薦使用混合HTML / PHP文件的Web模式&#xff1a;https://github.com/ejmr/php-mode#avoid-html-template-compatibility.不同于其他模式,如mmm模式,mumamo或多網絡模式,嘗試…

php 5.3.9 漏洞,PHP-5.3.9遠程執行任意代碼漏洞(CVE-2012-0830) 詳解

這個新的修復方法初衷是好的, 但是卻帶來一個嚴重的問題(5.3.10中已經修復), 這個問題最初是由Stefan Esser發現的. 請看之前(5.3.9)最終的修復方案(php_register_variable_ex):代碼如下while (1) {if (zend_symtable_find(symtable1, escaped_index, index_len 1, (void **) …

java中隨機數邊界問題,java 簡單Dice問題(隨機數的運用)

[java]代碼庫/*** Dice Write a program that simulates rolling two dice using the following* steps: 1. Prompt the user for the number of sides for two dice. 2. “Roll” the* dice three times by generating a random number between 1 (inclusive) and the* number…

php 正則替換 ubb,php實現過濾UBB代碼的類

本文實例講述了php實現過濾UBB代碼的類。分享給大家供大家參考。具體如下&#xff1a;PHP代碼如下&#xff1a;class Day{function ubb($Text) { /// UBB代碼轉換//$Texthtmlspecialchars($Text);//$Textereg_replace("\r\n","",$Text);$Textereg_rep…

java單詞測試,java單詞 - 在線打字測試(dazi.kukuw.com)

java單詞貢獻者&#xff1a;15533470608類別&#xff1a;英文 時間&#xff1a;2018-08-04 22:32:16 收藏數&#xff1a;20 評分&#xff1a;0返回上頁舉報此文章請選擇舉報理由&#xff1a;廣告/謠言/欺詐政治敏感色情/違法信息垃圾文章其他收藏到我的文章改錯字public static…

java vector list,Java基礎之:List——ArrayList Vector

Java基礎之&#xff1a;List——ArrayList & VectorArrayList簡單介紹ArrayList實現了List接口&#xff0c;底層是一個數組&#xff0c;并實現了可變的功能。底層屬性(transient Object[] elementData;)在序列化時&#xff0c;忽略該屬性。ArrayList實現了List接口&#xf…

java建立線性表的鏈式結構,數據結構學習----線性表的鏈式表示(Java實現)

線性表接口LList&#xff1a;package com.clarck.datastructure.linked;/*** 線性表接口LList&#xff0c;描述線性表抽象數據類型&#xff0c;泛型參數T表示數據元素的數據類型** author clarck**/public interface LList {/*** 判斷線性表是否空* return*/boolean isEmpty();…

php prepare 批量,PreparedStatement批處理

PreparedStatement批量更新關鍵代碼 無 import java.sql.Connection;import java.sql.PreparedStatement; //...String sql "insert into employee (name, city, phone) values (?, ?, ?)";Connection connection new getConnection();PreparedStatement pPrepa…

釘釘 php 推送,微信模板推送,釘釘信息推送

上午的時候看到有朋友需要微信推送&#xff0c;正好我也需要&#xff0c;之前一直用 Server 醬的&#xff0c;但是最近用不了&#xff0c;想找一個替代品&#xff0c;一開始準備選擇釘釘&#xff0c;除了打卡&#xff0c;我很少使用釘釘&#xff0c;郵件提醒是備用方案&#xf…

java repaint 重畫圖形,學習筆記:WINDOWS的圖形重繪基礎

OnPaint()與OnDraw()的區別&#xff1a;OnPaint是WM_PAINT的消息響應函數&#xff0c;在MFC的基類里OnPaint函數調用了OnDraw()函數。OnPaint函數另外還調用了OnPrepareDC()函數。如果在窗口子類覆蓋了OnPaint函數&#xff0c;當MFC調用我們重寫的OnPaint函數時&#xff0c;就調…

php定義數據表類,phpwind中的數據庫操作類

phpwind中的數據庫操作類2021-01-22 20:12:15141/*來源&#xff1a;phpwind.net*/ClassDB{var$query_num0;functionDB($dbhost,$dbuser,$dbpw,$dbname,$pconnect0){$this->connect($dbhost,$dbuser,$dbpw,$dbname,$pconnect);}functionconnect($dbhost,$dbuser,$dbpw,$dbnam…

渦輪機葉片matlab強度分析論文,一種基于MATLAB及Pro_E的渦輪建模方法

自動化與控制與二一種基于&#xff2d;&#xff21;&#xff34;&#xff2c;&#xff21;&#xff22;及&#xff30;&#xff52;&#xff4f;&#xff0f;&#xff25;的渦輪建模方法王智明(中海油服油田技術事業部北京&#xff11;&#xff10;&#xff11;&#xff11;&am…

基于matlab的傳熱學虛擬實驗開發,基于MATLAB的傳熱學課程虛擬實驗軟件的開發

215教育現代化2018 年 12 月第 49 期 教育信息技術 基于 MATLAB 的傳熱學課程虛擬實驗軟件的開發 周永利&#xff0c;李友榮&#xff0c;石萬元&#xff0c;張力元&#xff0c;楊晨&#xff0c;卞煜&#xff0c;王國強&#xff0c;李俊&#xff0c;包鍵 ( 重慶大學 低品位能源利…

java做 binggo,Linux啟動與停止spring boot工程的腳本示例

在springboot項目啟動有三種方式&#xff1a;1、運行主方法程序2、使用命令mvn spring-boot:run 在命令行運行3、使用 mvn packpage打包位jar文件以后&#xff0c;使用java -jar yourapp.jar命令行運行一般我們在開發的時候經常使用的是前面兩種運行方式&#xff0c;在部署實施…