29447945

  • 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自动抢比较靠谱点吧

统计信息

已有240人来访过

  • 芯积分:563
  • 好友:3
  • 主题:68
  • 回复:583

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言