Sadržaj:
Video: Generator prilagođenih znakova (Adafruit HT16k33 matrica): 3 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
Ispisivanje posebnih znakova na LCD -ovima i LED matricama velika je zabava. Postupak ispisivanja posebnih znakova ili prilagođenih znakova je generiranje niza s binarnim vrijednostima za svaki red i stupac. Možda je užurbano pronaći ispravan kôd za bilo koji prilagođeni znak, stoga će ovaj projekt automatizirati i generirati kôd za LED matricu 8x8, a također će ispisati prilagođeni znak na dvobojnoj matrici Adafruit HT16k33 8x8.
Adafruit HT16k33, dvobojna matrica od 1,2 '' 8x8 sa dvobojnom bojom komunicira s Arduinom putem komunikacijskog protokola I2C
Prema Adafruit -u, "Ova verzija LED ruksaka je dizajnirana za 1,2" 8x8 matrice. Oni mjere samo 1,2 "x1,2" pa je šteta koristiti ogroman niz čipova za kontrolu. Ovaj ruksak rješava neugodnost korištenja 16 pinova ili gomile čipova postavljanjem I2C matričnog kontrolera konstantne struje uredno smještenog na stražnjoj strani PCB-a. Čip kontrolera brine se o svemu, crtajući svih 64 LED diode u pozadini. Sve što trebate učiniti je upisati podatke na njega pomoću 2-pinskog I2C sučelja. Postoje dva pina za odabir adresa pa možete odabrati jednu od 8 adresa za upravljanje do 8 ovih na jednoj 2-pinskoj I2C sabirnici (kao i bilo koje druge I2C čipove ili senzore koje želite). Čip upravljačkog programa može 'zatamniti' cijeli zaslon od 1/16 svjetline do pune svjetline u 1/16 koraka. Ne može zatamniti pojedinačne LED diode, samo cijeli zaslon odjednom."
U ovom uputstvu ću vam objasniti kako doći do koda za bilo koji prilagođeni znak u stvarnom vremenu i odštampati ga na Led Matrix -u.
Korak 1: Komponente
Ovo uputstvo je osnovni projekat na Adafruit HT16k33 Matrix -u. Ti trebas:
- Adafruit HT16k33 dvobojna matrica 1,2 '' x 1,2 '' 8x8, dvobojna.
- Arduino (preferira se bilo koja varijanta osim Uno).
- Breadboard
- Napajanje
Korak 2: Shema
Ožičenje Adafruit HT16k33 Led matrica je vrlo jednostavna jer moramo spojiti sat i pin podataka kao što to obično radimo za I2C uređaje. Veze će biti takve:
- SCL (pin sata Matrix -a) povezan sa A5 (pin sata Arduino Uno. Pogledajte listu sa podacima za druge varijante Arduina)
- SDA (Data pin Matrix) spojen na A4. (Za ostale varijante Arduina pogledajte tehnički list)
- VCC spojen na 5V.
- GND spojen na 0V.
Također možete pogledati shemu prikazanu na slici.
Korak 3: Kodirajte
Arduino kod
Prvo ćemo uključiti sve potrebne biblioteke.
- Wire.h:- Za I2C komunikaciju
- Adafruit_LedBackpack
- Adafruit_GFX
Sve ove biblioteke dostupne su u samom Arduino IDE -u. Samo ih morate instalirati iz Upravitelja biblioteke. Skica >> Uključi biblioteku >> Upravljanje bibliotekama
Funkcija postavljanja ()
Postavljanje bezznačnog cjelobrojnog 8-bitnog niza na strore8 binarne vrijednosti za 8 redova, od po 8 bitova svaki (8 stupaca). Postavite adresu za I2C komunikaciju.
Funkcija petlje ()
Kako moramo odštampati znak, potreban nam je kod za lik u realnom vremenu. Najprikladniji način je slanje koda serijski, a Arduino će pročitati serijske podatke i prema tome ispisati znak. Slanje niza serijski može biti užurban posao, stoga možemo poslati niz sa svih 8 kodova (svaki po 8 bita) odvojenih zarezima.
Čitanje serijskog niza:
if (Serial.available ()> 0) {data = Serial.readStringUntil ('\ n'); Serial.println (podaci); }
Nakon čitanja teksta, moramo dekodirati ovaj niz i vratiti binarne vrijednosti. Kao što znamo, format ulaznog niza će uvijek biti isti. Možemo ga kodirati da pronađe podniz i pretvori nizove u njihove decimalne ekvivalentne vrijednosti. Zatim ćemo proslijediti generirani decimalni niz (uint8_t) za ispis znaka na matrici.
Pretvaranje niza od 8 bita u decimalni broj:
int val (String str) {int v = 0; za (int i = 0; i <8; i ++) {if (str == '1') {v = v+snaga (2, (7-i)); }} return v; }
Za procjenu decimalnog ekvivalenta pomoću funkcije power (pow ()), morate se baviti vrijednostima dvostrukog tipa, pa stoga možemo napisati vlastitu funkciju napajanja kao:
int snaga (int baza, int eksponent) {int c = 1; for (int i = 0; i {c = c*base;} vrati c;}
Sada ćemo konačno napisati kôd za ispis znaka koristeći generirani niz od 8 decimalnih vrijednosti (po jednu za svaki red).
void print_emoji (uint8_t emoji , boja niza) {matrix.clear (); if (color == "red") {matrix.drawBitmap (0, 0, emoji, 8, 8, LED_RED); } else {matrix.drawBitmap (0, 0, emoji, 8, 8, LED_GREEN); } matrix.writeDisplay (); kašnjenje (500); }
Lako ćete razumjeti ovaj kôd jer prvo brišemo matricu, a zatim prikazujemo znak pomoću polja emoji pomoću funkcije matrix.drawBitmap (). Ne zaboravite napisati "matrix.writeDisplay ()" nakon svih formatiranja jer će ova funkcija prikazati samo sva do sada napravljena oblikovanja na matrici.
Sada možete poslati niz sa svim vrijednostima koda i Arduino će ispisati znak na matrici. Arduino kôd možete preuzeti odozdo. U eksperimentalne svrhe možete pisati
B00111100, B01000010, B10100101, B10000001, B10100101, B10011001, B01000010, B00111100
ovaj niz u serijskom monitoru i može vidjeti znak na matrici.
Sada moramo automatski poslati serijske podatke iz softvera kada pritisnemo gumb "Ispiši". Za automatizaciju ovoga napravit ćemo demo matricu 8x8 i pružit ćemo mogućnost korisniku da odabere koje ćelije treba obojiti, a zatim će softver automatski generirati kôd i poslati podatke serijski na Arduino u string formatu. Odabrao sam Processing za ostatak svog rada. U obradi možemo napraviti matricu pomoću 64 dugmeta (pravokutnici s pritisnutom funkcijom) i možemo dodijeliti određenu vrijednost i boju na početku (Neka to bude bijela boja s vrijednošću 0). Sada kad god je dugme pritisnuto, boju dugmeta ćemo pretvoriti u crnu i postaviti vrijednost na 1. Ako korisnik ponovo pritisne isto dugme, njegova vrijednost će se opet promijeniti u 0, a boja u bijelu. To će pomoći korisniku da promijeni kôd uvijek iznova i lako može unositi izmjene bez ponovnog brisanja cijele matrice. Klikom na dugme "Ispiši" napravit ćemo niz sličan onom prikazanom gore za demonstraciju. Tada će se niz poslati na određeni serijski port.
Kod za obradu možete preuzeti ispod. Ovo je moj prvi kod u obradi. Prijedlozi za poboljšani način kodiranja su visoko cijenjeni.
Možete vidjeti kako GUI izgleda i kako je lik kreiran pomoću sistema. Teško da će trebati nekoliko sekundi za stvaranje istog znaka na matrici.
Kôd i slike ovog projekta možete preuzeti sa mog GitHub spremišta.
Preporučuje se:
IoT dot matrica pametnog sata za upotrebu Wemos ESP8266 - ESP matrica: 12 koraka (sa slikama)
IoT pametni sat Dot Matrix Koristite Wemos ESP8266-ESP Matrix: Napravite vlastiti IoT pametni sat koji može: Prikazati sat s prekrasnom ikonom animacije Prikaz podsjetnika-1 do podsjetnika-5 Prikaz kalendara Prikaz vremena muslimanske molitve Prikaz informacija o vremenu Prikaz vijesti Prikaz savjeta Prikaz zaslona Prikaz kursa bitcoina
Arduino IDE: Kreiranje prilagođenih ploča: 10 koraka
Arduino IDE: Kreiranje prilagođenih ploča: U posljednjih šest mjeseci potrošio sam dosta vremena na prenošenje različitih biblioteka na Robo HAT MM1 ploču koju je razvila Robotics Masters. To je dovelo do otkrivanja mnogo o tim bibliotekama, njihovom radu iza kulisa i što je najvažnije
Štampanje prilagođenih štampanih ploča sa 3D štampačem: 7 koraka (sa slikama)
Štampanje prilagođenih štampanih ploča sa 3D štampačem: Ako vam ovo nije prvi put da vidite 3D štampač, verovatno ste čuli da neko kaže nešto u stilu: 1) Kupite 3D štampač2) Odštampajte drugi 3D štampač3) Vratite originalni 3D printer4) ???????? 5) ProfitNow bilo ko će
ME 470 Project - SolidWorks zavarivanje: Korištenje prilagođenih profila: 6 koraka
ME 470 Project - SolidWorks zavarivanje: Korištenje prilagođenih profila: Ovaj vodič je kreiran kako bi informirao korisnike Windows SolidWorksa kako koristiti prilagođene profile u programskom dodatku Weldments. Dodatak Weldments robusno je proširenje SolidWorksa koje se može koristiti za stvaranje složenih struktura, okvira i rešetki
Dodavanje prilagođenih ploča u Arduino IDE: 3 koraka
Dodavanje prilagođenih ploča Arduino IDE -u: Verzija 1.6.4 Arduino IDE -a uvela je službenu podršku za dodavanje arduino kompatibilnih ploča trećih strana u Arduino Board Manager. Ova dodatna podrška odlična je vijest jer omogućuje korisnicima da brzo dodaju prilagođene ploče sa samo jednim klikom