Мазмуну:

Электроника чеберчилиги Lvl 2: 5 кадам
Электроника чеберчилиги Lvl 2: 5 кадам

Video: Электроника чеберчилиги Lvl 2: 5 кадам

Video: Электроника чеберчилиги Lvl 2: 5 кадам
Video: КАК НАСТРОИТЬ L4D2 2024, Июль
Anonim
Электроника чеберчилиги Lvl 2
Электроника чеберчилиги Lvl 2
Электроника чеберчилиги Lvl 2
Электроника чеберчилиги Lvl 2

Бул сизге 2 -деңгээлдеги электроника деңгээлин аяктоого жардам берүү үчүн тез үйрөткүч болот. Муну так ошондой кылуунун кажети жок! Сиз каалагандай бөлүктөрдү/компоненттерди алмаштыра аласыз, бирок анын иштеши үчүн кодду өзгөртүү үчүн жооптуу болосуз. Мен кодго комментарийлерди кошуп, ар бир бөлүктүн эмне кылаарын түшүндүрөм.

Акыркы нерсе - микрокомпьютер. Биз Arduino Nano колдонуп жатабыз. Бул Arduino Uno же башка микроконтроллерге алмаштырылышы мүмкүн. Операциялар ар кандай болушу мүмкүн жана сиз башка компьютерди иштетүүгө жооптуу болосуз.

Жетектелген тилке MHD кызматкерлеринин суурмасынын үстүндөгү күмүш баштыкта. Микрофон дагы светодиоддор менен баштыктын ичинде. Аяктагандан кийин аларды бул жерге кайтарыңыз!

Жабдуулар

  1. Микрокомпьютер

    Arduino Nano

  2. Зымдар

    1. 7x F2F кабели

      1. 2x Кара
      2. 2x Кызыл
      3. 3x ар кандай түстөр
  3. LED Strip

    Дагы бизде бирөө гана бар. Бул микрофон менен болот

  4. Микрофон

    Бизде бирөө гана бар, аны аягында тиркеңиз! Ал кызматкерлердин суурмасында болот

1 -кадам: Микрокомпьютер

Микрокомпьютер
Микрокомпьютер

Баштоо үчүн биз Arduino Nano бөлүктөрү менен ыңгайлуу болушубуз керек. Сүрөттө көрүнүп тургандай, контроллердин эки негизги жагы бар. Бизди тынчсыздандырган гана бөлүктөр:

  • +5V
  • GND
  • GND
  • 3V3 (бул 3.3V катары көрүнүшү мүмкүн, бирок ошол эле нерсени билдирет)
  • D2
  • D3
  • D4
  • Mini USB (аягында күмүш штепсель)

2 -кадам: LED тилкеси

LED Strip
LED Strip
LED Strip
LED Strip
LED Strip
LED Strip
LED Strip
LED Strip

Лед тилкесинин учун алуу менен баштаңыз. Бул кара штепсель (ичине 4 зым кирип), андан кийин эки адашкан зым (1х сары, 1х кызыл) болушу керек. Биз кара штепсель жөнүндө гана ойлонобуз. Бул тартипти солдон оңго карай багыттаңыз: кызыл, көк, жашыл, сары. Бул түстөр VCC, D0, C0, GND менен дал келет. Зымдардын аялдык тарабын колдонуп, кара зымды GNDге, кызылды VCCге, ар кандай түстөрдү ортоңку экөөнө түртүңүз.

** Зымдарды туташтырууда күмүш табак өйдө караганын текшериңиз! Бул аларга казыктарга өтүүгө жардам берет. (Биринчи сүрөттө көрүлгөн)

Андан кийин биз башка аял тарапты алып, аны нано менен байланыштырабыз. LED тилкесинен GND зымын D2 жанындагы GNDге туташтырыңыз. Андан кийин VCC зымын алып, +5V төөнөгүчкө тиркеңиз. LEDден C0 жана D0 пинди Nanoдогу D2 жана D3 төөнөгүчкө тиркеңиз. Плагиндердин жайгашуусун үчүнчү жана төртүнчү сүрөттөрдөн көрүүгө болот.

3 -кадам: Микрофонду тиркеңиз

Микрофонду тиркөө
Микрофонду тиркөө
Микрофонду тиркөө
Микрофонду тиркөө
Микрофонду тиркөө
Микрофонду тиркөө

** ЭСКЕРТҮҮ **

Сүрөткө тартып жатканда зымдар жетишсиз болгон. Көрсөтмөлөрдү жакшыраак чагылдыруу үчүн бул сүрөттү мүмкүн болушунча жаңыртам. Бул жерде сүрөттөрдөгү түстөргө каршы багыттардагы зым түстөрү:

  • кызыл -> күрөң
  • кара -> кара
  • түстүү -> боз

Микрофон LED тилкеси менен бирдей тиркелет, бирок экөөнүн ордуна 1 гана маалымат пини бар.

Бул жолу биз VCC пинин микрофондон 3V3 пинге кызыл зым аркылуу тиркеп коюшубуз керек. Андан кийин кара зымды колдонуп нанодо GNDге микрофондогу GND пин, акыры микрофондогу OUT пинди түстүү зым менен нанонун D4 пинине чейин.

4 -кадам: Arduino IDE

3D принтерлерине эң жакын компьютерлерди колдонуп, Arduino IDE ачыңыз. Бул компьютерлерде биздин LED тилкесин башкаруу үчүн атайын программалар орнотулган. Андан кийин микро USB аркылуу нанону компьютерге тиркеңиз.

  1. Жогорку тилкеде Tools басыңыз
  2. Андан кийин Boardтун астында Arduino Nano дегенди басыңыз
  3. Процессордун астында ATmega328P (Эски жүктөгүч) чыкылдатыңыз.

    Эгер бул иштебесе, анда ATmega328P тандаңыз

  4. Акырында, Порт астында, көрсөтүлгөн бир гана вариантты чыкылдатыңыз.

Мунун баары тандалгандан кийин, бул кодду эскиз терезесине көчүрүп чаптаңыз (анда void setup () жана void loop () деп айтылат). Андан кийин оңго багытталган жебени чыкылдатыңыз (аны оңдоо менюсунун пунктунун астынан тапса болот). Бул кодду наноңузга жүктөйт.

#include // Кайсы D казыктары колдонулганын аныктаңыз. const uint8_t clockPin = 2; const uint8_t dataPin = 3; const uint8_t micPin = 4; // LED тилкесине жазуу үчүн объект түзүңүз. APA102 ledStrip; // Башкаруу үчүн светодиоддордун санын коюңуз. const uint16_t ledCount = 60; uint8_t leds; // Audio const int sampleWindow = 50; // MS (50 mS = 20Hz) белгисиз int үлгүсүндөгү терезенин туурасы; // Түстөрдү кармоо үчүн буфер түзүңүз (түсүнө 3 байт). rgb_color colours [ledCount]; // LEDлердин жарыктыгын орнотуңуз (максимум 31, бирок сокур жаркыраган болушу мүмкүн). const int жарыктыгы = 12; void setup () {Serial.begin (9600); } void loop () {equilizer (); ledStrip.write (түстөр, ledCount, жарыктык); } боштук эквалайзери () {unsigned long startMillis = millis (); // Үлгү терезенин башталышы белгиси жок int peakToPeak = 0; // чокусунан чокусуна чейин деңгээл белгиси жок int signalMax = 0; белгисиз int signalMin = 1024; uint8_t time = millis () >> 4; // 50 mS үчүн маалыматтарды чогултуу (millis () - startMillis <sampleWindow) {sample = analogRead (micPin); // жалган окууларды ыргытып жиберүү if (sample signalMax) {signalMax = sample; // максималдуу деңгээлдерди сактаңыз} башка if (sample <signalMin) {signalMin = sample; // жөн гана минималдуу деңгээлдерди сактоо}}} peakToPeak = signalMax - signalMin; // макс - мин = амплитуданын чокусу -чокусу (түстөр, 0, sizeof (түстөр)); // түстөрдү LED тилкесинен тазалайт leds = диапазондор (peakToPeak); // чалуу диапазондору канча LED чырактарын күйгүзүүнү көрүү uint32_t stripColor = peakToPeak/1000 + peakToPeak%1000; for (uint16_t i = 0; i <= leds; i ++) {colors = hsvToRgb ((uint32_t) stripColor * 359/256, 255, 255); // түстөрдү тилкеге кайра кошуп, керектүү леддерди гана жарык кылат. }} 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) {case 0: r = v; g = t; b = p; тыныгуу; Case 1: r = q; g = v; b = p; тыныгуу; учурда 2: r = p; g = v; b = t; тыныгуу; 3 -жагдай: r = p; g = q; b = v; тыныгуу; учурда 4: r = t; g = p; b = v; тыныгуу; учурда 5: r = v; g = p; b = q; тыныгуу; } rgb_color кайтаруу (r, g, b); } uint8_t диапазону (uint8_t vol) {if (vol> 800) {return 60; } else if (vol> 700) {return 56; } else if (vol> 600) {return 52; } else if (vol> 500) {return 48; } else if (vol> 400) {return 44; } else if (vol> 358) {return 40; } else if (vol> 317) {return 36; } else if (vol> 276) {return 32; } else if (vol> 235) {return 28; } else if (том> 194) {return 24; } else if (vol> 153) {return 20; } else if (vol> 112) {return 16; } else if (vol> 71) {return 12; } else if (vol> 30) {return 8; } else {return 4; }}

5 -кадам: Бүткөндөн кийин

Жакшы жумуш! Мунун баары иштеп жатканын сүрөткө тартып алыңыз. Эгерде LED тилкеси толугу менен күйбөсө, анда микрофондун артындагы бурамасы жөнгө салынган. Муну оңдоо үчүн кодду өзгөртө аласыз (эгер кааласаңыз, жардам сураңыз), бирок керек эмес. Эгерде сиз долбоорду сактап калгыңыз келсе, микрофон менен лед тилкесинин шилтемелери төмөндө көрсөтүлгөн. Бизге башка персоналдын бүтүшү үчүн Хабда калуулары керек.

Эми баарын ажыратуудан мурун нанону компьютерге кайра орнотуп, Arduino IDEдеги ушул кадамдарды аткарыңыз:

  • Файлды басыңыз
  • Мисалдар
  • Негизги
  • Blink
  • Аяктагандан кийин жүктөө баскычын чыкылдатыңыз

Бул ар бир адам бүт процессти аткарып жаткандыгын жана зымдарды гана бекитпестен камсыз кылуу үчүн. Эми баарын ажыратып, тапкан жериңизге кайра коюңуз!

Шилтемелер:

Микрофон

Мен шилтеме болгондон кийин LEDлар кошулат

Сунушталууда: