Мазмұны:
Бейне: Таңдамалы таңбалар генераторы (Adafruit HT16k33 матрицасы): 3 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:27
СКД мен LED матрицаларында арнайы таңбаларды басып шығару - бұл өте қызықты. Арнайы таңбаларды немесе реттелетін таңбаларды басып шығару процедурасы - әрбір жол мен баған үшін екілік мәндері бар массив құру. Кез келген таңдамалы таңбаның дұрыс кодын табу қиын болуы мүмкін, сондықтан бұл жоба 8x8 жарықдиодты матрицаның кодын автоматтандырады және шығарады, сонымен қатар Adafruit HT16k33 8x8 екі түсті матрицасында реттелетін таңбаны басып шығарады.
Adafruit HT16k33, 1,2 дюймдік 8х8 Bicolor Led матрицасы Arduino -мен I2C байланыс протоколы арқылы байланысады
Adafruit айтуынша, «LED рюкзагының бұл нұсқасы 1,2х8х8 матрицаларына арналған. Олар тек 1,2 «x1.2» өлшемін өлшейді, сондықтан оны басқару үшін фишкалардың үлкен массивін қолдану ұят. Бұл рюкзак ПХД-ның артқы жағында I2C тұрақты ток матрицалық реттегішінің болуы арқылы 16 түйреуішті немесе чиптерді пайдаланудың ашуын шешеді. Контроллер чипі барлық 64 жарықдиодты фонда сызып, бәрін реттейді. Сізге 2 істікшелі I2C интерфейсін қолдана отырып, деректерді жазу жеткілікті. Адресті таңдауға арналған екі түйреуіш бар, осылайша сіз бір 2 істікшелі I2C шинасында 8-ге дейін басқарылатын 8 мекенжайдың біреуін таңдай аласыз (сонымен қатар басқа I2C чиптері мен сенсорларының кез келгені сізге ұнайды). Драйвер чипі 1/16 қадаммен 1/16 жарықтықтан толық жарықтылыққа дейін бүкіл дисплейді «күңгірттей» алады. Ол жеке жарықдиодты сөндіре алмайды, тек бірден бүкіл дисплей ».
Бұл нұсқаулықта мен сізге кез келген реттелетін таңбаның кодын нақты уақыт режимінде алуды және сол таңбаны Led Matrix -те басып шығаруды түсіндіремін.
1 -қадам: компоненттер
Бұл нұсқаулық Adafruit HT16k33 Matrix бойынша негізгі жоба. Сізге қажет:
- Adafruit HT16k33 1,2 дюйм 1,2 дюймдік 8x8 екі түсті жарықдиодты матрица.
- Arduino (Uno -дан басқа кез келген нұсқа қолайлы).
- Нан тақтасы
- Нәр беруші
2 -қадам: схемалық
Adafruit HT16k33 светодиодты сымға қосу өте оңай, өйткені біз әдетте I2C құрылғыларында қолданылатын сағатты және деректер түйреуішін қосуымыз керек. Қосылымдар келесідей болады:
- A5 -ке қосылған SCL (матрицаның сағаттық түйреуі) (Arduino Uno -ның сағаттық түйреуі. Arduino -ның басқа нұсқалары үшін мәліметтер кестесін қараңыз)
- A4 -ке қосылған SDA (Matrix Data pin). (Arduino басқа нұсқалары үшін мәліметтер кестесін қараңыз)
- VCC 5В қосылған.
- GND 0V қосылған.
Сіз сондай -ақ суретте көрсетілген схемаға жүгіне аласыз.
3 -қадам: код
Arduino коды
Біріншіден, біз барлық қажетті кітапханаларды қосамыз.
- Wire.h:- I2C байланысы үшін
- Adafruit_LedBackpack
- Adafruit_GFX
Бұл кітапханалардың барлығы Arduino IDE -де қол жетімді. Оларды Кітапхана менеджерінен орнату жеткілікті. Эскиз >> Кітапхана қосу >> Кітапханаларды басқару
Орнату функциясы ()
Қол қойылмаған бүтін 8-разрядты массив 8 екілік мәнге 8 жолға, әрқайсысы 8 битке (8 баған) орнату. I2C байланысының адресін орнатыңыз.
Цикл функциясы ()
Бізге кейіпкерді басып шығару қажет болғандықтан, нақты уақыттағы кейіпкердің коды қажет. Ең ыңғайлы әдіс - кодты сериялық жіберу, ал Arduino сериялық деректерді оқиды және сәйкесінше таңбаны басып шығарады. Массивті дәйекті түрде жіберу қиын жұмыс болуы мүмкін, сондықтан біз үтірмен бөлінген барлық 8 коды бар (әрқайсысы 8 бит) жолды жібере аламыз.
Сериялық жолды оқу:
if (Serial.available ()> 0) {data = Serial.readStringUntil ('\ n'); Serial.println (деректер); }
Мәтінді оқығаннан кейін біз осы жолды декодтап, екілік мәндерді қайтаруымыз керек. Біз білетіндей, енгізу жолының форматы әрқашан бірдей болады. Біз оны ішкі жолдарды табу және жолдарды ондық эквивалент мәндеріне түрлендіру үшін кодтай аламыз. Содан кейін біз таңбаны матрицада басып шығару үшін құрылған ондық массивті (uint8_t) өткіземіз.
8 биттік жолды ондыққа түрлендіру:
int val (String str) {int v = 0; for (int i = 0; i <8; i ++) {if (str == '1') {v = v+power (2, (7-i)); }} қайтару v; }
Қуат функциясын (pow ()) қолдана отырып, ондық эквивалентті бағалау үшін сізге қос типті мәндермен айналысу керек, сондықтан біз өз қуат функциямызды келесідей жаза аламыз:
int power (int base, int exponent) {int c = 1; for (int i = 0; i {c = c*base;} c;} қайтару
Енді, ақырында, біз таңбаны басып шығару үшін кодты жазамыз, ондық ондық мәннен құралған массивті қолдана отырып (әр жолға бір).
жарамсыз print_emoji (uint8_t эмодзи , Жолдың түсі) {matrix.clear (); егер (түс == «қызыл») {matrix.drawBitmap (0, 0, эмодзи, 8, 8, LED_RED); } басқа {matrix.drawBitmap (0, 0, эмодзи, 8, 8, LED_GREEN); } matrix.writeDisplay (); кешіктіру (500); }
Сіз бұл кодты оңай түсінесіз, себебі біз матрицаны тазартып жатырмыз, содан кейін matrix.drawBitmap () функциясын қолдана отырып эмодзи массивін қолданып таңбаны көрсетеміз. Барлық форматтаудан кейін «matrix.writeDisplay ()» жазуды ұмытпаңыз, себебі бұл функция матрицада осы уақытқа дейін жасалған барлық пішімдерді көрсетеді.
Енді сіз барлық код мәндері бар жолды жібере аласыз және Arduino матрицадағы таңбаны басып шығарады. Сіз Arduino кодын төменнен жүктей аласыз. Эксперименттік мақсатта сіз жаза аласыз
B00111100, B01000010, B10100101, B10000001, B10100101, B10011001, B01000010, B00111100
бұл жол сериялық мониторда және матрицадағы таңбаны көре алады.
Енді біз «Басып шығару» батырмасын басқанда, сериялық деректерді бағдарламалық жасақтамадан автоматты түрде жіберуіміз керек. Мұны автоматтандыру үшін біз 8x8 демо матрицасын жасаймыз және пайдаланушыға қандай ұяшықтарды бояу керектігін таңдауға мүмкіндік береміз, содан кейін бағдарламалық жасақтама кодты автоматты түрде шығарады және деректерді Arduino -ға тізбекті форматта жібереді. Мен қалған жұмысым үшін өңдеуді таңдадым. Өңдеу кезінде біз 64 батырманың көмегімен матрицаны жасай аламыз (басылған функциясы бар тіктөртбұрыштар) және бастапқыда белгілі бір мән мен түс тағайындай аламыз (0 мәні бар ақ түс болсын). Енді түйме басылған сайын біз түйменің түсін қара етіп түрлендіреміз және мәнді 1 -ге қоямыз. Егер пайдаланушы сол батырманы қайтадан басса, оның мәні қайтадан 0 -ге, түсі ақ түске өзгереді. Бұл пайдаланушыға кодты қайта -қайта оңай өзгертуге көмектеседі және бүкіл матрицаны қайтадан өшірмей, түзетулерді оңай енгізе алады. «Басып шығару» түймесін басу арқылы біз демонстрация үшін жоғарыда көрсетілгенге ұқсас жол жасаймыз. Содан кейін жол белгілі бір сериялық портқа жіберіледі.
Сіз өңдеу кодын төменнен жүктей аласыз. Бұл менің өңдеудегі бірінші кодым. Жақсартылған кодтау әдісі бойынша ұсыныстар жоғары бағаланады.
Сіз GUI қалай көрінетінін және жүйенің көмегімен таңбаның қалай жасалатынын көре аласыз. Матрицада бірдей таңбаны жасау үшін бірнеше секунд қажет емес.
Сіз бұл жобаның коды мен суреттерін GitHub репозиторийімнен жүктей аласыз.
Ұсынылған:
NeoPixels матрицасы: Жылан ойыны: 4 қадам
NeoPixels Matrix: Жыландар ойыны: Бала кезімізде біздің ойын қорабында немесе ұялы телефонда ойнаған жыландар ойыны әлі есіңізде ме? Бүгін біз 8*8 NeoPixels Matrix көмегімен жылан ойынын жасауды үйренеміз. Біз басқару орталығы ретінде Arduino uno мен Joystick -тің үзіліс модулін таңдаймыз
Ауа райына негізделген музыка генераторы (ESP8266 негізіндегі Midi генераторы): 4 қадам (суреттермен)
Ауа -райына негізделген музыкалық генератор (ESP8266 негізіндегі Midi генераторы): Сәлеметсіз бе, мен бүгін ауа -райына негізделген музыкалық генераторды қалай жасау керектігін түсіндіремін, ол ESP8266 негізінде жасалған, ол Arduino сияқты, ол температураға, жаңбырға жауап береді. және жарық қарқындылығы.Ол бүкіл әндер мен аккордтар жасайды деп күтпеңіз
K`nex Infinity таңбалар ұстаушысы: 4 қадам
K`nex Infinity таңбалар ұстаушысы: Бұл K`nex Infinity таңбалар ұстаушысы. Бұл ықшам және өте ыңғайлы. Мен мұны шексіз кейіпкерлері тартпада толтырылған, бұзылған адамдарға ұсынамын
Дербес компьютерде визуалды сценарийді қолдану арқылы Unreal Engine 4 -тегі таңбалар контроллерімен 2d таңбасын қалай құруға болады: 11 қадам
Компьютерге арналған Visual Script көмегімен Unreal Engine 4 -тегі таңбалар контроллерімен 2d таңбасын қалай құруға болады: PC үшін визуалды сценарийді қолдана отырып, Unreal 4 қозғалтқышында 4 -таңбаны реттегішпен 2d таңбасын қалай құруға болады, мен Джордан Стелцпін. Мен 15 жастан бастап видео ойындар әзірледім. Бұл оқулық сізге негізгі кейіпкерді қалай құруға болатынын үйретеді
Windows жүйесінде жеке таңбалар жасаңыз: 4 қадам
Windows -та өзіңіздің жеке таңбаларыңызды жасаңыз. Бұл нұсқаулықта мен сізге Windows -та орнатылған қосымшамен таңдамалы таңбаларды қалай жасау керектігін көрсетемін. Ия және заттар. Бояудан жасалған суреттерден сақ болыңыз. Олар қорқынышты болуы мүмкін