آموزش Espآموزش آردوینوپروژه های Espپروژه های آردوینو

ساخت اسپیکر بلوتوثی با آردوینو (بلندگو بی سیم)

اسپیکر بلوتوث اکنون به یک ابزار خانگی بسیار محبوب تبدیل شده است که ما روزانه از آن استفاده می کنیم. بنابراین، برای مقاله امروز، ما به فکر طراحی و ساخت اسپیکر بلوتوث بدست خودمان افتادیم. برای اینکه همه چیز کمی جالب‌تر شود، نواری از LED‌ های WS2812B Neo Pixel اضافه کرده‌ایم. برای تبدیل صدا به نور توسط ال ای دی ها از ابزار های صوت به تصویر استفاده میکنیم.

مدار اسپیکر بلوتوثی آردوینو

فرآیند کار اسپیکر بلوتوث بسیار ساده است و هیچ تفاوتی با سایر اسپیکرهای بلوتوث موجود در بازار ندارد. یکی از تفاوت های اصلی این اسپیکر اضافه شدن LED های WS2812B در کناره های محفظه اسپیکر است که در ادامه این مقاله توضیح خواهیم داد. شماتیک کامل اسپیکر بلوتوث در زیر نشان داده شده است.

مدار اسپیکر بلوتوثی آردوینو

قطعات مورد نیاز

  • ساب ووفر 3 اینچی 4 اهم 15 وات – 2 عدد
  • ماژول صوتی بلوتوث
  • ماژول تقویت کننده صوتی کلاس D
  • ماژول ESP8266-12E (برد Node MCU کار نخواهد کرد)
  • WS2812B Neo Pixels LED (نوار LED 1 متری)
  • باتری لیتیوم 18650 – 6
  • شارژر و ماژول محافظ باتری لیتیومی 3S 2P
  • سوئیچ DC
  • جک DC
  • آداپتور برق 12 ولت (برای شارژ)

مدار بسیار ساده و قابل درک است. برای تأمین توان مورد نیاز ماژول تقویت کننده صوتی 15 واتی کلاس D PAM8610، از شش باتری لیتیوم پلیمری 18650 در پیکربندی 3S و 2P استفاده کردیم. نمای نزدیک از مدار تقویت کننده صدا در زیر نشان داده شده است.

مدار تقویت کننده صدا

از آنجایی که ما از باتری های لیتیومی برای تغذیه مدار استفاده می کنیم، باید مراقب فرآیند شارژ و دشارژ باتری ها باشیم، در غیر این صورت طول عمر باتری ها به شدت کاهش می یابد، به همین دلیل است که ما از یک ماژول 10A 3s، 2P BMS استفاده می کنیم. این ماژول BMS اطمینان حاصل می کند که باتری به درستی شارژ می شود و بیش از حد تخلیه نمی شود. همچنین این ماژول BMS باتری را در برابر شرایط اتصال کوتاه و اضافه بار محافظت می کند. نمای نزدیک از مدار BMS در زیر نشان داده شده است.

مدار BMS

سپس، ما ماژول مبدل باک را داریم. ماژول مبدل باک 12 ولت خروجی از باتری را کاهش می دهد و آن را به + 5 ولت تبدیل می کند تا بتوانیم LED های Neo Pixel، ماژول گیرنده صوتی بلوتوث و ماژول ESP12E را تغذیه کنیم.

شماتیک ماژول مبدل باک

مورد بعدی، خود ماژول گیرنده صوتی بلوتوث است. همانطور که از نام این مدل مشخص است یک گیرنده صوتی بلوتوث است و ما در حال اتصال خروجی گیرنده صوتی بلوتوث به ورودی ماژول تقویت کننده صدا هستیم.

نمودار مدار ماژول گیرنده صوتی بلوتوث

خروجی ماژول گیرنده صوتی بلوتوث با دو مقاومت 10K ترکیب می شود و مستقیماً به یک آپ امپ ولتاژ پایین MCP6001T می رسد که وظیفه آن تقویت سیگنال و آفست منبع صوتی است. زیرا بدون افست تنها یک قسمت از موج سینوسی تقویت می شود و در عوض خروجی ناخواسته تولید می کند. از آنجایی که op-amp بسیار کم مصرف است، ما از یک پین GPIO ESP برای تغذیه آن استفاده می کنیم، بنابراین می توانیم هر زمانی که بخواهیم LED ها را روشن یا خاموش کنیم. این ویژگی می تواند در شرایط نور کم یا در یک اتاق تاریک بسیار مفید باشد.

مدار تقویت کننده صدا

اکنون نوبت ماژول ESP8266 است. برای تغذیه ماژول از یک رگولاتور 3.3 ولتی AMS117 استفاده می کنیم، به غیر از آن که در ماژول چند LED WS2812 Neo Pixel را وصل کرده ایم. پین داده برای Neo Pixels پایه RX ماژول ESP است و نمی توان آن را تغییر داد زیرا کد از I2S ماژول ESP برای درایو LED استفاده می کند و برای سمت ورودی از پین A0 ESP استفاده می کنیم که به پین ​​خروجی آپ امپ متصل است. در نهایت همانطور که قبلا ذکر شد، ما از gpio14 ماژول برای روشن/خاموش کردن op-amp استفاده می کنیم.

مدار نئو پیکسل ESP8266 WS2812 

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید

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

راه اندازی بلندگو بلوتوث آردوینو

اسپیکر بلوتوث آردوینو با LED NeoPixel

کامپایل Colorcord روی یک لینوکس و فلش کردن آن در ESP82266

اکنون به جالب ترین و مهم ترین قسمت ساخت رسیده ایم، بدون این مرحله اسپیکر بلوتوث شما به خوبی کار می کند اما LED های WS2812B شما اصلا روشن نمی شوند، بنابراین مراحل را دنبال کنید. لطفاً توجه داشته باشید که برای اینکه این فرآیند کار کند باید توزیعی از لینوکس را در سیستم خود نصب کرده باشید یا باید یک زیرسیستم برای لینوکس نسخه 1 یا WSL1 نصب و راه اندازی کنید، اما این فراتر از محدوده این پروژه است. حالا بیایید فرآیند کامپایل را برای colorchord embedded آغاز کنیم.

اگر برای اولین بار است که این پروژه را می سازید، باید به مخزن cnlohr esp82xx GitHub بروید و دستورالعمل ها را دنبال کنید.

مانند هر سیستم لینوکس دیگری، شما باید سیستم خود را به روز رسانی و ارتقا دهید و برخی از پیش نیازها را نصب کنید.

sudo apt-get update && upgrade
sudo apt-get install -y make gcc g++ gperf install-info gawk libexpat-dev python2-dev
python2 python2-serial sed git unzip bash wget bzip2 libtool-bin

حال، اگر سیستم شما پایتون 2 یا pyserial ندارد، باید دستورالعمل زیر را دنبال کنید.

curl  https://github.com/pypa/get-pip/raw/5f38681f7f5872e4032860b54e9cc11cf0374932/get-pip.py --output get-pip.py
sudo python2 get-pip.py
pip install pyserial

بعد، باید esp-open-sdk را استخراج کنید تا محتوای archive را در پوشه اصلی قرار دهید. این محل پیش‌فرض این SDK است.

mkdir -p ~/esp8266
cd ~/esp8266
wget https://github.com/cnlohr/esp82xx_bin_toolchain/raw/master/esp-open-sdk-x86_64-20200810.tar.xz
tar xJvf esp-open-sdk-x86_64-20200810.tar.xz

بنابراین در مرحله بالا یک پوشه cd در آن ایجاد می کنیم و فایل های esp-open-sdk را دریافت کرده و آن را استخراج می کنیم.

بعد، باید NON-OS SDK را از espressif نصب کنیم و برای این کار فقط دستورات زیر را کپی کرده و اینتر را بزنید.

cd ~/esp8266
git clone https://github.com/espressif/ESP8266_NONOS_SDK --recurse-submodules

در مرحله بعد، باید مطمئن شوید که بخشی از گروه dialout هستید تا بتوانید وارد شوید و فایل را بدون دسترسی root فلش کنید، دستور انجام این کار در زیر داده شده است.

sudo usermod -aG dialoutdas

پس از انجام این کار، باید از سیستم خارج شوید و وارد شوید، تا فرآیند اثرگذار شود.

در مرحله بعد، باید محل esp-open-sdk را با دستور زیر به bashrc اضافه کنید.

export ESP_ROOT=/path/to/sdk/where/esp-open-sdk

تمام موارد مورد نیاز برای کامپایل colorchord را آماده کرده ایم.

اکنون باید یک کپی از colorchord تعبیه شده از GitHub دریافت کنیم و برای آن دستورالعمل زیر را دنبال کنید. با این کار کد منبع Colorchord و همه وابستگی های آن دانلود می شود.

git clone https://github.com/cnlohr/colorchord.git –recurse-submodules

در مرحله بعد، باید سی دی را در فهرست جاسازی شده قرار دهید تا بتوانیم نسخه colorchord را برای esp8266 کامپایل کنیم.

cd colorchord/embedded8266

اکنون، تنها کاری که باید انجام دهیم این است که فقط make all را تایپ کرده و اینتر را بزنید.

کامپایل Colorcord

اگر در این مرحله همه کارها را به درستی انجام داده باشید، دو فایل bin را برای آپلود در esp8266 آماده خواهید کرد. حالا باید فایل های bin کامپایل شده را روی ESP8266 فلش کنید، اگر برای اولین بار است که این کار را انجام می دهید باید حافظه esp8266 را به طور کامل پاک کنید. دستورات زیر را اجرا کنید. به جای <port value>، باید آدرس پورت USB خود را اضافه کنید. برای من /dev/ttyUSB0 بود.

PORT=<port value> make erase
PORT=<port value> make burnitall

اگر تغییراتی در colorchord ایجاد کرده اید و می خواهید آنها را آزمایش کنید از دستور زیر استفاده کنید.

PORT=<port_value> make burn

اگر فرآیند چشمک زدن به درستی انجام شود، ماژول ESP باید یک نقطه دسترسی Wi-Fi را ایجاد کند که بتوانید به آن متصل شوید. حال اگر به آن اکسس پوینت متصل شوید به 192.168.4.1 بروید، چیزی که در زیر نشان داده شده است، مشاهده خواهید کرد. این صفحه کنترل Colorchord است که در آن می توانید یک GPIO را روشن یا خاموش کنید. می‌توانید روش‌های مختلف را برای جلوه‌های نوری مختلف انتخاب کنید، یا می‌توانید تنظیمات Wi-Fi را تغییر دهید و کارهای بیشتری انجام دهید.

کامپایل Colorcord روی یک سیستم مبتنی بر لینوکس و فلش کردن آن به ESP82266

Colorchord تعبیه شده است

با این کار، پروژه خود را در مورد اسپیکر بلوتوث واکنش‌گر نور با رنگ‌آکورد به پایان می‌رسانیم. امیدوارم از خواندن این مطلب لذت برده باشید و چیز مفیدی یاد گرفته باشید. اکنون وقت آن است که خودتان آن را بسازید و در بخش نظرات زیر به ما اطلاع دهید که با این پروژه چه می‌کنید. در صورت داشتن هرگونه سوال یا مشکلی می توانید آنها را در انجمن ما مطرح کنید.

5/5 - (1 امتیاز)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام آیرنکس را دنبال کنید.
تصویر از محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.