pinpong库示例——扩展库

原文:https://pinpong.readthedocs.io/zh_CN/latest/2.pinpong%E7%A4%BA%E4%BE%8B/index3.html

扩展库示例

2-05-lcd1602:1602显示屏

# -*- coding: UTF-8 -*-
#实验效果:I2C LCD1602控制
#接线:使用windows或linux电脑连接一块arduino主控板,LCD1602显示屏接到I2C口SCL及SDA
import time
from pinpong.board import Board
from pinpong.libs.lcd1602 import LCD1602_I2C #从libs中导入lcd1602_i2c库

Board("uno").begin()               #初始化,选择板型(uno、leonardo、xugu)和端口号,不输入端口号则进行自动识别
#Board("uno","COM36").begin()      #windows下指定端口初始化
#Board("uno","/dev/ttyACM0").begin() #linux下指定端口初始化
#Board("uno","/dev/cu.usbmodem14101").begin()   #mac下指定端口初始化

lcd = LCD1602_I2C(i2c_addr=0x20) #初始化LCD的I2C地址
print("I2C LCD1602 TEST...")

lcd.backlight(True)  #打开背光
lcd.clear()   #清屏

lcd.set_cursor(0,0)  #设置光标位置
lcd.print("Hello World") #显示 "Hello World",1602屏像素点少,不能显示汉字
lcd.set_cursor(1,1)  #设置光标位置
lcd.print(1234) #显示数字1234

while True:
    time.sleep(1)
    lcd.scroll_left() #滚动显示

2-06-oled12864:oled显示屏

# -*- coding: UTF-8 -*-
#实验效果:I2C OLED2864屏控制
#接线:使用windows或linux电脑连接一块arduino主控板,OLED2864显示屏接到I2C口SCL及SDA

import time
from pinpong.board import Board
from pinpong.libs.dfrobot_ssd1306 import SSD1306_I2C #导入ssd1306库

Board("uno").begin()               #初始化,选择板型(uno、leonardo、xugu)和端口号,不输入端口号则进行自动识别
#Board("uno","COM36").begin()      #windows下指定端口初始化
#Board("uno","/dev/ttyACM0").begin() #linux下指定端口初始化
#Board("uno","/dev/cu.usbmodem14101").begin()   #mac下指定端口初始化

oled=SSD1306_I2C(width=128, height=64) #初始化屏幕,传入屏幕像素点数


while True:
    oled.fill(1) #全部填充显示
    oled.show() #显示生效
    print("1")
    time.sleep(1)

    oled.fill(0) #全部填充熄灭,清屏
    oled.show() #显示生效
    print("0")
    time.sleep(1)

    oled.text("0") #显示数字
    oled.text("Hello PinPong",8,8) #指定位置显示文字
    oled.show()  #显示生效
    time.sleep(2)

3-01-tcs34725:颜色识别

# -*- coding: UTF-8 -*-
#实验效果:读取I2C TCS34725颜色传感器数值
#接线:使用windows或linux电脑连接一块arduino主控板,TCS34725颜色传感器接到I2C口SCL SDA

import time
from pinpong.board import Board
from pinpong.libs.dfrobot_tcs34725 import TCS34725 #从libs导入tcs34725库

Board("uno").begin()               #初始化,选择板型(uno、leonardo、xugu)和端口号,不输入端口号则进行自动识别
#Board("uno","COM36").begin()      #windows下指定端口初始化
#Board("uno","/dev/ttyACM0").begin() #linux下指定端口初始化
#Board("uno","/dev/cu.usbmodem14101").begin()   #mac下指定端口初始化

tcs = TCS34725() #传感器初始化

print("Color View Test!");
while True:
  if tcs.begin(): #查找传感器,读取到则返回True
    print("Found sensor")
    break #找到 跳出循环
  else:
    print("No TCS34725 found ... check your connections")
    time.sleep(1)

while True:
  r,g,b,c = tcs.get_rgbc() #获取rgbc数据
  print(r,g,b,c)
  print("C=%d\tR=%d\tG=%d\tB=%d\t"%(c,r,g,b))

  '''
  #数据转换
  r /= c
  g /= c
  b /= c
  r *= 256
  g *= 256
  b *= 256;
  print("------C=%d\tR=%d\tG=%d\tB=%d\t"%(c,r,g,b))
  '''
  time.sleep(1)

3-02-urm09:I2C超声波

# -*- coding: UTF-8 -*-
#实验效果:读取I2C 超声波传感器(URM09)数值
#接线:使用windows或linux电脑连接一块arduino主控板,URM09传感器接到I2C口SCL SDA
import time
from pinpong.board import Board
from pinpong.libs.dfrobot_urm09 import URM09 #从libs中导入URM09库

Board("uno").begin()               #初始化,选择板型(uno、leonardo、xugu)和端口号,不输入端口号则进行自动识别
#Board("uno","COM36").begin()      #windows下指定端口初始化
#Board("uno","/dev/ttyACM0").begin() #linux下指定端口初始化
#Board("uno","/dev/cu.usbmodem14101").begin()   #mac下指定端口初始化

urm = URM09(i2c_addr=0x11) #初始化传感器,设置I2C地址
urm.set_mode_range(urm._MEASURE_MODE_AUTOMATIC ,urm._MEASURE_RANG_500) #设置URM09模式为自动检测,最大测量距离500cm

while True:
  dist = urm.distance_cm() #读取距离数据,单位厘米(cm)
  temp = urm.temp_c() #读取传感器温度,单位摄氏度(℃)

  print("Distance is %d cm         "%dist)
  print("Temperature is %.2f .c    "%temp)
  time.sleep(0.5)

3-03-rgb1602:彩色1602屏

# -*- coding: UTF-8 -*-
#实验效果:控制I2C RGB彩色LCD1602液晶屏幕
#接线:使用windows或linux电脑连接一块arduino主控板,LCD1602接到I2C口SCL SDA

import time
from pinpong.board import Board
from pinpong.libs.rgb1602 import RGB1602 #从libs导入rgb1602库

Board("uno").begin()               #初始化,选择板型(uno、leonardo、xugu)和端口号,不输入端口号则进行自动识别
#Board("uno","COM36").begin()      #windows下指定端口初始化
#Board("uno","/dev/ttyACM0").begin() #linux下指定端口初始化
#Board("uno","/dev/cu.usbmodem14101").begin()   #mac下指定端口初始化

lcd = RGB1602()

print("I2C RGB1602 TEST...")

lcd.set_rgb(0,50,0);       #设置RGB值
lcd.set_cursor(0,0)                 #设置光标到原点
lcd.print("PinPong")       #显示 "PinPong"

lcd.set_cursor(1,1)        #设置光标位置
lcd.print(1234)            #显示数字

while True:
    time.sleep(1)
    lcd.scroll_left()           #滚动显示

3-04-mlx90614:红外测温

# -*- coding: UTF-8 -*-
#实验效果:读取I2C MLX90614远红外测温传感器
#接线:使用windows或linux电脑连接一块arduino主控板,红外测温传感器接到I2C口SCL SDA

import time
from pinpong.board import Board
from pinpong.libs.dfrobot_mlx90614 import MLX90614 #从libs导入mlx90614库

Board("uno").begin()               #初始化,选择板型(uno、leonardo、xugu)和端口号,不输入端口号则进行自动识别
#Board("uno","COM36").begin()      #windows下指定端口初始化
#Board("uno","/dev/ttyACM0").begin() #linux下指定端口初始化
#Board("uno","/dev/cu.usbmodem14101").begin()   #mac下指定端口初始化

irt=MLX90614()

while True:
  print("Object  %s *C"% irt.obj_temp_c())     #读取物体温度 摄氏度(℃)
  print("Object  %s *F"% irt.obj_temp_f())     #读取物体温度 华氏度(℉)
  print("Ambient %s *C"% irt.env_temp_c())     #读取环境温度 摄氏度(℃)
  print("Ambient %s *F"% irt.env_temp_f())     #读取环境温度 华氏度(℉)
  print() #空行
  time.sleep(1)

3-05-PN532:NFC近场通讯模块

# -*- coding: utf-8 -*-
#实验效果:NFC近场通讯模块 IIC读取卡片信息
#接线:使用windows或linux电脑连接一块arduino主控板,NFC近场通讯模块接到I2C口SCL SDA
import time
from pinpong.board import Board
from pinpong.libs.dfrobot_pn532 import PN532

Board("uno").begin()  #初始化,选择板型和端口号,不输入端口号则进行自动识别
#Board("uno","COM36").begin()  #windows下指定端口初始化
#Board("uno","/dev/ttyACM0").begin()   #linux下指定端口初始化
#Board("uno","/dev/cu.usbmodem14101").begin()   #mac下指定端口初始化

nfc = PN532()

while not nfc.begin():
  print("initial failure")
  time.sleep(1)
print("Please place the info card/tag on module..... ")

while True:
  if nfc.scan():
    info = nfc.get_information()
    if info != None:
      print("----------------NFC card/tag information-------------------")
      print("UID Lenght: %d"%info.lenght)
      print("UID: %x %x %x %x"%(info.uid[0],info.uid[1],info.uid[2],info.uid[3] ))
      print("AQTA: %x %x"%(info.AQTA[0], info.AQTA[0]))
      print("SAK: 0x%x"%(info.sak))
      print("Type: %s"%(info.types))
      print("Manu facturer: %s"%(info.manu))
      print("RF Technology: %s"%(info.RF))
      print("Memory Size: %d bytes(total)/%d bytes(available)"%(info.size_total, info.size_available))
      print("Block/Page Size: %d bytes"%(info.block))
      print("Number of Blocks/pages: %d"%(info.num_block))
  time.sleep(1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值