Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2018:goal-counter

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
2018:goal-counter [2019/01/14 16:30]
Marek Vitula [Video a fotografie]
2018:goal-counter [2019/01/14 21:12] (aktuální)
Marek Vitula [Závěr]
Řádek 54: Řádek 54:
 T0H Symbol, doba trvání 364 ns leží v povoleném intervalu 200 až 500 ns. T0H Symbol, doba trvání 364 ns leží v povoleném intervalu 200 až 500 ns.
  
-{{:​2018:​t0h.png?​400| T0H Symbol}}+{{:2018:​goal-counter:​t0h.png?​400| T0H Symbol}}
  
 ---- ----
Řádek 63: Řádek 63:
 Vzhledem k malé velikosti míčku a malému rozměru brankoviště připadají v úvahu optické metody detekce s pomocí fototranzistoru a nějakého zdroje světla. Protože je brankoviště ohraničené,​ tak bude dobré použít světlo směrové. ​ Vzhledem k malé velikosti míčku a malému rozměru brankoviště připadají v úvahu optické metody detekce s pomocí fototranzistoru a nějakého zdroje světla. Protože je brankoviště ohraničené,​ tak bude dobré použít světlo směrové. ​
  
-Zvolil jsem proto laserovou diodu, která umožňuje přesně ohraničit brankoviště a zároveň je s ní možně měřit rychlost průletu míčku brankou. Zároveň ale je nutné pokrýt větší plochu, takže použijeme linkovou fresnelovu čočku, která nám z bodu vytvoří linku a tak můžeme pokrýte celé brankoviště i v případě že se míček prolétne vzduchem.+Zvolil jsem proto laserovou diodu, která umožňuje přesně ohraničit brankoviště a zároveň je s ní možně měřit rychlost průletu míčku brankou. ​
  
-Na druhé straně brankoviště ​je umístěno pole fototranzistorů, zvolil jsem 6 paralelně zapojených fototranzistorů v pouzdře SMD 1206 napájených ​do za sebou do pájivého pole.+Zároveň ale je nutné pokrýt větší plochu, takže můžeme použít linkovou fresnelovu čočkukterá nám z bodu vytvoří linku a tak můžeme pokrýte celé brankoviště i případě žse míček prolétne vzduchem. 
 + 
 +Ve vytvořeném prototypu jsem ale použil pouze jednoduchý laser, protože objednaný laser s fresnelovou čočkou ​došel požkozený.
  
 Softwarová implementace detekce je závislá na třídách InterruptIn a Timer v mbed. InterruptIn poskytuje obsluhu přerušení na GPIO a Timer je jednoduchá implementace časovače. Softwarová implementace detekce je závislá na třídách InterruptIn a Timer v mbed. InterruptIn poskytuje obsluhu přerušení na GPIO a Timer je jednoduchá implementace časovače.
  
 Po detekci sestupné hrany je vytvořeno přerušení,​ které spustí časovač a po detekci vzestupné hrany je časovač zastaven, je ověřeno jestli pulz netrval déle než 2 vteřiny a pokud ne, je to prohlášeno za gól a čítač skóre je inkrementován. Po detekci sestupné hrany je vytvořeno přerušení,​ které spustí časovač a po detekci vzestupné hrany je časovač zastaven, je ověřeno jestli pulz netrval déle než 2 vteřiny a pokud ne, je to prohlášeno za gól a čítač skóre je inkrementován.
 +
 +Také je nutné ošetřit případ, kdy se míček odrazí od zadní strany brankoviště,​ aby nebyl gól započítán dvakrát. Ukládám si proto i čas průletu předchozího gólu. Gól je uznán pouze pokud doba mezi dvěma góly není kratší jak půl vteřiny.
 +
 +
  
 ==== Měření rychlosti průletu míčku bránou ====  ==== Měření rychlosti průletu míčku bránou ==== 
Řádek 111: Řádek 117:
  
    
-==== Zdrojový kód aplikace ====+==== Zdrojový kód aplikace ​a dokumentace ​====
  
-Knihovna GoalCounter pro Mbed zajišťující počítání gólů je k dispozici zde: https://​os.mbed.com/​users/​nxf46245/​code/​GoalCounter/​ +  * Knihovna GoalCounter pro Mbed zajišťující počítání gólů je k dispozici zde: https://​os.mbed.com/​users/​nxf46245/​code/​GoalCounter/​ 
-Dokumentace:​ https://​os.mbed.com/​users/​nxf46245/​code/​GoalCounter/​docs/​tip/​+  ​* ​Dokumentace ​knihovny: https://​os.mbed.com/​users/​nxf46245/​code/​GoalCounter/​docs/​tip
 +  * Celý zdrojový kód aplikace: https://​os.mbed.com/​users/​nxf46245/​code/​goal_counter_project/
  
-TODO  +===== Video a fotografie ​=====
-==== Video a fotografie ====+
 {{:​2018:​goal-counter:​img6.jpg?​400|}}{{:​2018:​goal-counter:​img5.jpg?​400|}}{{:​2018:​goal-counter:​img3.jpg?​400|}}{{:​2018:​goal-counter:​img1.jpg?​400|}} {{:​2018:​goal-counter:​img6.jpg?​400|}}{{:​2018:​goal-counter:​img5.jpg?​400|}}{{:​2018:​goal-counter:​img3.jpg?​400|}}{{:​2018:​goal-counter:​img1.jpg?​400|}}
-TODO +{{ youtube>​qLfhL_8Cpjo?​medium ​}} Video demonstrující animaci vítěze
-{{ youtube>small:qLfhL_8Cpjo }} +
 ==== Vylepšení ==== ==== Vylepšení ====
 +Dostal se mi do ruk poměrně zajímavý vývojový kit NXP OM40006 obsahující mikrokontrolér LPC54000 a také displej s dotekovou vrstvou, kde by se dala implementovat grafická vrstva pro obsluhu počítadla. Na fotografii níže je demo aplikace návrhu počítadla.
  
-TODO LPC displej +{{:2018:​goal-counter:​lpc.jpg?400|}}
-===== Zdroje ===== +
-Erich Styger, popis hardwarové části  +
- https://​mcuoneclipse.com/​2015/​08/​01/​tutorial-adafruit-ws2812b-neopixels-with-the-freescale-frdm-k64f-board-part-1-hardware/​+
  
-Brian Daniels, WS2812 +===== Závěr =====
-https://​os.mbed.com/​users/​bridadan/​code/​WS2812/​+
  
 +Navrhované zařízení bylo sestaveno na nepájivém poli a experimentálně vyzkoušeno na hracím stole stolního fotbalu. Avšak pro praktické použití takového počítadla je nutné vymyslet jak senzory zabudovat do stolu aby nepřekážely při hře.
 +
 +Při návrhu a programování se také projevily některé nedostatky zvolené platformy Mbed a to zejména horší debugování a malá podpora hardwarových perifierií a také občasná neaktuálnost dokumentace API. Nicméně platforma je to zajímavá a to zejména z důvodu integrace téměř plnohodnotného IDE do webové stránky.
 +===== Zdroje =====
 +  - Erich Styger, popis hardwarové části ​  ​https://​mcuoneclipse.com/​2015/​08/​01/​tutorial-adafruit-ws2812b-neopixels-with-the-freescale-frdm-k64f-board-part-1-hardware/​
 +  - Brian Daniels, WS2812 https://​os.mbed.com/​users/​bridadan/​code/​WS2812/​
2018/goal-counter.1547479820.txt.gz · Poslední úprava: 2019/01/14 16:30 autor: Marek Vitula