简单上手Raspberry Pi Pico(Ubuntu+MicroPython)

2023-11-10

关于raspberry pi pico的信息我就不多介绍了,直接给几个关键词吧

  • 售价4$
  • 微控制器
  • MicroPython/C/C++
  • 树莓派基金会自研RP2040芯片

两本官方推荐的书:

发布后第二天在某宝下单,并顺利地在发布后的第三天拿到
在这里插入图片描述
在这里插入图片描述
Pico上可以运行MicroPython或者C/C++程序,这里我主要讲一下如何运行MicroPython

Pico作为微控制器,上面没有操作系统,所以不可能直接在上面进行代码编写与调试,只能将其连接在另一台PC上,写好代码后传输至Pico运行。

连接Pico

官方推荐使用运行Raspbian系统的树莓派,但我更习惯在性能更好的机器上写代码,所以我用Ubuntu系统的PC与Pico。
注意连接时要用手按着白色的BOOTSEL键,连接好后再松手
在这里插入图片描述
这时在系统中就能看到Pico的设备了
在这里插入图片描述

安装MicroPython

点开INDEX.HTM文件,会打开一个网页
在这里插入图片描述
下载UF2文件,再将这个文件拖至Pico目录中
在这里插入图片描述
此时系统会自动中断与Pico的连接,不用担心,此时已经在Pico上安装好了MicroPython

安装Thonny

Thonny是官方推荐的IDE,而且我目前也没找到vscode连接Pico的方式,但minicom命令行工具貌似可以
在这里插入图片描述
可以看到对于Ubuntu系统主要可以通过apt和pip两个工具进行安装,但是截止目前apt提供的安装包不是最新的3.3.3版本,而是3.2.*,而3.3.3版本提供了针对Pico设备的一些更新,所以推荐使用

>>> pip3 install thonny

命令进行安装
安装完成后通过命令

>>> thonny

即可启动GUI界面
在这里插入图片描述

Thonny连接Pico

可以看到报错:对/dev/ttyACM0文件没有权限

>>> ll /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0 1月   24 21:59 /dev/ttyACM0

所以我们需要给它添加权限
方式一:

>>> sudo chmod 666 /dev/ttyACM0
crw-rw-rw- 1 root dialout 166, 0 1月   24 21:59 /dev/ttyACM0

但每次连接都需要重新添加权限
方式二(推荐):
修改配置文件

>>> sudo vim /etc/udev/rules.d/70-ttyusb.rules
KERNEL=="ttyACM[0-9]*", MODE="0666"

然后重新连接一次设备,以重新生成一下文件
参考:https://blog.csdn.net/u010164190/article/details/78614199

点红圈重新启动一下发现成功了
在这里插入图片描述

指示灯闪烁程序

import machine
import utime
led_onboard = machine.Pin(25, machine.Pin.OUT)

while True:
    led_onboard.value(1)
    utime.sleep(1)
    led_onboard.value(0)
    utime.sleep(0.5)

在这里插入图片描述
保存至Pico,再点绿色圆圈按钮就可以看到Pico上的绿色指示灯闪烁了
在这里插入图片描述


使用minicom调试

安装minicom

>>> sudo apt install minicom
>>> minicom -b 115200 -o -D /dev/ttyACM0

在这里插入图片描述
参考:https://www.cnblogs.com/zqb-all/p/9786836.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

简单上手Raspberry Pi Pico(Ubuntu+MicroPython) 的相关文章

  • Django REST序列化器:创建对象而不保存

    我已经开始使用 Django REST 框架 我想做的是使用一些 JSON 发布请求 从中创建一个 Django 模型对象 然后使用该对象而不保存它 我的 Django 模型称为 SearchRequest 我所拥有的是 api view
  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • 如何生成给定范围内的回文数列表?

    假设范围是 1 X 120 这是我尝试过的 gt gt gt def isPalindrome s check if a number is a Palindrome s str s return s s 1 gt gt gt def ge
  • 如何在android上的python kivy中关闭应用程序后使服务继续工作

    我希望我的服务在关闭应用程序后继续工作 但我做不到 我听说我应该使用startForeground 但如何在Python中做到这一点呢 应用程序代码 from kivy app import App from kivy uix floatl
  • DreamPie 不适用于 Python 3.2

    我最喜欢的 Python shell 是DreamPie http dreampie sourceforge net 我想将它与 Python 3 2 一起使用 我使用了 添加解释器 DreamPie 应用程序并添加了 Python 3 2
  • Python 多处理示例不起作用

    我正在尝试学习如何使用multiprocessing但我无法让它发挥作用 这是代码文档 http docs python org 2 library multiprocessing html from multiprocessing imp
  • 如何等到 Excel 计算公式后再继续 win32com

    我有一个 win32com Python 脚本 它将多个 Excel 文件合并到电子表格中并将其另存为 PDF 现在的工作原理是输出几乎都是 NAME 因为文件是在计算 Excel 文件内容之前输出的 这可能需要一分钟 如何强制工作簿计算值
  • SQL Alchemy 中的 NULL 安全不等式比较?

    目前 我知道如何表达 NULL 安全的唯一方法 SQL Alchemy 中的比较 其中与 NULL 条目的比较计算结果为 True 而不是 NULL 是 or field None field value 有没有办法在 SQL Alchem
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • 安装后 Anaconda 提示损坏

    我刚刚安装张量流GPU创建单独的后环境按照以下指示here https github com antoniosehk keras tensorflow windows installation 但是 安装后当我关闭提示窗口并打开新航站楼弹出
  • keras加载模型错误尝试将包含17层的权重文件加载到0层的模型中

    我目前正在使用 keras 开发 vgg16 模型 我用我的一些图层微调 vgg 模型 拟合我的模型 训练 后 我保存我的模型model save name h5 可以毫无问题地保存 但是 当我尝试使用以下命令重新加载模型时load mod
  • 当玩家触摸屏幕一侧时,如何让 pygame 发出警告?

    我使用 pygame 创建了一个游戏 当玩家触摸屏幕一侧时 我想让 pygame 给出类似 你不能触摸屏幕两侧 的错误 我尝试在互联网上搜索 但没有找到任何好的结果 我想过在屏幕外添加一个方块 当玩家触摸该方块时 它会发出警告 但这花了很长
  • HTTPS 代理不适用于 Python 的 requests 模块

    我对 Python 还很陌生 我一直在使用他们的 requests 模块作为 PHP 的 cURL 库的替代品 我的代码如下 import requests import json import os import urllib impor
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • 如何改变Python中特定打印字母的颜色?

    我正在尝试做一个简短的测验 并且想将错误答案显示为红色 欢迎来到我的测验 您想开始吗 是的 祝你好运 法国的首都是哪里 法国 随机答案不正确的答案 我正在尝试将其显示为红色 我的代码是 print Welcome to my Quiz be
  • 通过数据框与函数进行交互

    如果我有这样的日期框架 氮 EG 00 04 NEG 04 08 NEG 08 12 NEG 12 16 NEG 16 20 NEG 20 24 datum von 2017 10 12 21 69 15 36 0 87 1 42 0 76
  • 如何在 Django 中使用并发进程记录到单个文件而不使用独占锁

    给定一个在多个服务器上同时执行的 Django 应用程序 该应用程序如何记录到单个共享日志文件 在网络共享中 而不保持该文件以独占模式永久打开 当您想要利用日志流时 这种情况适用于 Windows Azure 网站上托管的 Django 应
  • 如何从没有结尾的管道中读取 python 中的 stdin

    当管道来自 打开 时 不知道正确的名称 我无法从 python 中的标准输入或管道读取数据 文件 我有作为例子管道测试 py import sys import time k 0 try for line in sys stdin k k
  • 对输入求 Keras 模型的导数返回全零

    所以我有一个 Keras 模型 我想将模型的梯度应用于其输入 这就是我所做的 import tensorflow as tf from keras models import Sequential from keras layers imp
  • PyAudio ErrNo 输入溢出 -9981

    我遇到了与用户相同的错误 Python 使用 Pyaudio 以 16000Hz 录制音频时出错 https stackoverflow com questions 12994981 python error audio recording

随机推荐

  • FLASH和EEPROM的区别和扩展

    EEPROM和FLASH总体差异 部分MCU片内不带程序存储器ROM 可执行代码只能放在外面的EEPROM FLASH 外扩 中 单片机对于数据的处理和系统的大量数据采集 需要考虑数据的长期保存和掉电保存等问题 因此外扩EEPROM就是这系
  • Scala-13:集合-列表List

    Scala 13 集合 列表List 一 不可变 List 1 说明 List 默认为不可变集合 创建一个 List 数据有顺序 可重复 List 默认为不可变集合 val list List Int List 1 2 3 4 3 遍历 L
  • 总结:js中Object.setPrototypeOf和Object.create的区别

    首先知道什么是原型 只要这样才能理解下面的内容 Object setPrototypeOf obj prototype 他是将prototype作为已知对象obj的原型 Object create prototype 是创建一个以proto
  • Java-动态代理原理

    1 什么是代理模式 1 例子 1 例子 在了解Java动态代理技术之前 先了解一下什么是代理模式 其实代理模式在生活中很常见 比如房东与中介其实就是一个代理的过程 房东有自己的房子 在代理模式中扮演角色是被代理对象 中介扮演角色是代理对象
  • java 行转列_Java程序员从阿里面试回来,这些面试题你们会吗?

    序言 简单的介绍一下自己的工作经历与职责 在校或者在工作中主要的工作内容 主要负责的内容 你的信息一清二白的写在简历上 这个主要为了缓解面试者的压力 介绍下自己最满意的 有技术亮点的项目或平台 重点介绍下自己负责那部分的技术细节 主要考察应
  • selenium爬虫与配置谷歌浏览器的driver问题

    用selenium爬虫时 明明已经安装了selenium模块 程序却运行不了 在使用selenium之前必须先配置浏览器对应版本的webdriver 本文主要涉及驱动有问题driver 网上有很多手动的方法 查看谷歌浏览的版本然后在其他博主
  • [ESP32]ESP32 Arduino BLE调试 / 与安卓蓝牙数据交互

    帖子导航 ESP32 ESP32 Arduino开发环境搭建 首先得有支持包吧 ESP32 BLE支持包 进入arduino IDE gt 文件 gt 首选项 gt 项目文件位置 到该路径下 打开git工具 项目地址 https githu
  • Python做的一个猜数字应用

    首先需求一共有五次猜测机会 在五次机会中才对就赢了 结束游戏 五次都猜错就输了 也结束游戏 首先先画个草图 这是我画的草图 再根据草图编写一个窗口 一个Label 一个Entry 一个按钮 然后编写功能 将功能绑定函数 import ran
  • Vue3基础(三)__isRef___isReactve

    isRef isRef方法通过vue解构出来 import isRef from vue 主要是为了判断自己生成的响应数据是否是通过isRef 方法生成的
  • elementui 之input 框总结

    1 elementUI的input框 需要用v model绑定一个变量 这个变量相当于原生input框的value 2 placeholder属性和原生的一样
  • centos7-docker安装redis

    1 docker 拉去redis镜像 docker pull redis 2 创建实例并启动 mkdir p mydata redis conf touch mydata redis conf redis conf docker run p
  • 计算机网络安全防范的论文,计算机网络安全防范策略毕业论文.doc

    计算机网络安全防范策略毕业论文 PAGE PAGE PAGE I 摘 要 信息技术的使用给人们的生活 工作带来了数不尽的便捷和好处 然而计算机信息技术也和其他技术一样是一把双刃剑 当大部分人们使用信息技术提高工作效率 为社会创造更多财富的同
  • oracle数据库下创建用户

    一 使用sqlplus 创建用户 1 登陆到sqlplus 2 键入 create user user name identified by password user name 要用户名 password 对应的密码 3 键入 Grant
  • v-loading

    使用v loading在接口为请求到数据之前 显示加载中 直到请求到数据后消失
  • OpenLayers - Vector绘制地图省市区(十)

    简介 本文讲解经常在开发中出现的功能 绘制地图省市区 主要使用Vector图层通过绘制多边行的方法 绘制出省市区的多边行 把该图层添加到地图图层上 就实现了绘制省市区图形 Vector 矢量图层 在客户端呈现的矢量数据 构成一个矢量图层需要
  • c++中的虚特性(虚基类、虚函数、纯虚函数)

    1 虚基类 1 1 虚基类作用 为了解决多继承时的命名冲突和冗余数据问题 使得派生类中只保留一份间接基类的成员 其本质是是让某个类做出声明 承诺愿意共享它的基类 其中 这个被共享的基类就称为虚基类 Virtual Base Class 换个
  • 三种经典图像滤波方法介绍——双边滤波(Bilateral filter)、导向滤波(Guided Fliter)、滚动导向滤波(RollingGuidedFilter)

    文章目录 一 前言 二 双边滤波 Bilateral filter 2 1 双边滤波的理论介绍及公式推导 2 2 双边滤波的matlab程序实现 三 导向滤波 Guided Fliter 3 1 导向滤波的理论介绍及公式推导 3 2 导向滤
  • linux安装mysql菜鸟教程_新手搭建linux服务器——mysql环境安装

    mysql环境安装 Linux下使用yum安装MySQL 以及启动 登录和远程访问MySQL数据库 1 yum y update 更新yum包 2 重启服务器 reboot 3 检查有木有安装php v 4 rpm qa gerp mysq
  • java90到100随机数生成器_java实现随机数生成器

    本文实例为大家分享了java实现随机数生成器的具体代码 供大家参考 具体内容如下 自己编的随机数生成器 比较简陋 功能也单一 当作练手 application java package src public class applicatio
  • 简单上手Raspberry Pi Pico(Ubuntu+MicroPython)

    关于raspberry pi pico的信息我就不多介绍了 直接给几个关键词吧 售价4 微控制器 MicroPython C C 树莓派基金会自研RP2040芯片 两本官方推荐的书 MicroPython版 Get started with