- 2024-09-29
-
回复了主题帖:
【Follow me第二季第1期】任务汇总贴
Jacktang 发表于 2024-9-28 07:50
CircuitPython开发环境的搭建是技术活
还好,其实我更想用图形的,只是模块还少了点
- 2024-09-26
-
发表了主题帖:
【Follow me第二季第1期】任务汇总贴
本帖最后由 29447945 于 2024-10-9 10:15 编辑
# 【Follow me第二季第1期】任务汇总贴
很高心能参加本次EE论坛的Follow me第二季第1期活动,本次我使用的开发板是Adafruit Circuit Playground Express开发板,Adafruit Circuit Playground Express是一款功能丰富的开发板,专为教育和爱好者设计。它集成了多种传感器和LED灯,支持MicroPython编程语言,使得编程变得简单直观。MicroPython是一种轻量级的Python实现,专为微控制器和开发板设计,它简化了编程过程,允许用户快速上手。通过MicroPython,可以轻松控制开发板上的传感器,如光敏电阻、温度传感器和加速度计,以及实现LED灯的控制和动画效果。此外,它还支持蓝牙,可以无线连接到电脑或手机进行编程,非常适合初学者和中级开发者进行项目开发和原型设计。
**各任务贴链接 **
[入门任务(必做):开发环境搭建](http://【Follow me第二季第1期】入门任务(必做):开发环境搭建,板载LED点亮 https://bbs.eeworld.com.cn/thread-1292160-1-1.html "入门任务(必做):开发环境搭建")
[基础任务一(必做):控制板载炫彩LED](http://【Follow me第二季第1期】基础任务一(必做):控制板载炫彩LED,跑马灯点亮和颜色... https://bbs.eeworld.com.cn/thread-1292162-1-1.html "基础任务一(必做):控制板载炫彩LED")
[基础任务二(必做):监测环境温度和光线](http://【Follow me第二季第1期】基础任务二(必做):监测环境温度和光线,通过板载LED展... https://bbs.eeworld.com.cn/thread-1292164-1-1.html "基础任务二(必做):监测环境温度和光线")
[基础任务三(必做):接近检测](http://【Follow me第二季第1期】基础任务三(必做):接近检测 https://bbs.eeworld.com.cn/thread-1292167-1-1.html "基础任务三(必做):接近检测")
[制作不倒翁](http://【Follow me第二季第1期】制作不倒翁——展示不倒翁运动过程中的不同灯光效果 https://bbs.eeworld.com.cn/thread-1292169-1-1.html "制作不倒翁")
[章鱼哥](http://【Follow me第二季第1期】章鱼哥——声音章鱼哥 https://bbs.eeworld.com.cn/thread-1292208-1-1.html "章鱼哥")
# 演示视频
[localvideo]eb1dc752fa08eaf0d40ccb3bcdf581f4[/localvideo]
# 任务展示
## 1.开发环境搭建
Adafruit Circuit Playground Express也支持多种开发环境,其中包括图形化编程MakeCode、Circuit Python和Arduino IDE,这里我就介绍一下MakeCode和Circuit Python环境的搭建;
1.首先MakeCode是最方便的,直接打开网页https://makecode.adafruit.com/(这里也可以用微软的https://makecode.microbit.org/,微软的同理),点击新建工程:
2.根据自己的需求拖拉图形化模块;
3.我这里简单演示一下跑马灯模块,拖入现场的跑拉灯,如下图,这时左边就会模拟板子上的运行状况,很方便;
4.符合我们需求后,下载固件,然后放到板子虚拟出来的磁盘中;
5.下载固件时也会提示步骤,如下图;
对与MakeCode这一套编程几乎可以说是完全不用什么基础,适合小朋友入门编程学习,不过现有模块有限,要利用板子更多资源和模块,还是相对较难;
接下来介绍一下第二个开发环境搭建,Circuit Python
这里我选用MU编辑器,可以直接下载和查看串口:
1.安装 Mu 编辑器
Mu 是一个简单的代码编辑器,它是用 Python 编写的,适用于 Windows、MacOS、Linux 和 Raspberry Pi。串行控制台是内置的,因此可以立即从电路板的串行输出中获得调试信息!
2.下载板子对应的固件,官网是:https://circuitpython.org/downloads
3.把固件下载板子上,然后下载重启后磁盘就会默认有以下文件;
其中lib可以存放库文件,code.py就是我们编写代码的文件,编写后直接保存,开发板就会执行代码;
测试一下根据我们触摸引脚点灯和打印:
板子运行如图
## 2.控制板载炫彩LED
我们上一节讲到了CircuitPython开发环境的搭建,这一节我们实现点灯;
首先开发板通过USB连接我们电脑,我这里使用MU编辑器打开我们的code.py代码,打开后根据需求编写代码:
```python
import board
import neopixel
import time
pixels = neopixel.NeoPixel(board.NEOPIXEL, 10, brightness=0.2)
pixels.fill((0, 0, 0))
while True:
# 跑马灯效果
for i in range(10):
pixels.fill((0, 0, 0)) # 先清空所有LED
pixels = (0, 150, 150) # 点亮第i个LED
pixels.show()
time.sleep(0.2)
# 颜色变换
for i in range(10):
pixels = (255, 0, 0) # 红色
pixels.show()
time.sleep(0.2)
pixels = (0, 255, 0) # 绿色
pixels.show()
time.sleep(0.2)
pixels = (0, 0, 255) # 蓝色
pixels.show()
time.sleep(0.2)
```
这里就是控制所有的灯都亮以及颜色变化等效果,相对也比较简单,我们看一下板子上的效果
LED灯随着时间变化
## 3.监测环境温度和光线
Adafruit Circuit Playground Express(CPX)是一款功能丰富的开发板,它集成了多种传感器和可编程LED,非常适合用于教育、原型设计和各种有趣的电子项目。以下是CPX的一些主要硬件资源:
微控制器:CPX基于Adafruit的定制版ATmega32U4芯片,这是一个32位AVR微控制器,运行频率高达16MHz,拥有3.5 KB的SRAM和32 KB的闪存。
板载传感器:
加速度计/陀螺仪:MPU-9250,用于检测运动和方向。
光传感器:用于检测环境光线强度。
温度传感器:用于测量环境温度。
触摸传感器:10个可编程触摸点,分布在板上。
LED:
霓虹灯:10个可编程的NEOPixel RGB LED,可以通过编程显示不同的颜色和模式。
红色LED:一个红色的LED,可通过编程控制。
音频:
扬声器:一个小型扬声器,可以播放声音和音乐。
麦克风:一个小型麦克风,可以捕捉声音。
输入/输出:
按钮:两个可编程按钮,用于接收用户输入。
触摸传感器:10个触摸传感器,可以检测触摸。
通信接口:
USB:用于编程和供电。
I2C:用于与I2C设备通信。
SPI:用于与SPI设备通信。
这一节我们讲解一下 温度和光线传感器的使用;
```python
import time
from adafruit_circuitplayground import cp
while True:
light = cp.light
tempC = cp.temperature
print("Light:", light)
print("Temperature C:", tempC)
if tempC > 25 and tempC < 32:
cp.pixels[0] = (0, 255, 0) # 绿色表示舒适
elif tempC < 15 or tempC > 32:
cp.pixels[0] = (255, 0, 0) # 红色表示不舒适
else:
cp.pixels[0] = (255, 255, 0) # 黄色表示一般
cp.pixels.show()
time.sleep(1)
```
这里我们使用温度来控制一个led灯,25-32绿色,小于15或者大于32红色,其他黄色;
温度和光照值我们也通过串口打印如下;
这里温度低于25-32时:
用手触摸时:
## 4.接近检测
上一节我们讲到了板子的温度传感器和光照传感器,这一节我们讲解接近检测;
这里我们使用超声波测距模块,具体工作原理是:
工作原理
(1)采用 IO 口 TRIG 触发测距,给最少 10us 的高电平。
(2)模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回;
(3)有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。
测试距离=(高电平时间*声速(340M/S))/2;
超声波传感器时序图
通过时序图可知,只需要提供一个 10uS 以上脉冲触发信号,该模块内部将发出 8 个 40kHz 周期电平并检测回波。一旦检测到有回波信号则输出回响号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。
公式:1、uS/58=厘米;
2、uS/148=英寸;
3、距离= 高电平时间*声速(340M/S)/2。
建议测量周期为 60ms 以上,以防止发射信号对回响信号的影响。
这里测量精度很大程度取决于python的时间模块,所以精度不是很高;
这里如果距离小于30报警,小于60警告,大于就不报警,颜色用红色、黄色和绿色表示,报警和警告有声音提示;
```python
import board,digitalio
import time
from adafruit_circuitplayground import cp
Trig = digitalio.DigitalInOut(board.A2)
Echo = digitalio.DigitalInOut(board.A3)
Trig.switch_to_output()
def get_distance():
Trig.value = True
time.sleep(0.00002)
Trig.value = False
while Echo.value == False:
pass
start = time.monotonic()
while Echo.value == True:
pass
end = time.monotonic()
up_time = end - start
dis = up_time * 340/2
return dis
while True:
distance = get_distance()*100
print("distance:", distance)
if distance < 30:
cp.pixels[0] = (255, 0, 0) # 红色表示危险
cp.start_tone(294)
time.sleep(0.5)
cp.stop_tone()
elif distance < 60:
cp.pixels[0] = (255, 255, 0) # 黄色表示警告
cp.start_tone(128)
time.sleep(0.5)
cp.stop_tone()
else :
cp.pixels[0] = (0, 255, 0) # 绿色表示安全
time.sleep(1)
```
最后效果如下
[localvideo]d147bebe08629b26c969fcdb60101d75[/localvideo]
## 5.制作不倒翁
上一节我们使用超声波做了接近检测,这一节我们使用运动传感器制作不倒翁效果;
这一节用到的传感器是LIS3DH; 是一款由 STMicroelectronics 生产的超小型、高性能、低功耗的 3 轴加速度计。它能够检测和测量 x、y 和 z 轴上的加速度,即设备在这三个方向上的运动和方向变化。
这里运动传感器获取xyz轴数据,然后根据数据来控制不同的led颜色;具体代码如下
```python
# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
# SPDX-License-Identifier: MIT
import time
from adafruit_circuitplayground import cp
cp.pixels.brightness = 0.2 # Adjust overall brightness as desired, between 0 and 1
def color_amount(accel_component):
"""Convert acceleration component (x, y, or z) to color amount (r, g, or b)"""
standard_gravity = 9.81 # Acceleration (m/s²) due to gravity at the earth’s surface
accel_magnitude = abs(accel_component) # Ignore the direction
constrained_accel = min(accel_magnitude, standard_gravity) # Constrain values
normalized_accel = constrained_accel / standard_gravity # Convert to 0–1
return round(normalized_accel * 255) # Convert to 0–255
def format_acceleration():
return ", ".join(("{:>6.2f}".format(axis_value) for axis_value in acceleration))
def format_rgb():
return ", ".join(("{:>3d}".format(rgb_amount) for rgb_amount in rgb_amounts))
def log_values():
print("({}) ==> ({})".format(format_acceleration(), format_rgb()))
while True:
acceleration = cp.acceleration
rgb_amounts = [color_amount(axis_value) for axis_value in acceleration]
cp.pixels.fill(rgb_amounts)
log_values()
time.sleep(0.1)
```
打印数据如下:
用手旋转灯光颜色变化
## 6.章鱼哥
本次任务要实现的是根据环境声音大小来控制舵机转动,这里使用了Adafruit Circuit Playground Express开发板板载的麦克风传感器,用于采集声音,外加舵机模块FS90R,模拟章鱼的触角,同时搭配开发板板载的led显示状态。
具体流程图如下
这里主要用了麦克风和舵机以及板子led灯模块;其中舵机模块主要通过PWM信号控制转动,这里我使用A2引脚控制,两个api分别操作点击正转和反转;其次是麦克风模块,我们使用一个数组缓存麦克风数据,每隔0.2s采集一次麦克风数据,采集到数据后通过计算得到功率值,功率如果连续5次大于200,启动舵机正转,模拟章鱼触手收缩,并同时led显示红色;如果连续5次小于200,则任务安全,启动舵机反转,模拟章鱼触手恢复,led同时显示绿色。
代码如下:
```python
import time
import board
import digitalio
import audiobusio
import array
import math
from adafruit_circuitplayground import cp
# 创建一个数字输出引脚
pin = digitalio.DigitalInOut(board.A2)
# 设置引脚为输出模式
pin.switch_to_output()
cp.pixels.brightness = 0.3
mic = audiobusio.PDMIn(board.MICROPHONE_CLOCK, board.MICROPHONE_DATA, sample_rate=16000, bit_depth=16)
array_data = array.array("H", [0] * 320)
def monitor_up():
duty_cycle = 0.07
frequency = 0.05 # 频率 20 Hz
for i in range(10):
pin.value = True
time.sleep(frequency * duty_cycle) # 打开时间
pin.value = False
time.sleep(frequency * (1 - duty_cycle)) # 关闭时间
time.sleep(1)
def monitor_down():
duty_cycle = 0.01
frequency = 0.05 # 频率 20 Hz
for i in range(10):
pin.value = True
time.sleep(frequency * duty_cycle) # 打开时间
pin.value = False
time.sleep(frequency * (1 - duty_cycle)) # 关闭时间
time.sleep(1)
flag = False
l_cnt = 0
h_cnt = 0
while True:
mic.record(array_data, len(array_data))
avr= int( sum(array_data) / len(array_data) )
power = sum([ float(wav_data - avr) * (wav_data - avr) for wav_data in array_data] )
sound = math.sqrt(power / len(array_data))
print(sound)
if sound > 200:
h_cnt = h_cnt +1
l_cnt = 0
if h_cnt >=5:
cp.pixels.fill((255, 0, 0))
if flag == False:
monitor_up()
flag = True
else:
l_cnt = l_cnt +1
h_cnt = 0
if l_cnt >=5:
cp.pixels.fill((0, 255, 0))
if flag == True:
monitor_down()
flag = False
time.sleep(0.2)
```
最后演示效果如下:
[localvideo]bf9726075f07887dcf0c7b4f79cf65d2[/localvideo]
# 总结
最后本次这个开发板资源很丰富,编程也很简单,特别是makecode编程,基本上是0基础可以用,后续用于小朋友编程很合适,所以后续准备使用这个板子和小朋友一起来完成上述任务,届时再来和大家分享,感谢EE,感谢得捷电子
# 附件
本次活动所有[[源码]](https://download.eeworld.com.cn/detail/29447945/634521 "[源码]")
-
上传了资料:
【Follow me第二季第1期】-任务代码(Adafruit Circuit Playground Express开发板)
- 2024-09-03
-
回复了主题帖:
【Follow me第二季第1期】基础任务三(必做):接近检测
秦天qintian0303 发表于 2024-9-2 12:02
这才是接近检测的正确打开方式
用模块还是比较方便
- 2024-09-01
-
加入了学习《【Follow me第二季第1期】章鱼哥——声音章鱼哥》,观看 【Follow me第二季第1期】章鱼哥——声音章鱼哥
-
发表了主题帖:
【Follow me第二季第1期】章鱼哥——声音章鱼哥
本帖最后由 29447945 于 2024-9-26 23:22 编辑
# 【Follow me第二季第1期】章鱼哥——声音章鱼哥
## 1.任务介绍
本次任务要实现的是根据环境声音大小来控制舵机转动,这里使用了Adafruit Circuit Playground Express开发板板载的麦克风传感器,用于采集声音,外加舵机模块FS90R,模拟章鱼的触角,同时搭配开发板板载的led显示状态。
## 2.软件流程图
## 3.任务代码
这里主要用了麦克风和舵机以及板子led灯模块;其中舵机模块主要通过PWM信号控制转动,这里我使用A2引脚控制,两个api分别操作点击正转和反转;其次是麦克风模块,我们使用一个数组缓存麦克风数据,每隔0.2s采集一次麦克风数据,采集到数据后通过计算得到功率值,功率如果连续5次大于200,启动舵机正转,模拟章鱼触手收缩,并同时led显示红色;如果连续5次小于200,则任务安全,启动舵机反转,模拟章鱼触手恢复,led同时显示绿色。
import time
import board
import digitalio
import audiobusio
import array
import math
from adafruit_circuitplayground import cp
# 创建一个数字输出引脚
pin = digitalio.DigitalInOut(board.A2)
# 设置引脚为输出模式
pin.switch_to_output()
cp.pixels.brightness = 0.3
mic = audiobusio.PDMIn(board.MICROPHONE_CLOCK, board.MICROPHONE_DATA, sample_rate=16000, bit_depth=16)
array_data = array.array("H", [0] * 320)
def monitor_up():
duty_cycle = 0.07
frequency = 0.05 # 频率 20 Hz
for i in range(10):
pin.value = True
time.sleep(frequency * duty_cycle) # 打开时间
pin.value = False
time.sleep(frequency * (1 - duty_cycle)) # 关闭时间
time.sleep(1)
def monitor_down():
duty_cycle = 0.01
frequency = 0.05 # 频率 20 Hz
for i in range(10):
pin.value = True
time.sleep(frequency * duty_cycle) # 打开时间
pin.value = False
time.sleep(frequency * (1 - duty_cycle)) # 关闭时间
time.sleep(1)
flag = False
l_cnt = 0
h_cnt = 0
while True:
mic.record(array_data, len(array_data))
avr= int( sum(array_data) / len(array_data) )
power = sum([ float(wav_data - avr) * (wav_data - avr) for wav_data in array_data] )
sound = math.sqrt(power / len(array_data))
print(sound)
if sound > 200:
h_cnt = h_cnt +1
l_cnt = 0
if h_cnt >=5:
cp.pixels.fill((255, 0, 0))
if flag == False:
monitor_up()
flag = True
else:
l_cnt = l_cnt +1
h_cnt = 0
if l_cnt >=5:
cp.pixels.fill((0, 255, 0))
if flag == True:
monitor_down()
flag = False
time.sleep(0.2)
所有任务代码压缩包:源码下载
## 4.总结
最后本次这个开发板资源很丰富,编程也很简单,特别是makecode编程,基本上是0基础可以用,后续用于小朋友编程很合适,所以后续准备使用这个板子和小朋友一起来完成上述任务,届时再来和大家分享,感谢EE,感谢DigiKey
##5.演示视频
[localvideo]de0fec80bb0ffbd687d735121ab32a3f[/localvideo]
-
加入了学习《Follow me第二季第1期》,观看 创意任务二:章鱼哥
-
发表了主题帖:
【Follow me第二季第1期】制作不倒翁——展示不倒翁运动过程中的不同灯光效果
本帖最后由 29447945 于 2024-9-1 17:45 编辑
上一节我们使用超声波做了接近检测,这一节我们使用运动传感器制作不倒翁效果;
这一节用到的传感器是LIS3DH; 是一款由 STMicroelectronics 生产的超小型、高性能、低功耗的 3 轴加速度计。它能够检测和测量 x、y 和 z 轴上的加速度,即设备在这三个方向上的运动和方向变化。
这里运动传感器获取xyz轴数据,然后根据数据来控制不同的led颜色;
# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
# SPDX-License-Identifier: MIT
import time
from adafruit_circuitplayground import cp
cp.pixels.brightness = 0.2 # Adjust overall brightness as desired, between 0 and 1
def color_amount(accel_component):
"""Convert acceleration component (x, y, or z) to color amount (r, g, or b)"""
standard_gravity = 9.81 # Acceleration (m/s²) due to gravity at the earth’s surface
accel_magnitude = abs(accel_component) # Ignore the direction
constrained_accel = min(accel_magnitude, standard_gravity) # Constrain values
normalized_accel = constrained_accel / standard_gravity # Convert to 0–1
return round(normalized_accel * 255) # Convert to 0–255
def format_acceleration():
return ", ".join(("{:>6.2f}".format(axis_value) for axis_value in acceleration))
def format_rgb():
return ", ".join(("{:>3d}".format(rgb_amount) for rgb_amount in rgb_amounts))
def log_values():
print("({}) ==> ({})".format(format_acceleration(), format_rgb()))
while True:
acceleration = cp.acceleration
rgb_amounts = [color_amount(axis_value) for axis_value in acceleration]
cp.pixels.fill(rgb_amounts)
log_values()
time.sleep(0.1)
这里打印数据如下:
实际效果如下:[localvideo]3b3a080ff55f5f01d57f8a82c5bfebc8[/localvideo]
-
发表了主题帖:
【Follow me第二季第1期】基础任务三(必做):接近检测
本帖最后由 29447945 于 2024-9-1 17:45 编辑
上一节我们讲到了板子的温度传感器和光照传感器,这一节我们讲解接近检测;
这里我们使用超声波测距模块,具体工作原理是:
工作原理
(1)采用 IO 口 TRIG 触发测距,给最少 10us 的高电平。
(2)模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回;
(3)有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。
测试距离=(高电平时间*声速(340M/S))/2;
超声波传感器时序图
通过时序图可知,只需要提供一个 10uS 以上脉冲触发信号,该模块内部将发出 8 个 40kHz 周期电平并检测回波。一旦检测到有回波信号则输出回响号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。
公式:1、uS/58=厘米;
2、uS/148=英寸;
3、距离= 高电平时间*声速(340M/S)/2。
建议测量周期为 60ms 以上,以防止发射信号对回响信号的影响。
这里测量精度很大程度取决于python的时间模块,所以精度不是很高;
这里如果距离小于30报警,小于60警告,大于就不报警,颜色用红色、黄色和绿色表示,报警和警告有声音提示;
import board,digitalio
import time
from adafruit_circuitplayground import cp
Trig = digitalio.DigitalInOut(board.A2)
Echo = digitalio.DigitalInOut(board.A3)
Trig.switch_to_output()
def get_distance():
Trig.value = True
time.sleep(0.00002)
Trig.value = False
while Echo.value == False:
pass
start = time.monotonic()
while Echo.value == True:
pass
end = time.monotonic()
up_time = end - start
dis = up_time * 340/2
return dis
while True:
distance = get_distance()*100
print("distance:", distance)
if distance < 30:
cp.pixels[0] = (255, 0, 0) # 红色表示危险
cp.start_tone(294)
time.sleep(0.5)
cp.stop_tone()
elif distance < 60:
cp.pixels[0] = (255, 255, 0) # 黄色表示警告
cp.start_tone(128)
time.sleep(0.5)
cp.stop_tone()
else :
cp.pixels[0] = (0, 255, 0) # 绿色表示安全
time.sleep(1)
最后效果如下:
[localvideo]20726d52d68c9c0c9ebec7bd9d4e50fc[/localvideo]
-
加入了学习《Follow me第二季第1期》,观看 基础任务三(必做):接近检测
-
发表了主题帖:
【Follow me第二季第1期】基础任务二(必做):监测环境温度和光线,通过板载LED展...
本帖最后由 29447945 于 2024-9-1 17:46 编辑
Adafruit Circuit Playground Express(CPX)是一款功能丰富的开发板,它集成了多种传感器和可编程LED,非常适合用于教育、原型设计和各种有趣的电子项目。以下是CPX的一些主要硬件资源:
微控制器:CPX基于Adafruit的定制版ATmega32U4芯片,这是一个32位AVR微控制器,运行频率高达16MHz,拥有3.5 KB的SRAM和32 KB的闪存。
板载传感器:
加速度计/陀螺仪:MPU-9250,用于检测运动和方向。
光传感器:用于检测环境光线强度。
温度传感器:用于测量环境温度。
触摸传感器:10个可编程触摸点,分布在板上。
LED:
霓虹灯:10个可编程的NEOPixel RGB LED,可以通过编程显示不同的颜色和模式。
红色LED:一个红色的LED,可通过编程控制。
音频:
扬声器:一个小型扬声器,可以播放声音和音乐。
麦克风:一个小型麦克风,可以捕捉声音。
输入/输出:
按钮:两个可编程按钮,用于接收用户输入。
触摸传感器:10个触摸传感器,可以检测触摸。
通信接口:
USB:用于编程和供电。
I2C:用于与I2C设备通信。
SPI:用于与SPI设备通信。
这一节我们讲解一下 温度和光线传感器的使用;
import time
from adafruit_circuitplayground import cp
while True:
light = cp.light
tempC = cp.temperature
print("Light:", light)
print("Temperature C:", tempC)
if tempC > 25 and tempC < 32:
cp.pixels[0] = (0, 255, 0) # 绿色表示舒适
elif tempC < 15 or tempC > 32:
cp.pixels[0] = (255, 0, 0) # 红色表示不舒适
else:
cp.pixels[0] = (255, 255, 0) # 黄色表示一般
cp.pixels.show()
time.sleep(1)
这里我们使用温度来控制一个led灯,25-32绿色,小于15或者大于32红色,其他黄色;
温度和光照值我们也通过串口打印如下;
板子上运行后,我们手触摸温度传感器后效果如下图:
[localvideo]2cbf0d5be50a11f33bb9b2fe6efb1b79[/localvideo]
-
发表了主题帖:
【Follow me第二季第1期】基础任务一(必做):控制板载炫彩LED,跑马灯点亮和颜色...
本帖最后由 29447945 于 2024-9-1 17:46 编辑
我们上一节讲到了CircuitPython开发环境的搭建,这一节我们实现点灯;
首先开发板通过USB连接我们电脑,我这里使用MU编辑器打开我们的code.py代码,打开后根据需求编写代码:
import board
import neopixel
import time
pixels = neopixel.NeoPixel(board.NEOPIXEL, 10, brightness=0.2)
pixels.fill((0, 0, 0))
while True:
# 跑马灯效果
for i in range(10):
pixels.fill((0, 0, 0)) # 先清空所有LED
pixels[i] = (0, 150, 150) # 点亮第i个LED
pixels.show()
time.sleep(0.2)
# 颜色变换
for i in range(10):
pixels[i] = (255, 0, 0) # 红色
pixels.show()
time.sleep(0.2)
pixels[i] = (0, 255, 0) # 绿色
pixels.show()
time.sleep(0.2)
pixels[i] = (0, 0, 255) # 蓝色
pixels.show()
time.sleep(0.2)
这里就是控制所有的灯都亮以及颜色变化等效果,相对也比较简单,我们看一下板子上的效果
[localvideo]fd2cf63de44fa31a06bd917426983d34[/localvideo]
-
发表了主题帖:
【Follow me第二季第1期】入门任务(必做):开发环境搭建,板载LED点亮
本帖最后由 29447945 于 2024-9-1 17:46 编辑
首先简单介绍一下Adafruit Circuit Playground Express板子,是一款由Adafruit Industries生产的电子套件,它是一个面向教育和爱好者的可编程电路板,特别适合初学者和中级用户。以下是它的一些主要特点:
集成传感器:CPX集成了多种传感器,如光传感器、温度传感器、加速度计和陀螺仪等,这些传感器可以用于检测环境条件或用户输入。
LED灯:板上有10个可编程的LED灯,可以用来显示信息或创建视觉效果。
按钮:CPX上有多个按钮,可以用来接收用户输入。
音频输出:它有一个小型扬声器,可以播放声音或音乐。
可编程:CPX支持多种编程语言和平台,如Arduino、MicroPython等,用户可以通过编写代码来控制板上的各种功能。
USB编程:通过USB接口,可以直接与计算机连接,进行编程和上传代码。
低功耗:CPX设计为低功耗设备,适合电池供电的应用。
小巧便携:它的尺寸小巧,便于携带和集成到各种项目中。
教育友好:CPX是为教育环境设计的,适合用于教学和学习电子和编程。
Adafruit Circuit Playground Express也支持多种开发环境,其中包括图形化编程MakeCode、Circuit Python和Arduino IDE,这里我就介绍一下MakeCode和Circuit Python环境的搭建;
1.首先MakeCode是最方便的,直接打开网页https://makecode.adafruit.com/(这里也可以用微软的https://makecode.microbit.org/,微软的同理),点击新建工程:
2.根据自己的需求拖拉图形化模块; 3.我这里简单演示一下跑马灯模块,拖入现场的跑拉灯,如下图,这时左边就会模拟板子上的运行状况,很方便;
4.符合我们需求后,下载固件,然后放到板子虚拟出来的磁盘中;
5.下载固件时也会提示步骤,如下图;
对与MakeCode这一套编程几乎可以说是完全不用什么基础,适合小朋友入门编程学习,不过现有模块有限,要利用板子更多资源和模块,还是相对较难;
接下来介绍一下第二个开发环境搭建,Circuit Python
这里我选用MU编辑器,可以直接下载和查看串口:
1.
安装 Mu 编辑器
Mu 是一个简单的代码编辑器,它是用 Python 编写的,适用于 Windows、MacOS、Linux 和 Raspberry Pi。串行控制台是内置的,因此可以立即从电路板的串行输出中获得调试信息!
2.下载板子对应的固件,官网是:https://circuitpython.org/downloads
3.把固件下载板子上,然后下载重启后磁盘就会默认有以下文件;
其中lib可以存放库文件,code.py就是我们编写代码的文件,编写后直接保存,开发板就会执行代码;
测试一下根据我们触摸引脚点灯和打印:
板子如图;
到此就可以愉快的玩起来了。
- 2024-08-16
-
回复了主题帖:
>>征集 | 使用 MCU,哪些问题最令你头大?
在MCU的使用过程中遇到的问题:
首先是資料問題,任何一款MCU在使用過程中都會需要各種資料,比如芯片資料,應用資料等等,如果官方資料不齊或者獲取麻煩,或很大程度阻礙開發;其次是簡單易用,比如配套的開發工具,開發庫或者應用示例,這些可以加速工程師的設計開發,也就加快了產品上市。
- 2024-07-29
-
回复了主题帖:
【STM32H5开发板】第二帖 在stm32h563开发板移植rt-thread和zbar二维码识别库
Nancycolin 发表于 2024-5-14 14:18
如果要处理彩色图片是需要将,彩色图像转化位8位的灰度图像嘛
代码里面有灰度处理函数
- 2024-04-28
-
回复了主题帖:
妈耶,广州这冰雹
冰雹,龙卷风,都吓人
- 2024-04-09
-
回复了主题帖:
收徒
可能是有一本pdf名字叫《收徒》,贴了部门内容在下面,还是在找书
-
回复了主题帖:
管管我半夜修手机到1点,结果竟然是这样解决的....
重启可以决绝大部分问题,解决不了的就换机
- 2024-03-25
-
回复了主题帖:
演唱会抢票好难!!
long1 发表于 2024-3-25 10:56
试过了
也没抢到
没抢过演唱会,那就不清楚了
-
回复了主题帖:
演唱会抢票好难!!
应该写个python自动抢比较靠谱点吧