Мазмуну:

Bluetooth App + AnimationCreator менен RGB LED кубу: 14 кадам (сүрөттөр менен)
Bluetooth App + AnimationCreator менен RGB LED кубу: 14 кадам (сүрөттөр менен)

Video: Bluetooth App + AnimationCreator менен RGB LED кубу: 14 кадам (сүрөттөр менен)

Video: Bluetooth App + AnimationCreator менен RGB LED кубу: 14 кадам (сүрөттөр менен)
Video: How To Install Bluetooth LED RGB Strip Light App to Your Smartphone #shorts 2024, Ноябрь
Anonim
Bluetooth App + AnimationCreator менен RGB LED кубу
Bluetooth App + AnimationCreator менен RGB LED кубу

Бул 6x6x6 RGB LED (Жалпы Аноддор) кубун Bluetooth колдонмосу тарабынан башкарылган Arduino Nano аркылуу кантип куруу керектиги боюнча көрсөтмө. Бүт түзүлүш 4x4x4 же 8x8x8 кубга оңой ыңгайлаштырылган. Бул долбоор GreatScott тарабынан шыктандырылган. Мен чоңураак светодиоддорду (8мм) колдонуу менен, татаалыраак курулушка барууну чечтим, азыраак аралыкта + Bluetooth байланышын кошуп, жаңы функцияларды бир топ жеңилдетет, ошондой эле кубду башкаруу үчүн колдонмо куруу мүмкүнчүлүгүн кошот. Бул мага мисал үчүн мүмкүнчүлүк берет. Жылан оюнун коддоо (аягында 3 -көргөзмө видеосу). Анын үстүнө мен кубокко AUX киргизүүнү элестетүүгө мүмкүнчүлүк берген Аудио визуализатор режимин коштум, мис. MSGEQ7 аркылуу музыка (аягында видеону көрсөтүңүз). Кошумча катары, мен Javaда AnimationCreator тиркемесин жаздым, анимацияларды түзүү жана оңдоо үчүн UI колдонууга оңой, ошондуктан каалаган адам ыңгайлаштырылган анимацияларды тез кура алат. Ошентип, Sketch + Bluetooth колдонмосу каалаган LED Cube конфигурациясы үчүн негизди камсыз кылат жана анимация жаратуучусу менен жеке анимацияларды ишке ашыруу жөнүндө тынчсыздануунун кажети жок.

Arduino Sketch жана Bluetooth тиркемесине шилтемелер:

RGBCube_Arduino Sketch (Github)+Анимация жаратуучу.jar

Cubo Bluetooth колдонмосу (Github)

Куб үчүн бөлүктөрдүн тизмеси:

  • 216x RGB LED (Жалпы анод) (8мм) (AliExpress / Ebay)-> 6x6x6 = 216
  • Тасма кабели (1м 40Пин жетиштүү болушу керек) (AliExpress / Ebay / Amazon)
  • Аял жана Эркек Аталыштары (ар бири 4x40pin) (AliExpress / Ebay / Amazon)
  • Калай жез / күмүш зым 0.8мм (~ 25метр) (AliExpress / Ebay / Amazon)
  • Shrinking Tube (AliExpress / Ebay / Amazon)

Башкаруу такталары үчүн бөлүктөрдүн тизмеси:

  • 7 x TLC5940 LED айдоочу (Ebay / AliExpress)
  • 6 x IRF 9540 P-Channel MOSFETs (Amazon / Ebay / AliExpress)
  • 8 x 10 UF конденсаторлору (Amazon / Ebay / AliExpress)
  • 3 x 1000 uF конденсаторлору (Amazon / Ebay / AliExpress)
  • 14x 2.2kOhm резисторлору (Amazon / Ebay / AliExpress)
  • 1 x 1kOhm резистору (Amazon / Ebay / AliExpress)
  • 7 x 28pin IC розеткалары (Amazon / Ebay / AliExpress)
  • 1 x Arduino Nano (Amazon / Ebay / AliExpress)
  • 1 x 1N4001 диод (Ар кандай жалпы диод) (Amazon / Ebay / AliExpress)
  • 8 x 0.1uF Конденсаторлор (Ebay)
  • 1 x DC Jack PCB Mount (Amazon / Ebay / AliExpress)
  • 1 х HC-05 Bluetooth модулу (Amazon / Ebay / AliExpress)

1 -кадам: Теория

Теория
Теория

Эгерде сиз мультиплексирлөө теориясына кызыкпасаңыз, анда чыныгы курулуштун башталышы үчүн 2 -кадамга өтүңүз

Аппараттык жана программалык камсыздоо бул долбоордун бирдей чоң бөлүктөрү болгондуктан, адегенде теорияны карап көрөлү.

Кубдун мээси - Arduino Nano. Бул колдонулган LED драйверлери менен өз ара аракеттенүү үчүн жетиштүү I/O камсыз кылат, ошондой эле HC-05 модулуна жана башка башкаруу жабдыктарына Bluetooth байланышын орнотот. Эгерде сиз башка LED Cube түзүлүштөрүн карасаңыз, анда көпчүлүк адамдар жеке LED түстөрүнүн жарыктыгын сактоо үчүн жөнөкөй Shift регистрлерин колдонгонун билесиз. Бул түзүлүш Shift регистрлерин колдонбойт, тескерисинче "TLC5940" LED драйверлери деп аталат. Кийинчерээк көрө турганыбыздай, бул бизге көп убакытты үнөмдөйт, ошондой эле көптөгөн кошумча жабдууларды (мисалы, резисторлорду) үнөмдөйт.

Кубду башкаруунун негизги функциялары мультиплекстөөнү колдонот. Бул учурда биз кубдун 6 катмарын мультиплексирлеп жатабыз, бул катмардагы бардык светодиоддордун бардык аноддору (+) туташтырылган дегенди билдирет, ошол эле Колоннадагы бардык светодиоддордун жеке катоддору ылдый карай туташкан. Бул эгер сиз LEDди x = 1, y = 2, z = 3, color: green позициясынан жарык кылгыңыз келсе, 3 -катмардагы аноддо 5V менен камсыз кылууңуз керек жана GND'ди мамычанын катодуна туташтырыңыз. Жашыл пин x = 1, y = 2. Чындыгында, убакыттын өтүшү менен, Кубдун бир гана катмары күйгүзүлгөн, бирок кийинчерээк Кодексте көрүнүп тургандай, биз жеке катмарларды ушунчалык тез өчүрүп жатабыз, ошондуктан биздин көзүбүз кубдун баары күйүп турат деп ойлойт..

Жарыктык, анимация жана башка ушул сыяктуу нерселерди көзөмөлдөө үчүн биз Arduino Nanoго туташкан HC-05 Bluetooth модулун колдонобуз. Модулду Arduino менен колдонуу абдан жөнөкөй, анткени сизге 4 пин туташуусу гана керек жана модулду Arduino демейки Serial-Commuincation аркылуу интерфейске киргизе аласыз. Бул нускаманын аягында сиз Кубду башкаруу үчүн өзүңүздүн Bluetooth колдонмосуңузду жазуу канчалык оңой экенин көрөсүз.

ЭСКЕРТҮҮ

Менин схемамда Arduino микросхемасында сиз MSGEQ7 процессинин аудио киргизүү процессинин кичине схемасын көрө аласыз, бул чыныгы куб үчүн таптакыр кереги жок жана мен кошкон кошумча функция, демек сиз белгиленген схеманы этибарга албай коюңуз. "MSGEQ7" менен

2 -кадам: Аппараттык: LED Cube Build

Аппараттык: LED Cube Build
Аппараттык: LED Cube Build
Аппараттык: LED Cube Build
Аппараттык: LED Cube Build
Аппараттык: LED Cube Build
Аппараттык: LED Cube Build

Келгиле, Arduino Nano тегерегиндеги башкаруу схемасы жөнүндө айтуудан мурун, Кубдун өзүн кантип курууну карап көрөлү.

Куб куруу үчүн тетиктердин тизмеси:

  • 216x RGB LED (Жалпы анод) (AliExpress / Ebay)-> 6x6x6 = 216
  • Тасма кабели (1м 40Пин жетиштүү болушу керек) (AliExpress / Ebay / Amazon)
  • Аял жана Эркек Аталыштары (жок дегенде 4x40pin) (AliExpress / Ebay / Amazon)
  • Калай жез / күмүш зым 0.8мм (~ 25метр) (AliExpress / Ebay / Amazon)
  • Shrinking Tube (AliExpress / Ebay / Amazon)

Биринчи нерсе, мен азыр тажатма, бирок зарыл, биз диоддорду сынап көрүшүбүз керек. Бул үчүн, биз кубаттуулукту жөн эле туташтырабыз, мисалы, 9В батарея блогу менен клипке. 3 -сүрөттө көрүнүп тургандай, светодиоддордун эң узун пини - анод (+), андыктан сиз бул пинди батарейканын +9В тармагына туташтырасыз. Эми GNDни жеке түстөргө туташтыруудан мурун Катоддорго (Кызыл, Жашыл, Көк) токту чектөө үчүн ар бир катодко 220Ohm резисторун кошуңуз. Эми бардык 216 LEDдин бардык түстөрүн сынап көрүңүз.

Кийинки кадамда биз сыналган LED диоддорун даярдайбыз, аларды кийинчерээк мамычаларга оңой чогулта алабыз.

3 -кадам: LED катарлары

LED Rows
LED Rows
LED Rows
LED Rows
LED Rows
LED Rows

Светодиоддорду өз катарларына кошо электе, биз ийилип, учтарды кесишибиз керек.

Биринчи сүрөттө көрүнүп тургандай, мен жөнөкөй эле 8мм тешикти (8мм диоддор үчүн) жыгачтын бир бөлүгүнө бурдум жана LED тешигинин сол жагына, экинчиси тешиктин оң жагына абдан кичинекей 3 бургулоону бургуладым. Бул машыгуулар учтарды туура бүгүү үчүн маркер болуп саналат жана LED үчүн тешиктин ортосунан болжол менен 1 см аралыкта болушу керек.

Бул ыкма Стив Манлинин шыктандыруусу менен жасалган, сиз муну YouTubeдан бир аз айырмаланган видеону таба аласыз.

2 жана 3 -сүрөттө көрүнүп тургандай, бургулардын тегерегиндеги буроолорду кесип, бүгүүнүн алдында, коргошундардын багыты 1 -сүрөткө туура келерин текшериңиз (үстү жагында көк, андан кийин жашыл, андан кийин оңго анод +, жана кайра кызыл). Коргошунга ийилген тегеректин калың жез зымына (0.8мм) туура келгендей чоң диаметри болушу керек. Бул кадам светодиоддорду жакшылап өз ордуна коюуну оңой кылат.

Эми бардык светодиоддор даярдалгандан кийин, биз аларды аноддор (+) туташкан 6 катар катары чогулткубуз келет:

  1. 6 -сүрөттө көрүнгөндөй кичинекей джигитти куруңуз, кийинки тешикке чейинки аралык 2,5 см болгон 6 тешикти (диаметри 0.8мм) бургулаңыз. Бул бизге 6 LEDди бир убакта джигге орнотууга мүмкүндүк берет
  2. Аноддорду туташтыруу үчүн бизге ~ 16см узундуктагы калай жез зым керек (кээ бир кошумча маржа менен). Зымды жакшы жана түз алуу үчүн зымдын бир учун электр дрелине орнотсоңуз болот, бир убакта столго болжол менен 2м зымдарды бекитип, андан кийин бургулоону кармап туруңуз бир нече секунданын ичинде зымды абдан тез оңдойт. Сиз андан кийин зымды кесим бекитилген жерден так кесе аласыз. Сиз ошондой эле эки кычкачты колдонуп, бир убакта зымдын кичинекей бөлүктөрүн тартыңыз, бирок бул алда канча түйшүктүү
  3. Сизде 16 см узундуктагы зымдар болгондон кийин, аларды анод (+) диоддорунун тешиктери аркылуу багыттап, анод казыктарын зымга туташтырыңыз (Picture 7)

Бүт куб үчүн бизге 6x6 = 36 LED диапазону керек болот

4 -кадам: Катмарды чогултуу

Катмар Ассамблеясы
Катмар Ассамблеясы
Катмар Ассамблеясы
Катмар Ассамблеясы
Катмар Ассамблеясы
Катмар Ассамблеясы

Мен мурда айткандай, биз кубдун катмарын мультиплекс кылабыз, бирок монтаждоо үчүн 6х6 диоддуу 6 дубал куруп, анан аларды бири -бирине кураштыруу жана аноддорду бириктирүүчү бир калай жез зымды иштетүү оңой. катарлар катмарда чогуу.

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

LED дубал куруу үчүн:

  1. Жигит үчүн: Бизге дубал куруу үчүн 6 катар бири -бирине төп келиши үчүн 6 оюп сызылган жыгач керек. Сиз 2 -сүрөттөгү жигиттердин өзүн көрө аласыз (катар аралыктары: 2,5см)
  2. Сиз 6 катар светодиоддорду оюп түшүрөсүз, анод зымы оюп сызыкка каратып, 3 катод (R, G, B) өйдө карайт
  3. Катоддорду бири -биринин үстүнө туташтыруу үчүн (2 -сүрөттү караңыз) бизге дагы зым керек (дагы 6 Колонна x 3 Катод х 6 Дубал = 108 калемпирленген зымдын акыркы кадамында айтылгандай (2.) (ошондой эле узундугу))
  4. Колоннанын түбүндөгү зым кесимдерин катоддордун тешиктери аркылуу үстүңкү катарга жылдырып, зымды ар бир LEDда өз ордуна коюңуз

Сиз муну 6 жолу дубалдын 6 дубалын алуу үчүн жасайсыз.

Эми биз дубалдарды чыныгы кубдун өзүнө чогулта алабыз. Бирок кубду кармоо үчүн биз кандайдыр бир жердеги учак курушубуз керек. Бул үчүн мен жөн гана бир аз жука фанераны колдонуп, анча чоң эмес 0,8мм тешиктерди эң төмөнкү LED катарларына илинген зымдарга орнотуу үчүн (баардык 6 LED дубалдары үчүн). Бир LEDдын тешиктеринин өлчөөлөрү 3 -кадамда документтештирилген жана ар бир LEDдын ортосундагы аралык 2,5 см.

Тешиктер ордунда, биз азыр биринчи дубалды алып, фанеранын эң сол жагындагы тешиктерге маневр кылабыз. Түбүндөгү LED диапазону жыгачтын үстүнө отурушу керек, ошондо бардык дубалдар бирдей тегизделет.

LED дубалынын калган бөлүктөрү менен бир эле нерсени кыла бериңиз, бирок дубалдын аноддору дайыма бир багытта экенин унутпаңыз. (3 -сүрөттө дубалдын бардык аноддору сол жакты карайт)

Бүт куб орногондон кийин, биз ар бир катмардын аноддорун чогуу ширетишибиз керек. Бул үчүн биз дагы ~ 16см түз зымды алып, биринчи кабаттын үстүнө жаткызабыз, ошондо зым 6 дубалдын бардык аноддук зымдарына бир катмарда тиет. Жаңы зым катоддордун бирине тийбей турганын байкаңыз. Зымды ордуна коюп, калган 5 катмар үчүн ошол эле нерсени кайталаңыз.

5 -кадам: Кубдун зымдары

LED айдоочулар тактасы
LED айдоочулар тактасы
LED айдоочулар тактасы
LED айдоочулар тактасы
LED айдоочулар тактасы
LED айдоочулар тактасы

LED айдоочу тактасынын бөлүктөрү:

  • 7 x TLC5940
  • 6/7 x 10 uF Конденсаторлор
  • 2 x 1000 uF Конденсаторлор
  • 7x 2.2kOhm резисторлору
  • 7 x 28pin IC розеткалары
  • 7 x 0.1uF Capacitors
  • Тасма кабели

Контролдоочу схемаларга өтүү менен, адегенде LED драйверинин тактасын карап көрөлү. Жогоруда айтылгандай, бизге Arduino Nano менен туташкан 7 TLC5940 керек. TLC5940 чиптеринин баары чынжырлуу чынжырлуу, бул драйверлердин бардык башкаруу пиндери бири -бири менен байланышта экенин билдирет (мисалы, биринчи TLCдин BLANK пини экинчисинин, үчүнчүсүнүн, төртүнчүсүнүн,… TLC) BLANKке туташкан жана бардыгы Arduinowith менен туташкан ошол эле зымдар, биринчи Arduino Digital Pinден биринчи TLCге туташкан Serialден башка, андан кийин бул биринчи TLCдин Serial Out пини экинчи TLCнин SIN пинине туташат жана башкалар (4 -сүрөттү караңыз) …

Ошентип, TLC тактасынын схемасы, тиркелген схемада көрүнүп тургандай, абдан жөнөкөй.

(8 -КАДАМГА КЕҢЕШТЕН ӨТКҮҢҮЗ КЕЛСЕ)

Мен дагы схеманын скриншотун коштум, анын ичине пин этикеткалары жана ар бир Control Pin туташуусу үчүн катмарлары бар GIMP.xcf файлдары кирет.

Бардык IC розеткаларын жерге коюп, андан кийин 100nF конденсаторлорун ар бир TLCге кошуп, андан кийин IREFand GND менен 2.2kOhm каршылыгын кошуп, 7 пин башын жогорку оң бурчта.. Андан кийин.xcf файлын ээрчип алсаңыз болот. Gimp файлындагы "SIN катмарынан" баштап, драйверлердин Serial IN/OUT казыктарын лента кабелдерин кантип туташтыруу керектигин көрсөтүп, андан кийин GIMPдеги CLK катмарын иштетүү ж.б. + Жана - Пиндердин жакшы байланыштары бар экениңизди текшериңиз Жогорку оң жагында жайгашкан Баш схема Калган схемалар өзүнөн өзү түшүнүктүү болушу керек, бирок тактага жетиштүү 1000uF жана 10uF Конденсаторлорун кошкондугуңузга ишениңиз, бул так эмес сен аларды позицияла.

Бул такта бүткөндөн кийин, кийинки кадамда Arduino тактасына өтсөңүз болот.

7 -кадам: Arduino + Bluetooth Control Board

Arduino + Bluetooth башкаруу тактасы
Arduino + Bluetooth башкаруу тактасы

Башкаруу кеңешинин бөлүктөрү:

  • 6 x IRF 9540 P-Channel MOSFETs
  • 1 x 10 uF конденсаторлору
  • 1 x 1000 uF Конденсаторлор
  • 7 x 2.2kOhm резисторлору
  • 1 x 1kOhm резистору
  • 2 x 14 Ургаачы пин башы
  • 1 x Arduino Nano
  • 1 x 1N4001 диод
  • 1 x 0.1uF Конденсаторлор
  • 1 x DC Jack PCB Mount
  • 1 х HC-05 Bluetooth модулу
  • 1 x 3.5mm аудио уячасы

Arduino Control Board негизинен мультиплексирлөө менен иштейт, LED драйверинин тактасынын төөнөгүчүнүн башын камсыз кылат.

Перформатта ширетүү:

  1. Тактайдын ортосуна Arduino үчүн розетка катары иштөө үчүн эки ургаачы пин башын коюңуз.
  2. 6 MOSFETти Ардуинонун оң жагына катарлаш коюп (аналогдук казыктары бар тарап) жана биринчи жана акыркы пиндин арасына 2.2kOhm каршылыгын кошуңуз.
  3. Эми 6 пинтин башын MOSFETsтин алдына коюңуз (катар ортосунда) жана FETsтин 6 DRAIN казыгын (орто пин) башына жана FETSтин GATE казыктарын (сол пин) тиешелүү Arduino Analog казыктарына туташтырыңыз..
  4. Андан кийин, Arduino'нун башка жагындагы LEDDriver туташуусу үчүн 7pin башын ширетип, кабелдер үчүн бир аз орун калтырыңыз жана Arduino'дон пин башына чейинки бардык туташууларды ширетиңиз.
  5. Мүмкүн болгон агым үчүн кээ бир конденсаторлорду (1-2 1000uF, 1 10uF, 100nF) кошуңуз.
  6. HC-05 модулу үчүн Arduino арткы жагынын жанына 4 пин башын кошуп, VCC, RX, TX, GND менен 4 байланыш жасаңыз жана HC-05тин RX пининен чыңалуу бөлгүч жасоону унутпаңыз. TX Pin Arduino (бул жерди караңыз)
  7. DC Джекти тактанын каалаган четине жанындагы которгуч менен коюп, которгучтун оң пинин + DC Jack'тин + пинине туташтырыңыз.
  8. Акыры, DC Jackтин GND пининен жана которгучтун оң казыгынан (VCC) Arduino, MOSFETs, Capacitors жана HC-05ке чейин схемада көрүнгөн бардык керектүү Power байланыштарын жасаңыз. Диодду кошууну унутпаңыз, башкача эмес, Arduinos 5V пинине агып өтүү үчүн которгучтун VCC пининен кубат берүү. (Бул USB туташуусу аркылуу программалоодо Arduino коргойт)

Мен электр кубатын туташтыруу үчүн DC Power Jackww менен жөнөкөй эле алмаштыргычты колдоно алам, эгер кааласаңыз USB коннекторун колдоно аласыз Arduino тактасына. Биринчи кадамда айтылгандай, схемада MSGEQ7 туташуу схемасы дагы бар, бирок эгерде MSGEQ7 колдонбосоңуз, аны этибарга албаңыз. (MSGEQ7 функциясы жөнүндө көбүрөөк маалымат алуу үчүн бул жерди басыңыз)

Arduino тактасын Айдоочу тактасы менен туташтыруу үчүн, ар бир учунда эркек башы бар 7Pin Тасма Кабелин жасоону унутпаңыз

8 -кадам: Кошумча: Райондук такталарды чийүү

Кошумча: Райондук такталарды кыруу
Кошумча: Райондук такталарды кыруу
Кошумча: Райондук такталарды кыруу
Кошумча: Райондук такталарды кыруу
Кошумча: Райондук такталарды кыруу
Кошумча: Райондук такталарды кыруу

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

Менин кубумда Arduino тактасы менен Power/Audio туташтыргыч такта экөө тең тиркелген схемалык/EAGLE файлдарын колдонуу менен такталган. Биринчи жолу схемада ката кетирдим, ошондуктан акыркы кадамдагыдай эле LED драйвер тактасын кайра жасоого туура келди. Досканы колдонуунун ордуна тактайды чийип салуунун эч кандай чоң артыкчылыктары жок, андыктан тактанын этучун же перфбортто ширетүүнү тартынбаңыз.

Тиркелген.zipде сиз BOARD файлын да, SCHEMATIC файлын да таба аласыз.

Байкаңыз, үстүңкү катмардагы издер (кызыл) зым көпүрөлөр болушу керек (анткени мен үйдө эки тараптуу тактайларды кесе албайм). Такталбаган издер Pin Pin Headers үчүн кабелдер аркылуу жасала турган байланыштарды көрсөтөт.

Схема MSGEQ7 өзгөчөлүгүн камтыйт, аны.pdf схемасынын скриншотунда "(MSGEQ7)" деп белгиленген схеманын бөлүмүн жок кылуу менен эле таштап койсоңуз болот.

9 -кадам: Кубду туташтыруу

Кубту туташтыруу
Кубту туташтыруу
Кубту туташтыруу
Кубту туташтыруу
Кубту туташтыруу
Кубту туташтыруу

Кубдун бардык бөлүктөрүн туташтыруу үчүн, 7pin кабелин Arduino тактасына жана драйвер тактасына туташтыруудан баштаңыз (багыттын туура экендигин текшериңиз!). Кийинки HC05 модулун 4 пин башына туташтырыңыз жана бөлүнгөн болсо Power Boardту туташтырыңыз.

Кубтун 7x16 пин баштарын туташтыруу үчүн, биринчи TLCден баштаңыз (SIN пини Arduino менен түз байланышкан). Кубдан туура 16pin кабелин табыңыз жана аны биринчи TLC'дин пин башына туташтырыңыз (Cathode Nr.0 кабели биринчи TLC OUT0 пинине туташканын текшериңиз!). Улантуу жана башка 16pin Cables туура TLC тиешелүү баштарына туташтыруу.

Акырында, аноддор үчүн 6Pin кабелин MOSFETтердин жанындагы башкаруу тактасындагы 6Pin башына туташтырыңыз.

Кубду бүтүрүү үчүн мен корпустун үстүнө кара боек менен дагы фанера кошуп, чаптап койдум.

Эми биз бүтүндөй курулуш үчүн керектүү болгон бардык жабдыктар менен аяктадык!

10 -кадам: Программалык камсыздоо: Мультиплекстүү цикл

Программалык камсыздоо: Multiplexing Cycle
Программалык камсыздоо: Multiplexing Cycle

Эми теория боюнча Arduino дайыма төмөнкү циклди аткарат:

  1. Эгерде LayerDuration өтүп кеткен болсо, кийинки катмардагы баалуулуктарды TLCлерге жүктөңүз, учурдагы катмарды өчүрүңүз, кийинки катмарды күйгүзүңүз, LayerDurationди баштапкы абалга келтириңиз, жаңы баалуулуктарды TLCлерге тапшырыңыз.
  2. Эгерде FrameDuration өтүп кеткен болсо, анда бардык LED жана Түстөрдүн маанилерин ValueLed буферине сактоо менен учурдагы анимациянын жаңы кадрын жүктөңүз, FrameDurationди кайра коюңуз.
  3. Эгерде Bluetooth маалыматы бар болсо, аларга реакция кылыңыз (Анимацияларды, Жарыктыкты өзгөртүү …) (көбүрөөк маалымат кийинчерээк)

Көрүнүп тургандай, коддун негизги багыты ылдамдык. Катмарды өзгөртүү убактысы минималдуу болушу маанилүү.

Катмарларды канчалык тезирээк күйгүзсөңүз/өчүрсөңүз, ошончолук "Жээкчелерди" аласыз. 6x6x6 RGB LED кубу үчүн мен катмардын узактыгы 1700 microSec экенин түшүндүм. минимумда жаркырап туруу үчүн жетиштүү жана бул мааниде калтырылышы керек. FrameDuration анимациянын ылдамдыгын көбүрөөк көзөмөлдөйт, андыктан аны ар кандай анимацияларга өзгөртүүгө болот.

Кийинки кадамда биз кантип өзүбүздүн Анимацияларды жазууну карайбыз.

11 -кадам: Ыңгайлаштырылган анимациялар

Ыңгайлаштырылган анимациялар
Ыңгайлаштырылган анимациялар
Ыңгайлаштырылган анимациялар
Ыңгайлаштырылган анимациялар

Анимацияны ишке ашыруу үчүн биз FrameDuration өткөн сайын ValueLed буферин кийинки Frame үчүн каалаган баалуулуктарга коюшубуз керек. Биз муну "SETLED (x, y, z, COLOR, Brightness)" деп атайбыз.

x, y, z - биз орноткубуз келген светодиоддун координаттары жана COLOR (КЫЗЫЛ, ЖАШЫЛ же КӨК) - биз орноткубуз келген түс жана Жарыктык - бул биз койгон түстүн чыныгы мааниси.

Мисалы, анимацияны ишке ашыруу үчүн, жөн эле кызыл, жашыл жана көк түстөрдү туш келди кубик боюнча көрсөтсөңүз болот:

Void randomLedsFull () {

for (uint8_t j = 0; j <CUBE_SIZE; j ++) {for (uint8_t x = 0; x <CUBE_SIZE; x ++) {for (uint8_t y = 0; y <CUBE_SIZE; y ++) {uint8_t rand = random8 (3); Жөнгө салынган (x, y, j, rand, maxBright); }}}}

Бул ыкма FrameDuration өткөн сайын чакырылат жана циклдеги switch-case командасынан тандалат (). Эгерде сиз жаңы анимацияларды жазсаңыз, аларды жөн эле коммутаторго кошуу менен кошо аласыз.

12 -кадам: Кошумча: AnimationCreator

Кошумча: AnimationCreator
Кошумча: AnimationCreator

Мен дагы JavaFX жана Java3D менен AnimationCreator жаздым.

UI түшүнүүгө оңой камсыз кылуу менен ыңгайлаштырылган анимацияларды түзүүнү жана түзөтүүнү жеңилдетет.

Сиз 4x4x4, 6x6x6 же 8x8x8 LED кубдору үчүн анимацияларды түзүп, түзөтүп, атын өзгөртүп жана конфигурациялай аласыз

Жаңы анимацияны түзүү үчүн Файл> Жаңы дегенди басыңыз, "Куб" астынан Кубдун өлчөмүн тандай аласыз, LEDдин Түсүн орнотуу үчүн сиз каалаган түстү тандап, сол жагындагы Түс тандагычты тандап, анан каалаган LED диапазонуна чыкылдатыңыз. ошол түс үчүн. Башка алкакты кошуу үчүн "Next" же "+" баскычтарын басыңыз. Калган UI башкаруу элементтери түшүнүктүү, Cubes Layersдин жанындагы белгилөө кутучалары кайсы катмарларга өтүү керек экенин текшерип, "Frame Keep". Жөн эле сынап көрүңүз, ошондо баарын кыска убакыттын ичинде чечесиз.

Кошумча анимацияны окшоштуруу үчүн, "3D кароо" баскычын чыкылдатыңыз, ал башка терезени Java3D кубунун модели менен ачат. Чычкандын сол баскычын кармап туруп, Камераны айландырсаңыз болот (Камераны баштапкы абалга келтирүү үчүн R баскычын басыңыз). Анимацияны ойнотуу/тындыруу үчүн, P клавишасын басып, анимацияны басуу үчүн, Q. "3D кароо" астындагы Текст талаасы агымды билдирет FrameTime, анимацияңыздын ылдамдыгын.

Анимацияны бүтүргөнүңүздө, ага ат бериңиз жана Файл> Баскасын сактоо … баскычын басыңыз жана анимацияны Cubo_Control.ino эскизи менен бир папкага сактаңыз.

Сизди жаңы анимацияны эскизге кошуу үчүн Cubo_Control.ino ачып, эскиздин үстүнө төмөнкү кодду кошуңуз:

#"RGBit.h" кошуңуз /алмаштырыңыз

BTEvent () чейин ылдый жылдырып, анимациялардын которуштурулган абалына арызды кошуңуз

которуу (curAnim) {

… 10 -жагдай: анимация = & ani_cubesmove [0] [0]; FRAME_TIME = ANI_CUBESMOVE_FRAMTIME; maxCount = ANI_CUBESMOVE_FRAMES; тыныгуу; case 11: // СИЗДИН ЖАНА АНИМАЦИЯНЫН анимациясы = & ani_rgbit [0] [0]; FRAME_TIME = RGBIT_FRAMETIME; maxCount = ANI_RGBIT_FRAMES; тыныгуу; }

13 -кадам: Bluetooth колдонмосу

Bluetooth колдонмосу
Bluetooth колдонмосу

Кубду иш жүзүндө башкаруу үчүн, HC-05 модулунун жардамы менен телефонуңузду кубга туташтыруу үчүн Bluetooth колдонмосун куруу өтө жөнөкөй.

Колдонмого шилтеме: Github

Колдонмо ачык булак болуп саналат, андыктан өзүңүз кошумча анимацияларды/функцияларды кошуңуз.

  • Колдонмону баштаңыз, ал Bluetooth'ду күйгүзүүнү суранат
  • "Издөөнү" чыкылдатыңыз жана жеткиликтүү Bluetooth байланыштарынын тизмеси пайда болот. Кубдан HC-05 модулун аныктап, аны басыңыз.
  • Кубга туташуу учурунда ката болсо, HC-05 модулун Bluetooth жөндөөлөрүндө кол менен жупташууга аракет кылыңыз
  • Колдонмо туташкандан кийин башкаруу экранына өтөт жана Bluetooth байланышы орнотулду

Controls

  • Ылдамдык жана жарыктык: Анимацияны тездетүү/жайлатуу же жарыктыгын өзгөртүү үчүн слайдердин маанилерин өзгөртүңүз
  • Анимациялар: Анимацияны өзгөртүү үчүн баскычты чыкылдатыңыз, демейки боюнча Анимациялар циклда (Жогорку сол жактан баштап, баскыч CurrAnimге туура келет)
  • Текстти жылдыруу: "Текст" баскычын чыкылдатыңыз, ал диалогду алып чыгат, ал тексти аралап өтөт.
  • Буйрук: Сиз Command TextField менен буйруктарды кол менен киргизе аласыз (синтаксис үчүн Cubo_Control.ino BTEvent () ыкмасын караңыз)
  • Жылан: классикалык жылан оюну (кызыл: алма, жашыл: жыландын башы, көк: куйрукту карма) (Башкармалар: 4 багыттуу баскычтар, өйдө жана ылдый телефонду алдыга (өйдө) же артка (ылдый) буруп иштетилет)
  • Аудио визуализатор: MSGEQ7 AUX Jack'тен 6 аудио диапазонун элестетүү үчүн колдонулат (Анимация 7 баскычы)

14 -кадам: Көргөзмө

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