Turinys:
- 1 žingsnis: planas
- 2 žingsnis: OLED ekranas
- 3 veiksmas: SD kortelė ir adapteris
- 4 žingsnis: Klaviatūros kūrimas
- 5 žingsnis: viską sudėkite
- 6 veiksmas: klaviatūros nustatymas
- 7 žingsnis: koduojame
- 8 žingsnis: korpuso kūrimas
- 9 žingsnis: linksminkitės
Video: Kriketo rezultatų suvestinė naudojant „NodeMCU“: 9 žingsniai (su paveikslėliais)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:49
Sveiki! Neseniai buvau supažindintas su daiktų interneto (daiktų interneto) pasauliu, nes sutikau populiariausią šios srities įrenginį - ESP8266. Buvau nustebintas daugybės galimybių, kurias atvėrė šis mažas ir pigus prietaisas. Kadangi šiuo metu esu naujokas, nusprendžiau sukurti projektą ir jį išmokti. Taigi, aš pradėjau ieškoti projektų ir idėjų internete.
Susidūriau su nuostabiu projektu, pavadintu W. A. Smitho pavadinimu „Arduino Cricket Score Ticker“. Šiame projekte „Arduino“kartu su „Ethernet Shield“ir SD kortele yra naudojami tiesioginiams „Cricbuzz“kriketo rezultatams rodyti. Šis projektas privertė mane susimąstyti.
Aš esu iš Indijos ir pirmas dalykas, kuris ateina į galvą išgirdus Indiją, yra kriketas. Čia kriketas yra religija. Kartais būna sunku atsisėsti prieš televizorių ir sekti visas rungtynes. Taigi, kodėl gi ne sukurti ką nors, kas palengvina žiūrėjimą, belaidį ir nešiojamą. Specialus mažas prietaisas, kuriame rodoma pakankamai informacijos, kad galėtumėte jį atnaujinti vos žvilgsniu.
Ne kriketo gerbėjas? Jokiu problemu! Kode yra XML analizatorius, kuris gali būti naudojamas duomenims gauti iš bet kurio XML failo. Tiesiog naudokite teisingas funkcijas, kad gautumėte duomenis.
1 žingsnis: planas
Planuojama naudoti „NodeMCU Development Board“(su ESP-12E moduliu), kad galėtumėte prisijungti prie interneto ir paprašyti „Cricbuzz“XML kodo, kuriame yra visa informacija apie vykstančias/būsimas rungtynes. Šis kodas išsaugomas SD kortelėje kaip.xml failas. Tada failas nuskaitomas iš SD kortelės, kad būtų galima išanalizuoti reikiamus duomenis iš XML kodo. Informacijai analizuoti naudosiu W. A. Smitho kodą. Jo pastangų dėka. Patikrinkite jo projektą, jei norite tą patį padaryti naudodami „Arduino“ir „Ethernet Shield“.
Mano idėja yra padaryti ją kuo mažesnę, sukurti pritaikytą PCB ir dėklą. Kol kas sukurkime prototipą. Bet pirmiausia susipažinkime su šiame projekte naudojamais komponentais.
Pradėkime
2 žingsnis: OLED ekranas
Aš nusprendžiau naudoti OLED ekraną dėl mažo dydžio ir jie yra pigūs. Aš naudoju 0,96 colių ekraną, kurio pakaks rodyti rungtynių informaciją. Galite naudoti bet kokio dydžio ekraną.
Mano naudojamas ekranas yra vienspalvis su SSD1306 tvarkykle ir I2C (2 laidų) sąsaja. Taip pat yra SPI ekrano versijų. Jų vykdymas yra lengva užduotis. Atsisiųskite SSD1306 ir GFX bibliotekas, reikalingas ekranams paleisti. Ačiū „Adafruit“už tai, kad parašė šias bibliotekas.
Sujungimai yra labai paprasti.
- GND į GND
- VCC iki 3.3V
- SCL į D1
- SDA į D2.
3 veiksmas: SD kortelė ir adapteris
SD kortelė saugo XML failą iš „Cricbuzz“, kol visa informacija bus išanalizuota. Parodžius reikiamą informaciją, failas ištrinamas. SD kortelės naudojimas 10–20 kB XML failams saugoti yra šiek tiek per daug, tačiau tai leidžia daug lengviau ir lengviau suprasti.
Galima naudoti bet kokią atminties kortelę. Aš pasirinkau „micro SD“kortelę dėl mažos formos. Galite tiesiogiai lituoti laidus prie SD kortelės, tačiau naudojant pertraukimo plokštę darbas yra lengvas. Reikėtų pažymėti, kad visos SD kortelės yra skirtos veikti 3.3V. Tai reiškia, kad ne tik jis turi būti maitinamas naudojant 3.3V, bet ir ryšys tarp mikrovaldiklio ir SD kortelės turi būti 3.3V loginio lygio. Įtampa virš 3,3 V ją nužudys! „NodeMCU“dėl to nesijaudinsime, nes pats „NodeMCU“veikia 3.3 V įtampa, o tai gerai. Jei planuojate naudoti bet kurį kitą mikrovaldiklį su 5V loginiu lygiu, įsitikinkite, kad jūsų pertraukimo plokštėje yra įmontuotas lygio perjungiklis (kaip parodyta paveikslėlyje). Jis iš esmės paverčia arba „perkelia“5 V iš mikrovaldiklio į SD kortelę, tinkančią 3,3 V. Lygio perjungiklio naudojimas kartu su 3.3V (kaip aš padariau) neturi įtakos jo veikimui.
SD kortelė naudoja SPI sąsają bendravimui. CS arba lusto pasirinkimo kaištį galima prijungti prie bet kurio GPIO kaiščio. Aš pasirinkau GPIO15 (D8). Tiesiog atlikite reikiamus kodo pakeitimus, jei naudojote kitokį PIN kodą nei GPIO15
- SCK - D5
- MISO - D6
- Nuo MOSI iki D7
- CS iki D8
- VCC iki 3.3V
- GND į GND
Formatuokite savo SD kortelę
Biblioteka, kurią naudosime, palaiko FAT16 arba FAT32 failų sistemas. Būtinai suformatuokite SD kortelę tinkamu formatu.
4 žingsnis: Klaviatūros kūrimas
Noriu, kad projektas būtų kuo mažesnis. Taigi, nusprendžiau sukurti atskirą klaviatūros plokštę ir vėliau ją sumontuoti virš pagrindinės plokštės. Tai sutaupys šiek tiek vietos.
Galima nusipirkti paruoštą raktų matricą, bet aš turėjau mygtukus. Be to, norėjau, kad jis būtų kuo mažesnis. Įprastam jungiamųjų eilučių ir stulpelių išdėstymui iš viso reikės 6 GPIO kaiščių 3 x 3 matricai. Tai gana daug, atsižvelgiant į tai, kad OLED ekranas ir SD kortelė taip pat bus prijungti.
Jei kyla abejonių, ištirkite „Google“! Tai aš padariau ir radau būdą, kurio prireiks tik 1 kaiščio, kad būtų galima valdyti visą matricą. Tai įmanoma naudojant įtampos skirstytuvo matricą. Rezistoriai yra prijungti tarp kiekvienos eilutės ir stulpelio. Paspaudus klavišą, tam tikras rezistorių derinys sujungiamas nuosekliai, sukuriant įtampos daliklį. Peržiūrėkite grandinės schemą. Skirtingą įtampą skaitys mikrovaldiklis. Kiekvienas klavišas sukuria skirtingą įtampą, todėl perskaičius matricos išėjimo įtampą galima lengvai sužinoti, kuris klavišas buvo paspaustas. Kadangi norime skaityti skirtingus įtampos lygius, o dabar tik aukštą ir žemą, mums reikės analoginio kaiščio. Laimei, „NodeMCU“yra vienas analoginis kaištis, pažymėtas kaip A0. Problema išspręsta!
Jei norite įsigyti matricą, patikrinkite diagramoje parodytas vidines jungtis. Galima naudoti bet kokių matmenų matricą. Būtinai naudokite 2,2 kΩ rezistorių tarp eilučių ir 680Ω rezistorių tarp stulpelių.
Sujungimo mygtukai
1 ir 2 kaiščiai yra sujungti iš vidaus. Tas pats ir su kaiščiais 3 ir 4. Paspaudus mygtuką, visi kaiščiai yra sujungti. Žiūrėkite paveikslėlį, kad suprastumėte, kaip prijungti perjungimo plokštės jungiklius.
Prijungiau 3 kontaktų antraštę, kad vėliau ją būtų galima prijungti prie pagrindinės plokštės.
5 žingsnis: viską sudėkite
Galite planuoti sudėti komponentus ten, kur norite. Jokių apribojimų. Aš jums parodysiu, kaip tai padariau, kad jis būtų kompaktiškas, nes norėjau kažko, kas tilptų į delną. Tai gali būti šiek tiek netvarkinga, todėl pabandykite mano kelią, jei jums patinka litavimas. Aš nusprendžiau užpildyti abi plokštės puses kaip dviejų sluoksnių PCB. „NodeMCU“ir SD kortelės pertraukimo plokštė vienoje pusėje, o OLED ir klaviatūra kitoje pusėje.
SD kortelės pertrauka tiesiog atsitinka tarp dviejų moterų antraščių, skirtų „NodeMCU“. Aš atlaisvinau kampines kojelių galvutes, su kuriomis buvo pateikta pertraukimo lenta, pasukau ir vėl lituojau taip, kad kaiščiai statmenai nukristų žemyn, kaip parodyta paveikslėlyje. Prieiga prie SD kortelės lizdo tampa lengvesnė.
Aš sulenkiau 4 kaiščių moteriškos antgalio kaiščius stačiu kampu ir lituodavau jį ant varinės šoninės plokštės pusės, kaip parodyta paveikslėlyje.
Uždenkite litavimo jungtis po klaviatūra, kad išvengtumėte trumpojo jungimo. Įdėkite ploną kietos putos gabalėlį (apie 5 mm storio) tarp klaviatūros ir pagrindinės plokštės, kad būtų užtikrinta papildoma apsauga ir standumas. Galiausiai, lituokite anksčiau sukurtą klaviatūrą. Turėdami lituoklį su smailiu galu tikrai palengvinsite savo darbą. Tai buvo nepatogus darbas, kad jis būtų kuo kompaktiškesnis, tačiau pagaliau pavyko tai padaryti.
Prieš maitindami prietaisą, dar kartą patikrinkite visus jungtis, ar nėra trumpojo jungimo
6 veiksmas: klaviatūros nustatymas
Patikrinę visus ryšius, esate pasiruošę pirmą kartą įjungti įrenginį. Sukryžiuoti pirštai! Nėra stebuklingų dūmų? Sveikinimai!
Dabar mes pasiruošę nustatyti klaviatūrą. Prisiminkite klaviatūros veikimą. Kiekvienas klavišo paspaudimas išves skirtingą įtampą, kuri tiekiama į analoginį „NodeMCU“kaištį. ESP-12E turi 10 bitų skiriamosios gebos analoginį skaitmeninį keitiklį (ADC). 2 pakeltas iki 10 galios duos 1024. Tai reiškia, kad kiekvieną kartą paspausdami klavišą gausime rodmenis nuo 0 iki 1024. Pažiūrėkime, kokius rodmenis mes gauname. Tačiau pirmiausia turime parašyti nedidelę programą, kad gautume šias vertybes. Atidarykite „Arduino IDE“, nukopijuokite įklijuokite šį kodą ir įkelkite jį į „NodeMCU“.
int klaviatūraPin = A0;
void setup () {Serial.begin (115200); } void loop () {int r = analogRead (keypadPin); Serijinis.println (r); }
- Atidarykite serijinį monitorių. Nustatykite duomenų perdavimo spartą į 115200.
- Dabar paspauskite bet kurį mygtuką. Turėtumėte nuolat skaityti serijinį monitorių. Maži svyravimai tinka. Tuo bus pasirūpinta pagrindiniame kodekse. Atlikite tą patį su kiekvienu raktu.
- Kiekvienas raktas turi būti skirtingai skaitomas.
- Užsirašykite visas vertes. Mums jų prireiks vėliau.
7 žingsnis: koduojame
Atsisiųskite žemiau esantį „Scoreboard.ino“failą į savo kompiuterį ir atidarykite jį naudodami „Arduino IDE“.
Prieš įkeldami
1) Nustatykite rezultatų suvestinės atnaujinimo laiką. Pavyzdžiui, 15 litrų 15 sekundžių.
2) Įveskite norimo prisijungti maršrutizatoriaus SSID ir slaptažodį.
3) Atlikite būtinus pakeitimus, jei pasirinkote prijungti SD kortelės CS kaištį prie kito, nei GPIO15.
4) Prisiminkite visų raktų reikšmes? Kiekvienai vertei turime priskirti rakto numerį. Aš taip pat pasakojau apie skaitymo svyravimus. Taip yra dėl to, kad jungiklių kontaktai nėra tobuli. Ilgainiui ši vertė gali nukrypti nuo dabartinės vertės dėl kontaktų senėjimo, o tai padidina grandinės atsparumą ir taip keičia įtampą. Mes galime išspręsti šią problemą kode.
Pridėsime viršutinę ir apatinę vertės ribas su paraštėmis 5. Pavyzdžiui, 1 klavišui gavau 617 rodmenį.
- Iš jo atimkite 5. 617 - 5 = 612. Tai yra apatinė riba.
- Dabar pridėkite prie jo 5. 617 + 5 = 622. Tai yra viršutinė riba.
- Pereikite prie kodo pabaigos. Užpildykite vietą dviem kodo reikšmėms, kaip parodyta paveikslėlyje.
- Atlikite tai kas 9 reikšmes.
if (r> 612 && r <622) {keyNumber = 1; }
Ką tai reiškia?
Jei rodmuo (r) yra didesnis nei 612 IR mažesnis nei 622, tada paspaudžiamas 1 klavišas. Bet kokia reikšmė nuo 612 iki 622 bus laikoma 1 klavišu. Tai išsprendžia svyravimo rodmenų problemą.
8 žingsnis: korpuso kūrimas
Tai visiškai neprivaloma. Maniau, kad projektas atrodys tvarkingas ir užbaigtas su dėklu aplink jį. Neturėdamas tinkamų įrankių šiam darbui, tai man buvo didžiulė užduotis. Korpusas pagamintas naudojant akrilą.
Paruošėme gabalus klijavimui, išlygindami kraštus švitriniu popieriumi. Visiems kūriniams sujungti naudojau „Fevi Kwik“(„Super Glue“). Sukietėję super klijai palieka baltas likučius. Taigi, tepkite jį tik tarp sąnarių. Dirbdami su super klijais turite būti greiti ir tikslūs, nes jie greitai sukietėja. Šiam darbui geriausiai tinka akrilo cementas.
Padarė nedidelę angą, kad galėtumėte pasiekti USB prievadą naudodami failą. Jis turėtų būti pakankamai didelis, kad būtų galima įkišti USB laidą.
Ant priekinio dangtelio buvo sukurta 3x3 tinklelio mygtukai. Dėl to bus sunku pasiekti mygtukus. Norėdami išspręsti šią problemą, kiekvienam klavišui supjaustiau kvadratinius gabalus, kad jų mygtukai būtų ištiesti iki paviršiaus.
Po tiek šlifavimo, pjovimo, tvirtinimo ir reguliavimo, tai pagaliau buvo padaryta!
9 žingsnis: linksminkitės
Galiausiai visas sunkus darbas yra atliktas. Įjunkite savo mini rezultatų suvestinę ir nuolat atnaujinkite žaidimą.
Įjungus, jis pirmiausia prisijungia prie prieigos taško. Inicijuoja SD kortelę. Jei SD kortelė nebus inicijuota, bus rodoma klaida.
Bus rodomas visų rungtynių sąrašas ir rungtynių numeris.
Naudodami klaviatūrą pasirinkite rungtynių numerį.
Bus rodomi balai. Galite tinkinti tai, ką norite matyti ekrane. Aš nesigilinu į kodo aiškinimą. Čia galite rasti išsamų paaiškinimą, kaip veikia analizavimas.
Norėdami grįžti į meniu, laikykite nuspaudę BACK (8 klavišas), kol pasirodys puslapis „Fetching Scores…“.
Ateities planai
- Sukurkite pasirinktinę PCB naudodami modulį ESP8266 12-E.
- Pridėkite įkraunamą bateriją.
- Patobulinkite kodą naudodami naujas funkcijas.
Tikiuosi, kad jums patiko statyti. Pasidaryk pats ir linksminkis! Visada yra kur tobulėti ir daug ko išmokti. Sugalvokite savo idėjų. Nesivaržykite komentuoti bet kokių pasiūlymų dėl konstrukcijos. Ačiū, kad laikėtės iki galo.
Rekomenduojamas:
„Raspberry Pi“rezultatų suvestinė: 4 žingsniai
„Raspberry Pi“rezultatų suvestinė: Šiandien paaiškinsiu, kaip sukūriau šią rezultatų suvestinę, kurią valdo aviečių pi ir maitina 5 V maitinimo šaltinis. Apšvietimui naudojamas diodų ws2811 ir ws2812b derinys, o konstrukcija pagaminta iš faneros ir raudono ąžuolo. Dėl aprašymo
Ličio jonų akumuliatoriaus „Bluetooth“rezultatų suvestinė: 4 žingsniai (su paveikslėliais)
Ličio jonų akumuliatoriaus „Bluetooth“rezultatų suvestinė: Įvadas Projektas pagrįstas mano praėjusių metų instrukcijomis: „Bluetooth“stalo teniso rezultatų suvestinė Galima naudoti kitoms
Stalo teniso rezultatų suvestinė: 16 žingsnių (su paveikslėliais)
Stalo teniso rezultatų suvestinė: per daug tingus sekti savo stalo teniso / stalo teniso rezultatus? O gal tiesiog sergate, kad visada pamiršote? Jei taip, jums gali būti įdomu sukurti šią skaitmeninę stalo teniso rezultatų suvestinę. Štai svarbiausi dalykai: , žaidimai, serveris ir p
Įrenginių valdymas naudojant balso komandą naudojant „NodeMCU“: 7 žingsniai (su paveikslėliais)
Įrenginių valdymas naudojant balso komandą naudojant „NodeMCU“: Aš tiesiog noriu visiems pasisveikinti, tai pirmas kartas, kai rašau pamokomą projektą. Anglų kalba nėra mano gimtoji kalba, todėl stengsiuosi kuo trumpiau ir aiškiau. Įrenginių valdymas balso komandomis nėra keistas dalykas
Rezultatų lentos projektas su P10 LED ekranu naudojant DMD: 6 žingsniai (su paveikslėliais)
Rezultatų lentos projektas su P10 LED ekranu naudojant DMD: Dažnai susitinkame futbolo stadione; yra milžiniška LED lenta, kuri tarnauja kaip rezultatų suvestinė. Taip pat ir kitose sporto srityse, taip pat dažnai žinome ekrano švieslentę, pagamintą iš LED. Nors tai neįmanoma, taip pat yra sritis, kuri vis dar mus