在 raspberry pi pico 上体验 MicroPython
2021/6/11 12:24:17
本文主要是介绍在 raspberry pi pico 上体验 MicroPython,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
raspberry pi pico 官方提供 2 种开发方式,其中一种是使用 python3 开发,树莓派提供了 MicroPython 固件,把这个固件烧录进去,就可以 在 pico 上跑 python3 脚本。
1、MicroPython 相关资源
用 python 开发,官网能找到的资源有:1、MicroPython 固件
-
已经编译好的固件:getting-started这里可以下载到
-
源码:micropython‘s github,micropython已经对 RP2040 进行支持
2、文档
-
Raspberry Pi Pico Python SDK
-
Get Started with MicroPython on Raspberry Pi Pico
3、MicroPython 例程
raspberrypi 官方 github 上有相关例程:pico-micropython-examples
2、下载、烧录 MicroPython 固件
树莓派官网提供了编译好的 MicroPython 固件,也可以自己编译, Raspberry Pi Pico Python SDK 给出了编译教程。
这里直接使用官方编译好的固件,下载下来是这样的:
先按住板子上的按键,然后连上电脑,等电脑出现名字为 RPI-RP2的磁盘时,把下载到的固件拷贝到该磁盘,等拷贝完成就烧录好了,烧录完,设备会自动重新启动,然后我的电脑上出现了这个:
设备管理器中多了个 COM 口:
PC上可以使用串口终端通过该 COM 口操作 pico。
3、使用 MobaXterm 操作 pico
我是用的串口终端是 MobaXterm,MobaXterm 什么?MobaXterm 官网的描述是:
Enhanced terminal for Windows with X11 server, tabbed SSH client, network tools and much more
可以创建SSH、Telnet 、串口终端等等,功能释放强大,有免费版、也有收费的,免费的够用了。
创建一个串口终端连接跑 MicroPython 的 pico,选择对应的 COM 口,波特率115200,如下:
点击 OK 后,界面乌漆嘛黑,什么都没有,需要按下回车,然后就可以进行操作了,如下:
4、点灯
点下灯,从原理图看,是 GPIO25 控制 LED:在MobaXterm 执行一下 python 代码,就可以点亮板子上的 LED 了:
from machine import Pin led = Pin(25, Pin.OUT) led.value(1)
5、附上 pico 跑 MicroPython 是 USB 相关信息
[Port2] : USB Composite Device ---===>Device Information<===--- English product name: "Board in FS mode" ConnectionStatus: Current Config Value: 0x01 -> Device Bus Speed: Full Device Address: 0x15 Open Pipes: 3 ===>Endpoint Descriptor<=== bLength: 0x07 bDescriptorType: 0x05 bEndpointAddress: 0x81 -> Direction: IN - EndpointID: 1 bmAttributes: 0x03 -> Interrupt Transfer Type wMaxPacketSize: 0x0008 = 0x08 bytes bInterval: 0x10 ===>Endpoint Descriptor<=== bLength: 0x07 bDescriptorType: 0x05 bEndpointAddress: 0x02 -> Direction: OUT - EndpointID: 2 bmAttributes: 0x02 -> Bulk Transfer Type wMaxPacketSize: 0x0040 = 0x40 bytes bInterval: 0x00 ===>Endpoint Descriptor<=== bLength: 0x07 bDescriptorType: 0x05 bEndpointAddress: 0x82 -> Direction: IN - EndpointID: 2 bmAttributes: 0x02 -> Bulk Transfer Type wMaxPacketSize: 0x0040 = 0x40 bytes bInterval: 0x00 ===>Device Descriptor<=== bLength: 0x12 bDescriptorType: 0x01 bcdUSB: 0x0200 bDeviceClass: 0xEF -> This is a Multi-interface Function Code Device bDeviceSubClass: 0x02 -> This is the Common Class Sub Class bDeviceProtocol: 0x01 -> This is the Interface Association Descriptor protocol bMaxPacketSize0: 0x40 = (64) Bytes idVendor: 0x2E8A = Vendor ID not listed with USB.org as of 03-19-2008 idProduct: 0x0005 bcdDevice: 0x0100 iManufacturer: 0x01 English (United States) "MicroPython" iProduct: 0x02 English (United States) "Board in FS mode" iSerialNumber: 0x03 English (United States) "000000000000" bNumConfigurations: 0x01 ===>Configuration Descriptor<=== bLength: 0x09 bDescriptorType: 0x02 wTotalLength: 0x004B -> Validated bNumInterfaces: 0x02 bConfigurationValue: 0x01 iConfiguration: 0x00 bmAttributes: 0xA0 -> Bus Powered MaxPower: 0x7D = 250 mA ===>IAD Descriptor<=== bLength: 0x08 bDescriptorType: 0x0B bFirstInterface: 0x00 bInterfaceCount: 0x02 bFunctionClass: 0x02 -> This is Communications (CDC Control) USB Device Interface Class bFunctionSubClass: 0x02 bFunctionProtocol: 0x00 iFunction: 0x00 ===>Interface Descriptor<=== bLength: 0x09 bDescriptorType: 0x04 bInterfaceNumber: 0x00 bAlternateSetting: 0x00 bNumEndpoints: 0x01 bInterfaceClass: 0x02 -> This is Communications (CDC Control) USB Device Interface Class bInterfaceSubClass: 0x02 bInterfaceProtocol: 0x00 CAUTION: This may be an invalid bInterfaceProtocol iInterface: 0x04 English (United States) "Board CDC" -> This is a Communications (CDC Control) USB Device Interface Class ===>Descriptor Hex Dump<=== bLength: 0x05 bDescriptorType: 0x24 05 24 00 20 01 -> This is a Communications (CDC Control) USB Device Interface Class ===>Descriptor Hex Dump<=== bLength: 0x05 bDescriptorType: 0x24 05 24 01 00 01 -> This is a Communications (CDC Control) USB Device Interface Class ===>Descriptor Hex Dump<=== bLength: 0x04 bDescriptorType: 0x24 04 24 02 02 -> This is a Communications (CDC Control) USB Device Interface Class ===>Descriptor Hex Dump<=== bLength: 0x05 bDescriptorType: 0x24 05 24 06 00 01 ===>Endpoint Descriptor<=== bLength: 0x07 bDescriptorType: 0x05 bEndpointAddress: 0x81 -> Direction: IN - EndpointID: 1 bmAttributes: 0x03 -> Interrupt Transfer Type wMaxPacketSize: 0x0008 = 0x08 bytes bInterval: 0x10 ===>Interface Descriptor<=== bLength: 0x09 bDescriptorType: 0x04 bInterfaceNumber: 0x01 bAlternateSetting: 0x00 bNumEndpoints: 0x02 bInterfaceClass: 0x0A -> This is a CDC Data USB Device Interface Class bInterfaceSubClass: 0x00 bInterfaceProtocol: 0x00 CAUTION: This may be an invalid bInterfaceProtocol iInterface: 0x00 ===>Endpoint Descriptor<=== bLength: 0x07 bDescriptorType: 0x05 bEndpointAddress: 0x02 -> Direction: OUT - EndpointID: 2 bmAttributes: 0x02 -> Bulk Transfer Type wMaxPacketSize: 0x0040 = 0x40 bytes bInterval: 0x00 ===>Endpoint Descriptor<=== bLength: 0x07 bDescriptorType: 0x05 bEndpointAddress: 0x82 -> Direction: IN - EndpointID: 2 bmAttributes: 0x02 -> Bulk Transfer Type wMaxPacketSize: 0x0040 = 0x40 bytes bInterval: 0x00
这篇关于在 raspberry pi pico 上体验 MicroPython的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门