Obsah:
- Krok 1: Plán
- Krok 2: OLED displej
- Krok 3: Karta SD a adaptér
- Krok 4: Výroba klávesnice
- Krok 5: Dajte všetko dohromady
- Krok 6: Nastavenie klávesnice
- Krok 7: Poďme kódovať
- Krok 8: Zostavenie puzdra
- Krok 9: Bavte sa
Video: Hodnotiaca tabuľka kriketu pomocou NodeMCU: 9 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:00
Ahoj! Nedávno som bol zavedený do sveta IoT (internet vecí), pretože som narazil na najobľúbenejšie zariadenie v tejto oblasti, ESP8266. Bol som ohromený konečným počtom možností, ktoré toto malé a lacné zariadenie otvorilo. Keďže som v tejto oblasti nový, rozhodol som sa vytvoriť projekt, ktorý ju bude používať, a počas toho sa učiť. Začal som preto hľadať na internete projekty a nápady.
Narazil som na úžasný projekt s názvom Arduino Cricket Score Ticker od W. A. Smitha. V tomto projekte sa Arduino spolu s ethernetovým štítom a kartou SD používa na zobrazenie živých výsledkov kriketu od Cricbuzz. Tento projekt ma prinútil zamyslieť sa.
Pochádzam z Indie a prvá vec, ktorá ma napadne po vypočutí Indie, je kriket. Kriket je tu náboženstvo. Niekedy je ťažké sedieť pred televízorom a sledovať celý zápas. Prečo teda neurobiť niečo, vďaka čomu bude sledovanie skóre jednoduché, bezdrôtové a prenosné. Dedikované malé zariadenie, ktoré zobrazuje dostatočné informácie na to, aby ste boli informovaní jediným pohľadom.
Nie ste fanúšikom kriketu? Žiaden problém! Kód obsahuje analyzátor XML, ktorý je možné použiť na získanie údajov z ľubovoľného súboru XML. Na získanie údajov stačí použiť správne funkcie.
Krok 1: Plán
Plánuje sa použiť NodeMCU Development Board (s modulom ESP-12E) na prístup na internet a vyžiadať si od Cricbuzz kód XML, ktorý obsahuje všetky informácie o prebiehajúcich/nadchádzajúcich zápasoch. Tento kód je uložený na karte SD ako súbor.xml. Potom sa súbor načíta z karty SD, aby sa analyzovali požadované údaje z kódu XML. Na analýzu informácií použijem kód W. A. Smitha. Vďaka jeho úsiliu. Pozrite sa na jeho projekt, ak si želáte urobiť to isté pomocou Arduino a Ethernet Shield.
Mojou myšlienkou je urobiť ho čo najmenším, postaviť pre neho vlastnú dosku plošných spojov a puzdro. Teraz urobme prototyp. Najprv sa však zoznámime s komponentmi použitými v tomto projekte.
Začnime
Krok 2: OLED displej
Rozhodol som sa ísť s OLED displejom kvôli jeho malým rozmerom a sú k dispozícii za lacné ceny. Používam 0,96 displej, ktorý bude postačovať na zobrazenie informácií o zápase. Môžete použiť ľubovoľnú veľkosť displeja.
Displej, ktorý používam, je monochromatický s ovládačom SSD1306 a rozhraním I2C (2-vodičovým). K dispozícii sú aj SPI verzie displeja. Ich spustenie je jednoduchá úloha. Stiahnite si knižnice SSD1306 a GFX potrebné na spustenie displejov. Ďakujem spoločnosti Adafruit za napísanie týchto knižníc.
Pripojenia sú veľmi jednoduché.
- GND až GND
- VCC až 3,3V
- SCL až D1
- SDA až D2.
Krok 3: Karta SD a adaptér
Karta SD ukladá súbor XML z Cricbuzz, kým sa analyzujú všetky informácie. Hneď ako sa zobrazia potrebné informácie, súbor sa odstráni. Použitie karty SD na uloženie súboru XML s veľkosťou 10 - 20 kB je trochu zbytočné, ale robí analýzu veľmi jednoduchou a zrozumiteľnou.
Je možné použiť akúkoľvek pamäťovú kartu. Vybral som kartu micro SD pre jej malý formát. Drôty môžete priamo spájkovať na kartu SD, ale používanie oddeľovacej dosky uľahčuje prácu. Je potrebné poznamenať, že všetky karty SD majú pracovať s napätím 3,3 V. To znamená, že by mal byť napájaný nielen 3,3 V, ale aj komunikácia medzi mikrokontrolérom a kartou SD musí byť na úrovni 3,3 V. Napätie nad 3,3 V TO ZABIJE! Nebudeme sa tým trápiť, pokiaľ ide o NodeMCU, pretože samotný NodeMCU beží na 3,3 V, čo je v poriadku. Ak plánujete použiť akýkoľvek iný mikrokontrolér s logickou úrovňou 5V, uistite sa, že vaša oddeľovacia doska má v sebe zabudovaný radič úrovne (Ako je znázornené na obrázku). V zásade prevádza alebo „presúva“5 V z mikrokontroléra na 3,3 V kompatibilných s kartami SD. Použitie radiča úrovne spolu s 3,3 V (ako som to urobil) nemá vplyv na jeho činnosť.
Karta SD používa na komunikáciu rozhranie SPI. Pin CS alebo Chip Select je možné pripojiť k akémukoľvek pinu GPIO. Vybral som GPIO15 (D8). Ak ste použili iný pin ako GPIO15, vykonajte potrebné zmeny v kóde
- SCK až D5
- MISO až D6
- MOSI až D7
- CS až D8
- VCC až 3,3V
- GND až GND
Naformátujte kartu SD
Knižnica, ktorú budeme používať, podporuje súborové systémy FAT16 alebo FAT32. Dbajte na to, aby ste kartu SD naformátovali na správny formát.
Krok 4: Výroba klávesnice
Chcem, aby bol projekt čo najmenší. Preto som sa rozhodol vytvoriť samostatnú dosku pre klávesnicu a neskôr ju namontovať nad hlavnú dosku. Tým ušetríte miesto.
Môžete si kúpiť hotovú maticu kľúčov, ale okolo boli rozmiestnené tlačidlá. Tiež som chcel, aby bol čo najmenší. Typické usporiadanie spájajúcich sa riadkov a stĺpcov by vyžadovalo celkom 6 pinov GPIO pre maticu 3 x 3. To je dosť veľa vzhľadom na to, že bude pripojený aj OLED displej a karta SD.
Ak máte pochybnosti, vygooglite to! To je to, čo som urobil a našiel som spôsob, ktorý bude potrebovať iba 1 pin na ovládanie celej matice. To je možné pomocou matice oddeľovača napätia. Rezistory sú prepojené medzi každým riadkom a stĺpcom. Po stlačení klávesu sa určitá kombinácia odporov zapojí do série, čím sa vytvorí delič napätia. Pozrite sa na schému zapojenia. Rôzne napätie bude čítať mikrokontrolér. Každý kľúč bude produkovať iné napätie, a preto sa dá ľahko zistiť, ktoré tlačidlo bolo stlačené, načítaním výstupného napätia matice. Pretože chceme čítať rôzne úrovne napätia a teraz len vysoké a nízke, budeme potrebovať analógový kolík. Našťastie existuje jeden analógový kolík označený ako A0 na NodeMCU. Problém je vyriešený!
Ak si chcete kúpiť maticu, pozrite sa na vnútorné pripojenia uvedené na obrázku. Je možné použiť maticu akýchkoľvek rozmerov. Uistite sa, že medzi riadkami použijete odpor 2,2 kΩ a medzi stĺpcami odpor 680 Ω.
Pripojenie tlačidiel
Piny 1 a 2 sú vnútorne prepojené. To isté platí pre kolíky 3 a 4. Po stlačení tlačidla sú všetky kolíky spojené dohromady. Na obrázku nájdete predstavu o pripojení prepínačov k perfboardu.
Pripojil som 3-kolíkový konektor záhlavia, aby ho bolo možné neskôr pripojiť k základnej doske.
Krok 5: Dajte všetko dohromady
Môžete plánovať umiestnenie komponentov kdekoľvek chcete. Nie sú na to žiadne obmedzenia. Ukážem vám, ako som to urobil, aby bol kompaktný, pretože som chcel niečo, čo sa zmestí do dlane. Môže to byť trochu chaotické, takže vyskúšajte môj spôsob, ak vám vyhovuje spájkovanie. Rozhodol som sa osadiť obe strany dosky tak, ako to bude v dvojvrstvovom PCB. Oddeľovacia doska NodeMCU a karty SD na jednej strane a OLED a klávesnica na druhej strane.
Rozbitie karty SD sa náhodou hodí medzi dve ženské hlavičky, ktoré sú určené pre NodeMCU. Odspájkoval som uhlové hlavičky, s ktorými bola priložená odlamovacia doska, otočil som ich a znova spájkoval tak, aby kolíky smerovali kolmo nadol, ako je znázornené na obrázku. Prístup k slotu pre kartu SD je jednoduchší.
Ohnul som kolíky 4-kolíkovej hlavičky v pravom uhle a spájkoval som ju na medenú stranu perfboardu, ako je znázornené na obrázku.
Aby ste predišli skratom, zakryte spájkovacie spoje pod klávesnicou. Medzi klávesnicu a základnú dosku pridajte tenký kus tvrdej peny (hrubý asi 5 mm), aby bola zaistená mimoriadna ochrana a tuhosť. Nakoniec spájkujte klávesnicu, ktorú sme vyrobili predtým. Spájkovačka so špicatou špičkou vám iste uľahčí prácu. Bola to chaotická práca, urobiť ju čo najkompaktnejšou, ale nakoniec sa to podarilo.
Pred zapnutím zariadenia dvakrát skontrolujte všetky spoje, či nie sú skratované
Krok 6: Nastavenie klávesnice
Keď skontrolujete všetky pripojenia, ste pripravení prvýkrát zapnúť zariadenie. Držím palce! Žiadny magický dym? Gratulujem!
Teraz sme pripravení nastaviť klávesnicu. Pripomeňte si činnosť klávesnice. Každé stlačenie klávesu vydá iné napätie, ktoré je privedené na analógový pin NodeMCU. ESP-12E má analógovo-digitálny prevodník (ADC) s 10-bitovým rozlíšením. 2 zdvihnutý na výkon 10 poskytne 1024. To znamená, že pri každom stlačení klávesu dostaneme hodnotu od 0 do 1024. Pozrime sa, aké hodnoty dostaneme. Najprv však musíme napísať malý program, aby sme tieto hodnoty získali. Otvorte Arduino IDE, skopírujte nasledujúci kód a nahrajte ho na NodeMCU.
int keypadPin = A0;
void setup () {Serial.begin (115200); } void loop () {int r = analogRead (keypadPin); Serial.println (r); }
- Otvorte sériový monitor. Nastavte prenosovú rýchlosť na 115200.
- Teraz stlačte ľubovoľné tlačidlo. Na sériovom monitore by ste mali dostávať neustále údaje. Malé výkyvy sú v poriadku. O tie bude postarané v hlavnom kóde. To isté urobte s každým kľúčom.
- Každý kľúč by mal mať iné čítanie.
- Poznačte si všetky hodnoty. Budeme ich potrebovať neskôr.
Krok 7: Poďme kódovať
Stiahnite si nižšie uvedený súbor Scoreboard.ino do počítača a otvorte ho pomocou Arduino IDE.
Pred nahraním
1) Nastavte čas obnovenia hodnotiacej tabuľky. Napríklad 15 l na 15 sekúnd.
2) Zadajte SSID a heslo smerovača, ku ktorému sa chcete pripojiť.
3) Vykonajte potrebné zmeny, ak sa rozhodnete pripojiť pin CS karty SD na iný pin ako GPIO15.
4) Pamätáte si hodnoty, ktoré sme zaznamenali pre všetky kľúče? Každej hodnote musíme priradiť číslo kľúča. Tiež som vám povedal o výkyvoch v čítaní. Dôvodom je, že kontakty spínača nie sú dokonalé. Z dlhodobého hľadiska sa táto hodnota môže líšiť od aktuálnej hodnoty v dôsledku starnutia kontaktov, ktoré v obvode pridáva ďalší odpor, čím sa mení napätie. O tento problém sa môžeme v kóde postarať.
Pridáme hornú a dolnú hranicu hodnoty s okrajom 5. Napríklad pre kľúč 1 som dostal hodnotu 617.
- Odčítajte z toho 5. 617 - 5 = 612. Toto je dolná hranica.
- Teraz k tomu pridajte 5. 617 + 5 = 622. Toto je horná hranica.
- Prejdite na koniec kódu. Vyplňte priestor vyhradený pre dve hodnoty v kóde, ako je znázornené na obrázku.
- Vykonajte to pre každých 9 hodnôt.
if (r> 612 && r <622) {keyNumber = 1; }
Čo to znamená?
AK je údaj (r) väčší ako 612 A menší ako 622, potom sa stlačí kláves 1. Akákoľvek hodnota medzi 612 a 622 bude považovaná za kľúč 1. Tým sa vyrieši problém s kolísavým čítaním.
Krok 8: Zostavenie puzdra
Toto je úplne voliteľné. Myslel som si, že projekt bude vyzerať úhľadne a bude doplnený prípadom okolo neho. Bez vhodných nástrojov pre túto prácu to pre mňa bude obrovská úloha. Puzdro je vyrobené z akrylátu.
Pripravte kúsky na lepenie vyhladením okrajov brúsnym papierom. Na spojenie všetkých dielov som použil Fevi Kwik (Super Glue). Super lepidlo zanecháva po vytvrdnutí biele zvyšky. Nanášajte ho teda iba medzi kĺby. Pri práci so super lepidlom musíte byť rýchly a presný, pretože sa rýchlo tuhne. Na túto prácu je najvhodnejší akrylový cement.
Vytvoril sa malý otvor na prístup k portu USB pomocou súboru. Mal by byť dostatočne veľký na vloženie kábla USB.
Na prednom kryte tlačidiel bola vytvorená mriežka 3x3. Tým sa sťaží prístup k tlačidlám. Aby som vyriešil tento problém, odrezal som štvorcové kusy pre každý kľúč, takže ich tlačidlá sú teraz predĺžené až na povrch.
Po toľkom brúsení, rezaní, opravách a nastavovaní bolo konečne hotovo!
Krok 9: Bavte sa
Nakoniec je všetka tvrdá práca hotová. Zapnite svoju malú hodnotiacu tabuľku a buďte vždy o hre informovaní.
Po zapnutí sa najskôr pripojí k prístupovému bodu. Inicializuje kartu SD. Ak nie je karta SD inicializovaná, zobrazí sa chyba.
Zobrazí sa zoznam všetkých zápasov spolu s číslom zápasu.
Pomocou klávesnice vyberte číslo zhody.
Zobrazia sa skóre. Môžete si prispôsobiť, čo všetko chcete na displeji vidieť. Nešiel by som príliš hlboko do vysvetľovania kódu. Tu nájdete podrobné vysvetlenie, ako analýza funguje.
Ak sa chcete vrátiť do ponuky, podržte tlačidlo SPÄŤ (kláves 8), kým sa nezobrazí stránka „Načítavam skóre …“.
Budúce plány
- Navrhnite si vlastnú dosku plošných spojov s modulom ESP8266 12-E.
- Pridajte nabíjateľnú batériu.
- Vylepšite kód novými funkciami.
Dúfam, že sa vám stavba páčila. Vyrobte si to sami a bavte sa! Vždy je tu priestor na zlepšenie a veľa sa treba naučiť. Príďte s vlastnými nápadmi. Neváhajte sa vyjadriť k akýmkoľvek návrhom týkajúcim sa stavby. Ďakujem, že ste vydržali až do konca.
Odporúča:
Hodnotiaca tabuľka Raspberry Pi: 4 kroky
Výsledková tabuľka Raspberry Pi: Dnes vysvetlím, ako som vyrobil túto hodnotiacu tabuľku, ktorá je ovládaná malinovým pi a napájaná 5V zdrojom. Na osvetlenie používa kombináciu LED ws2811 a ws2812b a konštrukcia je vyrobená z preglejky a červeného duba. Pre descr
Koncová tabuľka LED nekonečnej kocky LED reagujúca na zvuk: 6 krokov (s obrázkami)
Koncový stôl Infinity Cube s LED zvukovou reakciou: Wow! Hej! Aký úžasný efekt! - Toto sú niektoré z vecí, ktoré budete počuť po vyplnení sprievodcu. Úplne ohýbajúca myseľ, krásna, hypnotická, zvukovo reaktívna kocka nekonečna. Toto je skromne pokročilý projekt spájkovania, trvalo mi to asi 12 ľudí
Hodnotiaca tabuľka Bluetooth pre lítium-iónovú batériu: 4 kroky (s obrázkami)
Hodnotiaca tabuľka Bluetooth s lítium-iónovou batériou: Úvod Projekt je založený na mojich pokynoch z minulého roka: Tabuľka výsledkov stolného tenisu s technológiou Bluetooth Výsledková tabuľa je určená pre fanúšikov amatérskych športov a stolného tenistu, ale nie je použiteľná iba pre stolný tenis. Možno použiť na iné
Časovač 555 cvrlikanie kriketu: 3 kroky
Časovač 555 Kriketové cvrlikanie: Popis: po tomto projekte nasledujú ďalšie 3 projekty, ktoré sú všetky v rovnakej kategórii s rôznym prístupom. len sa pokúšame vytvoriť/simulovať cvrlikanie nočných cvrčkov, čo je pre väčšinu ľudí jeden z najkrajších prírodných zvukov. všetko poskytnuté
Ovládanie zariadení pomocou hlasového ovládania pomocou NodeMCU: 7 krokov (s obrázkami)
Ovládanie zariadení pomocou hlasového ovládania pomocou NodeMCU: Chcem sa len pozdraviť s každým, toto je môj prvý prípad, kedy píšem inštruovateľný projekt. Angličtina nie je môj rodný jazyk, a preto sa pokúsim urobiť to stručné a čo najjasnejšie. Ovládanie zariadení hlasovým príkazom nie je nič zvláštne