Mundarija:

Lvl 2: 5 bosqichining elektronika malakasi
Lvl 2: 5 bosqichining elektronika malakasi

Video: Lvl 2: 5 bosqichining elektronika malakasi

Video: Lvl 2: 5 bosqichining elektronika malakasi
Video: Теория пылающего пердака, хроники боли #3 Прохождение Cuphead 2024, Noyabr
Anonim
Elektronika malakasi Lvl 2
Elektronika malakasi Lvl 2
Elektronika malakasi Lvl 2
Elektronika malakasi Lvl 2

Bu sizga elektronika bo'yicha 2 -darajali malakani to'ldirishga yordam beradigan tezkor qo'llanma bo'ladi. Buni aynan shunday qilish shart emas! Siz qismlarni/komponentlarni xohlaganingizcha almashtirishingiz mumkin, lekin uning ishlashi uchun kodni o'zgartirish uchun javobgar bo'lasiz. Har bir qism nima qilishini tushuntirish uchun kodga sharhlar qo'shaman.

Oxirgi narsa - bu mikrokompyuter. Biz Arduino Nano -dan foydalanmoqdamiz. Buni Arduino Uno yoki boshqa mikrokontroller bilan almashtirish mumkin. Operatsiyalar boshqacha bo'lishi mumkin va siz boshqa kompyuterning ishlashiga javobgar bo'lasiz.

Led tasmasi MHD xodimlari tortmasining yuqori qismidagi kumush sumkada. Mikrofon ham svetodiodli sumkasi ichida. Tugatganingizdan so'ng, ularni bu erga qaytaring!

Ta'minotlar

  1. Mikrokompyuter

    Arduino Nano

  2. Simlar

    1. 7x F2F kabellari

      1. 2x qora
      2. 2x qizil
      3. 3x turli xil ranglar
  3. LED tasmasi

    Yana bizda faqat bittasi bor. Bu mikrofon bilan bo'ladi

  4. Mikrofon

    Bizda faqat bittasi bor, uni oxiriga yopishtiring! Bu xodimlar tortmasida bo'ladi

1 -qadam: Mikrokompyuter

Mikrokompyuter
Mikrokompyuter

Boshlash uchun biz Arduino Nano qismlari bilan qulay bo'lishimiz kerak. Rasmda ko'rinib turibdiki, boshqaruvchining ikkita asosiy tomoni bor. Bizni xavotirga solayotgan qismlar faqat:

  • +5V
  • GND
  • GND
  • 3V3 (bu ham 3.3V sifatida ko'rinishi mumkin, lekin xuddi shu narsani bildiradi)
  • D2
  • D3
  • D4
  • Mini USB (oxirida kumush vilka)

2 -qadam: LED chizig'i

LED tasmasi
LED tasmasi
LED tasmasi
LED tasmasi
LED tasmasi
LED tasmasi
LED tasmasi
LED tasmasi

Chiziqli chiziqning uchini olishdan boshlang. Bu qora vilka bo'lishi kerak (uning ichiga 4 ta sim kiradi) va keyin ikkita simsiz sim (1x sariq, 1x qizil) bo'lishi kerak. Biz faqat qora vilka haqida qayg'uramiz. Uni chapdan o'ngga shunday tartibda yo'naltiring: qizil, ko'k, yashil, sariq. Bu ranglar VCC, D0, C0, GND ga mos keladi. Simlarning ayol tarafidan foydalanib, qora simni GNDga, qizilni VCCga va turli ranglarni o'rtadagi ikkiga suring.

** Simlarni ulashda, kumush tabning yuqoriga qaraganligiga ishonch hosil qiling! Bu ularga pimlarga o'tishga yordam beradi. (Birinchi rasmda ko'rilgan)

Keyin biz boshqa ayol tomonni olamiz va uni Nanoga biriktiramiz. LED tasmasidan G2 simini D2 yonidagi GND ga ulang. Keyin VCC simini oling va uni +5V piniga ulang. LEDdan C0 va D0 pinini Nano d2 va D3 piniga ulang. Uchinchi va to'rtinchi rasmlarda ulanish joylarini ko'rish mumkin.

3 -qadam: Mikrofonni ulang

Mikrofonni ulang
Mikrofonni ulang
Mikrofonni ulang
Mikrofonni ulang
Mikrofonni ulang
Mikrofonni ulang

** ESLATMA **

Suratga olishda simlar kam edi. Ko'rsatmalarni yaxshiroq aks ettirish uchun iloji bo'lsa, men bu rasmni yangilayman. Mana, yo'nalishdagi simlarning ranglari, rasmlardagi ranglardan farqli o'laroq:

  • qizil -> jigarrang
  • qora -> qora
  • rangli -> kulrang

Mikrofon LED tasmasi bilan bir xil, lekin ikkitasi o'rniga faqat 1 ta ma'lumot piniga ulanadi.

Bu safar biz VCC pinini mikrofondan nano ustidagi 3V3 piniga qizil sim yordamida ulashimiz kerak. Keyin mikrofondagi GND pinini qora sim yordamida nanodagi GND ga va nihoyat mikrofondagi OUT pinini rangli simli nano d4 piniga ulang.

4 -qadam: Arduino IDE

3D printerlarga eng yaqin kompyuterlardan foydalanib, Arduino IDE -ni oching. Bu kompyuterlarda LED tasmasini boshqarish uchun maxsus dasturlar o'rnatilgan. Keyin mikro USB yordamida nanoni kompyuterga ulang.

  1. Yuqori paneldagi Asboblar -ni bosing
  2. Keyin taxta ostida Arduino Nano -ni bosing
  3. Protsessor ostida ATmega328P (Old Bootloader) ni bosing.

    Agar bu ishlamasa, ATmega328P -ni tanlang

  4. Nihoyat, Port ostida ko'rsatilgan yagona variantni bosing.

Hammasi tanlanganidan so'ng, ushbu kodni eskiz oynasiga ko'chiring va joylashtiring (bu erda void setup () va void loop () yozilgan). Keyin o'ngga qaragan o'qni bosing (uni tahrir menyusi ostidan topishingiz mumkin). Bu kodni nano -ga yuklaydi.

#include // Qaysi D pim ishlatilganligini aniqlang. const uint8_t clockPin = 2; const uint8_t dataPin = 3; const uint8_t micPin = 4; // LED chizig'iga yozish uchun ob'ekt yarating. APA102 ledStrip; // Boshqariladigan LEDlar sonini o'rnating. const uint16_t ledCount = 60; uint8_t LEDlar; // Audio const int sampleWindow = 50; // namuna oynasining kengligi mS (50 mS = 20Hz) belgisiz int namunasi; // Ranglarni saqlash uchun bufer yaratish (har bir rang uchun 3 bayt). rgb_color ranglar [ledCount]; // LEDlarning yorqinligini o'rnating (maksimal 31, lekin ko'r -ko'rona yorqin bo'lishi mumkin). const int yorqinligi = 12; void setup () {Serial.begin (9600); } void loop () {ekvilizator (); ledStrip.write (ranglar, ledCount, nashrida); } bo'sh ekvilizator () {imzosiz uzoq startMillis = millis (); // namuna oynasining boshlanishi unsigned int peakToPeak = 0; // tepadan tepaga darajadagi belgisiz int signalMax = 0; imzosiz int signalMin = 1024; uint8_t vaqt = millis () >> 4; // 50 mS uchun ma'lumotlarni yig'ish paytida (millis () - startMillis <sampleWindow) {sample = analogRead (micPin); // soxta o'qishni olib tashlang, agar (sample signalMax) {signalMax = namuna; // faqat maksimal darajalarni saqlang} else if (namuna <signalMin) {signalMin = namuna; // faqat minimal darajalarni saqlang}}} peakToPeak = signalMax - signalMin; // max - min = amplituda tepalik -tepalik xotirasi (ranglar, 0, sizeof (ranglar)); // ranglarni LED tasmasidan tozalaydi leds = diapazonlari (peakToPeak); // qo'ng'iroqlar diapazonlari qancha LEDni yoqish kerakligini ko'rish uchun uint32_t stripColor = peakToPeak/1000 + peakToPeak%1000; uchun (uint16_t i = 0; i <= leds; i ++) {ranglar = hsvToRgb ((uint32_t) stripColor * 359/256, 255, 255); // ranglarni chiziqqa qaytaradi, shu bilan birga faqat kerakli lampalarni yoritadi. }} rgb_color hsvToRgb (uint16_t h, uint8_t s, uint8_t v) {uint8_t f = (h % 60) * 255/60; uint8_t p = (255 - s) * (uint16_t) v / 255; uint8_t q = (255 - f * (uint16_t) s / 255) * (uint16_t) v / 255; uint8_t t = (255 - (255 - f) * (uint16_t) s / 255) * (uint16_t) v / 255; uint8_t r = 0, g = 0, b = 0; switch ((h / 60) % 6) {0 holat: r = v; g = t; b = p; tanaffus; 1 -holat: r = q; g = v; b = p; tanaffus; 2 -holat: r = p; g = v; b = t; tanaffus; 3 -holat: r = p; g = q; b = v; tanaffus; 4 -holat: r = t; g = p; b = v; tanaffus; 5 -holat: r = v; g = p; b = q; tanaffus; } rgb_color qaytarish (r, g, b); } uint8_t diapazonlari (uint8_t vol) {if (vol> 800) {qaytish 60; } else if (vol> 700) {qaytish 56; } else if (vol> 600) {qaytish 52; } if if (vol> 500) {qaytish 48; } else if (jild> 400) {44 qaytaring; } if if (vol> 358) {return 40; } if if (vol> 317) {return 36; } if if (vol> 276) {return 32; } if if (vol> 235) {return 28; } if if (vol> 194) {qaytish 24; } if if (vol> 153) {return 20; } if if (vol> 112) {qaytish 16; } if if (vol> 71) {qaytish 12; } if if (vol> 30) {8 qaytish; } boshqa {qaytish 4; }}

5 -qadam: Ish tugagandan so'ng

Juda yaxshi! Hammasi ishlayotganini suratga oling. Agar LED chizig'i to'liq yonmasa, mikrofonning orqa qismidagi vint sozlangan. Buni tuzatish uchun kodni o'zgartirishingiz mumkin (agar xohlasangiz yordam so'rang), lekin kerak emas. Agar siz loyihani saqlamoqchi bo'lsangiz, quyida mikrofon va LED tasmasi uchun havolalar ko'rsatilgan. Bizni boshqa xodimlar ham tugatishi uchun ular markazda qolishlari kerak.

Endi hamma narsani demontaj qilishdan oldin nano -ni kompyuterga qayta o'rnating va Arduino IDE -dagi quyidagi amallarni bajaring:

  • Fayl -ni bosing
  • Misollar
  • Asosiy
  • Ko'z yumish
  • Tugatgandan so'ng, yuklash tugmasini bosing

Bu hamma simlarni ulash emas, balki butun jarayonni bajarishini ta'minlash. Endi hamma narsani demontaj qiling va topgan joyingizga qo'ying!

Havolalar:

Mikrofon

Menga havola bo'lgandan keyin LEDlar qo'shiladi

Tavsiya: