技术标签: micropython esp32 python 单片机 mcu 物联网
软件:Ubuntu 18.04虚拟机
硬件:esp32s2开发板
ubuntu安装编译依赖环境:
sudo apt-get install git make gcc libncurses5-dev flex bison gperf python-serial
如果已经安装过了,不会再次安装。另外1.15之后版本mpy依赖cmake,这个后面编译遇到问题再讲。
创建工作目录:
mkdir work
cd work
下载mpy源码:
git clone https://gitee.com/mirrors/micropython.git
下载IDF源码:
git clone https://gitee.com/EspressifSystems/esp-idf.git
为了快速下载我这边都是从码云镜像下的。对于IDF来说下载下来后还需要更新大量子模组,这个IDF官方也给出了解决办法,参考以下链接说明进行更新IDF子模组:
https://gitee.com/EspressifSystems/esp-gitee-tools/blob/master/docs/README-submodule-update.md
进入IDF切下分支,分支切完最好更新下子模组
cd esp-idf
git checkout v4.2
按照上面的方法在更新下子模组,然后下载IDF依赖工具,以及设置环境变量。
cd esp-idf
./install.sh
source export.sh
编译默认的esp32固件,测试下编译环境是否可用。
cd micropython
make -C mpy-cross
cd ports/esp32
make submodules
make
如果能编译过那可以进行下一步尝试编译esp32s2固件了,当然也可能会遇到报错,比如cmake版本不符合要求,下面讲下如何更新符合要求的cmake版本。
移除原有cmake:
apt remove cmake
安装新cmake:
cd work
# 下载cmake
wget https://cmake.org/files/v3.12/cmake-3.12.2-Linux-x86_64.tar.gz
# 解压:
tar zxvf cmake-3.12.2-Linux-x86_64.tar.gz
# 创建软链接
# 注: 文件路径是可以指定的, 一般选择在/opt 或 /usr 路径下, 这里选择/opt
mv cmake-3.12.2-Linux-x86_64 /opt/cmake-3.12.2
ln -sf /opt/cmake-3.12.2/bin/* /usr/bin/
然后执行命令检查一下:
>>>cmake --version
cmake version 3.12.2
安装完成
更改ports/esp32/Makefile文件
找到 BOARD ?= GENERIC
改为 BOARD ?= GENERIC_S2
重新make
这里出现报错找不到tusb_cdc_acm.h文件
IDF分支需要切到最新
cd esp-idf
git checkout v4.3
然后在更新下idf子模组,方法见上文
继续make编译固件,可能会报错某些python依赖包没有或版本不对,自己按照提示手动pip安装下对应版本的包就可以,然后在make编译
我们可以直接在ubuntu上烧录编好的固件,将板子USB串口接入ubuntu虚拟机
查看是否接入成功
ls /dev/ttyUSB0
擦除指令:make erase
自动烧录:make deploy
其实方法一本质也是在调用esptool烧录只是具体的地址型号选择不用你指定。
我们编译好的固件路径位于:ports/esp32/build-GENERIC_S2/firmware.bin
sudo chmod 777 /dev/ttyUSB0
esptool.py -b 460800 -p /dev/ttyUSB0 erase_flash
esptool.py -b 460800 -p /dev/ttyUSB0 write_flash 0x1000 build-GENERIC_S2/firmware.bin
每次板子插拔都需要重新给ttyUSB0设置权限才能使用,比较麻烦,可以采用以下办法一劳永逸:
将用户添加到 dialout 组,来获许读写权限:
sudo usermod -a -G dialout $USER
添加完需要重启终端窗口生效
注意:终端窗口重启过后idf的环境变量需要重新设置才能生效,这样才可以再次编译固件
cd esp-idf
source export.sh
这个编出来的固件适用于普通的esp32s2,带有外部psram的esp32s2也可以使用,但内存仍只有那点,而且这个的repl默认开在esp32s2自身的USB口上的,而不是串口,这点需要注意。
下一章节,我们来继续讲解如何更改源码开启psarm获取更大内存,以及repl改回到串口,USB MSC功能的开启。
ESP32S2开发学习之路--GPIO与中断 示例代码 API介绍 常规轮询API gpio_config_t 结构体 gpio_config gpio_reset_pin gpio_set_level gpio_get_level gpio_set_drive_capability gpio_get_drive_capability 补充函数 中断API gpio_install_isr_ser...
ESP32S2开发学习之路--新建工程 文件构成 Makefile CMakeLists.txt main-CMakeLists.txt component.mk demo.c 下载程序 idf.py支持 目标芯片设置 项目配置 编译 上传程序 查看串口信息 文件构成 demo.c应用代码程序 CMakeLists.txt为支持idf.py应用所需文件 component将函数入口定位成app_m...
MicroPython端口支持许多STM32处理器 该目录包含MicroPython到ST的STM32微控制器行的端口。 支持的MCU系列为:STM32F0,STM32F4,STM32F7和STM32L4。 此处的部分代码利用STM32Cube HAL库。 编译步骤: 编译环境:Ubuntu 14.04 安装编译过程需要的工具: 1. 下载源码: 2. 切换目录到micropython...
Ubuntu18.04:搭建ESP32 MicroPython编译环境 开发环境 步骤 1.修改linux指向的python解释器为3.6 2.安装交叉编译工具链所依赖的环境 3.创建工作目录级设置编译链 1.创建工作目录 2.在官网上下载最新的交叉编译链 3.解压交叉编译链 4.设置环境变量 4.获取并安装esp-idf开发套件 1.从github上下载esp-idf 2.为esp-idf设置环...
ESP32CAM micropython固件制作 系统 编译 部分错误信息 camera部分参数 系统 win10 Ubuntu18.04子系统 修改源 安装一堆新包,包括gcc,g ++和make。 编译 操作步骤 sudo -s用root模式 下载micropython和esp-idf 查看esp32所对应的espidf版本(重要) 显示:ESPIDF_SUPHASH :=??????? 下载...
micropython+ESP8266直接做些小玩具是很简单的。但是如果每次都要上传mian.py就很不理想了 而不是编译出一个通用的玩意,而是一个直接启动功能的固件,需要自行编译micropython,然后改改mian.c 或者改 _boot.py 再或者给bin加一段。。。 ...
注:对于ESP32开源技术感兴趣的可以加群,我们一起探索交流学习,群号:782473783。群名:ESP32开源技术交流群。 microPython常用函数 microPython的函数很多 machine module CPU主频 控制引脚 可以设置的GPIO有 0, 1, 2, 3, 4, 5, 12, 13, 14, 15, 16;其中1、3作为REPL的串口使用...
我已经使用 Python 很多年了,但用 MicroPython 来开发单片机是我最新的尝试。 安装 MicroPython 安装 picocom 使用 picocom 作为串口调试工具 串口调试 执行下面命令然后就可以看到熟悉的 Python 命令行 连接 wifi 控制 LED 读取按键电位 重启板子 下载文件到板子 使用 ampy 下载 python 脚本 参考 https://github...
...