Orodha ya maudhui:
Video: Jenereta ya Tabia ya Kawaida (Adafruit HT16k33 Matrix): 3 Hatua
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:54
Kuchapisha Wahusika Maalum kwenye LCD na Matrices ya Led ni raha kubwa. Utaratibu wa kuchapisha wahusika maalum au wahusika wa kawaida ni kutengeneza safu na maadili ya binary kwa kila safu na safu. Inaweza kuwa ngumu kupata nambari sahihi ya mhusika yeyote, kwa hivyo, mradi huu utatengeneza na kutoa nambari ya tumbo iliyoongozwa na 8x8 na pia itachapisha tabia ya kawaida kwenye Adafruit HT16k33 8x8 Bicolor Matrix.
Adafruit HT16k33, 1.2 "8x8 Bicolor Led Matrix inawasiliana na Arduino kupitia itifaki ya mawasiliano ya I2C
Kulingana na Adafruit, "Toleo hili la mkoba wa LED limetengenezwa kwa matrices 1.2" 8x8. Wanapima 1.2 "x1.2" tu kwa hivyo ni aibu kutumia safu kubwa ya chips kudhibiti. Mkoba huu hutatua kero ya kutumia pini 16 au rundo la chips kwa kuwa na mtawala wa tumbo la mara kwa mara wa I2C kukaa vizuri nyuma ya PCB. Chip ya mtawala hutunza kila kitu, kuchora LED zote 64 kwa nyuma. Unachohitajika kufanya ni kuiandikia data kwa kutumia kiwambo cha pini 2 cha I2C. Kuna pini mbili za kuchagua anwani ili uweze kuchagua moja ya anwani 8 kudhibiti hadi 8 ya hizi kwenye basi moja ya pini 2 za I2C (na vile vile chips zingine za I2C au sensorer unazopenda). Chip ya dereva inaweza "kupunguza" onyesho lote kutoka mwangaza wa 1/16 hadi mwangaza kamili katika hatua ya 1/16. Haiwezi kufifisha taa za LED za kibinafsi, lakini onyesho lote kwa wakati mmoja."
Katika hii inayoweza kufundishwa, nitakuelezea jinsi ya kupata nambari ya mhusika yeyote kwa wakati halisi na uchapishe tabia hiyo kwenye Led Matrix.
Hatua ya 1: Vipengele
Inaweza kufundishwa ni mradi wa msingi kwenye Matrix ya Adafruit HT16k33. Unahitaji:
- Adafruit HT16k33 1.2 "x 1.2" 8x8 Bicolor Led Matrix.
- Arduino (tofauti yoyote lakini Uno inapendelea).
- Bodi ya mkate
- Ugavi wa Umeme
Hatua ya 2: Mpangilio
Wiring Adafruit HT16k33 Led matrix ni rahisi sana kwani tunahitaji kuunganisha saa na pini ya data kama kawaida tunavyofanya kwa vifaa vya I2C. Uunganisho utakuwa kama:
- SCL (Pini ya saa ya Matrix) iliyounganishwa na A5 (Pini ya Saa ya Arduino Uno. Rejelea data ya data kwa anuwai zingine za Arduino)
- SDA (Pini ya data ya Matrix) iliyounganishwa na A4. (Rejelea hati ya data kwa anuwai zingine za Arduino)
- VCC imeunganishwa na 5V.
- GND imeunganishwa na 0V.
Unaweza pia kushauriana na skimu iliyoonyeshwa kwenye takwimu.
Hatua ya 3: Kanuni
Msimbo wa Arduino
Kwanza, tutajumuisha maktaba zote zinazohitajika.
- Wire.h: - Kwa mawasiliano ya I2C
- Adafruit_LedBackpack
- Matunda_GFX
Maktaba hizi zote zinapatikana katika Arduino IDE yenyewe. Lazima uzisakinishe kutoka kwa Meneja wa Maktaba. Mchoro >> Jumuisha Maktaba >> Simamia Maktaba
Kazi ya usanidi ()
Kuweka safu isiyo na saini ya nambari 8 -b kwa viwango str8 vya binary kwa safu 8, ya bits 8 kila (nguzo 8). Weka anwani ya mawasiliano ya I2C.
Kazi ya kitanzi ()
Kama tunavyohitaji kuchapisha mhusika, tunahitaji nambari ya mhusika katika wakati halisi. Njia rahisi zaidi ni kutuma nambari mfululizo na Arduino atasoma data ya serial na kuchapisha mhusika ipasavyo. Kutuma safu mfululizo inaweza kuwa kazi ngumu, kwa hivyo tunaweza kutuma kamba na nambari zote 8 (bits 8 kila moja) zilizotengwa na koma.
Kusoma Kamba ya Serial:
ikiwa (Serial haipatikani ()> 0) {data = Serial.readStringUntil ('\ n'); Serial.println (data); }
Baada ya kusoma maandishi, tunahitaji kung'amua kamba hii na kurudisha maadili ya binary. Kama tunavyojua, fomati ya kamba ya kuingiza itakuwa sawa kila wakati. Tunaweza kuisimbo ili kupata mistari na kubadilisha masharti kuwa nambari sawa za desimali. Kisha tutapitisha safu ya desimali iliyotengenezwa (uint8_t) kuchapisha tabia kwenye tumbo.
Kubadilisha Kamba ya bits 8 kuwa decimal:
int val (Kamba str) {int v = 0; kwa (int i = 0; i <8; i ++) {if (str == '1') {v = v + power (2, (7-i)); }} kurudi v; }
Kwa kutathmini sawa na desimali kutumia nguvu kazi (pow ()), unahitaji kushughulika na maadili ya aina mbili na kwa hivyo tunaweza kuandika kazi yetu ya nguvu kama:
int int (int base, int exponent) {int c = 1; kwa (int i = 0; i {c = c * msingi;} kurudi c;}
Sasa, mwishowe, tutaandika nambari ili kuchapisha herufi kwa kutumia safu iliyotengenezwa ya nambari 8 za desimali (moja kwa kila safu).
batili print_emoji (uint8_t emoji , Rangi ya kamba) {matrix.clear (); ikiwa (rangi == "nyekundu") {matrix.drawBitmap (0, 0, emoji, 8, 8, LED_RED); } mwingine {matrix.drawBitmap (0, 0, emoji, 8, 8, LED_GREEN); } tumbo.andikaDisplay (); kuchelewesha (500); }
Utaelewa nambari hii kwa urahisi tunapofuta tumbo kwanza na kisha kuonyesha tabia kwa kutumia safu ya emoji kutumia matrix.drawBitmap () kazi. Usisahau kuandika "matrix.writeDisplay ()" baada ya muundo wote kwani kazi hii itaonyesha tu mipangilio yote iliyofanywa hadi sasa kwenye tumbo.
Sasa unaweza kutuma kamba na maadili yote ya kificho na Arduino atachapisha tabia kwenye tumbo. Unaweza kupakua nambari ya Arduino kutoka chini. Kwa kusudi la majaribio, unaweza kuandika
B00111100, B01000010, B10100101, B10000001, B10100101, B10011001, B01000010, B00111100
kamba hii katika Serial Monitor na inaweza kuona mhusika kwenye tumbo.
Sasa, tunahitaji kutuma data ya serial moja kwa moja kutoka kwa programu wakati tunabonyeza kitufe cha "Chapisha". Kwa kusanikisha hii, tutafanya onyesho la matrix 8x8 na tutatoa kituo kwa mtumiaji kuchagua ni seli zipi zinapaswa kupakwa rangi na kisha programu hiyo itazalisha nambari moja kwa moja na kutuma data kwa mfululizo kwa Arduino katika fomati ya kamba. Nilichagua Usindikaji kwa kazi yangu yote. Katika usindikaji, tunaweza kutengeneza tumbo kutumia vifungo 64 (mstatili na kazi iliyoshinikizwa) na tunaweza kupeana thamani fulani na rangi mwanzoni (Iwe rangi nyeupe na thamani 0). Sasa wakati wowote kitufe kinapobanwa, tutabadilisha rangi ya kitufe kuwa nyeusi na kuweka thamani kuwa 1. Ikiwa mtumiaji atabonyeza kitufe kimoja tena, thamani yake itabadilika tena kuwa 0 na kupaka rangi tena kuwa nyeupe. Hii itasaidia mtumiaji kubadilisha nambari tena na tena kwa urahisi na inaweza kufanya marekebisho kwa urahisi bila kufuta tumbo lote tena. Kwenye bonyeza ya kitufe cha "Chapisha", tutafanya kamba sawa na ile iliyoonyeshwa hapo juu kwa onyesho. Kisha kamba itatumwa kwa bandari fulani ya serial.
Unaweza kupakua nambari ya usindikaji kutoka chini. Hii ndio nambari yangu ya kwanza katika usindikaji. Mapendekezo ya njia iliyoboreshwa ya usimbuaji yanathaminiwa sana.
Unaweza kuona jinsi GUI inavyoonekana na jinsi mhusika ameundwa kwa kutumia mfumo. Haitachukua sekunde kuunda mhusika sawa kwenye tumbo.
Unaweza kupakua nambari na picha za mradi huu kutoka Hifadhi yangu ya GitHub.
Ilipendekeza:
Hakuna Pee Sasa, Kifaa cha Marekebisho ya Tabia za Pet ambacho Huzuia Paka Kuchungulia Nyumbani Mwako: Hatua 4
Hakuna Pee Sasa, Kifaa cha Marekebisho ya Tabia za Pet ambacho Huzuia Paka Kuchungulia Nyumbani Mwako: Nilisumbuliwa sana na kitoto changu kwamba anapenda kujikojolea kitandani mwangu, niliangalia kila kitu anachohitaji na pia nikampeleka kwa daktari wa wanyama. Baada ya kusumbua kila kitu ninachoweza kufikiria na kusikiliza neno la daktari, ninagundua ana tabia mbaya tu. Kwa hivyo th
Jenereta ya Muziki inayotegemea hali ya hewa (ESP8266 Kulingana na Jenereta ya Midi): Hatua 4 (na Picha)
Jenereta ya Muziki ya Hali ya Hewa (ESP8266 Based Midi Generator): Halo, leo nitaelezea jinsi ya kutengeneza jenereta yako ndogo ya Muziki inayotegemea hali ya hewa. Inategemea ESP8266, ambayo ni kama Arduino, na inajibu kwa hali ya joto, mvua na nguvu ndogo. Usitarajie itengeneze nyimbo nzima au programu ya gumzo
Jenereta - Jenereta ya DC Kutumia Kubadilisha Reed: 3 Hatua
Jenereta - Jenereta ya DC Kutumia Kubadilisha Reed: Jenereta rahisi ya Dc Jenereta ya moja kwa moja (DC) ni mashine ya umeme ambayo hubadilisha nishati ya kiufundi kuwa umeme wa moja kwa moja wa sasa. Muhimu: Jenereta ya moja kwa moja ya sasa (DC) inaweza kutumika kama gari la DC bila ujenzi wowote. mabadiliko
Sanduku / Kawaida isiyo ya kawaida (kawaida, rahisi, ya kawaida, ya bei rahisi): hatua 7
Sanduku / Kawaida isiyo ya kawaida (haraka, rahisi, ya kawaida, ya bei rahisi): Kusudi la Maagizo haya ni kukuonyesha jinsi ya kutengeneza sanduku / funguo la bei rahisi, la kawaida. Nitawaonyesha, jinsi ya kuifanya bila mipaka zana na bajeti.Hii ndio Mafundisho yangu ya kwanza (pia Kiingereza sio lugha yangu ya kwanza), kwa hivyo tafadhali kuwa
Jinsi ya Kuunda Tabia ya 2d na Mdhibiti wa Tabia katika Injini isiyo ya kweli 4 Kutumia Hati ya Visual ya PC: Hatua 11
Jinsi ya Kuunda Tabia ya 2d na Mdhibiti wa Tabia katika Injini isiyo ya kweli 4 Kutumia Hati ya Visual ya PC: Jinsi ya kuunda Tabia ya 2d na mtawala wa tabia katika injini ya Unreal 4 kutumia maandishi ya kuona kwa PC Hi, mimi ni Jordan Steltz. Nimekuwa nikitengeneza michezo ya video tangu nilipokuwa na miaka 15. Mafunzo haya yatakufundisha jinsi ya kuunda tabia ya msingi na ndani ya