

之前在論壇上看到樹莓派發(fā)布了自家的單片機,所以趕緊在某寶上下單入手了一塊樹莓派pico單片機最小系統(tǒng)板

放置了一段時間,正好這兩天有空翻出來點亮幾顆LED燈玩玩,其實兩年前我就用STM32的開發(fā)板玩了下Micropython,當然ESP32也可以用Micropython來開發(fā),還別說國外的這些哥們還真有意思,有事沒事往單片機上移植一些好玩的東西,我也是個喜歡品嘗“螃蟹”的人,經(jīng)常會買一些這個東西來耍耍。



簡簡單單開個箱
直接拿出核心板,盒子我就不拍出來了,免得有廣告嫌疑,采用這種包裝設(shè)計可以批量化項目生產(chǎn)的時候很方便,直接將這種板子上到貼片機上就可以焊接,不得不說很有前瞻性

引腳采用這種2.54mm的郵票孔和排針設(shè)計,可以作為貼片核心板用,也方便項目前期開發(fā)采用杜邦線連接,奈斯??

準備家伙,給它焊接上排針

焊接中...

焊接好后的效果


開始玩燈
先把環(huán)境搭建下...
三個LED燈分別連接到GPIO0,GPIO1,GPIO2上,將USB線連接到電腦上


樹莓派的官網(wǎng)有入門教程
https://www.raspberrypi.org/documentation/pico/getting-started/

1、下載“UF2”文件
2、按下板子上的按鍵,然后再將USB插入電腦,電腦里面就會出現(xiàn)一個120多M的"U盤"

3、我們將下載好的“UF2”文件拖進U盤里面,然后班子會自動重啟

4、重啟后我們在"設(shè)備管理器"里面可以找到該設(shè)備的串口端口,我的設(shè)備顯示的是“COM3”

5、我們打開“PuTTY”,選擇好端口和波特率,這里波特率是自適應(yīng)的,可以根據(jù)自己的需要選擇

5、我們打開“PuTTY”,選擇好端口和波特率,這里波特率是自適應(yīng)的,可以根據(jù)自己的需要選擇,打開后敲回車就可以看到這個符號“>>>”

6、我們用python來測試下,沒什么問題,工作都正常


編寫點燈測試代碼
>>> led = Pin(0, Pin.OUT)
>>> led.value(1)
>>> led.value(0)

這樣一行一行運行代碼肯定不是我們的目標,官方推薦使用Thonny進行Micropython開發(fā),我們一起來安裝下,下載比較緩慢...給大家附上百度下載鏈接
https://zhuanlan.zhihu.com/p/349712047/edit
百度鏈接: https://pan.baidu.com/link/zhihu/7hhHzNuahEi1bD9kNkRFlmNTbzNhB1TwdDhn==

安裝方式比較簡單就不介紹了,直接下一步,下一步就好了,簡單的設(shè)置好就可以開始干活了,一定要最新版安裝包的才有pico這個選項

在官方提供的文檔里面把代碼復(fù)制過來運行下

led = Pin(25, Pin.OUT)
tim = Timer()
def tick(timer):
global led
led.toggle()
tim.init(freq=2.5, mode=Timer.PERIODIC, callback=tick)
將文件保存到到pico里面,并寫好文件名

我們運行一下看下效果,這里用的是板載的LED燈,我們可以看到板子上的LED燈在閃爍

我們將LED燈改成我這邊搭建的,來看下效果
led0 = Pin(0, Pin.OUT)
led1 = Pin(1, Pin.OUT)
led2 = Pin(2, Pin.OUT)
tim = Timer()
def tick(timer):
global led0
global led1
global led2
led0.toggle()
led1.toggle()
led2.toggle()
tim.init(freq=2.5, mode=Timer.PERIODIC, callback=tick)

這塊板子的強悍的性能有很多可玩的地方,官方也提供了很多例子
比如說這個PWM呼吸燈例子
import time
from machine import Pin, PWM
# Construct PWM object, with LED on Pin(0).
pwm = PWM(Pin(0))
# Set the PWM frequency.
pwm.freq(1000)
# Fade the LED in and out a few times.
duty = 0
direction = 1
for _ in range(8 * 256):
duty += direction
if duty > 255:
duty = 255
direction = -1
elif duty < 0:
duty = 0
direction = 1
pwm.duty_u16(duty * duty)
time.sleep(0.001)


總結(jié):
1、pico只是眾多micropython支持的開發(fā)板中的一員,但是借助于樹莓派強大的生態(tài)以及這貨的價格,未來會在單片機圈掀起不小的波瀾
2、可能我們平時在項目中不一定會用到python方式的開發(fā),但是這玩意就像arduino一樣在我們項目初期的芯片選型以及快速驗證芯片功能確實有很好的一個效果
3、隨著micropython支持的芯片越來越多以及不斷完善的外設(shè)芯片庫,會得到越來越多的各行各業(yè)的項目開發(fā)者青睞,尤其是不想深入學習單片機,但是又想做點有趣的東西
4、期待國產(chǎn)的一些芯片支持arduino,micropython,先擁抱這個強大的生態(tài),然后在走上更高的臺階,國產(chǎn)RT-thread感覺做的不錯,點個贊??????