ESP 32 CAM micropythonファームウェア作成win 10 Ubuntu 18.04
4618 ワード
ESP 32 CAM micropythonファームウェア作成
システム
win10 Ubuntu18.04サブシステム修正ソース sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #
sudo vim /etc/apt/sources.list #
##
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
gcc,g+,makeを含む新しいパッケージをインストールします.sudo apt update
sudo apt upgrade
sudo apt install build-essential
コンパイル
操作手順sudo-s用rootモードcd
mkdir Esp32Cam
cd Esp32Cam
Micropythonとesp-idfをダウンロードgit clone https://github.com/micropython/micropython.git
git clone https://github.com/espressif/esp-idf.git
esp 32に対応するespidfバージョンを表示する(重要)cat micropython/ports/esp32/Makefile | grep ESPIDF_SUPHASH | head -1
表示:ESPIDF_SUPHASH :=??????? cd esp-idf
ダウンロードespidf(ESPIDF_SUPHASH結果貼り付け)git checkout ??????
git submodule update --init --recursive
componentsフォルダに入り、cameraをダウンロードしますcd components
git clone https://github.com/espressif/esp32-camera.git
Micropythonファイルのダウンロードcd ~/Esp32Cam/micropython
git submodule update --init --recursive
環境変数の追加export PATH="/home/dul/micropython/xtensa-esp32-elf/bin:/home/st/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
export ESPIDF=/home/dul/Esp32Cam/esp-idf
mpy_crossはmicorpythonのpythonスクリプトコンパイルツールで、pythonファイルをmicropythonのbytte codeにコンパイルして直接実行することができ、このようなメリットは以下の通りです:1.Flashの使用量を減らす.ソースコードが見えないようにするmake -C mpy-cross
portsフォルダへcd ports
esp 32フォルダをesp 32-camフォルダにコピーcp -r esp32 esp32-cam
必要な関連ファイルのコンパイルの準備cd esp32-cam
Ubuntuでwin 10 Cディスクファイルをここにコピーします(cp /mnt/c/esp/mpconfigport.h mpconfigport.h
cp /mnt/c/esp/modcamera.c modcamera.c
cp /mnt/c/esp/main.c main.c
cp /mnt/c/esp/Makefile Makefile
cp /mnt/c/esp/boards/sdkconfig.base boards/sdkconfig.base
ここでは64ビットxetensa-esp 32-elf、5.2.0を繰り上げることができます.cd ~/Downloads
wget https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
esp 32-camフォルダに解凍cd ~/Esp32Cam/micropython/esp32-cam
tar -xzf ~/Downloads/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
コンパイルV=1すべての情報を表示make V=1
ファームウェアが正常に動作しているかどうかを確認strings build-GENERIC/firmware.bin | grep MicroPython | tail -1
cameraが存在するかどうかを確認strings build-GENERIC/firmware.bin | grep camera
結果を表示:
camera [0;31mE (%d) %s: Detected camera not supported./home/dul/Esp32Cam/esp-idf/components/esp32-camera/driver/camera.c camera_xclk
ビルドGENERIC/firmware.bin/mnt/c/esp/へコピーcp build-GENERIC/firmware.bin /mnt/c/esp/firmware.bin
部分エラーメッセージ
エラー発生:No module named pyparsingpip install pyparsing
make PYTHON=python2
これを参考に直接見ることができます
camera部分パラメータ
import camera
camera.init()
camera.framesize(1)#1~11解像度1=160 x 120 2=160 x 128 3=176 x 1765=320 x 240 6=400 x 2967=640 x 480 8=800 x 600 9=1024 x 768 10=128 x 1024 11=1600 x 1200 camera.quality(10)#10~63質量高~低camera.contrast(0)#-2~2コントラストcamera.saturation(0)#-2~2飽和度camera.brightness(0)#-2~2輝度camera.aelevels(0)#-2~2 camera.aecvalue(0) #-2~2 camera.agcgain(0)# 0~30 camera.speffect(0) #0~6 camera.ホワイトバランス(0)#0~4ホワイトバランスcamera.flip(0)#0正、1反転
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #
sudo vim /etc/apt/sources.list #
##
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
sudo apt update
sudo apt upgrade
sudo apt install build-essential
cd
mkdir Esp32Cam
cd Esp32Cam
git clone https://github.com/micropython/micropython.git
git clone https://github.com/espressif/esp-idf.git
cat micropython/ports/esp32/Makefile | grep ESPIDF_SUPHASH | head -1
cd esp-idf
git checkout ??????
git submodule update --init --recursive
cd components
git clone https://github.com/espressif/esp32-camera.git
cd ~/Esp32Cam/micropython
git submodule update --init --recursive
export PATH="/home/dul/micropython/xtensa-esp32-elf/bin:/home/st/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
export ESPIDF=/home/dul/Esp32Cam/esp-idf
make -C mpy-cross
cd ports
cp -r esp32 esp32-cam
cd esp32-cam
cp /mnt/c/esp/mpconfigport.h mpconfigport.h
cp /mnt/c/esp/modcamera.c modcamera.c
cp /mnt/c/esp/main.c main.c
cp /mnt/c/esp/Makefile Makefile
cp /mnt/c/esp/boards/sdkconfig.base boards/sdkconfig.base
cd ~/Downloads
wget https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
cd ~/Esp32Cam/micropython/esp32-cam
tar -xzf ~/Downloads/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
make V=1
strings build-GENERIC/firmware.bin | grep MicroPython | tail -1
strings build-GENERIC/firmware.bin | grep camera
cp build-GENERIC/firmware.bin /mnt/c/esp/firmware.bin
pip install pyparsing
make PYTHON=python2
import camera
camera.init()