د ESP32 ټچ سکرین په پیانو بدل کړئ – د غږ فایلونو اړتیا نشته
پورته شوي کليدانې، ریښتیني کورډونه، او په چپ کې تولید شوی غږ
د لمس سکرین پر مخ د لوبېدو وړ پیانو. کليدانې پورته شوې ښکاري او کله چې تاسو یې لمس کوئ نو دننه فشارېږي، د لمس پینل پنځه ګوتې تعقیبوي نو تاسو کولی شئ کورډونه وغږوئ، او هر نوټ د پروسیسر لخوا ترکیب کېږي - دلته هیڅ غږیز فایلونه او نه SD کارت شامل دي.
922-دا د AI موسیقۍ مقاله ده پروژه دلته ده.
923-پیانو (دا اوسنۍ مقاله ده)
دا په بشپړه توګه آفلاین ده. فلش یې کړئ او ولوبوئ.
Robojax_Makerfab د MaTouch AI ESP32-S3 محصول پاڼې په چیک آوټ کې دننه کړئ. دا ستاسو لپاره هیڅ لګښت نه لري، او دلته د وړیا کوډ او لارښودونو ملاتړ کوي.دوه ترتیبونه، او ولې دواړه شتون لري
دا سکیچ دوه بشپړ مختلف کیبورډونه لري، او د پورته کیڼ کونج کې د LAYOUT تڼۍ د دوی ترمنځ بدلون راولي. په هغه تڼۍ باندې لیبل تاسو ته وایي چې اوس په کوم کې یاست، نو دا د شاخص په توګه هم کار کوي - یې ټایپ کړئ او بدلیږي.
KEYS - یوه ریښتینې پیانو
اووه سپینې کليدانې د بشپړ پلنوالي په اوږدو کې او پنځه تورې کليدانې په سر باندې، په سمه توګه د ریښتیني کیبورډ په څیر. دا هغه څه دي چې بورډ پرې پیل کوي. ځکه چې یوازې یو اوکټاو فټ کېږي، د LAYOUT تر څنګ د - او + تڼۍ تاسو پورته او ښکته خوځوي؛ د دوی ترمنځ سیان لوستنه ښیي چې تاسو چیرته یاست، C3 څخه تر C6 پورې.
GRID - څلور اوکټاوه، هیڅ غلط نوټ نه

د اوو څلور قطارونه، په یو وخت کې 28 کليدانې. هر قطار یو اوکټاو دی، تر ټولو ټیټ په ښکته کې؛ هر ستون یو نوټ دی - C، D، E، F، G، A، B. هیڅ شارپ نه، هیڅ فلیټ نه، نو ټول بورډ د C میجر دی او هیڅ غلط نوټ نشته. تاسو کولی شئ دا هغه چا ته ورکړئ چې هیڅکله یې هیڅ نه وي غږولی، پرېږدئ چې په تصادفي توګه یې ووهي، او بیا هم د موسیقۍ په څیر غږېږي.
ولې یوازې یو اوکټاو د ریښتیني کیبورډ په توګه فټ کېږي
دا هغه ریاضیات دي چې ټوله پروژه جوړوي. سکرین 320 پکسل پراخ دی مګر یوازې شاوخوا 2.2 انچه پلن دی، نو د ګوتې سر شاوخوا 45 پکسل پوښي.
- یو اوکټاو - اووه سپینې کليدانې په شاوخوا 45 پکسل هر یو. آرامه.
- دوه اوکټاوه - څوارلس سپینې کليدانې په شاوخوا 22 پکسل هر یو. د ګوتې نیمه برخه. د لوبېدو وړ نه.
نو یو مناسب پیانو ترتیب دلته کولی شي یوازې یو اوکټاو وښیې، له همدې امله د اوکټاو تڼۍ شتون لري - او له همدې امله GRID د بدیل په توګه شتون لري کله چې تاسو د واقعیت پر ځای پراخوالی او باور غواړئ.
په کوډ کې د ترتیب بدلول
د سکیچ په پورتنۍ برخه کې درې ترتیبات دا ټول کنټرولوي:
| ترتیب | دا څه کوي |
|---|---|
BOOT_LAYOUT |
کوم کیبورډ د بریښنا په وخت کې ښکاري. د پیانو لپاره LAYOUT_KEYS، د گرډ لپاره LAYOUT_GRID. |
ROWS |
GRID څومره اوکټاوه ښیې. ډیفالټ 4. |
COLS |
په GRID کې په هر قطار کې نوټونه. ډیفالټ 7، اووه طبیعي نوټونه. |
BASE_OCTAVE |
GRID څومره اوکټاوه ښیې. ډیفالټ 3. |
ROWS او COLS یوازې GRID اغیزه کوي. د KEYS ترتیب خپل اوکټاو له خپلو جدولونو څخه جوړوي او دا یې له پامه غورځوي، نو د دې شمېرو بدلول به تورې کليدانې نه زیاتوي او نه پیانو بدلوي.د پورته شوي بڼه څنګه جوړه شوې
د هرې کلیدانې په پورته او کیڼ اړخ کې روښانه څنډه، او په ښکته او ښي اړخ کې تیاره څنډه، سترګو ته د یو څه راوتلي شی په څیر ښکاري. د کلیدانې فشارول دا بدلوي او مخ یې تیاره کوي، کوم چې د دننه فشار شوي په څیر ښکاري. دا د هرې څنډې لپاره دوه کرښې کوډ دی او قانع کوونکی دی.
غږ څنګه جوړېږي
په دې بورډ کې هیڅ ثبت شوي غږونه نشته. هیڅ نمونې نه، په حافظه کارت کې هیڅ نه. هر نوټ یو فیز اکومولیټر دی چې د 512-ننوتۍ ساین جدول څخه تیریږي - د لوړ نوټ لپاره یې ژر تیر کړئ، د ټیټ لپاره ورو - نو په هر نمونه کې هیڅ مثلثات نه محاسبه کېږي. د ګرمۍ لپاره درې هارمونیکونه مخلوط شوي دي.
هر نوټ هم یو لنډ برید او خوشې کولو لفافه ترلاسه کوي، شاوخوا شپږ ملی ثانیې دننه او اویا بهر. پرته له دې تاسو هر ځل چې نوټ پیل یا بندیږي یو کلیک اورئ، ځکه چې تاسو یو موج فورمه په بشپړ طول کې بدلوئ. هغه لفافه د یوې وسیلې او یو بیپر ترمنځ توپیر دی.
تر پورې پنځه نوټونه سره ګډیږي، د هغو پنځو ټچ پوائنټونو سره سم چې پینل یې راپور ورکوي. i2s_write() هغه وخت بلاک کیږي کله چې د آډیو بفر ډک وي، کوم چې په اسانۍ سره ټول پروګرام په ریښتیني وخت کې ګام وهي - هیڅ ټایمر یا انټرپټ ته اړتیا نشته.
تڼۍ
- LAYOUT د KEYS او GRID ترمنځ بدلون راولي. لیبل ښیي چې تاسو په کوم کې یاست.
- - او + اوکټاو ته حرکت ورکوي. یوازې د KEYS ترتیب کې.
- VOL د کیبورډ پر سر د حجم پینل پرانیزي - د کچې ټاکلو لپاره بار کش کړئ. د بندولو لپاره بیا VOL ټایپ کړئ.
- DEMO پخپله یوه سندره غږوي، هر کلیدي رڼا کوي لکه څنګه چې ځي.
- WAVE ټون د SOFT، ORGAN او BRIGHT ترمنځ ګرځوي. دا په ORGAN پیل کیږي، کوم چې د دې کوچني سپیکر لپاره غوره دی، مګر درې واړه هڅه وکړئ.
د حجم کنټرول
په دې بورډ کې امپلیفایر واقعیا لوړ دی - 3.2 W په 4 Ω سپیکر کې - نو د کمولو وړتیا مهمه ده. د VOL ټایپ کول د کیبورډ پر سر یو پینل راښیي چې لوی کش کیدونکی بار لري؛ اوسنۍ کچه هم په دایمي توګه په پورتنۍ بار کې ښودل کیږي.
پداسې حال کې چې پینل خلاص وي، دا په قصدي ډول د پورتنۍ بار لاندې هره ټچ تیروي، نو تاسو نشئ کولی د هغې له لارې په ناڅاپي ډول نوټونه پیل کړئ. ترتیب د یو واحد ضرب په توګه پلي کیږي کله چې مخلوط شوی آډیو 16-bit ته اندازه کیږي، کوم چې په چلولو وخت کې هیڅ لګښت نه لري او د ډیمو سندرې باندې په مساوي ډول اغیزه کوي. که تاسو د ډیفالټ لسو په پرتله ښې یا ټیټې کچې غواړئ، په سکیچ کې VOL_STEPS تنظیم کړئ.
هیڅ WiFi، هیڅ حساب، د تنظیمولو لپاره هیڅ نشته
دا په ښکاره ویل ارزښت لري، ځکه چې په دې لړۍ کې هر بل پروژه په یو ځای کې حساب ته اړتیا لري: دا نه کوي. دلته هیڅ secrets.h نشته چې ډک شي، هیڅ API کیلي، هیڅ شبکه نشته. فلش یې کړئ او وغږوئ. د هر هغه څه څخه چې د دې بورډ لپاره جوړ شوي، دا هغه دی چې یو پیل کونکي ته ورکړل شي.
یو کورډ هڅه وکړئ
په یو وخت کې درې یا څلور کلیګان فشار کړئ. د ټچ کنټرولر پنځه ګوتې تعقیبوي، نو دوی ټول سره غږیږي - دا هغه شیبه ده چې دا د بیپر په څیر احساس کول بندوي او د یوې آلې په څیر احساس پیل کوي.
د MaTouch AI ESP32-S3 2.8" بورډ په اړه
په دې پاڼه کې هره پروژه د Makerfabs څخه په MaTouch AI ESP32-S3 2.8" TFT ST7789V باندې چلیږي. دا یو ټول-په-یو بورډ دی: یو رنګین ټچ سکرین، یو 3 میګاپکسل کیمره، دوه مایکروفونونه او یو ریښتینی سپیکر امپلیفایر، ټول د ESP32-S3 لخوا د 8 MB PSRAM سره پرمخ وړل کیږي. دا ترکیب هغه څه دي چې دا AI پروژې په یو واحد بورډ کې د بل هیڅ شی سره وصل پرته ممکنه کوي.
8 MB PSRAM دلته د هر بل شمیرې څخه ډیر مهم دی. دا هغه څه دي چې بورډ ته اجازه ورکوي چې د کیمرې یو چوکاټ، د ثبت شوي آډیو څو ثانیې، یا د بیس64-کوډ شوی عکس په حافظه کې په ورته وخت کې وساتي - کوم چې هیڅ یو د ESP32’s عادي RAM کې نه ځای کیږي.
د تولید کونکي اسناد: د Makerfabs ویکي پاڼه.
د دې بورډ لپاره هره بله پروژه - کیمره، آفلاین مخ پیژندنه، د AI غږ معاون، AI لید او د انځور کولو پروژه - خپل ټیوټوریل لري. د ټولو لینکونه د دې مقالې لاندې دي.
کلیدي مشخصات
- پروسسر: ESP32-S3، دوه کور 240 MHz، WiFi 2.4 GHz + Bluetooth 5.0
- حافظه: 16 MB فلش، 8 MB PSRAM (دلته نږدې هرې پروژې ته اړتیا ده)
- ښودنه: 2.8" IPS، 320×240، ST7789V ډرایور، SPI
- ټچ: GT911 کپیسیټیو، په یو وخت کې 5 ګوتې تعقیبوي
- کیمره: OV3660، 3 میګاپکسل، تر 2048×1536 پورې
- مایکروفونونه: دوه INMP441 I2S ډیجیټل مایکونه (یو ریښتینی سټیریو جوړه)
- سپیکر: MAX98357A کلاس-D امپلیفایر، 3.2 W په 4 Ω کې
- ذخیره: د microSD کارت سلاټ (SPI حالت)
- بریښنا: USB-C، د JST بیټرۍ نښلونکی، TP4056 چارجر، د بریښنا سویچ
- همدارنګه په بورډ کې: WS2812B RGB LED، PCF8563T د بیټرۍ ملاتړ شوی ریښتینی وخت ساعت، او د MAX17048 بیټرۍ د تیلو ګیج چې په رسمي مشخصاتو کې نه لیست شوی
USB CDC On Boot په Disabled وټاکئ. غلط بندر وکاروئ او آډیو به ناسم چلند وکړي یا اپلوډونه به ناکام شي.د بیټرۍ څخه بریښنا ورکول؟ دوه USB-C ساکټونه، TP4056 چارجر او د بریښنا سویچ په بشپړ ډول تشریح شوي، د سکیمیټیک سره، په د بورډ ازموینې مقاله کې — پشمول دا چې کوم ساکټ چارج کوي او ایا سویچ باید آن یا آف وي.
د Arduino IDE ترتیبات
دا ترتیبات مهم دي. ډیری ستونزې چې خلک یې د دې بورډ سره راپور ورکوي د دې څخه یوه غلطه ده، او دوی کله چې تاسو د کور نسخه بدل کړئ بیا تنظیمیږي، نو د هر بدلون وروسته یې بیا وګورئ.
| ترتیب | ارزښت |
|---|---|
| بورډ | ESP32S3 Dev Module |
| د ESP32 کور نسخه | 2.0.17 |
| PSRAM | OPI PSRAM |
| د فلش اندازه | 16MB (128Mb) |
| د پارټیشن سکیم | 16M فلش (3MB APP/9.9MB FATFS) |
| USB CDC په بوت کې | غیر فعال |
| د اپلوډ سرعت | 921600 |
| د اپلوډ دمخه ټول فلش پاک کړئ | غیر فعال |
| پورټ | د CH340K USB-C پورټ |
که اپلوډ ناکام شي: بورډ په لاسي ډول په ډاونلوډ حالت کې اچول
ډیری وختونه تاسو یوازې Upload فشاروئ او کار کوي. ځینې وختونه نه کوي - IDE په Connecting...... کې ناست وي او بیا د Failed to connect to ESP32-S3: No serial data received سره تسلیمیږي.
دا پیښیږي ځکه چې IO0 په دې بورډ کې په یو وخت کې درې دندې کوي: دا د BOOT تڼۍ ده، دا د CH340K څخه د اتوماتیک ریسیټ کرښه ده، او دا د RGB LED لپاره د معلوماتو کرښه ده. کله چې سکیچ دمخه په بورډ کې روان وي هغه LED چلوي، دا کولی شي د اتوماتیک ریسیټ سره مقابله وکړي، نو چپ ستاسو په زاړه سکیچ کې بیا پیل کیږي پرځای د بوټلوډر ته.
حل پنځه ثانیې وخت نیسي. دا پخپله په ډاونلوډ حالت کې واچوئ:
- د BOOT تڼۍ فشار کړئ او ونیسئ.
- پداسې حال کې چې لاهم BOOT نیولی، RESET فشار کړئ او RESET پریږدئ.
- اوس BOOT پریږدئ. سکرین خالي کیږي - دا بوټلوډر دی چې انتظار کوي.
- په Upload کلیک وکړئ.
- کله چې پای ته ورسیږي، د نوي سکیچ چلولو لپاره یو ځل RESET فشار کړئ.
که لاهم وصل نشي، Upload Speed 115200 ته راټیټ کړئ او بیا هڅه وکړئ. او وګورئ چې د بورډ د بریښنا سویچ فعال دی - CH340K شمېرل کیږي او تاسو ته د COM پورټ درکوي حتی کله چې بورډ پخپله بند وي، کوم چې خلک غولوي.
اړین کتابتونونه
دا پروژه په لاندې جدول کې هر کتابتون ته اړتیا لري - نه ډیر، نه کم. ډیری یې مستقیم د Arduino IDE کې د Tools → Manage Libraries څخه نصب کیږي، مګر GFX Library for Arduino باید د ZIP فایل څخه نصب شي. د نسخې شمیرې مهمې دي، نو مهرباني وکړئ دقیقا هغه وکاروئ چې لیست شوي دي.
| کتابتون | نسخه | لیکوال | د نصب ځای |
|---|---|---|---|
| GFX Library for Arduino | 1.5.6 | moononournation | د ZIP فایل - لاندې وګورئ |
| bb_captouch | 1.3.1 | Larry Bank | Library Manager |
| Adafruit NeoPixel | هر وروستی | Adafruit | Library Manager |
د ZIP فایل څخه د GFX کتابتون نصبول
- ZIP ډاونلوډ کړئ. دا د دې پروژې په ډاونلوډ کې شامل دی، یا تاسو کولی شئ دا د Arduino_GFX ذخیره څخه ترلاسه کړئ - په شنه Code تڼۍ کلیک وکړئ، بیا Download ZIP.
- دا هغه ځای کې خوندي کړئ چیرې چې تاسو یې بیا موندلی شئ. دا مه خلاصوئ.
- په Arduino IDE کې، په Sketch → Include Library → Add .ZIP Library کلیک وکړئ.
- هغه ZIP فایل ته لاړ شئ چې تاسو ډاونلوډ کړی او په Open کلیک وکړئ.
- IDE دا نصبوي او د کړکۍ په ښکته کې تاییدوي. که تاسو دمخه د 1.6 نسخه نصب کړې وي، لومړی هغه فولډر له
Documents/Arduino/librariesڅخه حذف کړئ، یا دواړه به ټکر وکړي.
ستونزې حل کول
| نښه | علت او حل |
|---|---|
| سکرین تور پاتې کیږي | د GFX کتابتون غلط نسخه (1.5.6 وکاروئ) یا د بورډ غلط ترتیب. |
PSRAM alloc failed |
Tools → PSRAM په OPI PSRAM نه دی ټاکل شوی. |
| هیڅ نه اپلوډ کیږي / د COM پورټ نشته | غلط USB-C پورټ، یا د CH340 ډرایور نصب شوی نه دی. |
سرچینې او حوالې
تر اوسه هیڅ سرچینې نشته.
فایلونه📁
هیڅ فایل شتون نلري.