Агуулгын хүснэгт:

MIDI2LED - MIDI хяналттай LED зурвасын гэрлийн эффект: 6 алхам
MIDI2LED - MIDI хяналттай LED зурвасын гэрлийн эффект: 6 алхам

Видео: MIDI2LED - MIDI хяналттай LED зурвасын гэрлийн эффект: 6 алхам

Видео: MIDI2LED - MIDI хяналттай LED зурвасын гэрлийн эффект: 6 алхам
Видео: Food as Medicine: Preventing and Treating the Most Common Diseases with Diet 2024, Арваннэгдүгээр
Anonim
MIDI2LED - MIDI хяналттай LED зурвасын гэрлийн эффект
MIDI2LED - MIDI хяналттай LED зурвасын гэрлийн эффект

Энэ бол миний анхны зааварчилгаа тул намайг хүлээгээрэй.

Би хөгжим хийх дуртай, зочны өрөөний концерт гэх мэт амьд нөхцөлд тоглодог зүйлтэйгээ гэрлийн эффектүүд байвал надад таалагддаг. Тиймээс би MIDI гар дээрх тэмдэглэл дээр дарах үед LED зурвасыг санамсаргүй өнгөөр гэрэлтүүлж, тэмдэглэлийг хаана цохих болсныг Arduino-д суурилсан хайрцаг бүтээсэн.

Хангамж

  • Ардуино Уно
  • Arduino хамгаалалтын бүрхүүл
  • MIDI үүр
  • 1N4148 диод
  • 6N138 opto холбогч
  • эсэргүүцэл: 2x 220 Ом, 1x 10kOhm, 1x 470Ohm
  • WS2812B LED зурвас (60 LED)
  • үлдсэн утаснууд
  • дулаан багасгадаг хоолой
  • Arduino -ийн тохиромжтой бүрхүүл (би хуванцар уулзвар хайрцаг ашигладаг)

Танд бас хэрэгтэй болно

  • гагнуурын төмөр ба гагнуур
  • MIDI гар ба MIDI кабель

Алхам 1: Электроник

Электроникс
Электроникс

Хэлхээ нь маш энгийн. Энэ нь стандарт MIDI оролт (Arduino -ийн зүүн талд) болон LED зурвас (Arduino -ийн баруун талд) холболтоос бүрдэнэ. Бүх эд ангийг хамгаалалтын самбар дээр байрлуул, маш их зай байна. Ер нь LED зурвасыг тэжээхийн тулд гадны тэжээлийг ашиглахыг зөвлөдөг боловч тоглож байхдаа хэдхэн LED нэгэн зэрэг асдаг болохыг олж мэдсэн. Arduino +5V / GND -ийг цахилгаан гаралт болгон ашиглахад асуудал гардаггүй. (Бүх товчлуурыг нэгэн зэрэг, бүх хурдаар цохихгүй байхыг хичээгээрэй.;-)) Хэрэв та гадны цахилгаан хангамж ашиглахаар шийдсэн бол Arduino +5V ба GND зүү рүү холбоно уу. Зарим хүмүүс эдгээр хоёр шугамын хооронд 100uF конденсатор (схемд харуулаагүй) оруулахыг зөвлөж байна.

Эд ангиудыг хамгаалалтын бүрхүүлд гагнаж, диаграммд үзүүлсэн шиг LED туузыг холбоно уу.

Алхам 2: LED туузыг холбох

LED туузыг холбох
LED туузыг холбох

LED зурвасын баруун төгсгөл - оролтын төгсгөлийг хэлхээнд холбох нь чухал юм. Миний зурвас нь оролтын хувьд эмэгтэй холбогчтой бөгөөд оролтоосоо чиглэсэн жижиг гурвалжинтай. Гаралт дээр эрэгтэй холбогч байсан (үүнийг өөр зурваст холбох боломжтой), тиймээс би үүнийг таслаад Arduino -аас ирж буй гурван кабель руу гагнав. Гурван кабелийг LED туузанд холбож, харагдахгүй болгохын тулд дулаан агшаагч хоолой ашиглана уу.

Миний ашигласан LED тууз нь ардаа наалдамхай туузтай ирдэг тул MIDI гарны ар талд амархан наалддаг.

Алхам 3: Төслийг гар дээрээ тохируулах

Төслийг гар дээрээ тохируулах
Төслийг гар дээрээ тохируулах
Төслийг гар дээрээ тохируулах
Төслийг гар дээрээ тохируулах

Та LED зурвас болон Arduino кодыг гар дээрээ тохируулах хэрэгтэй болж магадгүй юм. Минийх 76 товчлууртай бөгөөд туузны урт нь гарны өргөнтэй бараг тэнцүү юм. Хэрэв танд жишээ нь 61 түлхүүр, танд богино тууз хэрэгтэй байж магадгүй юм. LED зурвасыг хоёр LED -ийн хооронд огтлох боломжтой. Зөв хэсгийг нь тасалж байгаа эсэхийг шалгаарай, оролтын төгсгөл (эмэгтэй холбогчтой) ба гаралтын төгсгөл (эрэгтэй холбогчтой), та оролтын төгсгөлийг хадгалах ёстой. Кодонд #тодорхойлолтыг өөрчилнө үү. -ийн хувьд

  • Төгсгөлийг тасалсны дараа таны зурваст үлдсэн LED тооноос NUMBER_OF_LEDS,
  • Таны гар дээрх товчлууруудын тоог NUMBER_OF_KEYS, болон
  • MIN_KEY таны хамгийн доод түлхүүрийн MIDI давтамжийн дугаар руу орно. Та үүнийг гарны гарын авлагаас олж болно; эсвэл Linux -д зориулсан KMidiMon, Windows эсвэл Mac -д зориулсан Pocket MIDI гэх мэт MIDI тэмдэглэлийн дугаарыг харуулдаг хэрэгслийг ашиглах; эсвэл төхөөрөмж таны гарын бүх товчлуурт хариу өгөх хүртэл өөр өөр утгыг туршиж үзээрэй

Алхам 4: Arduino код

Arduino код нь дөчин долоон эффектийн MIDI номын сан (v4.3.1), Adafruit -ийн Adafruit NeoPixel номын санг (v1.3.4) ашигладаг. Arduino IDE ашиглан эдгээр номын санг суулгаарай. Дараа нь кодыг эмхэтгэн бамбай холболгүйгээр Arduino руу байршуулна уу (оптик холбогч нь RX зүүтэй холбогдсон бөгөөд энэ нь байршуулахад саад болдог). Arduino -г USB кабелиар тэжээнэ үү (би USB ханын warts ашигладаг).

Хэрэв та кодыг өөрийн үзэмжээр өөрчлөхийг хүсч байвал энэ нь хэрхэн ажилладаг талаар товч танилцуулъя: Давталт бүрт MIDI оролтыг уншдаг. Хэрэв Note On эсвэл Note Off үйл явдал хүлээн авсан бол MyHandleNoteOn эсвэл MyHandleNoteOff функцуудыг дуудна. Тэд хоёулаа түлхүүрийн дугаарын хурдыг хадгалдаг updateVelocityArray функцийг дууддаг. Хэрэв хурд нь урьд өмнө хадгалагдаж байснаас өндөр байвал харгалзах LED -ийн өнгийг "одоогийн өнгө" болгож тохируулна. MIDI үйл явдлуудыг зохицуулсны дараа updateLedArray функцийг дуудна. Энэ нь "одоогийн өнгө" -ийг шинэчилдэг (улаан, ногоон, цэнхэр утгууд нь шугаман хэлбэрээр бие даан өөрчлөгдөж, доод эсвэл дээд үзүүрт хүрэх хүртэл шугаман өөрчлөлтийн хурдыг санамсаргүй тоогоор тохируулдаг), дарагдсан тэмдэглэлийн хурдыг аажмаар бууруулж, өнгийг нь өөрчлөх шаардлагатай LED бүрийн өнгөний утгыг шинэчилдэг (шинэ тэмдэглэлийн цохилт эсвэл хурд буурснаас болж). ShowLedArray функц нь өнгийг "пиксел" гэж нэрлэдэг Adafruit_NeoPixel бүтэц рүү шилжүүлж, жинхэнэ LED нь пикселийн бүтэц дэх өнгийг харуулдаг.

Алхам 5: Боломжит сайжруулалтууд…

Төсөл хэзээ ч дуусдаггүй. Үүнийг сайжруулахын тулд үргэлж хийж болох зүйл байдаг:

  • Protoshield нь маш цөөхөн хэсгийг агуулдаг бөгөөд энэ нь үнэхээр хаягдал болно; Arduino Nano, 15х7 нүхтэй ПХБ, зарим эмэгтэй зүү толгойн тусламжтайгаар ижил үр дүнд хүрэх боломжтой.
  • MIDI -ийн зарим дохио алдагдах болно. Хэрэв энэ нь NoteOn бол харгалзах LED нь асахгүй; Хэрэв энэ нь NoteOff бол энэ нь унтрахгүй болно (иймээс би LED -үүдийг хязгааргүй байлгахгүйн тулд хурдны бууралтыг нэвтрүүлсэн). Би одоо ч гэсэн учрыг нь олохыг хичээж байна. Магадгүй энэ нь цаг хугацааны асуудал бөгөөд MIDI.read () -ийг илүү олон удаа дуудах хэрэгтэй.
  • MIDI -ийн зарим дохиог буруу уншсан, өөрөөр хэлбэл буруу LED гэрэл асдаг. Дээрх цэгүүдтэй холбогдож болно. Бага зэрэг судлах шаардлагатай байна.
  • Энэхүү хэлхээ нь хэрэглэгчийн оролцоогүйгээр (гар тоглохоос гадна) тааламжтай харааны эффект өгөх зорилготой юм. Гэсэн хэдий ч өнгийг өөрчлөх хамгийн дээд хурдыг өөрчлөх боломжтой (одоогоор #define'd MAX_COLOR_CHANGE_SPEED = 20) уншигдах потенциометрийг (Arduino -ийн аналог оролтуудын аль нэгийг ашиглан) нэмж болно гэж төсөөлж байсан. Эсвэл NoteOn хоёр үйл явдлын хоорондох дундаж хугацааг хэмжиж, үүнд нийцүүлэн MAX_COLOR_CHANGE_SPEED -ийг өөрчилж болно - удаан дуунуудад өнгө нь илүү удаан өөрчлөгдөх ёстой.

Алхам 6: Боллоо

Arduino -г USB кабелиар тэжээнэ үү (би USB ханын warts ашигладаг). MIDI гараа MIDI үүрэнд холбож, тоглож эхлээрэй. Бага зэрэг хөнгөн хөгжим тоглож байгааг минь ажиглаарай (оновчтой, муу санаатай).

Зөвлөмж болгож буй: