این آموزش جهت ایجاد محیط نرم افزاری برای توسعه برنامه های صوتی با استفاده از سخت افزار مبتنی بر خانواده تراشه های ESP32 توسط Espressif طراحی شده است. پس از آن، یک مثال ساده نحوه استفاده از ESP-ADF (فریمورک توسعه صوتی Espressif) را به شما نشان خواهیم داد.

 

برای شروع راحت تر با ESP-ADF، شرکت Espressif بردهای توسعه ای مبتنی بر ESP32 و ESP32-S2 را طراحی کرده است که برای برنامه های صوتی طراحی شده است.

اگر هیچ یک از بردهای بالا را ندارید، هنوز هم می توانید از ESP-ADF برای برنامه های صوتی مبتنی بر ESP32 و ESP32-S2 استفاده کنید. برای این کار، برد شما باید دارای تراشه DSP یا کدک صوتی سازگار باشد. در عوض، می توانید یک درایور برای پشتیبانی از ارتباط با تراشه خود ایجاد کنید.

 

ESP-ADF

ESP-ADF به عنوان مجموعه ای از اجزای موجود برای گسترش توابعی که قبلاً توسط ESP-IDF (فریمورک توسعه Espressif IoT) ارائه شده است ، در دسترس است.

برای استفاده از ESP-ADF ابتدا باید ESP-IDF را تنظیم کنید.

 

توجه داشته باشید:

ESP-ADF از ورژن های (v3.3.2 ،v4.0 و v4.1) فریمورک ESP-IDF را پشتیبانی می کند.

https://docs.espressif.com/projects/esp-idf/fa/release-v3.3/versions .html

اگر قبلاً نسخه دیگری را تنظیم کرده اید، لطفاً به نسخه پشتیبانی شده ESP-IDF بروید، در غیر این صورت ممکن است نتوانید برنامه های ESP-ADF را کامپایل کنید.

 

نصب گام به گام

این یک نقشه راه دقیق است که شما را در مراحل نصب راهنمایی می کند.

 

مرحله 1.تنظیم ESP-IDF که شامل مراحل زیر است:

راه اندازی محیط توسعه

  • مرحله اول - نصب نیازمندی ها برای ویندوز، لینوکس یا مک
  • مرحله دو - در یافت ESP-IDF
  • مرحله سه - تنظیم ابزارها یا تولز
  • مرحله چهار - تنظیم متغیرهای محیط توسعه

اگربرنامه نویسی در فریمورک ESP-IDF اولین تجربه شما است یک پروژه ایجاد کنید و مراحل زیر را دنبال کنید

  • مرحله پنج - شروع اولین پروژه
  • مرحله شش - اتصال دیوایس (برد توسعه)
  • مرحله هفت - کانفیگ
  • مرحله هشت - بیلد پروژه
  • مرحله نه - فلش برنامه روی برد
  • مرحله ده - مانیتور

مراحل بالا در آموزش مقدمات برنامه نویسی تراشه های ESP32 در فریمورک ESP-IDF به صورت کامل توضیح داده شده است.

 

مرحله 2.دریافت ESP-ADF

اکنون می توانید نصب API / کتابخانه های مخصوص صدا را که در ریپازیتوری ESP-ADF ارائه شده است شروع کنید.

 

دریافت ESP-ADF در ویندوز

Command Prompt را باز کرده و دستورات زیر را اجرا کنید:

cd %userprofile%\esp
git clone --recursive https://github.com/espressif/esp-adf.git

 

دریافت ESP-ADF در لینوکس و مک

ترمینال را باز کرده و دستورات زیر را اجرا کنید:

cd ~/esp
git clone --recursive https://github.com/espressif/esp-adf.git

 

مرحله 3. تنظیم path یا مسیر برای ESP-ADF

تولچین برنامه ها با استفاده از متغیر محیط ADF_PATH به ESP-ADF دسترسی پیدا می کند. این متغیر باید روی رایانه شما تنظیم شود، در غیر این صورت پروژه ها بیلد نمی شوند.

 

تنظیم path یا مسیر در ویندوز

Command Prompt را باز کرده و دستور زیر را اجرا کنید:

set ADF_PATH=%userprofile%\esp\esp-adf

 

هر بار که کامپیوتر خود را راه اندازی می کنید باید این فرمان را وارد کنید. برای جلوگیری از تایپ مجدد، می توانید آن را به

ESP-IDF Command Prompt

batch

یا اسکریپت های Power Shell

که در مرحله 4 در ادمه آموزش توضیح داده شده است، اضافه کنید.

برای اطمینان از اینکه ADF_PATH به درستی تنظیم شده است، دستور زیر را اجرا کنید:

echo %ADF_PATH%

باید path یا مسیر را به دایرکتوری ESP-ADF شما برگرداند.

 

تنظیم path یا مسیر در لینوکس و مک

ترمینال را باز کرده و دستورات زیر را اجرا کنید:

export ADF_PATH=~/esp/esp-adf

هر بار که ترمینال را باز می کنید باید این فرمان را وارد کنید. برای دائمی شدن این تنظیمات، دستورالعمل های مشابه را برای پیکربندی IDF_PATH در راهنمای برنامه نویسی ESP-IDF دنبال کنید.

 

با دستور زیر میتوانید بررسی کنید که آیا ADF_PATH برای اشاره به دایرکتوری ESP-ADF تنظیم شده است:

printenv ADF_PATH

 

مرحله 4. تنظیم متغیرهای محیطی

قبل از اینکه بتوانید پروژه های ESP-ADF را کامپایل کنید، در هر سشن جدید، ابزارهای ESP-IDF باید به متغیر محیط PATH اضافه شوند. برای اینکه ابزارها از خط فرمان قابل استفاده باشند، باید برخی متغیرهای محیطی تنظیم شود. ESP-IDF اسکریپتی را ارائه می دهد که این کار را انجام می دهد.

 

ویندوز

ESP-IDF Tools Installer برای ویندوز یک میانبر ESP-IDF Command Prompt در منوی Start ایجاد می کند. این میانبر Command Prompt را باز می کند و همه متغیرهای محیط مورد نیاز را تنظیم می کند. می توانید این میانبر را باز کرده و به مرحله بعد بروید.

 

متناوبا، اگر می خواهید از ESP-IDF در پنجره Command Prompt موجود استفاده کنید، می توانید اجرا کنید:

%userprofile%\esp\esp-idf\export.bat

یا با PowerShell

.$HOME/esp/esp-idf/export.ps1

 

لینوکس و مک

در ترمینالی که ESP-IDF را نصب کرده اید، دستور زیر را اجرا کنید:

. $HOME/esp/esp-idf/export.sh

به فاصله بین نقطه پیشرو و مسیر توجه کنید!

 

همچنین می توانید نام مستعار برای export script به .profile یا .bash_profile خود ایجاد کنید. به این ترتیب می توانید محیط را در پنجره ترمینال جدید با تایپ get_idf تنظیم کنید:

alias get_idf='. $HOME/esp/esp-idf/export.sh'

توجه داشته باشید که سورس مستقیم export.sh از profile script توصیه نمی شود. با انجام این کار، محیط مجازی IDF در هر  سشن ترمینال (حتی در مواردی که به IDF نیازی نیست) فعال می شود، و هدف محیط مجازی را شکست می دهد و احتمالاً بر سایر نرم افزارها تأثیر می گذارد.

 

مرحله 5. شروع اولین پروژه برنامه صوتی

پس از آماده سازی اولیه، آماده ساخت اولین برنامه صوتی هستید. این فرآیند قبلاً در آموزش ESP-IDF شرح داده شده است. اکنون ما می خواهیم مراحل کلیدی باقی مانده را مورد بحث قرار دهیم و نشان دهیم که چگونه تولچین می تواند با استفاده از متغیر ADF_PATH به اجزای ESP-ADF دسترسی پیدا کند.

برای نشان دادن نحوه بیلد یک برنامه، از پروژه get-start/play_mp3 از دایرکتوری examples در ADF استفاده می کنیم.

 

ویندوز

cd %userprofile%\esp
xcopy /e /i %ADF_PATH%\examples\get-started\play_mp3 play_mp3

 

لینوکس و مک 

cd ~/esp
cp -r $ADF_PATH/examples/get-started/play_mp3 .

طیف وسیعی از پروژه های نمونه در فهرست examples در ESP-ADF وجود دارد. می توانید هر پروژه ای را به همان روشی که در بالا ارائه شده کپی کرده و اجرا کنید.

همچنین می توان نمونه برنامه ها را درجا ایجاد کرد، بدون اینکه ابتدا آنها را کپی کنید.

باز تکرار می کنیم که به این نکته توجه داشته باشید:

بیلد سیستم ESP-IDF از فضاهای موجود در مسیرهای ESP-IDF یا پروژه ها پشتیبانی نمی کند.

 

مرحله 6. برد خود را وصل کنید

برد توسعه صوتی خود را به رایانه وصل کنید

توجه داشته باشید:

نام پورت را در دست داشته باشید زیرا در مراحل بعدی به آن نیاز خواهید داشت.

 

مرحله 7. پیکربندی

ابتدا به دایرکتوری play_mp3 خود بروید طبق "مرحله 5 شروع اولین پروژه برنامه صوتی" و پروژه را پیکربندی کنید

 

نسخه های v3.3.2 و v4.0 فریمورک ESP-IDF

ویندوز

cd %userprofile%\esp\play_mp3
idf.py menuconfig

لینوکس و مک

cd ~/esp/play_mp3
idf.py menuconfig

 

نسخه v4.1 و نسخه اصلی

ویندوز

cd %userprofile%\esp\play_mp3
idf.py set-target esp32
idf.py menuconfig

لینوکس و مک 

cd ~/esp/play_mp3
idf.py set-target esp32
idf.py menuconfig
توجه داشته باشید: اگر از برد مبتنی بر ESP32-S2 استفاده می کنید، دومین فرمان بالا باید idf.py set-target esp32s2 برای ESP-IDF master release یا idf.py set-target esp32s2beta برای ESP-IDF v4.1 release باشد.

تنظیم target با idf.py set-target <target> باید یکبار پس از بازکردن یک پروژه جدید انجام شود. اگر پروژه شامل ساختارها و پیکربندی های موجود باشد، پاک می شوند و راه اندازی می شوند. ممکن است target در متغیر محیط ذخیره شود تا این مرحله را به طور کامل رد کنید. برای اطلاعات بیشتر به انتخاب target در آموزش ESP-IDF مراجعه کنید.

اگر مراحل قبلی به درستی انجام شده باشد، منوی زیر ظاهر می شود:

شما از این منو برای تنظیم نوع برد خود و سایر متغیرهای خاص پروژه استفاده می کنید. نام و رمز شبکه Wi-Fi، سرعت پردازنده و غیره

برد خود را از منو انتخاب کنید، S را برای ذخیره تنظیمات و سپس Q برای خروج را فشار دهید.

 

مرحله 8. بیلد پروژه

 بیلد پروژه با اجرای دستور زیر:

idf.py build

این دستور برنامه و همه اجزای ESP-IDF و ESP-ADF را کامپایل می کند، سپس بوت لودر، جدول پارتیشن و باینری برنامه را ایجاد می کند.

$ idf.py build
 Executing action: all (aliases: build)
 Running ninja in directory /path/to/esp/play_mp3/build
 Executing "ninja all"...
 [0/1] Re-running CMake...

... (more lines of build system output)

 [1064/1064] Generating binary image from built executable
 esptool.py v3.0-dev
 Generated /path/to/esp/play_mp3/build/play_mp3.bin

 Project build complete. To flash it, run this command:
 /path/to/.espressif/python_env/idf4.2_py2.7_env/bin/python ../esp-idf/components/esptool_py/esptool/esptool.py -p (PORT) -b 460800 --before default_reset --after hard_reset --chip esp32  write_flash --flash_mode dio --flash_size detect --flash_freq 40m 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin 0x10000 build/play_mp3.bin
 or run 'idf.py -p (PORT) flash'

در صورت عدم وجود خطا، بیلد برنامه با ایجاد فایل باینری .bin فریمور به پایان می رسد.

 

مرحله 9.فلش برنامه روی برد

فایلهای باینری را که به تازگی بیلد کرده اید با اجرای دستور زیر روی برد خود فلش کنید:

idf.py -p PORT [-b BAUD] flash monitor

PORT را با نام پورت سریال برد خود جایگزین کنید. دستگاه خود را وصل کنید.

همچنین می توانید باود را با تغییر BAUD با سرعت مورد نیاز تغییر دهید. نرخ پیش فرض باود 460800 است.

 

توجه داشته باشید:

گزینه flash به طور خودکار پروژه را بیلد و فلش می کند، بنابراین اجرای idf.py build ضروری نیست.

 

برای آپلود باینری ها، برد باید در مد آپلود قرار گیرد. برای انجام این کار، دکمه Boot را نگه دارید، بعد دکمه Reset را فشار دهید و دکمه Boot را رها کنید. مد آپلود ممکن است در هر زمان در طول بیلد برنامه آغاز شود، اما حداکثر تا پیام "Connecting" نمایش داده شود:

...

esptool.py v3.0-dev
Serial port /dev/ttyUSB0
Connecting........_____....

بدون فعال کردن مد آپلود، پس از نمایش چندین ....._____ ، اتصال در نهایت متوقف می شود.

پس از اتمام بیلد و آپلود، باید موارد زیر را مشاهده کنید:

...

Leaving...
Hard resetting via RTS pin...
Executing action: monitor
Running idf_monitor in directory /path/to/esp/play_mp3
Executing "/path/to/.espressif/python_env/idf4.2_py2.7_env/bin/python /path/to/esp/esp-idf/tools/idf_monitor.py -p /dev/ttyUSB0 -b 115200 --toolchain-prefix xtensa-esp32-elf- /path/to/esp/play_mp3/build/play_mp3.elf -m '/path/to/.espressif/python_env/idf4.2_py2.7_env/bin/python' '/path/to/esp/esp-idf/tools/idf.py'"...
--- idf_monitor on /dev/ttyUSB0 115200 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---

اگر تا پایان فرآیند فلش مشکلی وجود نداشته باشد، برد راه اندازی مجدد می شود و برنامه "play_mp3" را راه اندازی می کند.

 

مرحله 10. مانیتور

در این مرحله دکمه Reset را فشار دهید تا برنامه شروع به کار کند. پس از چندین خط از گزارش راه اندازی، پیامهای خاص برنامه play_mp3 باید نمایش داده شوند:

...

I (397) PLAY_MP3_FLASH: [ 1 ] Start audio codec chip
I (427) PLAY_MP3_FLASH: [ 2 ] Create audio pipeline, add all elements to pipeline, and subscribe pipeline event
I (427) PLAY_MP3_FLASH: [2.1] Create mp3 decoder to decode mp3 file and set custom read callback
I (437) PLAY_MP3_FLASH: [2.2] Create i2s stream to write data to codec chip
I (467) PLAY_MP3_FLASH: [2.3] Register all elements to audio pipeline
I (467) PLAY_MP3_FLASH: [2.4] Link it together [mp3_music_read_cb]-->mp3_decoder-->i2s_stream-->[codec_chip]
I (477) PLAY_MP3_FLASH: [ 3 ] Set up  event listener
I (477) PLAY_MP3_FLASH: [3.1] Listening event from all elements of pipeline
I (487) PLAY_MP3_FLASH: [ 4 ] Start audio_pipeline
I (507) PLAY_MP3_FLASH: [ * ] Receive music info from mp3 decoder, sample_rates=44100, bits=16, ch=2
I (7277) PLAY_MP3_FLASH: [ 5 ] Stop audio_pipeline

اگر مشکلی وجود ندارد، علاوه بر گزارش بالا، باید صدایی را که حدود 7 ثانیه از بلندگوها یا هدفون متصل به برد صوتی شما پخش می شود، بشنوید. در صورت لزوم، برد را ریست کنید تا دوباره آن را بشنود.

اکنون شما آماده هستید تا چند برنامه نمونه دیگر را امتحان کنید، یا به سمت توسعه برنامه های کاربردی خود بروید. بررسی کنید که چگونه نمونه ها از مکان ESP-ADF آگاه می شوند. get-start/play_mp3/Makefile را باز کنید و باید ببینید.

include($ENV{ADF_PATH}/CMakeLists.txt)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)

خط اول شامل ADF_PATH است تا تولچین را به فایل دیگری در دایرکتوریESP-ADF نشان دهد که متغیرهای پیکربندی و مسیر اجزای ESP-ADF را که توسط تولچین  به دست آمده است، فراهم می کند. شما در برنامه های کاربردی خود که با ESP-ADF توسعه یافته اند به Makefile مشابه نیاز دارید.

 

منبع: https://docs.espressif.com/projects/esp-adf/en/latest/get-started/index.html

  نظرات

جهت ثبت نظر وارد سایت شوید

راهنمای استفاده از کد در کامنت
````
insert your code
``