duinozone.cz - Arduino a Raspberry fórum

Poslední příspěvky

Stran: 1 [2] 3 4 ... 10
11
Projekty / Arduino stopky cez Arduino
« Poslední příspěvek od martinius96 kdy Prosinec 22, 2018, 22:54:02 odpoledne »
Dnes vám predstavím v krátkosti hasičské stopky, respektíve časomieru, ktorú som vytváral ako fanúšik hasičského športu.
Súťažné hasičské družstvo má hádam každá dedina, či časť mesta.
Každý týždeň najmä letnom období sa konajú súťaže po dedinách a mužstvá si pripisujú cenné body, úspechy i neúspechy, o ktorých rozhodujú stotiny, či tisíciny sekundy.

Pre tento účel som vytvoril jednoduché stopky, ktoré mi do istej miery dovolili použiteľne merať čas, napríklad pri tréningoch domácich požiarnikov.
Pre celú logiku systému som využil som millis, čo je funkcia interného časovača Arduina, ktorá vracia počet milisekúnd od štartu procesora. Vieme teda merať čas na 3 desatinné miesta (1000 ms = 1 sekunda). Presnosť vieme teda určiť na 1 tisícinu (obrazne povedané  :)  ).

Prostredníctvom tejto funkcie vieme teda merať čas. Potrebujeme nejaký prvotný impulz - niečo, čím si odmeriame štartovací čas a spustíme celú logiku systému. Použil som teda fyzické tlačidlo, ktoré je nutné manuálne stlačiť. Tento čas sa uloží a časy sa začnú počítať od tohto momentu. Refresh-rate je nastavený na 10ms, i keď do displeja by bolo možné dáta posielať každú milisekundu, čo by znamenalo 1000Hz refreshrate, ale to by samozrejme displej nezvládol spracovať a text na ňom by pripomínal rozsypaný čaj. Arduino zvláda posielať dáta aj v milisekundovom intervale vďaka vysokorýchlostnej zbernici, ktorou je prepojené s LCD znakovým displejom. Sú to údaje o veľkosti len pár bajtov.
(Programové počítanie času):

V programe bežia 2 podprogramy, jeden pre ľavý, druhý pre pravý prúd, kde sa skúma, či bol čas zastavený a v premenných sa nachádzajú jednotlivé údaje (minúty, sekundy, desatiny, stotiny, tisíciny), tie sa odosielajú na displej.
(Odosielané dáta na displej do riadku - pre jeden z útokov)

Pre impulz spadnutého terča som využil kontakt, ktorý zopne terč pre spadnutí. Rovnako pre oba terče. Čas sa zastaví prakticky okamžite ( ak zanedbáme oneskorenie na vedení a pod.).
V prípade, že mužstvo zle odštartuje s neplatným pokusom, je možné stopky ihneď vynulovať druhým tlačidlom a ihneď ich pripraviť na štart. Funkčnosť je veľmi jednoduchá.
Čo teda po technickej (hardvérovej) stránke potrebujeme k projektu?
    Arduino, alebo samostatný AtMega čip
    LCD displej 16x2 alebo 20x4 s I2C prevodníkom
    2 tlačidlá
    2 spínacie kontakty
Aby som minimalizoval použité elektrotechnické súčiastky, využil som interné pullup rezistory Arduina, prostredníctvom ktorých je možné spínať kontakt proti zemi a jednoducho zaznamenať zmenu, pin je v stave active-high. Pri zapojení s rezistorom sa používa 10kohm rezistor, ak sa kontakt spína proti 5V RAW pinu Arduina.
Prečo som na začiatku rozprával o obraznej presnosti na 1 tisícinu?
Takmer každý, kto si plánuje kúpiť Arduino pozerá na cenu. Dať 30€ za originálne Arduino, alebo 3€ za čínsky klon, odpoveď je myslím jasná..
Čínske klony sú hardvérovo totožné s originálmi. Je to ale istý rozdiel a to v kvalite oscilátora, ktorý dáva Arduinu takt. V originálnych Arduinách sa využíva presný 16MHz oscilátor. Pri klonoch sa používa rovnaký, ale nie až taký presný, dá sa predstaviť ako 15.9998MHz.
Z toho vyplýva, že sa po určitom čase presnosť zmenšuje na tisícinách, pri dlhšom meraní i na stotinách, desatinách, sekundách. Ďalší útlm predstavuje aj vedenie, po ktorom signály prichádzajú. Arduino stopky nikdy nenahradia certifikovanú časomieru, ktorá sa používa pre hasičské športy!

Celý systém je možné napájať i na batérie či powerbanku, jeho celkový odber je do 60mA pri 5V.
Viac o podobných projektoch môžete nájsť aj na mojich stránkach: https://arduino.php5.sk/hasicske-stopky.php
12
Bastlírna / Re:Arduino micro - ovladače?
« Poslední příspěvek od Rudolf kdy Prosinec 14, 2018, 10:04:05 dopoledne »
ano, stejný problém, stačí stáhnout správné ovladače na čínskou verzi...levnější čip...(měl by fungovat od XP až do 10)
https://uloz.to/!v2T2s1DluokW/ch341ser-exe
13
Vědátorna / Sestaveni dinamického pole a načítání ruzně velkých dat do něj
« Poslední příspěvek od ijacek.007 kdy Prosinec 08, 2018, 21:03:54 odpoledne »
Zdravím nějakou dobu se mi nedaří elegantně vyřešit problém dinamického přiřazení do pole. Najde se někdo kdo by mi byl schopný pomoci?

V ESP8266 načítám pomocí
<ESP8266HTTPClient.h>
<ArduinoJson.h>

data z webu ktere chci poté zobrazit na displeji mudulu

řetězec vypada nějak takto

{"rychlost":"5000","opakovani":"3","pocet":"4","n1":"Anetka","d1":"25.70°C +","n2":"kotel","d2":"57.56°C +","n3":"venku","d3":"3.20°C","n4":"Cas","d4":"20:41"}

Posilam parametry rychlost , opakovani , pocet a poté již samotné informace na displej kdy je vždy tvar nazev je n+číslo data z něj jsou d+číslo

na displeji tedy chci zobrazit 4 udaju z ukázky a to presneji teploty a cas ktere se co 5 vteřin překleslý a co 3 opakování načtou znovu.

Umím programem zobrazit všechny zaslane proměné problém je že je musím definovat ručně. Nemužu tedy na straně serveru ovlivnit že bych chtěl aktuálně posílat jen 3 místo 4 obrazovek aniž bych zase nepřeprogramoval celý displej.

Kód: [Vybrat]
       Serial.println("Vypisuji hodnoty na e-ink displej");
        float rychlost = json["rychlost"].as<float>();
        byte opakovani = json["opakovani"].as<byte>();
        byte pocet = json["pocet"].as<byte>();
/**/
        String  n1 = json["n1"].as<String>();
        String  d1 = json["d1"].as<String>();
        String  n2 = json["n2"].as<String>();
        String  d2 = json["d2"].as<String>();
        String  n3 = json["n3"].as<String>();
        String  d3 = json["d3"].as<String>();
        String  n4 = json["n4"].as<String>();
        String  d4 = json["d4"].as<String>();

/*
 
        int jmeno[pocet];
        int data[pocet];
       
        for(poc=0;poc<pocet;poc++){

        String text1 = String(poc) ;   
        String text2 = String("n");       
        String text3 = text2 + text1;   // spojeni retezcu

        String text4 = String("d");       
        String text5 = text4 + text1;   // spojeni retezcu


        String  ndp = json[text3].as<String>();
        String  ddp = json[text5].as<String>();
           
        char jmeno[poc] =  ndp;
        char data[poc] = ddp;
       
        }
         
*/

         for(poc=0;poc<opakovani;poc++){ 
         
          // předelat na ciklus !

  /**/
         display.clear();  // clear the display
         display.setTextAlignment(TEXT_ALIGN_RIGHT);
         lcddata(String(n1),String(d1));
         display.display();
         delay(rychlost);
       
         display.clear();  // clear the display
         display.setTextAlignment(TEXT_ALIGN_RIGHT);
         lcddata(String(n2),String(d2));
         display.display();
         delay(rychlost);

         display.clear();  // clear the display
         display.setTextAlignment(TEXT_ALIGN_RIGHT);
         lcddata(String(n3),String(d3));
         display.display();
         delay(rychlost);

          display.clear();  // clear the display
         display.setTextAlignment(TEXT_ALIGN_RIGHT);
         lcddata(String(n4),String(d4));
         display.display();
         delay(rychlost);
   
   
    /**/   
       
        }

Má otázka tedy zní jak dinamicky načítat data do pole a poté je z něj jednoduše zobrazovat? nejsem schoplný udělat cykl který by dinamicky vytvářel proměné a do nich načítal obsah ty poté vložil do pole. Mohl by mi někdo proísm poradit kde proklatě dělám chybu ?


14
Poptávka / Re:Vývoj pro Arduino - poptávka
« Poslední příspěvek od WilliamKristen kdy Listopad 26, 2018, 05:39:27 dopoledne »
kt je komplexni reseni Mereni a regulac
15
Vědátorna / Re:binarne odstupnované LED a LCD displej
« Poslední příspěvek od WilliamKristen kdy Listopad 26, 2018, 05:36:04 dopoledne »
Potreboval by som pre celých 255 posúvaných tlačítkom UP a DOWN
16
Projekty / Webscraper - Arduino + Ethernet / ESP6266 / ESP32
« Poslední příspěvek od martinius96 kdy Listopad 24, 2018, 21:29:52 odpoledne »
Dnes sa budeme baviť o spôsobe, akým som z mikrokontroléru spravil webscraper. (Ak sa to tak dá nazvať pri spracovaní informácii vlastným backendom)
Ako mnohí z vás viete, web scraper je zariadenie, ktoré plní úlohu získavania informácii z danej webovej lokality.  Medzi najžiadanejšie informácie z webových lokalít sú e-mailové adresy, telefónne čísla. V poslednej dobe sa ale tento fenomén používa aj na rôzne štatistické úlohy, kedy web scraper získava údaje o produktoch, ich cene a tie vyhodnocuje.

Dokonca sa podobné zariadenia využívajú a to ako roboty na obchodovanie s kryptomenami, či bežnými menami. Robot v najvhodnejší čas(štatisticky) pedal a nakúpil inú - vhodnú menu so stúpajúcou tendenciou. V mojom prípade som sa zaujímal o získavanie informácii z webov a to konkrétne telefónnych čísel a e-mailových adries.

Prejdem teda priamo k realizácii. Využil som 3 druhy mikrokontrolérov. Pre weby na nešifrovanom HTTP protokole som použil Arduino s Ethernet shieldom (podporuje iba HTTP spojenia), pre weby pod HTTPS protokolom som použil dosku NodeMCU s integrovaným čipom ESP8266 a taktiež aj ESP32 Devkit v1 DOIT. ESP32 má oproti ESP8266 výhodu v tom, že disponuje dvomi jadrami, rýchlejšími o 160MHz, má o takmer 400kB viac RAM a je možné túto dosku napojiť aj do podnikových sietí pod protokolom 802.1x (WPA/WPA2 Enterprise).

Funkčnosť všetkých troch menovaných dosiek je až morbídne jednoduchá. Ich úlohou je iba pripojiť sa na cieľový web, odkiaľ chceme informácie získať a zdrojový kód po riadkoch posielajú na môj web, kde sa tieto informácie spracujú a za pomoci regulárneho výrazu získam informácie, ktoré potrebujem. Nakoľko dosky nedokážu spustiť client-side script, teda Javascript, tak sú chránené pre JS aplikáciami na vyhľadávanie scraperov, iné zariadenia typu Rpi dokážu zaznamenať, pretože pri emulácii prehliadača tieto scripty spustia. Moje dosky sa nezobrazia v Google Analytics, či sledovanom nástroji Smartlook a pod.

Jediná možnosť zaznamenať informácie o doske, že na stránke bola (vykonala GET request)je cez PHP kód, alebo iný serverovo orientovaný jazyk, na ktorý bol request vykonaný.  Je možné pristupovať na rôzne verzie HTTP hlavičiek od 1.0 cez 1.1 a s novšími doskami ESP32 aj na HTTP /2 - podľa podpory cieľového webu. Na mojom webe spracúvavam riadky zdrojového kódu iného webu cez PHP, kde mám vyskladaný requlárny výraz, ktorý som postupne vylepšoval a dnes som schopný zaznamenať tieto druhy e-mailových adries, ktoré sa na weboch vyskytujú v rôznych formátoch, ktoré ich majú uchrániť pred získaním robotmi, scrapermi, crawlermi.

Doskám neprekáža ani obsah za prihlásením, dokážu sa prihlásiť na web ako štandardný používateľ prostredníctvom HTTP Autentizácie - ak to host povoľuje. Postupom času je možné vytvoriť aj pokročilé aplikácie na záznam štatistických údajov z daného webu. Napríklad teplota z niektorej meteo stránky, kurz bitcoinu, štatistika športových zápasov a pracovať s týmito dátami je možné po celé roky.

Jednu stránku môže prehliadať aj niekoľko dosiek súčasne, obecne používam jednu návštevu raz za 6 - 24 hodín, ak sa jedná napríklad o stránky týkajúce sa správ, z čoho je možné následne tvoriť RSS feed, ktorý sa dá umiestniť na môj web, alebo mať podobné využitie. Spracované údaje sa môžu okamžite ukladať do databázy, tabuliek v xml, či csv formáte a tie použiť prakticky ihneď.

Dúfam, že sa vám článok páčil a naučili ste sa jedno z nových využití Arduina, ESP dosiek a otvoreného hardvéru celkovo. Získavanie dát je dnes žiadané a možno tento spôsob získavania dát bude mať za následok v budúcnosti vybudovanie fariem, kde sa podobný hardvér na získavanie využije a spracovanie dát prebehne už v backende danej farmy, ktorá môže s dátami obchodovať, tvoriť miliónové zoznamy e-mailových adries, telefónnych čísel.
*Použitie dát z iného webu a ich sťahovanie musí byť povolené aj z druhej strany :)
Niečo viac o mojom scraperi na NodeMCU: https://arduino.php5.sk/web-scraper.php
Na čítanie obsahu webu stačí použiť príklad Webclienta (Arduino) a upraviť si ho podľa seba: https://www.arduino.cc/en/Tutorial/WebClient
(ESP8266 HTTP): https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266WiFi/examples/WiFiClient/WiFiClient.ino
(ESP8266 HTTPS): https://gist.github.com/9SQ/200c796672b0f4db173e
(ESP32 HTTP): https://github.com/espressif/arduino-esp32/blob/master/libraries/WiFi/examples/WiFiClient/WiFiClient.ino
(ESP32 HTTPS): https://github.com/espressif/arduino-esp32/blob/master/libraries/WiFiClientSecure/examples/WiFiClientSecure/WiFiClientSecure.ino
(ESP32 pod 802.1x HTTP): https://github.com/espressif/arduino-esp32/blob/master/libraries/WiFi/examples/WiFiClientEnterprise/WiFiClientEnterprise.ino
Na podobnom princípe si môžete postaviť vlastné riešenie s celou farmou mikrokontrolérov.
17
Projekty / Ovládanie závlahy cez internet s Arduinom podľa času so zohľadnením počasia
« Poslední příspěvek od martinius96 kdy Listopad 24, 2018, 20:58:35 odpoledne »
Rád by som vás uviedol do projektu, ktorý som realizoval počas tohto roka cez prázdniny. Tvoril som webovo orientovaný systém pre záhradníctvo, ktoré sa špecializuje na predaj a pestovanie rôznych druhov rastlín, stromčekov, kvetov...

Webovo orientovaný systém bol navrhnutý, aby spĺňal tieto požiadavky:
    Záznam teploty, úrovne dažďa, záznam aktivity výstupov
    Riadenie vykurovania/chladenia na základe teploty
    Riadenie závlahy v nastavených časoch, alebo na vyžiadanie so započítaním stavu počasia
    Štatistiky
    Vzdialený reštart dosky
    Logy
    Login systém

Ako riadiaci mikrokontróler sa použilo Arduino Mega, nakoľko Uno bolo na hrane s pamäťou a výrazne sa zasekávalo. Arduino Mega bola výborná voľba vďaka dostatočnému počtu pinov a najmä veľkej pamäti pre program s rozsiahlejšou RAM pamäťou.
Arduino posiela údaje o teplote a daždi na web prostredníctvom Ethernet shieldu Wiznet W5100. Teplota je vyčítaná digitálne zo senzoru DS18B20 a údaj o daždi prostredníctvom analógovej hodnoty. Po odoslaní dát doska spustí PHP skript logiky, čo aktualizuje všetky výstupy.

Doska si následne už len sťahuje stavy ZAP/VYP pre každý výstup, ktorý aplikuje. Na strane mikrokontroléru neprebieha žiadna operácia, ktorá by dosku zaťažovala. Celková odozva systému je do 6 sekúnd. Teplotné čidlo je v sklenníku, kde je nutné udržiavať teplotu. Počas horúcich letných dní sa chladí na nastavenú teplotu s volitelnou hysterézou, počas zimných mesiacov sa vykuruje so stanovenou teplotou a hysterézou.  Zvolenie vykurovania/chladenia je nutné v systéme spraviť manuálne. Je možné manuálne aj chladiť/vykurovať (ZAP/VYP) na dobu neurčitú.

Riadenie okruhov pozostáva zo štyroch fyzických okruhov, ktoré sú riadené na základe času so zvolením dní v týždni, kedy majú tieto časy platiť. Ak nie je tento režim navolený, výstup je stále vypnutý a zapne sa na vyžiadanie používateľa z webu na nastavenú dobu v minútach. Ak počas vyžiadania prší, systém sa vypne a už nezapne. Ak je však nastavený automatický režim s časom a počas tohto času začne pršať, okruh sa vypne a ak prestane pršať pred koncom staveného intervalu, opäť sa zapne.

Do Arduina bol implementovaný watchdog pre bezporuchový chod, kedy je Arduino reštartované, ak sa zasekne. V prípade vypadnutia internetu, alebo nedostupnosti webu, napríklad z dôvodu údržby sú okruhy aj relé kúrenia a chladenia po dvoch minútach automaticky vypnuté do nadviazania spojenia s webom. Po reštarte Arduina sú všetky výstupy vypnuté. Logy zaznamenávajú neúspešné prihlásenie do rozhrania (zlé meno alebo heslo) so zápisom IP adresy klienta, ktorý sa o pripojenie pokúsil. Logy zaznamenávajú aj údaje o neplatných dátach zo senzoru DS18B20 85.00, alebo -127.00, čo sú typické poruchy senzoru v dôsledku zlého zapojenia, chyby CRC.


Súčasťou systému sú aj grafy, kde je možné prezerať vývoj teploty za 24 hodín od momentu načítania grafu a 7 dní dozadu, rovnako aj aktivitu okruhov a aktivitu chladenia/kúrenia. Aktivity sú zaznamenávané každú minútu a teplota raz za 5 minút do databázy (netýka sa práce s real-time dátami). Všetky vstupy/výstupy s ktorými systém pracuje je možné si nazvať podľa seba, pre prehľadnosť, kde sa daný okruh na závlahu používa. Ako výstupy na elmg relé použité v systéme je možné použiť solenoidy, čerpadlá s celkovým výkonom 2,3kW na jedno relé, t.j. 230V 10A. Prípadne pre ovládanie výkonovo nenáročných výstupov je možné použiť aj SSR relé OMRON, ktoré sa predávajú aj s modulmi priamo k Arduinu.

Celý systém je skrytý za loginom, ktorý je taktiež možné meniť z web rozhrania.
Systém je praktický, funkčný a pomáha záhradníctvu vo veciach pravidelného zavlažovania.
Ak vás zaujíma viac info o projekte: https://arduino.php5.sk/ovladanie-zavlahy.php
18
Projekty / DOMINATOR cez Arduino pre Airsoft / Paintball
« Poslední příspěvek od martinius96 kdy Listopad 24, 2018, 20:57:51 odpoledne »
Dnes by som vám rád predstavil už takmer prachom zapadnutý projekt, ktorý som kedysi vytváral pre airsoftový tím. Požiadavka bola naprogramovať DOMINATOR cez Arduino, ktorý by bol univerzálny a spĺňal náležitosti, ktoré by mal mať správny DOMINATOR a trošku ho zmenil, čo sa týka spôsobu ovládania.

Čo ten DOMINATOR vlastne je?
Jedná sa o zariadenie, ktoré sa používa pri hraní herného módu King of the Hill, teda kráľa kopca (bodu). Zariadenie by malo disponovať displejom s dvomi časmi pre oba herné tímy. Tím, ktorý sa k DOMINATORU dostane stlačí tlačidlo a čas sa začne pripočítavať jeho tímu. (Oba časy sú počiatočne nastavené na 00 hodín, 00 minút a 00 sekúnd). Čas sa pripočítava do momentu, kým bod neobsadí iný tím a tlačidlom nezmení pripočítavanie času na svoju stranu. Nakoľko som chcel projekt odlíšiť, využil som RFID čítačku, ktorá dokáže čítať karty a kľúčenky na 13.56MHz (existuje aj ekvivalent na 125kHz) a týmto spôsobom môžeme nahradiť mechanické tlačidlá.


Ako teda systém funguje s RFID čítačkou oproti mechanickým tlačidlám?
RFID čítačka dokáže čítať karty a kľúčenky na spomínanej frekvencii vo vzdialenosti do 3-5cm. Vyžaduje sa teda fyzická prítomnosť niektorého člena tímu. Každý člen tímu má kartu, alebo kľúčenku, ktorej kód je vopred zaznamenaný a uložený do programu. Každý kód je priradený k tímu. Načítanie karty signalizuje aj hlásič - buzzer, ktorý oznamuje zmenu. Čas sa začne pripočítavať tímu, ktorý kartu, alebo kľúčenku priložil. Okrem dvoch tímov som využil aj špeciálne kľúčenky pre organizátora, ktorý dokáže po priložení karty zapauzovať čas v prípade sťažnosti hráča na zásah, zranenie, alebo kvôli inej situácii v hre, ktorá by mohla inému tímu priniesť výhodu. Súčasťou systému je ešte jeden používateľ - tzv. eraser, ktorý dokáže časy vynulovať a zapauzovať zároveň. Používa sa napríklad pri neplatnom odštartovaní hry, neplatnom priložení kľúčenky (napríklad vyradený hráč). Systém nie je limitovaný počtom členov tímu, záleží najmä od pamäťovej náročnosti pre beh programu, nakoľko celý systém pracuje s interným timerom - millisom.

Aký hardvér bol využitý?
Riadiaci mikrokontróler - Arduino Nano pre prototyp/Atmega328P pre hotový projekt
    2x led diódy - indikácia, ktorému tímu sa pripočítava čas (modrá/červená)
    20x4 LCD displej - displej s real-time časmi tímov
    2x relé  - pre pripojenie svetiel na 230V (SSR/elmg.) - napríklad v noci - funkčnosť na základe ledky
    1x hlásič
    1x RFID čítačka RC522 na 13.56MHz
    12x karty/kľúčenky (5x pre tímy, 1x organizátor, 1x eraser)
Princíp programu:
Program pracuje s millisom, čo je procesorový čas od zapnutia. V pravidelných intervaloch, raz za 0.01 sekundy sa vykoná logika systému, ktorá overuje, či sa už niektorému tímu má pripočítavať čas, ak áno, čas sa počíta a vyobrazuje, teda 100x sa vypíše na LCD displej za sekundu, teda 100x refresh/sekunda. Pri využití intervalu 0.001 sekundy bol systém nepresný a komunikácia s rýchlosťou 1000x refresh/sekunda po I2C zbernici na displej nefungovala korektne, nakoľko nejaký čas zaberalo aj samotné čítanie kariet. Knižnica RFID pre čítačku RC522 dokáže prerušením indikovať záznam karty, čo aktivuje hlásič. Na základe výsledku overenia cez jednoduchú if podmienku s adresami kariet (fyzickými) aktivujeme premennú, ktorá pracuje s časom a má v sebe logiku - desatiny, sekundy, minúty a hodiny.

V systéme sú 2 podprogramy, ktoré sú tvorené bool premennými. Každá bool premenná je pre jeden tím. Ak sa nastaví na true, začne sa vykonávať logika pre ten daný tím. Ak sa priloží kľúčenka rovnakého tímu, nič sa nezmení. Ak sa priloží kľúčenka iného tímu, bool pre tím, ktorému sa počítač čas sa zmení na false a pre tím, ktorému sa začne počítať čas na true. Ak kľúčenku priloží organizátor, obe bool premenné sa nastavia na false. Hodnoty - sekundy, minúty a hodiny sú uložené v dynamických globálnych premenných, s ktorými sa vo vnútrie true boolových hodnôt pracuje. Ak kľúčenku priloží eraser, obe bool premenné sa nastavia na false a všetky globálne premenné na 0.
Incializácia premenných

Prevod načítanej karty na jedinečný tvar v DEC tvare + zapnutie hlásiča na 4kHz po dobu 1s

Snippet logiky kariet pre tím 1 - jeho bool premenná nastavená na true

Logika systému bežiaca každých 10ms

Logika systému pre prvý tím:

Vykreslenie výsledkov na displej

Aký je maximálny časový rozsah systému?
Maximálny časový rozsah pri aktuálnom nastavení pozície na LCD displeji je maximálny rozsah 99 hodín, 59 minút, 59 sekúnd. V skutočnosti ale systém dokáže bežať až takmer 50 dní do pretečenia millisu.
Pre koho je systém vhodný?
Systém je vhodný pre tímy, amatérskych hráčov, ktorí si chcú hru prikrášliť, taktiež aj pre niekoľko-dňové akcie typu Fort Benning, možnosť využiť v externých i interných priestoroch, vhodné aj pre športový areál prevádzkujúci Airsoft/Paintball. Nastavenie adries a program sa nahrá iba raz a funguje nepretržite, až ho hráči "zodrú"  I keď... Skôr zničia.. Celý systém je možné osadiť i na DPS. Rozmer závisí najmä od použitého displeja, dá sa použiť 20x4 ako na foto vyššie, alebo 16x2, ktorý dokáže výrazne zmenšiť výsledný rozmer DPS.

Niečo z testovania: - princíp funkčnosti
Video: https://www.youtube.com/watch?v=cx90uJY1UUM
Wiring Arduino pin --> periféria (kompatibilné pre R3 dosky + Nano)

Arduino a prepojenie s LCD s I2C prevodníkom
    A4 --> SDA
    A5 --> SCK/SCL
    5V --> Vcc
    GND --> GND

Arduino a prepojenie s čítačkou RC522
    3.3V --> 3.3V
    GND --> GND
    D9 --> RST
    D10 --> CS
    D11 --> MOSI
    D12 --> MISO
    D13 --> SCK

Arduino a prepojenie hlásiča - v prípade 3-pinového treba priviesť ešte 5V z Arduina
    D5 --> INPUT
    GND --> GND

Arduino a prepojenie  LED + relé
    5V --> 5V relé
    GND --> GND
    D3--> Anóda dióda + relé IN2
    D4 --> Anóda dióda + relé IN1

Knižnice:
RFID - https://github.com/miguelbalboa/rfid
I2C pre LCD - https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library

Ak vás projekt zaujal, navštívte i môj web, kde sa môžete o projekte dozvedieť viac: https://arduino.php5.sk/airsoft-dominator.php
Cieľom článku bolo ukázať využitie Arduina ako herného prvku - DOMINATORA pre extrémne športy typu Airsoft, Paintball, Nerf Wars.
19
Software / Re:Operační systém
« Poslední příspěvek od Maradon kdy Listopad 16, 2018, 05:47:51 dopoledne »
Get a good idea as an example.
20
Hardware / Re:Raspberry a VGA monitor
« Poslední příspěvek od Maradon kdy Listopad 16, 2018, 05:39:50 dopoledne »
Will try to test it.
Stran: 1 [2] 3 4 ... 10