Мазмуну:

Кантип 8x8x8 LED кубун куруп, аны Arduino менен башкарса болот: 7 кадам (сүрөттөр менен)
Кантип 8x8x8 LED кубун куруп, аны Arduino менен башкарса болот: 7 кадам (сүрөттөр менен)

Video: Кантип 8x8x8 LED кубун куруп, аны Arduino менен башкарса болот: 7 кадам (сүрөттөр менен)

Video: Кантип 8x8x8 LED кубун куруп, аны Arduino менен башкарса болот: 7 кадам (сүрөттөр менен)
Video: How to make a 8x8x8 LED Cube at Home 2024, Июль
Anonim
Кантип 8x8x8 LED кубун куруп, аны Arduino менен башкарса болот
Кантип 8x8x8 LED кубун куруп, аны Arduino менен башкарса болот
Кантип 8x8x8 LED кубун куруп, аны Arduino менен башкарса болот
Кантип 8x8x8 LED кубун куруп, аны Arduino менен башкарса болот

Январь 2020 түзөтүү:

Мен муну кимдир бирөө идеяларды жаратуу үчүн колдонгусу келсе, калтырып жатам, бирок бул көрсөтмөлөрдүн негизинде куб куруунун эч кандай мааниси жок. LED драйверинин IC'лери мындан ары жасалбайт жана эки эскиз да Arduino жана Processing эски версияларында жазылган жана мындан ары иштебейт. Аларды иштетүү үчүн эмнени өзгөртүү керек экенин билбейм. Ошондой эле, менин курулуш методум бир топ ылдам башаламандыкка алып келди. Менин сунушум - башка инструкциядагы көрсөтмөлөрдү аткаруу же комплект сатып алуу. Бул кубдун баасы 2011 -жылы 50 доллардын тегерегинде болчу, азыр ebayден 20 долларга комплект сатып алсаңыз болот.

Оригиналдуу киришүү:

Instructablesде LED кубдору көп, анда эмне үчүн башка? Көбү 27 же 64 светодиоддон турган кичинекей кубиктерге арналган, алар сейрек чоңураак, анткени алар микроконтроллерде чыгуучу каражаттардын саны менен чектелген. Бул куб 512 светодиод болот жана Arduinoдон 11 гана чыгуу зымына муктаж болот. Бул кандайча мүмкүн? Allegro Microsystems A6276EA LED драйверин колдонуу менен.

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

1 -кадам: материалдар

Материалдар
Материалдар

Бардык бөлүктөр сизге кубду курушуңуз керек: 1 Arduino/Freeduino Atmega168 же андан жогору чип 512 LED, өлчөмү жана түсү сизден көз каранды, мен чыңалуу агымын көзөмөлдөө үчүн Allegro 8 NPN транзисторлорунан 3мм кызыл 4 A6276EA LED драйвер чиптерин колдондум., Мен BDX53B Darlington транзистору 4 1000 омдук резисторлорду, 1/4 ватт же андан жогору 12 560 ом резисторлорду, 1/4 ватт же андан жогору 1 330uF электролитикалык конденсатор 4 24 пин IC розеткасын 9 16 пин IC розеткаларын 4 "x4" (же андан чоңураак) колдондум.) Бардык бөлүктөрдү кармоо үчүн перформаттын бир бөлүгү, Эски компьютердин күйөрманы Эски дискетанын контролеру 7 "x7" (же андан чоңураак) жыгачтан LED ширетүүчү джигит жасоо үчүн даяр кубогуңузду көрсөтүңүз. My Arduino/Freeduino кубогуңузду тандагыла www.moderndevice.com сайтынан Bare Bones Board (BBB). Жарык диоддор eBayден сатылып алынган жана Кытайдан жөнөтүлгөн 1000 LED үчүн $ 23 турат. Калган электроника Newark Electronicsтен (www.newark.com) сатылып алынган жана баасы 25 доллардын тегерегинде гана болушу керек. Эгер баарын сатып алыш керек болсо, бул долбоордун баасы болгону 100 доллардын тегерегинде болушу керек. Менде эски компьютердик жабдуулар көп болгондуктан, ал бөлүктөр үйүлгөн таштандыдан чыгып кеткен.

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

Катмарларды чогултуу
Катмарларды чогултуу
Катмарларды чогултуу
Катмарларды чогултуу
Катмарларды чогултуу
Катмарларды чогултуу
Катмарларды чогултуу
Катмарларды чогултуу

Бул 512 LED кубунун 1 катмарын (64 LED) кантип жасоо керек: Мен сатып алган диоддор диаметри 3 мм болгон. Мен кичинекей диоддорду колдонуп, чыгымды азайтууну чечтим жана кубдун акыркы өлчөмүн столго же текчеге толук отургузбай столго же текчеге отуруп алам. Мен линиялардын ортосунда болжол менен.6 дюймдук 8x8 сетка тарттым. Бул мага бир кубдун өлчөмүн 4,25 дюймдун тегерегинде берди. 3 мм тешиктерди бургулаңыз, анда сызыктар ар бир катмарды эритип жатканда LEDди кармап турган джигерди жасашат. A6276EA учурдагы раковина түзмөгү. Бул булак чыңалуусуна эмес, жерге жол берет дегенди билдирет. Кубду жалпы аноддук конфигурацияда куруу керек болот. Көпчүлүк кубиктер жалпы катод катары курулган. LEDдин узак жагы жалпысынан анод болуп саналат, ынануу үчүн өзүңүздүкүн текшериңиз. Мен кылган биринчи нерсе - ар бир светодиодду текшерүү. Ооба, бул узак жана кызыксыз процесс, эгер кааласаңыз өткөрүп жибере аласыз. Мен кубикти чогулткандан кийин өлгөн жерди тапкандан көрө, LEDларды сынап көрүүгө убакыт бөлгүм келет. Мен 1000ден 1 өлгөн LEDди таптым. Жаман эмес. 5 дюймга чейин зымдын катуу, изоляцияланбаган 11 даанасын кескиле. Жигитке катардын ар бир учуна 1 LED коюп, андан кийин зымды ар бир анодго кошуп коюңуз. Эми калган 6 светодиодду катарга коюп, ошол аноддорду зымга кошуңуз. Бул вертикалдуу же горизонталдуу болушу мүмкүн, бардык катмарларды бирдей кылганыңыздын мааниси жок. Ар бир катарды бүтүргөндө, аноддордон ашык коргошун кыркып алыңыз. Мен 1/8 тегерегинде кеттим. Бардык 8 катарды бүтүрмөйүнчө кайталаңыз. Эми 3 бөлүктү зым менен бириктириңиз Резистор аркылуу зым торчолорун туташтырып, ар бир катодго алып баруучу жерге тийгизип коюңуз. Жарык кылбаган бардык диоддорду алмаштырыңыз. Джигеттен катмарды этияттык менен алып салыңыз да, зымдарды ийип койсоңуз, кабатыр болбоңуз Колдон келишинче аларды түздөңүз. Ийилүү абдан оңой. Менин сүрөттөрүмдөн көрүнүп тургандай, менде ийилген зымдар көп болчу. Куттуктайм, 1/8 бүттүңүз. Дагы 7 катмар жасаңыз. катмарлар бирге (3 -кадам) оңой, ал эми ар бир кийинки катмар дагы эле катоддун үстүнкү чейрегинин дюймун 45тен 90 градуска чейин ийилте алат. Биринчи катмарыңызга мындай кылбаңыз, биз анын астыңкы катмар экенин билдиребиз жана алып келүүчүлөр s болушу керек трайт.

3 -кадам: Кубду чогултуп алыңыз

Кубду чогулткула
Кубду чогулткула
Кубду чогулткула
Кубду чогулткула

Куб жасоо үчүн бардык катмарларды кантип ширетүү керек: Катуу бөлүгү дээрлик бүтүп калды. Эми кылдаттык менен бир катмарды джигге салыңыз, бирок ашыкча басым жасабаңыз, биз аны ийилбестен алып салгыбыз келет. Бул биринчи катмар кубдун үстүңкү бети. Биринчисинин үстүнө дагы бир катмар коюп, учтарды тизип, ширетүүнү баштаңыз. Мен эң биринчи бурчтарды, андан кийин сырткы четин, андан кийин катарларды жасоону оңой таптым. Бүткөнчө катмарларды кошуп туруңуз. Эгерде сиз алдын ала бүктөлгөн болсоңуз, анда катмарды түз учтар менен сактап коюңуз. Бул түбү. Мен ар бир катмардын ортосунда бир аз боштук болгондуктан, куб формасын алган жокмун. Эч нерсе эмес, мен аны менен жашай алам.

4 -кадам: Контролдоочу кеңешти куруу

Контролдоочу кеңешти куруу
Контролдоочу кеңешти куруу
Контролдоочу кеңешти куруу
Контролдоочу кеңешти куруу
Контролдоочу кеңешти куруу
Контролдоочу кеңешти куруу

Контроллер тактасын кантип куруп, аны Arduinoго тиркөө керек: Схеманы аткарыңыз жана тактаны өзүңүз каалагандай куруңуз. Мен контроллердин микросхемаларын тактанын ортосуна коюп, кубатты ар бир катмардын агымын башкаруучу транзисторлорду кармоо үчүн сол жагын колдондум, ал эми контролдоочу чиптерден катоддорго өтүүчү туташтыргычтарды кармоо үчүн оң жагын колдондум. LED мамычалары. Мен компьютердин электр булагына туташтыруу үчүн аял molex туташтыргычы бар эски 40мм компьютердик желдеткичти таптым. Бул кемчиликсиз болчу. Чип аркылуу аба агымынын бир аз өлчөмү пайдалуу жана мен азыр 5 вольтту контроллердин чиптерине жана Arduinoнун өзүнө камсыздоонун оңой жолуна ээ болдум. Мен 1000 ом колдондум, анткени ал LEDге 5 миллиампты камсыз кылат, аны жарыктандырууга жетиштүү. Мен Super Brite LEDлерин эмес, Жогорку Жарыктыкты колдонуп жатам, андыктан агымдын агымы төмөн. Эгерде мамычанын бардык 8 диоддору бир убакта күйсө, бул болгону 40 миллиамп. A6276EAнын ар бир чыгарылышы 90 миллиампты башкара алат, ошондуктан мен диапазондо турам. РЛ логикага же сигналга туташкан резистор. Чыныгы баалуулук бар жана өтө чоң болбогондо анча маанилүү эмес. Мен 560 Ом колдонуп жатам, анткени менде алардын бир тобу бар болчу. Кубдун ар бир катмарына бараткан токту көзөмөлдөө үчүн 6 амперге чейин иштей ала турган күч транзисторун колдондум. Бул долбоор үчүн ашыкча нерсе, анткени кубдун ар бир катмары бардык светодиоддору күйгөн 320 миллиампты гана тартат. Мен бөлмөнүн чоңоюшун кааладым жана кийинчерээк чоңураак нерсеге контроллер тактасын колдонушум мүмкүн. Транзистордун көлөмү сиздин керектөөлөрүңүзгө туура келет. Чыңалуу булагы боюнча 330 uF конденсатору кичинекей чыңалуу өзгөрүүлөрүн жоюуга жардам берет. Мен эски компьютердин энергия булагын колдонуп жүргөндүктөн, бул кереги жок, бирок кимдир бирөө кубатын кубаттоо үчүн 5 вольттуу дубал адаптерин колдонгусу келген учурда гана таштап койгом. Менде башка ылайыктуу туташтыргыч жок болчу, ошондуктан мен кээ бир 16 пин IC розеткаларын алып келип, контроллер тактасын кубга туташтыруу үчүн колдоном. Мен ошондой эле IC розеткасын экиге бөлүп, аны транзисторлорду кубдун катмарларына туташтырган 8 зымды туташтыруу үчүн колдондум. Ардуино үчүн туташтыргыч катары колдонуу үчүн эски ийилүүчү кабелдин учунан 5 дюймга жакын аралыкты кесип салдым. Дискет кабели 20 катарлуу 2 катар, жылаңач сөөктөр тактасында 18 төөнөгүч бар. Бул Ардуинону тактага туташтыруунун эң арзан жолу (бекер). Мен лента кабелин 2 зымдан бөлүп алып, учтарын сыйрып, чогуу коштум. Бул Arduino коннекторунун эки катарына туташтырууга мүмкүндүк берет. Схеманы аткарыңыз жана туташтыргычты ордуна коюңуз. 5 вольтту жана жерге туташтыргычтарды Arduinoго электр менен камсыз кылууну унутпаңыз, мен бул контролер тактасын башка долбоорлордо колдонууну көздөп жатам, ошондуктан модулдук дизайн мен үчүн жакшы иштейт. Эгерде сиз туташууларды катуу өткөргүңүз келсе, анда бул жакшы.

5 -кадам: Дисплейди куруңуз

Дисплей корпусун куруу
Дисплей корпусун куруу
Дисплей корпусун куруу
Дисплей корпусун куруу
Дисплей корпусун куруу
Дисплей корпусун куруу
Дисплей корпусун куруу
Дисплей корпусун куруу

Акыркы продуктыңызды жагымдуу кылып жасаңыз: Мен бул жыгач сандыкты хобби лоббисинен 4 долларга таптым жана ал идеалдуу болот деп ойлогом, анткени анын ичинде бардык зымдарды кармоого орун бар, ал жакшы көрүнөт. Мен компьютердин столунда колдонгон бул кызыл, ошол эле такты боёп койдум, алар дал келишет. Үстүнө торду бирдей өлчөмдө, ширетүү үчүн колдонулган тор сыяктуу сызыңыз (.6 дюймдун ортосунда). Бийиктиги үстү аркылуу өтүшү үчүн тешиктерди бургула жана катмар/учак зымдары үчүн тордун артында дагы бир тешик бургула (4 -кадамдагы транзистордон). Мен 64 тизип коюу кичинекей тешиктерден өтүү өтө кыйын экенин түшүндүм. Акыры процессти тезирээк кылуу үчүн бардык тешиктерди бир аз чоңураак бургулоону чечтим. Мен болжол менен.2 бургулоочу битти колдонуп бүттүм. Эми куб дисплейдин үстүндө отурат, бурчтун учтарын бүгүп койгула, кубар сиз зымдарды тиркеп жатканда ордунда калат. Бардык зымдарды туура тартипте тиркегениңизди текшериңиз. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 Жана катмарлар (схемада "учак" деп белгиленген) менен транзисторлор ортосундагы зымдарды туташтырыңыз. Ардуино пин 6дагы транзистор кубдун үстүңкү катмары. Эгер сиз зымдарды туура эмес алсаңыз, бул коддун ичинде бир аз оңдолот, бирок ал көп эмгекти талап кылышы мүмкүн, ошондуктан аларды туура тартипте алууга аракет кылыңыз. баары курулган жана кетүүгө даяр, келгиле, кодду алып көрөлү.

6 -кадам: Код

Code
Code

Бул кубдун коду көпчүлүккө караганда башкача жасалат, мен кантип адаптация кылууну түшүндүрөм. Көпчүлүк куб коддору мамычаларга түз жазууну колдонот. Код X тилкесин күйгүзүү керек экенин айтат, андыктан ага бир аз шире бериңиз, биз бүттүк. Бул контроллер чиптерин колдонууда иштебейт. Контроллер чиптери Arduino менен сүйлөшүү үчүн 4 зымды колдонот: SPI-in, Clock, Latch жана Enable. Мен иштетүү пинин (21 -пин) резистор (RL) аркылуу негиздедим, андыктан чыгаруу дайыма иштетилет. Мен эч качан иштетүүнү колдонгон эмесмин, ошондуктан аны коддон алып салдым. SPI-in маалыматы Arduino, Clock алар сүйлөшүп жатканда экөөнүн ортосундагы убакыт белгиси болуп саналат жана Latch контролерге жаңы маалыматтарды кабыл алуунун убактысы келгенин айтат. Мисалы; 1010101010101010ду контроллерге жөнөтүү контроллердеги ар бир башка LEDди күйгүзөт. Сиздин код дисплейге керектүү нерселердин бардыгын иштетип, экилик номерди куруп, андан кийин аны чипке жөнөтүшү керек. Бул угулганга караганда оңой. Техникалык жактан бул кичине кошумча, бирок мен математикалык жактан начармын, ошондуктан мен баарын ондук менен жасайм. Биринчи 16 бит үчүн ондук төмөнкүчө: 1 << 0 == 1 1 << 1 == 2 1 << 2 == 4 1 << 3 == 8 1 << 4 == 16 1 << 5 == 32 1 << 6 == 64 1 << 7 == 128 1 << 8 == 256 1 << 9 == 512 1 << 10 == 1024 1 << 11 == 2048 1 << 12 == 4096 1 << 13 == 8192 1 << 14 == 16384 1 << 15 == 32768 Бул сиз кааласаңыз 2 жана 10 чыгууларын күйгүзүңүз, сиз ондуктарды (2 жана 512) кошуп 514 аласыз. 514тү контролерге жөнөтүңүз жана 2 жана 10 жарыктары күйөт. Бирок бизде 16дан ашык LED бар, андыктан бир аз кыйыныраак болот. Биз 4 чип үчүн дисплей маалыматын түзүшүбүз керек. Аны 1ге куруу оңой, дагы 3 жолу жасаңыз. Мен башкаруу коддорун кармоо үчүн глобалдык өзгөрмө массивди колдоном. Бул жөн эле оңой. Бардык 4 дисплей кодун жөнөтүүгө даяр болгондон кийин, бекиткичти түшүрүп (LOW деп коюңуз) жана коддорду жөнөтө баштаңыз. Сиз биринчи акыркысын жөнөтүшүңүз керек. 4 -чиптин коддорун жөнөтүңүз, андан кийин 3, андан кийин 2, андан кийин 1, анан Latch -ти кайра HIGH кылып коюңуз. Иштетүү пин дайыма жерге туташтырылгандыктан, дисплей дароо өзгөрөт. Көбүнчө мен Instructablesден көрдүм, көбүнчө веб, алдын ала коюлган анимацияны аткаруу үчүн коюлган коддун ири блогунан турат. Бул кичинекей кубдар үчүн жакшы иштейт, бирок дисплейди алмаштыргыңыз келген сайын 512 бит экиликти сактоо, окуу жана жөнөтүү көп эстутумду ээлейт. Arduino бир нече кадрдан ашык иштей албайт. Ошентип, кубду алдын ала коюлган анимацияларга эмес, эсептөөгө таянган аракеттерди көрсөтүү үчүн бир нече жөнөкөй функцияларды жаздым. Мен анын кантип жасалганын көрсөтүү үчүн кичинекей анимацияны коштум, бирок мен өз экранымды курууну сага калтырам. Cube8x8x8.pde - бул Arduino коду. Мен кодго функцияларды кошууну улантууну пландап жатам жана программаны мезгил -мезгили менен жаңыртып турам.matrix8x8.pde - бул өз дисплейиңизди куруу үчүн иштетүү программасы. Берилген биринчи номер pattern1 , экинчиси pattern2 ж.б.ка кирет. A6276EA маалыматтык баракчасы бул жерде жеткиликтүү:

7 -кадам: Кол эмгегиңизди көрсөтүңүз

Кол эмгегиңизди көрсөтүңүз
Кол эмгегиңизди көрсөтүңүз

Бүтүрдүңүз, эми кубуңуздан ырахат алуунун убагы келди. Көрүнүп тургандай, менин кубум кичине кыйшык болуп чыкты. Мен башкасын курууга анча кызыкдар эмесмин, андыктан кыйшык болуп жашайм. Менде кароо керек болгон эки өлүк жер бар. Бул начар байланыш болушу мүмкүн, же мага жаңы контролердун чипи керек болушу мүмкүн. Ушул көрсөтмө A6276AEди колдонуп, өзүңүздүн кубуңузду же башка LED долбоорун курууга дем берет деп үмүттөнөм. Эгер шилтемени комментарийге жазсаңыз, мен бул жерден кайда барууну чечүүгө аракет кылып жатам. Контроллер тактасы 4x4x4 RGB кубун башкарат, андыктан бул мүмкүнчүлүк. Менин оюмча, сфераны жасоо жана кодду кантип жазуу керек, муну жасоо өтө кыйын болбойт.

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