【得捷电子Follow me第1期】任务1到4加作品提交
[复制链接]
【得捷电子Follow me第1期】任务1到4加作品提交
总结视频 >> 点击观看
任务1:熟悉Thonny IDE的开发环境搭建和micropython的基本语法
这次Raspberry Pi Pico w的开发环境是基于Thonny。Thonny 是一个适合初学者的 Python IDE,它的调试器专为学习和教学编程而设计。它可以用于开发RP2040和ESP32等芯片。
收到板子后,我先进行了焊接安装,有一定的焊接经验很庆幸一次就完成,没出什么幺蛾子
板子焊接完成以后去官网下载了Mu Editor这个软件,然后为了一些精力去论坛找到了rp2-pico-w-20230426-v1.20.0 (2).uf2这个驱动,将驱动复制到Raspberry Pi Pico W,再打开Mu Editor就可以愉快的进行敲代码了
MicroPython使用了类似于Python的语法,但没有其更大的同类中所具有的额外特性的优势。例如,MicroPython无法访问 Python 可用的大量库。但MicroPython旨在运行在资源有限的硬件上,配备了一组核心库,提供一些基本功能,例如网络、文件 I/O 和有限的数据类型。总结一句话就是:与Python语法基本相同,调用库的话,最好调用MicroPython的。
任务2:驱动外设
LED灯闪烁
-
from machine import Pin
import time
led = Pin('LED',Pin.OUT)
while True:
led.toggle()
time.sleep(0.5)
2驱动OLED
使用ssd1306库
3驱动蜂鸣器
from machine import Pin, PWM
import utime
pwm0 = PWM(Pin(16)) # create PWM object from a pin
pwm0.freq() # get current frequency
pwm0.freq(1000) # set frequency
pwm0.duty_u16() # get current duty cycle, range 0-65535
pwm0.duty_u16(1000) # set duty cycle, range 0-65535
utime.sleep(1.0)
pwm0.deinit() # turn off PWM on the pin
任务3:同步网络时间
import time
import network
ssid = 'liang'
password = '12346789'
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, password)
max_wait = 10
while max_wait > 0:
if wlan.status() < 0 or wlan.status() >= 3:
break
max_wait -= 1
print('waiting for connection...')
time.sleep(1)
if wlan.status() != 3:
raise RuntimeError('network connection failed')
else:
print('connected')
status = wlan.ifconfig()
print( 'ip = ' + status[0] )
import ntptime
def sync_ntp():
ntptime.NTP_DELTA = 3155644800
ntptime.host = 'ntp1.aliyun.com'
ntptime.settime()
sync_ntp()
from machine import RTC
rtc = RTC()
print(rtc.datetime())
将示例代码中的ssid = 'liang'和password = '12346789'这两个参数改为家里2.4G赫兹的无线网的账号密码即可成功配对链接,刚开始家里的我无线网是5GHZ和2.4GHZ一体的,改了好久才把它们分开,把2.4的单分出来以后才连接成功
任务4:实现定位功能
import time
import network
ssid = 'liang'
password = '12346789'
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, password)
max_wait = 10
while max_wait > 0:
if wlan.status() < 0 or wlan.status() >= 3:
break
max_wait -= 1
print('waiting for connection...')
time.sleep(1)
if wlan.status() != 3:
raise RuntimeError('network connection failed')
else:
print('connected')
status = wlan.ifconfig()
print( 'ip = ' + status[0] )
import ntptime
def sync_ntp():
ntptime.NTP_DELTA = 3155644800
ntptime.host = 'ntp1.aliyun.com'
ntptime.settime()
sync_ntp()
from machine import RTC
rtc = RTC()
print(rtc.datetime())
在任务4中,我使用了GROVE - GPS扩展板来实现定位功能。通过学习GNSS模块的用法,我能够获取到当前的GPS坐标。
通过完成上述任务,我不仅熟悉了micropython的基本语法,还学会了使用外设和传感器来实现各种功能。我能够通过网络同步时间并获取GPS定位。同时,我还拓展了创意制作,实现了具有网络、显示和声音功能的项目。通过这些实践,我进一步提升了我的编程和创新能力
后续还准备用Raspberry Pi Pico W来做一款简易的温控器用在房车上,先获取车内的温度,然后根据预设温度调整风机档位的大小,还可以用来做房车的中控,通过蓝牙和WiFi控制继电器来控制车内的灯光音响热水器等一些设备,
|