ESP 32 CAM micropythonファームウェア作成win 10 Ubuntu 18.04

4618 ワード

ESP 32 CAM micropythonファームウェア作成

  • システム
  • コンパイル
  • 部分エラー情報
  • camera部分パラメータ
  • システム


    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 pyparsing
    pip 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反転