Мазмұны:

Azimuthal проекциясы 3D картасын безендіру X халықтық музыкалық пазл ойыны - Arduino: 7 қадам
Azimuthal проекциясы 3D картасын безендіру X халықтық музыкалық пазл ойыны - Arduino: 7 қадам

Бейне: Azimuthal проекциясы 3D картасын безендіру X халықтық музыкалық пазл ойыны - Arduino: 7 қадам

Бейне: Azimuthal проекциясы 3D картасын безендіру X халықтық музыкалық пазл ойыны - Arduino: 7 қадам
Бейне: Изометрическая проекция треугольника 2024, Шілде
Anonim
Image
Image
Тақтаны жобалау
Тақтаны жобалау

КІРІСПЕ

Келесі бет сізге география, геометрия, карталар, Біріккен Ұлттар Ұйымы мен музыка салаларын қамтитын жарықтандырумен қарапайым халықтық жұмбақ ойыны бар екі негізгі функциясы бар Arduino жобасын қалай құруға болатынын көрсетеді. Алтыбұрыштардың құрылымына сүйене отырып, құрылғы әлем картасын Біріккен Ұлттар Ұйымы (және оның символы) қолданатын карта проекциясының формасы болып табылатын Азимутальды тең проекцияда бейнелейді.

Декорация режимін қосқанда, карта континенттері RGB светодиодтарын қолдану арқылы RGB мәндерінің кездейсоқ комбинациясымен анықталатын әр түрлі түстермен жарқырайды.

Ойын режимі, керісінше, қолданушылардан халықтық әндердің шығу тегін тануды талап етеді (1 -ден 20 -ға дейінгі сандар кездейсоқ генерациялау арқылы таңдалады) және өз жауабының континенттік тақтасын жиынтықтағы негізгі ағаш тақтадағы сәйкес орнына қоюды талап етеді. уақыт (1 минутқа алдын ала орнатылған).

_

ЖАБДЫҚТАР

Нақты материалдар

  • 5 мм RGB жарықдиодты шамдар *20
  • Сымдар
  • Резисторлар *9
  • Arduino тақтасы *1 (кез келген түрі)
  • Нан тақталары *3
  • Түймелер *7
  • LCD дисплей тақтасы I2C *1
  • Картон қорап (13*9*5,7 дюйм; 33*23*14,5 см)
  • Ағаш тақта (37,5*29*0,8 см)
  • Акрил тақталары (мөлдір * 2, жартылай мөлдір * 1)
  • Портативті зарядтағыш *1

Құралдар:

  • Пышақ *1
  • Ультракүлгін сәуледен емдеуге арналған желімдер *1
  • Екі жақты таспа *1 орам
  • Ыстық желім пистолеті *1

Машиналар:

Лазерлік кесу машинасы

Бағдарламалық қамтамасыз ету:

  • Adobe Illustrator
  • Adobe Photoshop
  • 3D мүйізтұмсық

1 -қадам: тақтаны жобалау

Қосылған файлды тікелей жүктеуге немесе төмендегі әрекеттерді орындауға болады.

Картаны сипаттау

  1. Google -дан картаның контурын жүктеп алыңыз

    1. Google «Біріккен Ұлттар Ұйымының логотипі»
    2. «Құралдар - өлшемі - үлкен» таңдаңыз
    3. Өзіңіздің сүйікті суретті жүктеңіз (осы жобада қолданылатын сурет: сілтеме) *Континентальды жерлермен қиылысатын күрделі сызықтарды таңдамауға тырысыңыз *
  2. Жүктелген картаны басып шығару нұсқасына көшіріңіз

    1. Adobe Photoshop бағдарламасындағы бояу щеткасының көмегімен қажет емес аймақтарды ақ түске бояңыз
    2. Файлды экспорттау (JPEG)
    3. Файлды Adobe Illustrator бағдарламасына импорттаңыз және картаны бақылау үшін «кескінді іздеу» функциясын қолданыңыз
    4. Файлды экспорттау (dxf)

Алтыбұрыш фонын қосу

  1. Dxf файлын Rhino -ға импорттаңыз
  2. «Көпбұрыш» функциясын таңдап, «NumSides» опциясы үшін «6» теріңіз
  3. Радиус мәнін «3.5» деп енгізіңіз
  4. 28 бірдей алтыбұрыштың суретін салыңыз
  5. Файлды 3dm форматында экспорттаңыз

2 -қадам: лазерлік кесу

Image
Image
Лазерлік кесу
Лазерлік кесу
Лазерлік кесу
Лазерлік кесу
Лазерлік кесу
Лазерлік кесу
  1. Бұрын толтырылған файлды xxx -ке импорттаңыз.
  2. Лазерлік кескіш машинаның көмегімен негізгі корпусты ағаш тақтаға және құрлықтарды акрил тақталарына басып шығарыңыз (2 мөлдір және 1 жартылай мөлдір) (бейнелер жоғарыда берілген)

3 -қадам: құрылғыны жасаңыз

Құрылғыны құру
Құрылғыны құру
Құрылғыны құру
Құрылғыны құру
Құрылғыны құру
Құрылғыны құру

Лазерлік кесуден кейінгі тақталар

  • Акрил құрлықтары

    1. Әр континенттің үш тақтасын желімдеу үшін ультракүлгін сәулеленетін желімдерді қолданыңыз (ортаңғы қабат ретінде жартылай мөлдір)
    2. Желімдердің қатуына мүмкіндік беру үшін желімделген аймақтарға ультракүлгін сәулесін түсіріңіз
  • Ағаш тақтай негізі

    1. Негізгі ағаш тақтаға жабысқан шағын жерлерді қолмен алып тастаңыз
    2. *Егер ағаш тақтайшаның кез келген бөлігі сынған болса, ультракүлгін сәулемен емдеуге арналған желімдерді қолданып, оларды жабыстырыңыз*

Базаны құру (бүкіл құрылғының төменгі негізі)

  1. Өлшемдері 13*9*5,7 дюйм (33*23*14,5 см) болатын сәйкес келетін картон қорапшасын табыңыз.
  2. Тірек үлгісі ретінде ағаш тақтаны қолданып, континентальды бөліктерді қораптың үстіңгі бетіне жүргізіңіз
  3. Түймелердің төменгі бөлігін қораптың үстіңгі бетіне жүргізіңіз, әр түйме әрбір континентальды бөліктің ортасында болады
  4. Іздерді қадағалап, түйменің бөліктерін кесу үшін пышақты пайдаланыңыз
  5. Бақыланған континенттік бөліктерде түймені қоршап тұрған қысқа сегменттерді кесу үшін пышақты пайдаланыңыз
  6. Түйменің тағы екі төменгі бөлігін қораптың оң жағына жүргізіңіз (іздерді бірдей биіктікте туралауға тырысыңыз)
  7. СКД дисплей тақтасын қораптың оң жағына жүргізіңіз (алдыңғы қадамдағы екі түйменің үстінде)
  8. 6 және 7 -қадамдағы іздерді орындау арқылы екі түйме бөлігін және СКД бөлігін кесу үшін пышақты пайдаланыңыз

4 -қадам: Схемаларды құрыңыз

Схемаларды құрыңыз
Схемаларды құрыңыз

Жоғарыдағы схемаларға сүйене отырып, схеманы құрыңыз.

Ескерту:

  • RGB светодиодтары мен түймелердің резисторлары әр түрлі, ТҰРАҚ КӨРІҢІЗ!
  • Жоғарыдағы СКД дисплей тақтасында I2C моделі болмағандықтан, ол толық қосылмаған. (I2C модельдері бар СКД дисплей тақталары тек төрт істікті қосуы керек)

    • GND -ді дисплейге және Arduino тақтасына қосыңыз
    • Дисплейдегі бейнемагнитофонды нан тақтасындағы оң түйреуіштермен қосыңыз
    • SDA -ді дисплейге және Arduino тақтасына қосыңыз
    • SCL дисплейінде және Arduino тақтасында қосыңыз

5 -қадам: кодты жүктеңіз

Бұл жобаның кодын мына жерден немесе төменнен табуға болады.

Әрбір кодтау жолында оның мақсаты мен функциясын түсіндіретін қосымша жазба бар.

Ескерту:

  • Барлық нақты D түйреуіштерін схеманың схемасына байланысты өзгертуге және реттеуге болады
  • Барлық кешіктірілген секундтарды әр түрлі мәндерге өзгертуге болады, бірақ оларды ЖОҚТАМАҢЫЗ! (Бұл кешіктірілген секундтар кодты логикалық түрде жіберуге мүмкіндік береді. Оларсыз кодтың кейбір бөліктері жұмыс істемеуі мүмкін!)
  • 24 -жолда («цикл үшін» кіріспе), сіз циклды іске қосқыңыз келетін қайталау санын көрсете аласыз (бастапқы мән - 5)
  • Әр түймешіктің «басылғанда» және «басылмаса» ілмектеріндегі RGB светодиодтарының түс комбинациясын реттеуге және баптауға болады. (Бастапқыда RGB светодиодтары басылса жасыл түспен жанып тұрады, егер олар басылмаса қызыл түспен жанып тұрады. ДҰРЫС пен ҚАТЕ деп жауап беру үшін мәндерді шығармашылық түстерге өзгертуге болады)

#қосу

#қосу LiquidCrystal_I2C lcd_I2C_27 (0x27, 16, 2); // СКД мекенжайын 16 таңбаға және 2 жолды дисплейге орнатыңыз int _R; // R _ айнымалысын енгізіңіз, ол RGB светодиодтарының қызыл мәнін білдіреді _ _G; // int _B RGB светодиодтарының жасыл мәнін білдіретін G айнымалысын енгізу; // int _SongNumber RGB светодиодтарының көк мәнін білдіретін B айнымалысын енгізіңіз; // айнымалы SongNumber void setup енгізу () {pinMode (10, INPUT); // pinMode (9, INPUT) картасын безендіру батырмасы үшін D10 енгізу ретінде орнатады; // D9 жұмбақ ойынының pinMode (8, INPUT) түймесі үшін кіріс ретінде орнатады; // D8 Еуразия түйінінің pinMode (4, INPUT) үшін кіріс ретінде орнатады; // D4 -ті Солтүстік Американың pinMode (3, INPUT) батырмасы үшін кіріс ретінде орнатады; // D3 Оңтүстік Американың pinMode (2, INPUT) батырмасы үшін кіріс ретінде орнатады; // D2 Африканың pinMode (1, INPUT) батырмасы үшін кіріс ретінде орнатады; // D1 -ді Oceania lcd_I2C_27.init () батырмасы үшін кіріс ретінде орнатады; // LCD дисплей тақтасын инициализациялау lcd_I2C_27.backlight (); // СКД дисплей тақтасының артқы жарығын қосыңыз} void loop () {if (digitalRead (10)) {// егер картаны безендіру түймесі басылса (int i = 0; i <5; ++ i) {// келесі циклды 5 рет іске қосыңыз _R = random (0, 1023); // R айнымалысына 0 -ден 1023 -ке дейінгі кездейсоқ мән беріңіз _G = кездейсоқ (0, 1023); // G айнымалысына 0 -ден 1023 -ке дейінгі кездейсоқ мән беріңіз _B = кездейсоқ (0, 1023); // B айнымалысына 0 -ден 1023 analogWrite (13, (_R /4)) кездейсоқ мәнін беріңіз; // бірінші топтағы RGB светодиодтарының R мәні 0 -ден 255 -ке дейін айнымалы мәнді жазады analogWrite (12, (_G /4)); // бірінші топты алмастыратын RGB светодиодтарының G мәні 0 -ден 255 -ке дейін analogWrite айнымалы мәнін жазады (11, (_B /4)); // бірінші топтағы RGB светодиодтарының В мәні 0 -ден 255 -ке дейін analogWrite айнымалы мәнін жазады (7, (_R /4)); // екінші топтағы RGB светодиодтарының R мәні 0 -ден 255 -ке дейін analogWrite айнымалы мәнін жазады (6, (_G /4)); // екінші топтағы RGB светодиодтарының G мәні 0 -ден 255 -ке дейін analogWrite айнымалы мәнін жазады (5, (_B /4)); // екінші топтағы RGB светодиодтарының В мәні 0 -ден 255 кідіріске дейінгі айнымалы мәнді жазады (3000); // 3000 миллисекунд күтіңіз (3 секунд)} // R, G, B айнымалы мәндері циклде анықталатындықтан, цикл үшін бес түрлі түс комбинациясы болады} if (digitalRead (9)) {// if басқатырғыш ойын түймесі басылады _SongNumber = кездейсоқ (1, 20); // SongNumber айнымалысына 1 -ден 20 -ға дейінгі кездейсоқ мән беріңіз lcd_I2C_27.setCursor (0, 0); // курсорды орнатыңыз, санау 0 lcd_I2C_27.print (_SongNumber) басталады; // SongNumber мәнін analogWrite LCD дисплей тақтасына басып шығару (13, 0); // қалпына келтіру және D13 мәнін 0 analogWrite (12, 0) ретінде жазу; // қалпына келтіру және D12 мәнін 0 analogWrite (11, 0) ретінде жазу; // қалпына келтіру және D11 мәнін 0 analogWrite (7, 0) ретінде жазу; // қалпына келтіру және D7 мәнін 0 analogWrite (6, 0) ретінде жазу; // қалпына келтіру және D6 мәнін 0 analogWrite (5, 0) ретінде жазу; // қалпына келтіріңіз және D5 мәнін 0 деп жазыңыз, егер (_SongNumber> = 1 && _SongNumber = 4 && _SongNumber = 7 && _SongNumber = 11 && _SongNumber = 15 && _SongNumber = 18 && _SongNumber <= 20) {// мәні болса SongNumber айнымалысы 18 -ден 20 -ға дейін кідіріс (60000); // ойыншылар халық музыкасын тыңдауы үшін 60000 миллисекунд күтіңіз (60 секунд; 1 мин) if (digitalRead (1)) {// егер Oceania батырмасы analogWrite (13, 0) басылса; // analogWrite D13 мәнін 0 analogWrite ретінде жазыңыз (12, 255); // analogWr12 D5 мәнін 255 analogWrite (11, 0) ретінде жазыңыз; // analogWr11 D11 мәнін 0 analogWrite ретінде жазыңыз (7, 0); // analogWrite D7 мәнін 0 analogWrite ретінде жазыңыз (6, 255); // analogWrite D6 255 analogWrite мәнін жазыңыз (5, 0); // analogW5 D5 мәнін 0} ретінде жазыңыз // барлық RGB светодиодтары жасыл түспен жарқырайды {// егер Oceania түймесі басылмаса analogWrite (13, 255); // analogWrite D13 мәнін 255 analogWrite ретінде жазыңыз (12, 0); // analogWr12 D12 мәнін 0 analogWrite ретінде жазыңыз (11, 0); // analogWrite D11 мәнін 0 analogWrite ретінде жазыңыз (7, 255); // analogW7 D7 мәнін 255 analogWrite (6, 0) ретінде жазыңыз; // analogW6 D6 мәнін 0 analogWrite (5, 0) ретінде жазыңыз; // analogW5 D5 мәнін 0} ретінде жазыңыз // барлық RGB светодиодтары қызыл түспен жарқырайды} // SongNumber 18 -ден 20 -ға дейінгі дұрыс жауаптардың барлығы Океания болғандықтан, бұл «егер цикл» ойыншының жауабының дұрыс немесе дұрыс екеніне қол жеткізеді. lcd_I2C_27.clear () емес; // СКД дисплей тақтасының кешігуін тазарту (1000); // 1000 миллисекунд күтіңіз (1 секунд)}}

6 -қадам: құрылғыны аяқтау

  1. Картон қорапшасын ашып, бұрын жасалған схемаларды салыңыз (барлық элементтерді қосқанда, мысалы: үш тақта, Arduino тақтасы, портативті зарядтағыш)
  2. Кодқа және қораптың жоғарғы жағындағы ізделген континентальды бөліктерге сілтеме жасай отырып, түймелерді олардың сәйкес орындарының әрқайсысына салыңыз.

    *Қандай континент үшін түйреуіштің батырмасы екенін білу үшін кодтардың артындағы қосалқы жазбаларға жүгіне аласыз*

  3. Қораптың оң жағындағы кесілген бөліктердің әрқайсысына екі «функционалды түймелерді» (D10 картасы-деко және D9 басқатырғыш ойыны) салыңыз.
  4. СКД дисплей тақтасын қораптың оң жағындағы кесілген бөлігіне орнатыңыз
  5. Қорапты ашып, барлық сымдардың тақтаға дұрыс қосылғанын тексеріңіз
  6. Ағаш тақтаның іргетасын екі жақты таспамен қораптың жоғарғы жағына жабыстырыңыз (түймелер ағаш тақтайшаның кесілген бөлігіне дәл сәйкес келуі үшін дұрыс тураланғанына көз жеткізіңіз)
  7. Шағын аймақ бөліктерін толтыру үшін ыстық желім пистолетін қолданыңыз (негізгі құрлықтар емес)

7 -қадам: БОЛДЫ !!!!

Пазл ойыны үшін тестілеу ойнату тізімінің сілтемесіне өтіңіз!

Ұсынылған: