فهرست مطالب:
- تدارکات
- مرحله 1: توسعه بازی حروف صدادار با آردوینو
- گام 2:
- مرحله 3:
- مرحله 4: ایده پروژه
- مرحله 5:
- مرحله 6: ایجاد منطق برنامه نویسی بازی
- مرحله 7:
- مرحله 8:
- مرحله 9: تابع Void Setup ()
- مرحله 10: حلقه خالی تابع اصلی ()
- مرحله 11:
- مرحله 12: نتیجه گیری
- مرحله 13: تقدیر
تصویری: بازی حروف صدادار با آردوینو و YX5300 MP3 Module Catalex: 13 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:53
آیا قادر به خواندن این سال هستید؟ این عجیب است! این سوال را عمداً پرسیدم. اگر می توانید این متن را بخوانید ، به این دلیل است که کل الفبا را می دانید و البته درباره همه مصوت ها نیز آموخته اید.
حروف صدادار در همه کلمات وجود دارد. فرار از هریک از آنها غیرممکن است. حالا من به شما یک سوال بپرسید. آیا یادگیری دوران کودکی شما سرگرم کننده بود و شامل منابع تکنولوژیکی بود؟
من مطمئن هستم که منابع یادگیری اندک بود و شما از روشهای سنتی برای یادگیری حروف صدادار و الفبا استفاده کردید.
به هر حال ، آیا می توان از برخی منابع تکنولوژیکی برای یادگیری حروف صدادار استفاده کرد؟
در این مقاله ، من به شما یاد می دهم که چگونه به دانش آموزان و فرزندان خود حروف صدادار را از طریق یک بازی آموزش دهید.
من به شما نحوه ایجاد یک سیستم با صدا را آموزش می دهم ، جایی که کودک/دانش آموز شما صدای حرف را می شنود و باید دکمه ای را برای نشان دادن حرف صحیح فشار دهد.
بنابراین ، آنها هنگام بازی یاد می گیرند و همیشه انگیزه مطالعه دارند.
اکنون ، من قصد دارم مراحل گام به گام را به شما نشان دهم تا بتوانید بازی خود را بسازید و مصوت ها را به کودکان بیاموزید.
تدارکات
برد مدار چاپی JLCPCB
آردوینو اونو
سوئیچ دکمه ای
مقاومت 10kR
سربرگ مرد 2 ، 54 میلی متر 1x7
مرحله 1: توسعه بازی حروف صدادار با آردوینو
قلب بازی برد مدار چاپی JLCPCB Vowels است. می توانید به این پیوند دسترسی داشته باشید و فایل های پروژه را بارگیری کنید. دارای 5 دکمه از هر دکمه برای نشان دادن واکه و اتصال آن به آردوینو خود استفاده خواهید کرد.
برد مدار چاپی در شکل 1 نشان داده شده است.
گام 2:
با استفاده از این پروژه PCB ، می توانید آن را با Arduino متصل کرده و بازی خود را ایجاد کنید. در مرحله بعد ، من یک شماتیک الکترونیکی به شما ارائه می دهم تا بتوانید پروژه را روی صفحه اصلی خود جمع آوری یا بسازید.
مرحله 3:
از این شماتیک ، ما طرح برد الکترونیکی را تنظیم می کنیم. در شکل 2 نشان داده شده است و می توانید فایل ها را بارگیری کرده و پروژه خود را بسازید.
5 پین را از آردوینو انتخاب کرده و بلوزهای روی برد را با آردوینو وصل کنید. در غیر این صورت ، می توانید نمودار الکترونیکی زیر را جمع آوری کنید.
مرحله 4: ایده پروژه
من به شما نحوه مونتاژ سیستم صوتی MP3 با آردوینو را آموزش می دهم. این سیستم مسئول بازتولید صدای صحبت کننده حرف خواهد بود. صدای هر حرف با استفاده از مقدار 1 تا 5 کشیده می شود ، که در آن 1 نشان دهنده A و 5 نشان دهنده U است.
بنابراین ، وقتی کودک صدا را می شنود ، باید به صفحه کلید نگاه کند ، املای مصوت را تشخیص دهد و کلید صحیح را فشار دهد.
در صورت خرابی ، سیستم 3 بار LED قرمز را چشمک می زند. در غیر این صورت ، سیستم زنگ را به مدت 5 ثانیه فعال کرده و یک مصوت جدید را ترسیم می کند.
برای انجام این کار ، باید مدار زیر را مونتاژ کنید.
در این مدار ، ماژول MP3 و برد حروف صدادار را بر روی آردوینو متصل می کنید. ماژول بلوتوث به نمایندگی از Catalex MP3 ماژول استفاده شده است.
آردوینو مسئول مرتب سازی 5 عدد و سپس ارسال فرمان برای فعال کردن واکه کشیده شده خواهد بود
مرحله 5:
پس از آن ، منتظر می مانیم تا کودک دکمه ای را بشنود و فشار دهد ، همانطور که در شکل بالا نشان داده شده است.
هر دکمه در بالا نشان دهنده مصوت حروف الفبا است. در مرحله بعد ، من به شما نشان خواهم داد که چگونه منطق برنامه نویسی این پروژه را ایجاد می کنید.
مرحله 6: ایجاد منطق برنامه نویسی بازی
سیستم بازی واکه بر اساس عملکرد ماژول YX5300 است. این ماژول برخی از عملکردها را دارد ، اما ما بر ارائه ساختار کار بازی از طریق عملکردهای اصلی ماژول YX5300 تمرکز می کنیم.
زیر من به شما ارائه با تمام منطق برنامه نویسی این پروژه است.
مرحله 7:
در ادامه ، گام به گام منطق این بازی سرگرم کننده برای کودکان را توضیح خواهم داد.
#عبارتند از
#تعریف ARDUINO_RX 5 // باید به TX ماژول Serial MP3 Player متصل شود #ARDUINO_TX 6 تعریف کنید // به RX ماژول SoftwareSerial mp3 متصل شوید (ARDUINO_RX ، ARDUINO_TX) ؛ static int8_t Send_buf [8] = {0}؛ // بافر برای ارسال دستورات. // BOTTER LOCALLY static uint8_t ansbuf [10] = {0}؛ // برای پاسخ ها بافر کنید. // بهتر به صورت محلی رشته mp3Answer؛ // پاسخ از MP3. sanswer رشته (باطل) ؛ رشته sbyte2hex (uint8_t b) ؛ / ************ بایت فرمان ************************* # #تعریف CMD_NEXT_SONG 0X01 // پخش بعدی ترانه. #تعریف CMD_PREV_SONG 0X02 // پخش آهنگ قبلی. #تعریف CMD_PLAY_W_INDEX 0X03 #تعریف CMD_VOLUME_UP 0X04 #تعریف CMD_VOLUME_DOWN 0X05 #تعریف CMD_SET_VOLUME 0X06 #تعریف CMD_SNG_CYCL_LE #تعریف CMD_SEL_DEV 0X09 #تعریف CMD_SLEEP_MODE 0X0A #تعریف CMD_WAKE_UP 0X0B #تعریف CMD_RESET 0X0C #تعریف CMD_PLAY 0X0D #define CMD_PUSUS 0X0 #تعریف CMD_FOLDER_CYCLE 0X17 #تعریف CMD_SHUFFLE_PLAY 0x18 // #تعریف CMD_SET_SNGL_CYCL 0X19 // تنظیم تک چرخه. # تعریف CMD_SET_DAC 0X1A # تعریف DAC_ON مقدار 0x00 # تعریف DAC_OFF 0x01 موجود # تعریف CMD_PLAY_W_VOL 0X22 # تعریف CMD_PLAYING_N 0x4C # تعریف CMD_QUERY_STATUS 0x42 # تعریف CMD_QUERY_VOLUME 0x43 # تعریف CMD_QUERY_FLDR_TRACKS 0x4e # تعریف CMD_QUERY_TOT_TRACKS 0x48 # تعریف CMD_QUERY_FLDR_COUNT 0x4f / ********* *** Opitons ************************ / #تعریف DEV_TF 0X02 / ************** ************************************************** *****/ int numero؛ byte estado؛ بایت زنگ = 2؛ پین بایت = 0؛ بایت SortNumber = 0؛ دکمه bool = 0 ؛ void setup () {Serial.begin (9600)؛ mp3.begin (9600) ؛ تأخیر (500) ؛ برای (پین = 8 ؛ پین 13) {پین = 8 ؛ } Serial.println ("Varrendo …")؛ Serial.println (پین) ؛ // تأخیر (1000) ؛ } while (دکمه! = 1) ؛ Serial.println ("Saiu …")؛ if (button == 1 && (pin-1)! = SortNumber) {sendCommand (0x03، 0، 6) ؛ تاخیر (3000) ؛ } if (button == 1 && (pin-1) == SortNumber) {sendCommand (0x03، 0، 7)؛ تاخیر (3000) ؛ } // پاسخ را بررسی کنید. if (mp3.available ()) {Serial.println (رمزگشایی MP3Answer ()) ؛ } تأخیر (100) ؛ //Serial.println("Tocando musica… ")؛ } /******************************************** ******************************* / /*تابع sendMP3Command: به دنبال دستور 'c' باشید و آن را به MP3 ارسال کنید * / /*پارامتر: ج کد برای فرمان MP3 ، 'h' برای کمک. *// *Return: void */ void sendMP3Command (char c) {switch (c) {case '؟': case 'h': Serial.println ("HELP")؛ Serial.println ("ص = بازی")؛ Serial.println ("P = مکث")؛ Serial.println ("=> بعد")؛ Serial.println ("': Serial.println (" بعدی ") ؛ sendCommand (CMD_NEXT_SONG) ؛ sendCommand (CMD_PLAYING_N) ؛ // درخواست تعداد فایل در حال پخش وقفه ؛ مورد" کارت حافظه درج شده است. "؛ شکستن ؛ مورد 0x3D: decodedMP3Answer + = " -> شماره بازی به پایان رسید" + رشته (ansbuf [6] ، DEC) ؛ // sendCommand (CMD_NEXT_SONG) ؛ // sendCommand (CMD_PLAYING_N) ؛ // درخواست تعداد فایل در حال وقفه ؛ مورد 0x40: decodedMP3Answer += " -> Error"؛ break؛ case 0x41: decodedMP3Answer += " -> داده ها به درستی بازیابی شده اند."؛ break؛ case 0x42: decodedMP3Answer += " -> وضعیت پخش:" +رشته (ansbuf [6] ، DEC) ؛ شکستن ؛ مورد 0x48: رمزگشایی MP3Answer + = " -> تعداد فایل:" + رشته (ansbuf [6] ، DEC) ؛ شکستن ؛ مورد 0x4C: رمزگشایی MP3Answer + = " -> پخش:" + رشته (ansbuf [6] ، DEC) ؛ شکستن ؛ مورد 0x4E: رمزگشایی MP3Answer + = " -> تعداد فایل پوشه:" + رشته (ansbuf [6] ، DEC) ؛ شکست ؛ مورد 0x4F: رمزگشایی MP3Answer + = " -> تعداد پوشه:" + رشته (ansbuf [6] ، DEC) ؛ شکست ؛} رمزگشایی بازگشت MP3Answer؛} /******************************** ************* ******************************* / /*عملکرد: ارسال فرمان به MP3* / /*پارامتر: بایت command *// *Parameter: پارامتر byte dat1 برای فرمان *// *Parameter: پارامتر byte dat2 برای فرمان */ void sendCommand (دستور بایت) {sendCommand (command، 0، 0)؛ } void sendCommand (دستور بایت ، بایت dat1 ، بایت dat2) {تاخیر (20)؛ Send_buf [0] = 0x7E ؛ // Send_buf [1] = از 0xFF؛ // Send_buf [2] = 0x06؛ // Len Send_buf [3] = فرمان ؛ // Send_buf [4] = 0x01؛ // 0x00 NO ، بازخورد 0x01 Send_buf [5] = dat1؛ // datah Send_buf [6] = dat2؛ // datal Send_buf [7] = 0xEF؛ // Serial.print ("ارسال:") ؛ برای (uint8_t i = 0؛ i <8؛ i ++) {mp3.write (Send_buf )؛ Serial.print (sbyte2hex (Send_buf ))؛ } Serial.println ()؛ } /******************************************** ******************************* / /*عملکرد: sbyte2hex. داده های بایت را با فرمت HEX برمی گرداند. * / /*پارامتر:- uint8_t ب. بایت برای تبدیل به HEX. *// *Return: String */ String sbyte2hex (uint8_t b) {Shex shex؛ shex = "0X"؛ if (b <16) shex += "0"؛ shex += رشته (b ، HEX) ؛ shex += ""؛ شکس بازگشت ؛ } /******************************************** ******************************* / /*عملکرد: shex2int. int را از یک رشته HEX بر می گرداند. */ /*مولفه های. char *s برای تبدیل به HEX. * / /*پارامتر: n طول char *s ' *// *بازگشت: int */ int shex2int (char *s، int n) {int r = 0؛ برای (int i = 0؛ i = '0' && s = 'A' && s <= 'F') {r *= 16؛ r + = (s - 'A') + 10 ؛ }} بازگشت r؛ } /******************************************** ******************************* / /*عملکرد: sanswer. پاسخ رشته از ماژول MP3 UART را برمی گرداند. * / /*پارامتر:- uint8_t ب. خالی. * / /*بازگشت: رشته. اگر پاسخ به خوبی شکل گرفته باشد ، پاسخ دهید. */ String sanswer (void) {uint8_t i = 0؛ رشته mp3answer = ""؛ // فقط 10 بایت دریافت کنید در حالی که (mp3.available () && (i <10)) {uint8_t b = mp3.read ()؛ ansbuf = b ؛ من ++ ؛ mp3answer += sbyte2hex (b) ؛ } // اگر قالب پاسخ صحیح است. if ((ansbuf [0] == 0x7E) && (ansbuf [9] == 0xEF)) {بازگشت mp3answer ؛ } return "؟؟؟:" + mp3answer؛ }
ابتدا همه متغیرهای برنامه و آدرس های ثبت دسترسی ماژول YX5300 را تعریف می کنیم.
#عبارتند از
#تعریف ARDUINO_RX 5 // باید به TX ماژول Serial MP3 Player متصل شود #ARDUINO_TX 6 تعریف کنید // به RX ماژول SoftwareSerial mp3 متصل شوید (ARDUINO_RX ، ARDUINO_TX) ؛ static int8_t Send_buf [8] = {0}؛ // بافر برای ارسال دستورات. // BOTTER LOCALLY static uint8_t ansbuf [10] = {0}؛ // برای پاسخ ها بافر کنید. // بهتر به صورت محلی رشته mp3Answer؛ // پاسخ از MP3. sanswer رشته (باطل) ؛ رشته sbyte2hex (uint8_t b) ؛ / ************ بایت فرمان ************************* # #تعریف CMD_NEXT_SONG 0X01 // پخش بعدی ترانه. #تعریف CMD_PREV_SONG 0X02 // پخش آهنگ قبلی. #تعریف CMD_PLAY_W_INDEX 0X03 #تعریف CMD_VOLUME_UP 0X04 #تعریف CMD_VOLUME_DOWN 0X05 #تعریف CMD_SET_VOLUME 0X06 #تعریف CMD_SNG_CYCL_PLE #تعریف CMD_SEL_DEV 0X09 #تعریف CMD_SLEEP_MODE 0X0A #تعریف CMD_WAKE_UP 0X0B #تعریف CMD_RESET 0X0C #تعریف CMD_PLAY 0X0D #define CMD_PUSUS 0X0 #تعریف CMD_FOLDER_CYCLE 0X17 #تعریف CMD_SHUFFLE_PLAY 0x18 // #تعریف CMD_SET_SNGL_CYCL 0X19 // تنظیم تک چرخه. # تعریف CMD_SET_DAC 0X1A # تعریف DAC_ON مقدار 0x00 # تعریف DAC_OFF 0x01 موجود # تعریف CMD_PLAY_W_VOL 0X22 # تعریف CMD_PLAYING_N 0x4C # تعریف CMD_QUERY_STATUS 0x42 # تعریف CMD_QUERY_VOLUME 0x43 # تعریف CMD_QUERY_FLDR_TRACKS 0x4e # تعریف CMD_QUERY_TOT_TRACKS 0x48 # تعریف CMD_QUERY_FLDR_COUNT 0x4f / ********* *** Opitons ************************ / #تعریف DEV_TF 0X02 / ************** ************************************************* *****/ int numero؛ byte estado؛ بایت زنگ = 2؛ پین بایت = 0؛ بایت SortNumber = 0؛ دکمه bool = 0 ؛
مرحله 8:
این آدرس ثبت نام استفاده می شود به پیکربندی عملیات ماژول است. برای مثال ، این آدرس ثبت نام را در زیر مشاهده کنید.
#تعریف CMD_PLAY_W_INDEX 0X03
آدرس 0x03 با نام CMD_PLAY_W_INDEX تعریف شده است. برای فعال کردن آهنگ از شماره آن استفاده می شود ، یعنی شماره صدا را وارد کرده و پخش می شود.
با این مقادیر است که ما از آنها استفاده می کنیم و عملکرد پروژه خود را پیکربندی می کنیم.
بعد از اینکه آدرس های مختلفی را که مورد استفاده قرار می گیرد تعریف کردید ، ما تابع راه اندازی را وارد کرده و پین ها و ارتباط سریال را برای پروژه خود پیکربندی می کنیم.
مرحله 9: تابع Void Setup ()
در مرحله بعد ، تابع void setup را مشاهده کنید. من تمام تنظیمات پین های دکمه ، ارتباط سریال ماژول MP3 و راه اندازی اولیه ماژول کارت در MP3 را انجام دادم.
void setup ()
{Serial.begin (9600) ؛ mp3.begin (9600) ؛ تأخیر (500) ؛ برای (پین = 8 ؛ پین <13 ؛ پین ++) {pinMode (پین ، ورودی) ؛ } sendCommand (CMD_SEL_DEV ، 0 ، DEV_TF) ؛ تأخیر (500) ؛ }
من ارتباط سریال را برای چاپ اطلاعات روی سریال کامپیوتر شروع کردم و سپس ارتباط سریال را از طریق شیء mp3 آغاز کردیم.
Serial.begin (9600)؛
mp3.begin (9600) ؛ تأخیر (500) ؛
ماژول mp3 از طریق دستورات دریافت شده توسط سریال آردوینو کنترل می شود. در این فرایند ، ما از کتابخانه SoftwareSerial استفاده کردیم و یک سریال را بر روی پین های دیجیتالی آردوینو شبیه سازی کردیم.
بنابراین ، شما می توانید از Arduino برای کنترل ماژول MP3 از طریق دستورات ارسال شده به آن استفاده کنید.
علاوه بر این ، ما پیکربندی پین های دیجیتالی و مقداردهی اولیه ماژول کارت MP3 را انجام دادیم
برای (پین = 8 ؛ پین <13 ؛ پین ++) {pinMode (پین ، ورودی) ؛ } sendCommand (CMD_SEL_DEV ، 0 ، DEV_TF) ؛ تأخیر (500) ؛
پس از انجام پیکربندی ، باید به منطق اصلی در تابع void loop برویم.
مرحله 10: حلقه خالی تابع اصلی ()
کد بسیار ساده است و کل ساختار منطقی است که در زیر ارائه شده. در ادامه ، منطق کامل تابع اصلی را برای شما توضیح خواهم داد.
حلقه خالی ()
{پین = 8؛ randomSeed (analogRead (A0)) ؛ numero = تصادفی (8 ، 12) ؛ SortNumber = numero؛ numero = numero - 7 ؛ Serial.println (numero)؛ sendCommand (0x03، 0، NUMERO)؛ تاخیر (1000) ؛ انجام {button = digitalRead (پین) ؛ Serial.println (دکمه) ؛ پین ++ ؛ if (پین> 13) {پین = 8؛ } Serial.println ("Varrendo …")؛ Serial.println (پین) ؛ // تأخیر (1000) ؛ } while (دکمه! = 1) ؛ Serial.println ("سایو …")؛ if (button == 1 && (pin-1)! = SortNumber) {sendCommand (0x03، 0، 6) ؛ تاخیر (3000) ؛ } if (button == 1 && (pin-1) == SortNumber) {sendCommand (0x03، 0، 7)؛ تاخیر (3000) ؛ } // پاسخ را بررسی کنید. if (mp3.available ()) {Serial.println (رمزگشایی MP3Answer ()) ؛ } تأخیر (100) ؛ //Serial.println("Tocando musica… ")؛ }
در هر شروع چرخه عملکرد حلقه ، مقدار جدیدی بین 8 تا 12 ایجاد می کنیم تا صدای واکه تولید شود. مقدار 8 تا 12 به پین دیجیتال واکه اشاره دارد.
کد تولید مقدار تصادفی در زیر نشان داده شده است.
پین = 8 ؛
randomSeed (analogRead (A0)) ؛ numero = تصادفی (8 ، 12) ؛ SortNumber = numero؛
علاوه بر این ، از مقدار کشیده شده بین 8 تا 12 ، 7 را کم می کنیم. این به ما امکان می دهد تا به موقعیتهای 1 تا 5 آهنگهای ضبط شده روی کارت حافظه اشاره کنیم.
numero = numero - 7 ؛
پس از آن ، من صدای واکه ای را که روی خط زیر کشیده شده است ، تکثیر کردم.
sendCommand (0x03، 0، numero)؛
تاخیر (1000) ؛
اکنون زمان مهم فرا رسیده است: لحظه ای که قرار است دکمه ای را که کودک فشار داده است بخوانیم. بخش کد در زیر ارائه شده است.
انجام دادن
{button = digitalRead (پین) ؛ Serial.println (دکمه) ؛ پین ++ ؛ if (پین> 13) {پین = 8؛ } Serial.println ("Varrendo …")؛ Serial.println (پین) ؛ // تأخیر (1000) ؛ } while (دکمه! = 1) ؛
این حلقه اجرا خواهد شد تا کاربر فشار دکمه. این حلقه به شما امکان می دهد 5 پین دیجیتالی را اسکن کنید و در لحظه ای که کودک یکی از دکمه ها را فشار می دهد ، از حلقه خارج می شود و بررسی می کند که آیا کودک به درستی پاسخ داده است.
شما با استفاده از کد زیر تأیید را انجام می دهید.
if (button == 1 && (pin-1)! = SortNumber)
{sendCommand (0x03 ، 0 ، 6) ؛ تاخیر (3000) ؛ } if (button == 1 && (pin-1) == SortNumber) {sendCommand (0x03، 0، 7)؛ تاخیر (3000) ؛ }
اولین شرط زمانی اجرا می شود که کاربر اشتباهی انجام دهد زیرا دکمه ای فشار داده شده است و مقدار تحریک شده پین با پین کشیده شده متفاوت است (SortNumber).
در این مرحله ، شما باید دستور زیر را اجرا کنید.
sendCommand (0x03 ، 0 ، 6) ؛
تاخیر (3000) ؛
این دستور برای ایجاد صدای پاسخ اشتباه استفاده می شود. در نهایت ، ما شرط دوم را داریم که برای بررسی درست بودن کودک مورد استفاده قرار می گیرد.
if (button == 1 && (pin-1) == SortNumber)
{sendCommand (0x03 ، 0 ، 7) ؛ تاخیر (3000) ؛ }
مرحله 11:
اگر دکمه ای فشار داده شود و پین دیجیتالی که فشار داده شده همان پین کشیده شده باشد ، سیستم صدای صحیح پاسخ را به صدا در می آورد.
همانطور که برای شما توضیح می دهم ، این کد بسیار ساده است و به هر کودکی کمک می کند تا از طریق بازی با آردوینو اطلاعات خود را درباره واکه ها تقویت کند.
در شکل بالا صدا در حال اجرای آهنگ ذخیره شده در کارت SD ماژول MP3 YX5300 است.
مرحله 12: نتیجه گیری
آموزش در کلاس درس باید به طور مداوم تغییر کند و آردوینو می تواند یک متحد عالی در ایجاد کارهای سرگرم کننده باشد.
از طریق این پروژه ، می توان یک فعالیت ساده را توسعه داد که می تواند مهارت های کودکان را از طریق آگاهی از صدا و املای هر مصوت تقویت کند.
برخلاف روشهای سنتی آموزش ، کودکان از طریق سرگرمی در کلاس از طریق بازی و وسایل الکترونیکی یاد می گیرند.
مرحله 13: تقدیر
این پروژه به لطف حمایت و تشویق شرکت JLCPCB توسعه یافته است. آنها آموزش را تشویق کردند و از ما دعوت کردند که بازی واکه ها را برای آموزش کودکان در کلاس درس توسعه دهیم.
اگر می خواهید صفحات الکترونیکی بازی حروف صدادار را خریداری کنید ، می توانید به این پیوند دسترسی پیدا کرده و 10 واحد را با قیمت 2 دلار در JLCPCB خریداری کنید.
توصیه شده:
بازی آزیموتال طرح سه بعدی نقشه دکوراسیون X بازی پازل موسیقی محلی - آردوینو: 7 مرحله
بازی پازل Azimuthal Projection 3D Decoration X Folk Music Folk - Arduino: مقدمه صفحه زیر به شما آموزش می دهد که چگونه یک پروژه آردوینو ایجاد کنید ، که دارای دو عملکرد اصلی است - دکوراسیون ساده با نورپردازی و بازی پازل موسیقی محلی ، که شامل زمینه های جغرافیا ، هندسه می شود ، نقشه ها ، سازمان ملل متحد و
کنترل کننده بازی ریتم آردوینو (برای بازی خودم): 6 مرحله
Arduino Rhythm Game Controller (برای بازی خودم): در این برنامه آموزشی به شما نشان خواهم داد که چگونه می توانم این Rhythm Game Controller را از ابتدا بسازم. این شامل مهارت های اولیه نجاری ، مهارت های اولیه چاپ سه بعدی و مهارت های اولیه لحیم کاری است. اگر صفر سابق داشته باشید احتمالاً می توانید این پروژه را با موفقیت بسازید
کنترل کننده بازی مبتنی بر آردوینو - کنترل کننده بازی Arduino PS2 - بازی Tekken With DIY Arduino Gamepad: 7 مرحله
کنترل کننده بازی مبتنی بر آردوینو | کنترل کننده بازی Arduino PS2 | بازی Tekken With DIY Arduino Gamepad: سلام بچه ها ، بازی کردن همیشه سرگرم کننده است اما بازی با کنترلر بازی سفارشی DIY خود سرگرم کننده تر است. بنابراین ما در این دستورالعمل یک کنترلر بازی با استفاده از arduino pro micro ایجاد می کنیم
ارزان ترین آردوینو -- کوچکترین آردوینو -- آردوینو پرو مینی -- برنامه نویسی -- آردوینو ننو: 6 مرحله (همراه با تصاویر)
ارزان ترین آردوینو || کوچکترین آردوینو || آردوینو پرو مینی || برنامه نویسی || آردوینو ننو: …………………………. لطفاً برای ویدیوهای بیشتر به کانال YouTube من مشترک شوید ……. .این پروژه در مورد نحوه ارتباط با کوچکترین و ارزانترین آردوینو است. کوچکترین و ارزان ترین آردوینو arduino pro mini است. شبیه آردوینو
بازیابی حروف نقاشی شده روی کلیدهای صفحه کلید: 5 مرحله
بازگرداندن حروف رنگی روی کلیدهای صفحه کلید: لپ تاپ من و رایانه رومیزی جدید ما دارای کلیدهای مشکی زیبا با حروف رنگ آمیزی شده سفید هستند. پس از مدتی ، کلیدهای خاصی حروف نقاشی شده خود را در اثر ضربه ناخن از دست می دهند. به کلیدهای A ، S ، D ، H ، L ، E ، R ، T ، O ، N و M توجه کنید. در نور کم می تواند