菜单导航

行空板入门教程第二课:小小捕光仪

作者: 精装之家 来源: 精装之家 发布时间: 2022年04月05日 05:58:56

在日常生活中,光线的强弱对人类的情绪有着很大的影响。无论是积极还是消极的情绪,愈明亮的光线会让这种感情愈加剧。也正因此,书房、厨房等一些具有实用功能的家居环境,往往会采用较强光线的灯光,这样更能让人集中精神饱满的投入工作或家务。而卧室则适合较弱光线的灯光,给人一种温馨舒适的感觉,有助于身心放松。然而,仅凭主观的感受很难精准地判断光线强弱,那如何才能获悉环境光的大小,继而判断家庭中各个房间的灯光是否合理呢?

让我们利用行空板一起来制作一个捕光仪更好地了解房间的环境光强度吧!

任务目标

将通过光线传感器检测到的光线值显示在屏幕上,同时,将光线强弱平均划分为四个等级,并在强弱不同的环境光线下,显示不同亮度等级的小灯背景图。

行空板入门教程第二课:小小捕光仪

行空板入门教程第二课:小小捕光仪

行空板入门教程第二课:小小捕光仪

行空板入门教程第二课:小小捕光仪

知识点

1、认识光线传感器

2、认识Pinpong库

3、学习使用Pinpong库检测光线值的方法

4、学习使用unihiker库显示图片、切换文字及图片的方法

材料清单

硬件清单:

行空板入门教程第二课:小小捕光仪

行空板x1

行空板入门教程第二课:小小捕光仪

Type-C&Micro二合一USB线x1

软件使用:Mind+编程软件x1

知识储备

1、什么是光线传感器

光线传感器是一种能够将光信号转换成电信号的器件,可用于检测光线值,行空板的光线传感器是内置在板子上的,检测时返回的是一个模拟量,数值范围在0-4095,光线越亮数值越高,光线越暗数字越低。

2、什么是Pinpong库

通过Mind+软件我们可以使行空板与计算机连接起来,但如何才能控制行空板上的元器件运行起来呢?

这里我们需要使用Pinpong库。Pinpong库是一套控制开源硬件主控板的Python库,基于Firmata协议,5分钟即可让你上手使用Python控制开源硬件。其原理是给开源硬件烧录一个特定的固件,使开源硬件可以通过串口与电脑通讯,执行各种命令。

Pinpong库的名称由“Pin”和“Pong”组成,“Pin”指引脚,“Pinpong”为“乒乓球”的谐音,指信号的往复。

Pinpong库的设计,是为了让开发者在开发过程中不用被繁杂的硬件型号束缚,而将重点转移到软件的实现。哪怕程序编写初期用其他板子开发,部署时改成了行空板,只要修改一下硬件的参数就能正常运行,实现“一次编写处处运行”。

那么,行空板上的所有硬件都可以通过Pinpong库来控制吗?

事实上,行空板整体由一块单板机和单片机系统组成。单片机系统类似一块Arduino,板载的金手指、Gravity接口、I2C接口、按键、蜂鸣器、光线传感器、加速度计陀螺仪 都接在了单片机上,在使用时,可通过Pinpong库来控制。而单板机我们可以当作是一台小电脑,行空板上的触摸屏、USB口、麦克风、Home键等都是接在单板机上,类似于电脑上的显示屏、USB口、麦克风等,可通过Python库来控制。

3、Pinpong库导入方法及板子初始化

当我们使用Pinpong库控制行空板时,需要先初始化板子,而由于Pinpong库的“pinpong.board”包中已经提供了相应的Board类,因此我们需要从中先导入这个模块。同样的,为了能够控制行空板上各元器件,我们也需要导入“pinpong.extension.unihiker”这个包中的模块。

from pinpong.board import Board # 从pinpong.board包中导入Board模块

from pinpong.extension.unihiker import * # 导入pinpong.extension.unihiker包中所有模块

Board('UNIHIKER').begin() # 初始化,选择板型和端口号,不输入则进行自动识别

其中,在 Board('') 中输入主控板型号“UNIHIKER”,在 begin() 中输入主控板端口号,不输入型号和端口号则进行自动识别。

4、Pinpong库“light.read()”指令读取光线值

在初始化板子后,我们可通过Pinpong库中的“light.read()”指令读取光线值。

Light = light.read() # 读取光线值

其中,“light.read()”表示读取光线值,是固定用法,“Light”是一个变量,用来存储读取到的光线值。