xgqfrms™, xgqfrms® : xgqfrms's offical website of cnblogs! xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

use macOS terminal can not install MicroPython on Raspberry Pi Pico bug All In One

use macOS terminal can not install MicroPython on Raspberry Pi Pico bug All In One

使用 macOS 终端无法在 Raspberry Pi Pico 上安装 MicroPython bug

MicroPython 环境搭建

您可以通过 USB 将 Pico 连接到计算机,然后将文件拖放到它上面来对 Pico 进行编程,因此我们整理了一个可下载的 UF2 文件,让您可以更轻松地安装 MicroPython。

  1. Command Line ❌

macOS ❌

  1. Thonny IDE

thonny-4.0.2.pkg ✅

https://www.raspberrypi.com/documentation/microcontrollers/micropython.html#drag-and-drop-micropython

pdf ebooks

  1. SDK 文档

2.3. Connecting from a Mac ❌ (Page 10)


# 安装
$ brew install minicom

# 连接
$ minicom -b 115200 -o -D /dev/tty.usbmodem0000000000001

https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-python-sdk.pdf

  1. Get Started with MicroPython on Raspberry Pi Pico (RPi_PiPico_Digital_v10.pdf)
  1. Installing MicroPython ❌ (Page 16)

image

https://hackspace.raspberrypi.com/books/micropython-pico

https://hackspace.raspberrypi.com/books

Thonny IDE

image

image

led.py

#!/usr/bin/env python3
# coding: utf8

from machine import Pin
import time

led = Pin("LED", Pin.OUT)
led.low()
time.sleep_ms(500)
print("开始 👻")
n = 3
i = 0
while (i < n):
    print("i =", i)
    led.high()
    time.sleep_ms(1000)
    led.low()
    time.sleep_ms(1000)
    i += 1
print("结束 ✅")

"""
# bug version ❌
while True:
    led.high()
    time.sleep_ms(500)
    led.low()
    time.sleep_ms(500)
"""

image

#!/usr/bin/env python3
# coding: utf8

from machine import Pin
from time import sleep
# 内置 LED 通过 GPIO 25 连接
GPIO_PIN = 25
led = Pin(GPIO_PIN, Pin.OUT)
led.value(0)
i = 0
n = 3
print("begin 💡")
while i <= 3:
  print("i =", i)
  led.value(1)
  sleep(1)
  led.value(0)
  sleep(1)
  i += 1

print("finished 🚀")

"""

from machine import Pin
import time

# 内置 LED 通过 GPIO 25 连接
# 1
Pin(25, Pin.OUT).value(1)
time.sleep_ms(1000)
Pin(25, Pin.OUT).value(0)
# 2
Pin(25, Pin.OUT).value(1)
time.sleep_ms(1000)
Pin(25, Pin.OUT).value(0)
# 3
Pin(25, Pin.OUT).value(1)
time.sleep_ms(1000)
Pin(25, Pin.OUT).value(0)

"""

https://electrocredible.com/raspberry-pi-pico-with-macos-thonny-getting-started/

https://microcontrollerslab.com/getting-started-raspberry-pi-pico-thonny-ide/

tty.usbmodem 编号错误 ❌

# 连接 tty.usbmodem14601 ❌
$ minicom -b 115200 -o -D /dev/tty.usbmodem14601
# 连接 cu.usbmodem14601 ✅
$ minicom -b 115200 -o -D /dev/cu.usbmodem14601

image

image

minicom 如何使用的 ???

卡死了 ❌ 好难用呀 💩

Ctrl + B 一顿乱按不知道怎么就进来了❓

>>> help()
Welcome to MicroPython!

For online help please visit https://micropython.org/help/.

For access to the hardware use the 'machine' module.  RP2 specific commands
are in the 'rp2' module.

Quick overview of some objects:
  machine.Pin(pin) -- get a pin, eg machine.Pin(0)
  machine.Pin(pin, m, [p]) -- get a pin and configure it for IO mode m, pull mode p
    methods: init(..), value([v]), high(), low(), irq(handler)
  machine.ADC(pin) -- make an analog object from a pin
    methods: read_u16()
  machine.PWM(pin) -- make a PWM object from a pin
    methods: deinit(), freq([f]), duty_u16([d]), duty_ns([d])
  machine.I2C(id) -- create an I2C object (id=0,1)
    methods: readfrom(addr, buf, stop=True), writeto(addr, buf, stop=True)
             readfrom_mem(addr, memaddr, arg), writeto_mem(addr, memaddr, arg)
  machine.SPI(id, baudrate=1000000) -- create an SPI object (id=0,1)
    methods: read(nbytes, write=0x00), write(buf), write_readinto(wr_buf, rd_buf)
  machine.Timer(freq, callback) -- create a software timer object
    eg: machine.Timer(freq=1, callback=lambda t:print(t))

Pins are numbered 0-29, and 26-29 have ADC capabilities
Pin IO modes are: Pin.IN, Pin.OUT, Pin.ALT
Pin pull modes are: Pin.PULL_UP, Pin.PULL_DOWN

Useful control commands:
  CTRL-C -- interrupt a running program
  CTRL-D -- on a blank line, do a soft reset of the board
  CTRL-E -- on a blank line, enter paste mode

For further help on a specific object, type help(obj)
For a list of available modules, type help('modules')
>>> 

image

Minicom

>>> help()
Welcome to MicroPython!

For online help please visit https://micropython.org/help/.

For access to the hardware use the 'machine' module.  RP2 specific commands
are in the 'rp2' module.

Quick overview of some objects:
  machine.Pin(pin) -- get a pin, eg machine.Pin(0)
  machine.Pin(pin, m, [p]) -- get a pin and configure it for IO mode m, pull mode p
    methods: init(..), value([v]), high(), low(), irq(handler)
  machine.ADC(pin) -- make an analog object from a pin
    methods: read_u16()
  machine.PWM(pin) -- make a PWM object from a pin
    methods: deinit(), freq([f]), duty_u16([d]), duty_ns([d])
  machine.I2C(id) -- create an I2C object (id=0,1)
    methods: readfrom(addr, buf, stop=True), writeto(addr, buf, stop=True)
             readfrom_mem(addr, memaddr, arg), writeto_mem(addr, memaddr, arg)
  machine.SPI(id, baudrate=1000000) -- create an SPI object (id=0,1)
    methods: read(nbytes, write=0x00), write(buf), write_readinto(wr_buf, rd_buf)
  machine.Timer(freq, callback) -- create a software timer object
    eg: machine.Timer(freq=1, callback=lambda t:print(t))

Pins are numbered 0-29, and 26-29 have ADC capabilities
Pin IO modes are: Pin.IN, Pin.OUT, Pin.ALT
Pin pull modes are: Pin.PULL_UP, Pin.PULL_DOWN

Useful control commands:
  CTRL-C -- interrupt a running program
  CTRL-D -- on a blank line, do a soft reset of the board
  CTRL-E -- on a blank line, enter paste mode

For further help on a specific object, type help(obj)
For a list of available modules, type help('modules')

>>> pin25 = machine.Pin(25)
>>> print("pin25 =", type(pin25))
pin25 = <class 'Pin'>

>>> GPIO_PIN = 25
>>> led = machine.Pin(GPIO_PIN, machine.Pin.OUT)
>>> print(type(led))
<class 'Pin'>

>>> led.value(1)
>>> time.sleep(1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'time' isn't defined

>>> import time
>>> time.sleep(1)

>>> from time import sleep
>>> sleep(1)
>>> led.value(0)

>>> led.high()
>>> led.low()
>>> 
Meta-Z for help | 115200 8N1 | NOR | Minicom 2.8 | VT102 | Offline | cu.usbmodem14601       

minicom

Minicom is a text-based modem control and terminal emulator program for Unix-like operating systems, originally written by Miquel van Smoorenburg, and modeled somewhat after the popular MS-DOS program Telix but is open source.

Minicom 是用于类 Unix 操作系统的基于文本的调制解调器控制和终端仿真器程序,最初由 Miquel van Smoorenburg 编写,有点模仿流行的 MS-DOS 程序 Telix,但它是开源的。

https://en.wikipedia.org/wiki/Minicom

https://wiki.emacinc.com/wiki/Getting_Started_With_Minicom

https://man7.org/linux/man-pages/man1/minicom.1.html

https://linux.die.net/man/1/minicom

# 抓取 tty ???
$ dmesg | grep tty

https://help.ubuntu.com/community/Minicom

Minicom is a serial communication program

minicom 是一个串口通讯程序

image

https://salsa.debian.org/minicom-team/minicom

minicom 的退出按键是 Ctrl+a-q

image

https://sites.google.com/site/readliner/study/arm-linux/minicom

http://ftp.pld-linux.org/pool/m/minicom/

raspi-config

# GUI 交互式命令行界面
$ sudo raspi-config

在本质上还是直接修改 /boot/config.txt 配置文件

https://www.raspberrypi.com/documentation/computers/configuration.html#the-raspi-config-tool

refs

https://www.cnblogs.com/xgqfrms/p/17274289.html

https://github.com/xgqfrms/Raspberry-Pi/tree/master/Pico



©xgqfrms 2012-2025

www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!

原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!


posted @   xgqfrms  阅读(80)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
历史上的今天:
2022-03-30 React Animation All In One
2022-03-30 TypeScript namespace All In One
2022-03-30 macOS Monterey 12.3 All In One
2021-03-30 uni-app & nvue & cli
2021-03-30 如何使用 Apple Watch 上 NFC 功能复制门禁卡 All In One
2020-03-30 @bind decorator
2020-03-30 TypeScript & global.d.ts All In One
点击右上角即可分享
微信分享提示