کوڈ تلاش کریں

AI ایک گانا لکھتا ہے اور یہ ESP32 آپ کو اسے بجانے کا سکھاتا ہے

AI ایک گانا لکھتا ہے اور یہ ESP32 آپ کو اسے بجانے کا سکھاتا ہے

کسی AI سے دھن لکھوائیں، اسے بجاتے ہوئے سنیں، پھر بورڈ کو آپ کو بجانا سکھانے دیں

ایک موڈ چنیں، WRITE دبائیں، اور ایک AI ایک چھوٹی دھن ترتیب دیتا ہے۔ بورڈ اسے بجاتا ہے، ہر کلید کو روشن کرتا ہوا۔ پھر LEARN دبائیں اور یہ ایک استاد بن جاتا ہے: یہ ایک وقت میں ایک کلید روشن کرتا ہے اور آپ کے دبانے کا انتظار کرتا ہے، نوٹ بہ نوٹ، یہاں تک کہ آپ خود پوری دھن بجا لیں۔

922-یہ AI میوزک آرٹیکل ہے (موجودہ مضمون)

923-پیانو پروجیکٹ یہاں ہے۔

یہ کسی بھی لمحے اب بھی ایک مکمل 21-کلیدی پیانو ہے - بس اسے بجائیں۔

AI میوزک کمپوزر اور ٹیچر MaTouch AI ESP32-S3 بورڈ پر چل رہا ہے
AI میوزک کمپوزر اور ٹیچر MaTouch AI ESP32-S3 بورڈ پر چل رہا ہے

اسکرین

MaTouch AI ESP32-S3 پر AI میوزک مین اسکرین، چھ بٹن دکھاتے ہوئے
MaTouch AI ESP32-S3 پر AI میوزک مین اسکرین، چھ بٹن دکھاتے ہوئے

اوپر چھ بٹن، پھر ایک 21-کلیدی کی بورڈ - سات کی تین قطاریں، C3 سے B5 تک۔ پیانو پروجیکٹ کے برعکس یہاں کوئی سیاہ اور سفید ترتیب نہیں ہے، کیونکہ AI صرف سات قدرتی نوٹوں تک محدود ہے اور گرڈ وہی ہے جو وہ نوٹ نظر آتے ہیں۔

بٹن یہ کیا کرتا ہے
STYLE موڈ بدلتا ہے: HAPPY، SAD، SPOOKY، FOLK، LULLABY۔ یہی AI کو بھیجا جاتا ہے۔
WRITE AI سے اس موڈ میں دھن مانگتا ہے۔ سوچتے ہوئے WAIT دکھاتا ہے، پھر جو واپس آیا اسے بجاتا ہے۔
PLAY موجودہ لوڈ شدہ دھن دوبارہ بجاتا ہے۔ روکنے کے لیے دوبارہ دبائیں۔
LEARN تعلیمی موڈ - ایک کلید روشن کرتا ہے اور آپ کا انتظار کرتا ہے۔
WAVE آواز کا رنگ: SOFT، ORGAN یا BRIGHT۔
VOL والیوم 1 سے 5 تک بڑھانے کے لیے دبائیں۔ لیبل سطح دکھاتا ہے۔

بورڈ جس والیوم پر شروع ہوتا ہے وہ اسکیچ کے اوپری حصے میں #define VOLUME کے ذریعے طے ہوتا ہے، لہذا آپ اپنی پسندیدہ سطح مرتب کر سکتے ہیں اور پھر بھی اسے زندہ تبدیل کر سکتے ہیں۔

AI دراصل کیا تخلیق کرتا ہے

یہ وہ حصہ ہے جس کے بارے میں درست ہونا ضروری ہے، کیونکہ اسے بڑھا چڑھا کر بیان کرنا آسان ہے۔ AI آڈیو تخلیق نہیں کرتا۔ حقیقی ویوفارم بنانے کے لیے ایک بڑا ماڈل اور گرافکس کارڈ درکار ہوتا ہے؛ کوئی مائیکروکنٹرولر یہ نہیں کر رہا، اور جو کوئی بھی اس کے برعکس دعوی کرتا ہے وہ ایک فائل چلا رہا ہے جو کہیں اور رینڈر کی گئی تھی۔

جو یہ تخلیق کرتا ہے وہ نوٹوں کی ایک فہرست ہے، عام متن کے طور پر:

[{"n":"C4","ms":300},{"n":"E4","ms":300},{"n":"G4","ms":600}]

بورڈ اسے ArduinoJson کے ساتھ پارس کرتا ہے اور اسے پیانو پروجیکٹ کے اسی سنتھیسائزر کے ساتھ بجاتا ہے۔ ایک مختصر متن کی درخواست ایک فیصد کے ایک حصے کی لاگت آتی ہے، اور ایک بار دھن آنے کے بعد اسے انٹرنیٹ منقطع ہونے پر بھی ہمیشہ دوبارہ بجایا جا سکتا ہے۔

makerfabs_ESP32S3_cam_music_screen-10-

پرامپٹ AI کو کیوں محدود کرتا ہے

درخواست ماڈل کو بتاتی ہے کہ وہ صرف وہی 21 نوٹ استعمال کر سکتا ہے جو جسمانی طور پر اس کی بورڈ پر موجود ہیں - C3 سے B5 تک قدرتی نوٹ، کوئی شارپ یا فلیٹ نہیں۔ یہ سنتھیسائزر کی کوئی حد نہیں ہے، جو کسی بھی فریکوئنسی بجا سکتا ہے۔ یہ دو اچھی وجوہات کے لیے ہے:

  • ہر نوٹ جو یہ لکھتا ہے وہ ایک ہے جو LEARN موڈ آپ کو حقیقت میں سکھا سکتا ہے، کیونکہ اس کے لیے ایک کلید موجود ہے
  • ایک ہی کلید میں رہنے کا مطلب ہے کہ نتیجہ ہمیشہ موسیقی جیسا لگتا ہے، چاہے ماڈل کا دن غیر متاثر کن ہی کیوں نہ ہو

زبان کے ماڈل سے جواب پارس کرنا

ماڈل مددگار بننا پسند کرتے ہیں، جس کا یہاں مطلب ہے جواب کو مارک ڈاؤن کی باڑوں میں لپیٹنا اور اس بارے میں ایک دوستانہ جملہ شامل کرنا کہ انہوں نے کیا لکھا۔ اسکیچ سختی سے خالص JSON مانگتا ہے اور پھر دفاعی طور پر پہلے [ اور آخری ] کے درمیان سب کچھ لے لیتا ہے۔ کوئی بھی نوٹ جو وہ کی بورڈ پر نہیں رکھ سکتا چھوڑ دیا جاتا ہے، اور نتیجہ صرف اس صورت میں قبول کیا جاتا ہے اگر کم از کم چار قابل استعمال نوٹ باقی رہیں۔ نامکمل آؤٹ پٹ کو برداشت کرنا کسی بھی پروجیکٹ میں زیادہ تر کام ہے جو AI متن پارس کرتا ہے۔

خالی جواب، اور اس سے کیسے بچیں

ایک چیز آپ کو پھنسائے گی اگر آپ ماڈل یا پرامپٹ تبدیل کریں۔ ڈیپ سیک سوچتا ہے جواب دینے سے پہلے، اور وہ سوچ اسی max_tokens بجٹ سے کٹوتی ہوتی ہے جتنا جواب۔ اس سے کوئی مشکل چیز پوچھیں اور یہ پورا بجٹ سوچنے میں صرف کر سکتا ہے، پھر خالی جواب لوٹاتا ہے - ایک کامیاب درخواست جس میں کچھ نہیں ہوتا۔

اس پروجیکٹ پر یہ اس طرح ظاہر ہوا کہ مشکل موڈز ناکام ہو رہے تھے جبکہ آسان والے کام کر رہے تھے۔ SPOOKY اور LULLABY کو معمولی کلید چاہیے، جو واقعی مشکل ہے جب ہر شارپ اور فلیٹ ممنوع ہو، اس لیے ماڈل نے غور کیا - اور بجٹ ختم ہو گیا۔ HAPPY سی میجر میں فوراً جواب دے دیا۔

دو اصلاحات ہیں اور یہ خاکہ دونوں استعمال کرتا ہے۔ درخواست "thinking": {"type": "disabled"} بھیجتی ہے، جو استدلال کو مکمل طور پر بند کر دیتی ہے تاکہ پورا بجٹ جواب پر جائے اور جواب بہت تیزی سے واپس آئے۔ اور پرامپٹ اب ماڈل کو بتاتا ہے کیسے شارپس کے بغیر معمولی آواز پیدا کی جائے - راگ کو A یا E پر مرکوز کریں، جو وہی نوٹ استعمال کرتا ہے۔

تعلیمی موڈ

LEARN پر تھپتھپائیں اور ایک کلید سبز ہو جاتی ہے۔ اسے دبائیں اور بورڈ اگلے نوٹ پر بڑھ جاتا ہے۔ غلط کلید دبائیں تو بھی آواز آتی ہے - یہ آخر piano ہے - لیکن یہ آگے نہیں بڑھتا۔ اسٹیٹس بار آپ کی پیشرفت شمار کرتا ہے، اور جب آپ آخر تک پہنچتے ہیں تو یہ آپ کو بتاتا ہے۔

کوئی وقت کا دباؤ نہیں اور کوئی اسکور نہیں۔ یہ آپ کا جتنا وقت چاہیے انتظار کرتا ہے، جو اسے کسی فقرے کو سیکھنے کے لیے واقعی قابلِ استعمال بناتا ہے نہ کہ صرف ایک نیاپن۔

LEARN mode on the MaTouch AI ESP32-S3 - one key lit, waiting to be pressed
MaTouch AI ESP32-S3 پر LEARN موڈ - ایک کلید روشن، دبائے جانے کے انتظار میں

یہ WiFi کے بغیر بھی کام کرتا ہے

خاکے میں ایک دھن بنی ہوئی ہے، اس لیے PLAY اور LEARN بغیر کسی نیٹ ورک کے کام کرتے ہیں۔ صرف WRITE کو انٹرنیٹ چاہیے - اور اسے صرف ایک DeepSeek کلید چاہیے۔ اس پروجیکٹ کے لیے کوئی Azure یا OpenAI اکاؤنٹ درکار نہیں۔

جب آپ جانچ کر رہے ہوں، پہلے PLAY تھپتھپائیں: یہ کسی نیٹ ورک کے شامل ہونے سے پہلے آڈیو راستے اور کی بورڈ کی تصدیق کرتا ہے، اس لیے اگر WRITE بعد میں ناکام ہو تو آپ پہلے سے جانتے ہیں کہ کہاں دیکھنا ہے۔

Replaying a melody with the router switched off - it lives on the board now
روٹر بند ہونے پر دھن دوبارہ چلانا - یہ اب بورڈ پر محفوظ ہے

مزید آگے لے جانے کے لیے خیالات

  • اسٹائل کی فہرست میں ترمیم کرکے "سمندری شانتی کے انداز میں" دھن مانگیں۔
  • اس سے دوسرا فقرہ لکھوائیں جو پہلے کا جواب ہو۔
  • دھنوں کو SD کارڈ میں محفوظ کریں تاکہ بورڈ وقت کے ساتھ گیتوں کی کتاب بنائے۔
  • وائس اسسٹنٹ پروجیکٹ سے مائیکروفون شامل کریں تاکہ آپ پہلے سے طے شدہ بٹن دبانے کے بجائے درخواست بول سکیں۔

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 کی عام 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 کلاس-ڈی ایمپلیفائر، 4 Ω پر 3.2 W
  • اسٹوریج: مائیکرو ایس ڈی کارڈ سلاٹ (SPI موڈ)
  • پاور: USB-C، JST بیٹری کنیکٹر، TP4056 چارجر، پاور سوئچ
  • بورڈ پر بھی: WS2812B RGB LED، PCF8563T بیٹری بیکڈ ریئل ٹائم کلاک، اور ایک MAX17048 بیٹری فیول گیج جو سرکاری خصوصیات میں درج نہیں ہے

اسے بیٹری سے پاور کر رہے ہیں؟ دونوں USB-C ساکٹ، TP4056 چارجر اور پاور سوئچ کی مکمل وضاحت، اسکیمیٹک کے ساتھ، بورڈ ٹیسٹ آرٹیکل میں دی گئی ہے — بشمول کون سا ساکٹ چارج کرتا ہے اور سوئچ آن یا آف ہونا چاہیے۔

Arduino IDE کی ترتیبات

یہ ترتیبات اہم ہیں۔ اس بورڈ کے بارے میں لوگ جو زیادہ تر مسائل رپورٹ کرتے ہیں ان میں سے ایک یہ غلط ہوتی ہے، اور جب آپ کور ورژن تبدیل کرتے ہیں تو یہ ری سیٹ ہو جاتی ہیں، لہٰذا کسی بھی تبدیلی کے بعد انہیں دوبارہ چیک کریں۔

ترتیب قدر
بورڈ ESP32S3 Dev Module
ESP32 کور ورژن 2.0.17
PSRAM OPI PSRAM
فلیش سائز 16MB (128Mb)
پارٹیشن اسکیم 16M Flash (3MB APP/9.9MB FATFS)
USB CDC On Boot Disabled
اپ لوڈ اسپیڈ 921600
اپ لوڈ سے پہلے تمام فلیش مٹائیں Disabled
پورٹ CH340K USB-C پورٹ

اگر اپ لوڈ ناکام ہو: بورڈ کو دستی طور پر ڈاؤن لوڈ موڈ میں ڈالنا

زیادہ تر وقت آپ صرف Upload دباتے ہیں اور یہ کام کر جاتا ہے۔ کبھی کبھی ایسا نہیں ہوتا — IDE Connecting...... پر بیٹھا رہتا ہے اور پھر Failed to connect to ESP32-S3: No serial data received کے ساتھ ہار مان لیتا ہے۔

ایسا اس لیے ہوتا ہے کیونکہ IO0 اس بورڈ پر ایک ساتھ تین کام کرتا ہے: یہ BOOT بٹن ہے، یہ CH340K سے آٹو ری سیٹ لائن ہے، اور یہ RGB LED کے لیے ڈیٹا لائن ہے۔ جب بورڈ پر پہلے سے چل رہا اسکیچ اس LED کو چلا رہا ہوتا ہے، تو یہ آٹومیٹک ری سیٹ سے ٹکرا سکتا ہے، اس لیے چپ آپ کے پرانے اسکیچ میں دوبارہ اسٹارٹ ہوتی ہے بجائے بوٹ لوڈر کے۔

حل پانچ سیکنڈ کا ہے۔ خود بورڈ کو ڈاؤن لوڈ موڈ میں ڈالیں:

  1. BOOT بٹن کو دبائے رکھیں۔
  2. BOOT کو دبائے رکھتے ہوئے، RESET دبائیں اور RESET چھوڑ دیں۔
  3. اب BOOT چھوڑ دیں۔ اسکرین خالی ہو جاتی ہے — یہ بوٹ لوڈر انتظار کر رہا ہے۔
  4. Upload پر کلک کریں۔
  5. جب یہ مکمل ہو جائے، نیا اسکیچ چلانے کے لیے ایک بار RESET دبائیں۔

اگر پھر بھی کنیکٹ نہ ہو، Upload Speed کو 115200 پر کم کریں اور دوبارہ کوشش کریں۔ اور چیک کریں کہ بورڈ کا پاور سوئچ آن ہے — CH340K enumerate ہو کر 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 لائبریری مینیجر
ArduinoJson 7.x Benoit Blanchon لائبریری مینیجر
Adafruit NeoPixel کوئی بھی حالیہ Adafruit لائبریری مینیجر

GFX لائبریری کو ZIP فائل سے انسٹال کرنا

  1. ZIP ڈاؤن لوڈ کریں۔ یہ اس پروجیکٹ کی ڈاؤن لوڈ میں شامل ہے، یا آپ اسے Arduino_GFX ریپوزٹری سے حاصل کر سکتے ہیں - سبز Code بٹن پر کلک کریں، پھر Download ZIP پر کلک کریں۔
  2. اسے کہیں محفوظ کریں جہاں آپ اسے دوبارہ ڈھونڈ سکیں۔ اسے ان زپ نہ کریں۔
  3. Arduino IDE میں، SketchInclude LibraryAdd .ZIP Library پر کلک کریں۔
  4. ڈاؤن لوڈ کی گئی ZIP فائل تک براؤز کریں اور Open پر کلک کریں۔
  5. IDE اسے انسٹال کرتا ہے اور ونڈو کے نیچے تصدیق کرتا ہے۔ اگر آپ کے پاس پہلے سے 1.6 ورژن انسٹال ہے، تو پہلے اس فولڈر کو Documents/Arduino/libraries سے حذف کریں، ورنہ دونوں میں تصادم ہوگا۔

secrets.h ترتیب دینا

آپ کی WiFi تفصیلات اور کوئی بھی API کلید secrets.h میں جاتی ہیں، جو ڈاؤن لوڈ میں پلیس ہولڈر اقدار کے ساتھ شامل ہے۔ Arduino IDE میں اس ٹیب کو کھولیں اور انہیں اپنی اپنی معلومات سے تبدیل کریں۔

اپنی API کلید حاصل کرنا

یہ پروجیکٹ کلاؤڈ AI سروس سے بات کرتا ہے، اس لیے آپ کو اپنی کلید کی ضرورت ہے۔ اگر آپ نے پہلے کبھی ایسا نہیں کیا، تو پریشان نہ ہوں - یہ ایک پاس ورڈ کی طرح ہے جو سروس کو آپ کے اکاؤنٹ کی شناخت کراتا ہے۔ اس میں چند منٹ لگتے ہیں، صرف ایک بار۔

DeepSeek - سوچنے والا حصہ

DeepSeek وہ لینگویج ماڈل ہے جو دراصل آپ کے سوال کا جواب دیتا ہے۔ یہ سستا ہے - چند ڈالر کا کریڈٹ ہزاروں جوابات کا احاطہ کرتا ہے۔

  1. platform.deepseek.com پر جائیں اور اکاؤنٹ بنائیں۔
  2. مینو میں API keys کھولیں اور Create new API key پر کلک کریں۔
  3. اسے فوری کاپی کریں۔ یہ صرف ایک بار دکھائی جاتی ہے اور پھر کبھی نہیں - اگر آپ اسے کھو دیتے ہیں، تو اس کلید کو حذف کریں اور دوسری بنائیں۔
  4. Top up کے تحت تھوڑی سی کریڈٹ شامل کریں۔ کوئی مفت درجہ نہیں ہے، لیکن سب سے چھوٹا ٹاپ اپ اس استعمال پر بہت طویل عرصہ چلتا ہے۔

کلید کو secrets.h میں DEEPSEEK_KEY کے طور پر رکھیں۔ یہ sk- سے شروع ہوتی ہے۔

چلانے کی لاگت کیا ہے

بہت کم، لیکن یہ مفت نہیں ہے، اور آپ کو تقریباً معلوم ہونا چاہیے کہ پروجیکٹ چھوڑنے سے پہلے آپ کتنا خرچ کر رہے ہیں۔

سروس تقریبی لاگت
DeepSeek فی جواب ایک سینٹ کا ایک حصہ - چند ڈالر میں ہزاروں جوابات

قیمتیں بدلتی ہیں، اس لیے انہیں حوالہ کے بجائے رہنما کے طور پر لیں۔ ان میں سے ہر سروس کا ایک استعمال کا صفحہ ہے جہاں آپ اپنے خرچ کو دیکھ سکتے ہیں، اور سب آپ کو خرچ کی حد مقرر کرنے دیتی ہیں - جو پہلے دن کرنا قابل قدر ہے۔

مسائل کا حل

علامت وجہ اور حل
اسکرین سیاہ رہتی ہے غلط GFX لائبریری ورژن (1.5.6 استعمال کریں) یا غلط بورڈ سیٹنگز۔
PSRAM alloc failed Tools → PSRAM OPI PSRAM پر سیٹ نہیں ہے۔
کچھ اپ لوڈ نہیں ہوتا / کوئی COM پورٹ نہیں غلط USB-C پورٹ، یا CH340 ڈرائیور انسٹال نہیں ہے۔

تصاویر

makerfabs_ESP32S3_cam_music_screen-1-
makerfabs_ESP32S3_cam_music_screen-1-
makerfabs_ESP32S3_cam_music_screen-4-
makerfabs_ESP32S3_cam_music_screen-4-
makerfabs_ESP32S3_cam_music_screen-10-
makerfabs_ESP32S3_cam_music_screen-10-
کوئی کوڈ منسلک نہیں۔

آپ کو جن چیزوں کی ضرورت ہو سکتی ہے

وسائل اور حوالہ جات

فائلیں📁

آردوینو کوڈ (.ino)

ڈیٹا شیٹ (پی ڈی ایف)