Obsah:

CheminElectrique (dovednostní hra) - SRO2002: 9 kroků
CheminElectrique (dovednostní hra) - SRO2002: 9 kroků

Video: CheminElectrique (dovednostní hra) - SRO2002: 9 kroků

Video: CheminElectrique (dovednostní hra) - SRO2002: 9 kroků
Video: Dungeons Of Edera Test - Review - 3D roguelike Indie Dungeon-Crawler RPG [Немецкий, много субтитров] 2024, Červenec
Anonim
CheminElectrique (dovednostní hra) - SRO2002
CheminElectrique (dovednostní hra) - SRO2002
CheminElectrique (dovednostní hra) - SRO2002
CheminElectrique (dovednostní hra) - SRO2002
CheminElectrique (dovednostní hra) - SRO2002
CheminElectrique (dovednostní hra) - SRO2002

Dnes vám představuji výrobu hry, kterou jsem vytvořil pro školní párty pro svého syna. Ve Francii nazýváme tyto svátky „kermesses“, nevím, zda existují v jiných zemích a jak se jim říká…

V těchto večírcích často existují stejné hry, tomu bych říkal klasické hry, a letos jsem se rozhodl vytvořit modernější verzi jedné z těchto klasických her: „Chemin electrique“nebo „Main chaude“.

Cíl hry je velmi jednoduchý, je tam drát, kterým prochází elektrický proud, poté máte „joystick“složený z kovového kruhu na jeho konci, který prochází kolem elektrického drátu a cílem hry je projít zapojte kabel z jednoho konce na druhý, aniž byste se ho dotkli, jinak zhasne výstražné světlo a/nebo zvuk a vy jste prohráli.

Tradičně neexistuje žádná elektronika k vytvoření této hry, stačí jednoduchá 12V baterie se žárovkou a elektrickým vodičem, ale měl jsem pár skvělých nápadů, jak udělat hru modernější.

Pojďme se tedy podívat, co jsem přidal jako funkčnost!

Krok 1: Funkce

Jak jsem právě řekl, tato hra jednoduše rozsvítí světlo, když se hráč nechtěně dotkne drátu „joystickem“, také se poměrně často stává, že hra při kontaktu vydává zvuk. V mé verzi hry bude celkem 6 bloků 4 LED diod (zelená-žlutá-žlutá-červená), které se rozsvítí současně, bzučák vydávající zvuk a také vibrátor integrovaný v ovladači, který se aktivuje když je kontakt mezi elektrickým vodičem a „joystickem“.

LED diody se postupně rozsvítí ze zelené na červenou v závislosti na tom, jak dlouho trvá kontakt mezi vodičem a ovladačem.

Také jsem přidal výběr úrovně obtížnosti (snadné-normální-obtížné) a také možnost povolit/zakázat vibrátor a zvuk. Hlasitost zvuku lze také nastavit potenciometrem.

Volba obtížnosti je ve skutečnosti jednoduše víceméně dlouhá prodleva mezi okamžikem, kdy dojde ke kontaktu mezi vodičem a joystickem, a okamžikem, kdy se hra začne rozsvěcet/zvonit/vibrovat. Programováním nastavuji předdefinované časy, například ve snadném režimu hra čeká 1 sekundu před spuštěním varování, zatímco v obtížném režimu se varování spustí okamžitě.

Hru jsem navrhl tak, aby se dala snadno rozebrat, spolehlivě a hlavně aby nepředstavovala žádné nebezpečí pro děti, které ji budou používat. Jelikož elektrický vodič protíná proud a je odizolován, musel jsem se ujistit, že nepředstavuje žádné nebezpečí pro uživatele hry.

Krok 2: Zřeknutí se odpovědnosti a další informace

Prohlášení a další informace
Prohlášení a další informace

Prohlášení:

Hru budou napájet 4 baterie 1,5V, celkové napětí 6V, omezuji také proud, který protíná drát, jen na pár mikroampérů. Jsme tedy v oblasti velmi nízkého bezpečnostního napětí (SELV) s extrémně nízkou hodnotou proudu přístupnou uživateli.

Ale pozor, dobře specifikuji, že žádná hodnota elektrického proudu není neškodná, slabý proud může být v určitých případech nebezpečný pro osobu, která je elektrifikovaná. Během vytváření tohoto projektu jsem na to hodně zkoumal, a přestože neexistuje vědecký konsenzus ohledně mezních hodnot, před kterými proud nemá žádný vliv na lidské tělo, proud nějaké mikroampéry, která protíná elektrický kabel, má velmi malý šanci ublížit člověku.

Ale pozor, nebudu moci nést odpovědnost v případě nehody! Při manipulaci s elektrickými vodiči pod napětím je třeba vždy postupovat opatrně, a to i při velmi nízkých hodnotách proudu. Důrazně vám doporučujeme, abyste se co nejvíce informovali o rizicích spojených s elektřinou a o správných opatřeních

Další informace:

Tento projekt funguje velmi dobře a má všechny funkce, které jsem chtěl, ale má některé nedostatky. Když vytvářím elektronický projekt, snažím se, aby vše bylo co nejvíce optimalizováno z hlediska nákladů, počtu komponent, prostoru a hlavně, aby chod celku byl co nejvíce „logický“.

Zatímco jsem dělal tento projekt a po jeho dokončení si myslím, že jsem udělal několik voleb, které nejsou nejlepší, ale tlačil mě čas, měl jsem jen 2 týdny na to, abych udělal všechno od začátku (návrh, programování, objednávání komponent, vytváření struktura, a zejména sestavení všech prvků).

Jak procházím výrobními kroky, uvedu, co si myslím, že by bylo možné optimalizovat, kdybych měl znovu vytvořit tuto hru. Ale opakuji, že projekt je takhle docela funkční, ale jsem perfekcionista…

Také lituji, že jsem nevyfotil více fází projektu, ale raději jsem se projektu věnoval co nejvíce, abych ho mohl dokončit včas.

S tímto projektem jsem spokojený, protože na školní oslavě mého syna měl velký úspěch, tak se pojďme podívat, co je v břiše šelmy;)

Krok 3: Povinnosti

- Musí být napájeno bateriemi (pro bezpečnost a mobilitu)- Hra musí být bezpečná (budou ji používat děti od 2 do 10 let)

- Musí být k dispozici nastavení (volba aktivace zvuku/vibrátoru a volba obtížnosti)

- Nastavení musí být snadno srozumitelné a snadno přístupné (je třeba předpokládat, že osoba, která se během večírku postará o hru, neví nic o elektronice/technice)

- Zvuk musí být dostatečně hlasitý (hra se bude používat venku v poměrně hlučném prostředí).

- Systém musí být odnímatelný na maximum pro skladování a snadno vyměnitelné fyzické části (joystick, elektrický vodič …)

- Musí být pro děti atraktivní (to je hlavní cíl, pro který hrají …:))

Krok 4: Součásti (kusovník)

Pro případ:- dřevěné prkno

- malování

- některé nástroje pro vrtání a řezání …

Pro „joystick“:- 1 vibrátor

- kabelový konektor 3,5 (stereo)

- konektor jack 3,5 (stereo)

- elektrický vodič 2,5 mm²

- malá PVC trubka

Elektronické komponenty:

- 16F628A

- 12F675

- ULN2003A

- 2 x 2N2222A

- Zenerova dioda 2,7V

- 12 modrých LED

- 6 zelených LED

- 6 červených LED

- 12 žlutých LED

- 5 rezistorů 10K

- 2 odpory 4,7K

- 1 odpor 470 ohmů

- 6 rezistorů 2,2K

- 6 rezistorů 510 ohmů

- 18 odporů 180 ohmů

- 1 potenciometr 1K

- 1 spínač ON-OFF

-2 spínač ON-OFF-ON

- 1 bzučák

- 1 DC konvertor zesílení

- elektrický vodič 2,5 mm²

- 2 banánkové konektory samec

- 2 banánkové konektory samice

- konektor jack 3,5 (stereo)

- držák na 4 baterie LR6

- některé desky pro prototypování DPS

Elektronické nástroje: - Programátor pro vložení kódu do mikročipu 16F628A a 12F675 (např. PICkit 2) -

Doporučuji vám použít Microchip MPLAB IDE (freeware), pokud chcete upravit kód, ale budete také potřebovat kompilátor CCS (shareware). Můžete také použít jiný kompilátor, ale v programu budete potřebovat mnoho změn.

Ale já vám poskytnu. HEX soubory, abyste je mohli vkládat přímo do mikrokontrolérů.

Krok 5: Analýza funkcí

Analýza funkcí
Analýza funkcí
Analýza funkcí
Analýza funkcí

Mikrokontrolér 16F628A (Func1): Je to „mozek“celého systému, je to tato součást, která detekuje polohu přepínačů nastavení, která detekuje, zda je kontakt mezi „joystickem“a elektrickým vodičem, a která spouští varování (světlo, zvuk a vibrátor). Vybral jsem si tuto komponentu, protože mám docela velkou zásobu a protože jsem zvyklý s ní programovat, a protože jsem neměl moc času na tento projekt, raději jsem vzal nějaký materiál, který dobře znám.

Rozhraní napájení ULN2003A (Func2): Tato součást slouží jako napájecí rozhraní mezi 16F628A a obvody, které spotřebovávají více energie, než může poskytnout mikrokontrolér (LED, bzučák, vibrátor).

Ovládání bzučáku (Func3):

PIC 16F628A nemůže poskytnout dostatek proudu pro napájení bzučáku, zejména proto, že bzučák musí být napájen zesilovačem, aby se zvýšil jeho zvukový výkon.

Skutečně, protože sestava je dodávána v 6V a že bzučák vyžaduje 12 V, aby fungoval na maximum, používám převodník k získání dobrého napětí. Takže používám tranzistor jako přepínač (režim komutace) k ovládání napájení bzučáku. Komponenta, kterou jsem vybral, je klasický 2N2222A, který je pro toto použití velmi vhodný.

Zde jsou funkce bzučáku: 12V 25mA, to znamená, že potřebuje teoretický výkon P = UI = 12 x 25mA = 0,3W

Z konvertoru stejnosměrného proudu je tedy požadován výkon 0,3 W, modul DC boost má účinnost 95%, takže dochází ke ztrátě asi 5%. Proto je na vstupu převodníku vyžadován minimální výkon 0,3 W + 5% = 0,315 W.

Nyní můžeme odvodit proud Ic, který protne tranzistor Q1:

P = U * Ic

Ic = P / U

Ic = P / Vcc-Vcesat

Ic = 0, 315 / 6-0, 3

Ic = 52mA

Nyní vypočítáme základní odpor, který umožní dobré nasycení tranzistoru:

Ibsatmin = Ic / Betamin

Ibsatmin = 52mA / 100

Ibsatmin = 0,5 mA

Ibsat = K x Ibsatmin (volím koeficient sytosti K = 2)

Ibsat = 2 x Ibsatmin

Ibsat = 1mA

R12 = Ur12 / Ibsat

R12 = Vcc - Vbe

R12 = (6 - 0,6) / 1mA

R12 = 5,4K

Normalizovaná hodnota (E12) pro R12 = 4,7K

Ovládání vibrátorem (Func4):

Pokud jde o bzučák, 16F628A nemůže dodávat dostatečný proud vibrátoru, který vyžaduje proud 70mA, navíc musí být dodáván na maximum s napětím 3V. Rozhodl jsem se tedy použít zenerovu diodu spojenou s tranzistorem k výrobě regulátoru napětí 2,7 V pro vibrátor. Činnost asociace zener-tranzistor je jednoduchá, zener fixuje napětí 2,7 V na základně tranzistoru a tranzistor toto napětí „kopíruje“a dodává energii.

Proud, který bude procházet tranzistorem Q2, se tedy rovná Ic = 70 mA

Nyní vypočítáme základní odpor umožňující dobře nasytit tranzistor:

Ibsatmin = Ic/Betamin

Ibsatmin = 70mA / 100

Ibsatmin = 0, 7mA

Ibsat = K x Ibsatmin (volím koeficient sytosti K = 2) Ibsat = 2 x Ibsatmin

Ibsat = 1, 4mA

Minimální proud v zenerově diodě musí být pro svoji činnost alespoň Iz = 1mA, takže můžeme odvodit proud procházející rezistorem R13:

Ir13 = Ibsat + Iz

Ir13 = 1, 4mA + 1mA

Ir13 = 2, 4mA

Aby se zajistilo, že proud zenerovy diody Iz je vždy ve správném provozním rozsahu, použije se bezpečnostní rezerva s: Ir13_fixed = 5mA (zcela libovolná volba hodnoty)

Nyní vypočítáme hodnotu R13:

R13 = U13 / Ir13_ opraveno

R13 = VCC-Vz / Ir13_ opraveno

R13 = 6-2, 7 / 5mA

R13 = 660 ohmů

Normalizovaná hodnota (E12) pro R13 = 470 ohmů

Mohl jsem si vybrat 560 ohmů v sérii E12, ale neměl jsem tuto hodnotu, takže jsem vzal předchozí hodnotu…

Lze optimalizovat

Když jsem dělal návrh projektu, nemyslel jsem na Vbe tranzistoru, takže místo 2,7 V pro napájení vibrátoru mám pouze 2,7 V-0,6 V = 2,1 V. Měl jsem například vzít zener 3,3 V, vibrátor by byl o něco silnější, i když je výsledek docela uspokojivý, nevyužívám všechnu sílu vibrátoru …

Výstražné LED diody (Func5):

LED diody jsou umístěny svisle, jako by tvořily měřidlo: červené

Žlutá 2

Žlutá 1

Zelená

Když je detekován kontakt mezi „joystickem“a elektrickým vodičem, postupně se rozsvítí ze zelené na červenou.

LED diody jsou připojeny k VCC ve skupinách podle jejich barvy:

- Všechny anody zelených LED jsou spojeny dohromady

- Všechny anody LED diody yellow1 jsou spojeny dohromady

- Všechny anody žlutých LED 2 jsou spojeny dohromady

- Všechny anody červených LED jsou spojeny dohromady

Mikrokontrolér je poté aktivuje uzemněním jejich katody přes ULN2003A.

Poznámka:

Na schématu je pouze jedna LED každé barvy se symbolem „X6“vedle ní, protože používám bezplatnou verzi Cadence Capture a jsem omezen maximálním počtem komponent na diagram, takže jsem nemohl nechat všechny LED diody zobrazit …

Správa úrovně zvuku bzučáku (Func6):

Je to jednoduše potenciometr v sérii s bzučákem, který umožňuje upravit hlasitost zvuku.

LED diody „dekorace“(Func7 - schéma/strana 2):

Účelem těchto LED je vytvořit honičku za dekorací hry. Rozsvítí se zleva doprava. K dispozici je celkem 12 modrých LED: 6 na začátku tratě představuje startovní čáru a 6 na konci trati představuje cílovou čáru

Rozhodl jsem se pro tyto LED diody provést multiplexování displeje, protože k jejich objednání by bylo zapotřebí mnohem více pinů (6 pinů s mutliplexováním, 12 pinů bez multiplexování).

Kromě toho je v jejich datovém listu uvedeno, že Vf je 4V, proto jsem nemohl zapojit 2 LED diody do série (VCC je 6V) a nemohl jsem je zapojit ani paralelně, protože TEORIKÁLNĚ potřebují 20 mA a že mikrokontrolér může dodávat pouze 25 mA max. na pin, proto by 40mA nebylo možné.

Abych to shrnul, nemohl jsem vytvořit asociaci LED (zapojených do série nebo paralelně) a na mikrokontroléru jsem neměl dostatek pinů, které by je poháněly… Takže jsem se rozhodl použít jiný mikrokontrolér (12F675) s 8 piny, abych mohl Díky tomuto mikrokontroléru ovládám aktivaci LED diod nastavením vysoké logické úrovně (VCC) na jejich anodách a k provádění multiplexování používám PIC 16F628A a ULN2003A.

Lze optimalizovat:

Při provádění testů na prkénku jsem si uvědomil, že pro stejný proud I = 20mA mají LED diody velký rozdíl v jasu podle jejich barev. Například s 20mA byly modré LED mnohem jasnější než zelené. Nepřišlo mi estetické, že některé LED diody byly mnohem jasnější než jiné, a tak jsem měnil odpor v sérii s modrými LED diodami, dokud jsem nedostal stejný světelný výkon jako zelené LED diody napájené proudem 20 mA.

A uvědomil jsem si, že modré LED diody mají stejný jas jako zelené LED diody s proudem pouze 1mA! Což znamená, že kdybych to věděl, mohl jsem se rozhodnout dát modré LED do série (ve skupinách po 2). A potřeboval jsem pouze 3 další piny na 16F675A (které jsou k dispozici), takže jsem nepotřeboval přidat další mikrokontrolér věnovaný správě těchto LED.

Ale v této době návrhu jsem to nevěděl, někdy existuje nezanedbatelný rozdíl mezi charakteristikami technické dokumentace a skutečnými charakteristikami komponent…

Omezení proudu (Func0):

Tuto část jsem v době návrhu vůbec neplánoval, přidal jsem ji až na samý konec projektu, když už bylo vše hotové. Na začátku jsem jednoduše připojil VCC přímo k elektrickému vodiči jednoduše pomocí stahovacího odporu, abych zapojil vstup mikrokontroléru, který detekuje kontakt se zemí.

Ale jak jsem řekl dříve, provedl jsem spoustu průzkumů, abych zjistil, zda proud protékající elektrickým vodičem může být nebezpečný, pokud by došlo ke kontaktu mezi vodičem a lidským tělem.

Na toto téma jsem nenašel přesnou odpověď, takže jsem raději přidal odpor mezi VCC a elektrickým vodičem, abych co nejvíce omezil proud procházející vodičem.

Chtěl jsem tedy dát odpor s vysokou hodnotou, abych snížil proud na nejnižší možnou hodnotu, ale protože jsem již projekt dokončil, a proto všechny svařeny a zapojeny různé karty, nemohl jsem již odstranit pulldown odpor 10Kohm. Proto jsem musel zvolit hodnotu odporu, abych získal 2/3 VCC na pinu BR0 (pin 6 16F628A), aby mikrokontrolér detekoval, i když je to vysoká logická úroveň, když je kontakt mezi joystickem a elektrickým vodičem. Pokud bych přidal příliš velký odpor, měl bych riziko, že mikrokontrolér nezjistí změnu mezi stavem nízké logiky a stavem vysoké logiky.

Takže jsem se rozhodl přidat odpor 4,7 K, abych získal napětí asi 4 V na kolíku, když je kontakt mezi joystickem a elektrickým vodičem. Pokud k tomu připočteme odpor lidské kůže v případě kontaktu elektrického drátu s rukou, například proud procházející tělem, bude menší než 1 mA.

A i když se člověk dotkne drátu, bude v kontaktu pouze s kladným pólem baterií a ne mezi kladným a záporným pólem, ale jak jsem řekl v prohlášení, VŽDY věnujte pozornost tomu, co děláte s elektrickým proudem.

Poznámka: Dlouho jsem váhal s přidáním tohoto odporu, protože elektrický proud, který je případně přístupný uživateli (přes elektrický vodič), je slabý a že sestava je napájena baterií pouze s napětím 6 V a že je možná zcela zbytečné omezit proud z baterií, ale protože je to pro děti, raději jsem přijal co nejvíce opatření.

Krok 6: Programování

Programování
Programování

Programy jsou napsány v jazyce C s MPLAB IDE a kód je kompilován pomocí kompilátoru CCS C.

Kód je plně komentovaný a poměrně snadno pochopitelný, ale rychle vysvětlím hlavní funkce obou kódů (pro 16F628A a 12F675).

První program -CheminElectrique.c- (16F628A):

Správa multiplexování LED: Funkce: RTCC_isr ()

Používám timer0 mikrokontroléru k přetečení každé 2 ms, což umožňuje řídit multiplexování LED diod.

Správa detekce kontaktů:

Funkce: void main ()

Toto je hlavní smyčka, program detekuje, zda je mezi joystickem a elektrickým vodičem kontakt a podle doby kontaktu aktivuje LED/bzučák/vibrátor.

Obtížná správa nastavení:

Funkce: dlouhá GetSensitivityValue ()

Tato funkce slouží ke kontrole polohy přepínače, který umožňuje zvolit obtížnost a vrací proměnnou představující dobu čekání před aktivací alarmů.

Správa nastavení alarmu:

Funkce: int GetDeviceConfiguration ()

Tato funkce se používá ke kontrole polohy spínače, který vybírá aktivaci bzučáku a vibrátoru a vrací proměnnou představující alarmy, které musí být aktivní.

Druhý program -LedStartFinishCard.c- (12F675):

Správa aktivace modré LED: Funkce: neplatné hlavní ()

Toto je hlavní smyčka programu, aktivuje LED diody jednu za druhou zleva doprava (pro vytvoření chase)

Níže naleznete zip soubor projektu MPLAB:

Krok 7: Pájení a montáž

Pájení a montáž
Pájení a montáž
Pájení a montáž
Pájení a montáž
Pájení a montáž
Pájení a montáž
Pájení a montáž
Pájení a montáž

„Fyzická“část: Začal jsem vytvořením krabice, a tak jsem nařezal dřevěná prkna o tloušťce asi 5 mm nahoře a po stranách a vybral prkno silné 2 cm, aby dno mělo větší váhu a aby se hra nehýbala.

Sestavil jsem desky mezi tím, že jsem byl lepidlem na dřevo, nedal jsem žádné šrouby ani hřebíky a je to opravdu pevné!

Aby byla hra atraktivnější než jednoduchá malovaná krabice, požádal jsem svoji manželku, aby vytvořila dekor pro horní část krabice (protože grafický design mi opravdu vadí …). Požádal jsem ho, aby vytvořil klikatou silnici (aby měl vztah k drátu …) S plechovkami/panelem na okrajích křivek, abych mohl začlenit své výstražné LED diody. Modré LED diody dekorací budou jako startovní a cílová čára. Vytvořila scenérii ve stylu „Route 66“se silnicí, která protíná jakousi poušť, a po několika dojmech, abychom našli dobré umístění LED diod, jsme byli s výsledkem spíše spokojeni!

Poté jsem vyvrtal otvory pro všechny konektory, přepínače a samozřejmě LED diody.

Elektrický vodič je zkroucený, aby vytvořil cik-cak, aby se zvýšila obtížnost hry, a každý konec je zašroubován do konektoru s banánem. Konektory budou poté připojeny k samičím banánkovým konektorům, které jsou připevněny ke krytu pouzdra.

Elektronická část:

Elektronickou část jsem rozdělil na několik malých prototypových karet.

Existují:

- karta pro 16F628A

- karta pro 12F675

- 6 výstražných LED karet

- 4 karty pro dekorativní LED diody (startovní čára a cílová čára)

Všechny tyto karty jsem upevnil pod víko krabice a do spodní části krabice jsem vložil držák baterie s bzučákem a modulem DC boost.

Všechny elektronické prvky jsou spojeny ovinovacími dráty, seskupil jsem je co nejvíce podle jejich směru a stočil jsem je k sobě a zafixoval horkým lepidlem tak, aby byly co nejčistší a hlavně aby tam byly žádné falešné kontakty nebo vodiče, které se odpojují. Trvalo mi opravdu hodně času správně odstřihnout/odizolovat/svařit/položit dráty!

Část „Joystick“:

Pro joystick jsem vzal malý kousek PVC trubičky (průměr 1,5 cm a délka 25 cm). A pak jsem připájel konektor samice jacku takto:

- terminál připojený k vodiči na konci joysticku (ContactWire na schématu)

- svorka připojená ke kladnému pólu vibrátoru (2A na konektoru J1A na schématu)

- svorka připojená k zápornému pólu vibrátoru (1A na konektoru J1A na schématu)

Poté jsem integroval vodič, vibrátor a konektor jack do trubice a upevnil zvedák horkým lepidlem, abych se ujistil, že se při připojování kabelu jacku mezi joystickem a druhou částí systému nic nepohybuje.

Krok 8: Video

Krok 9: Závěr

Nyní je projekt u konce, bylo opravdu skvělé udělat tento projekt, i když lituji, že jsem na to měl velmi málo času. Umožnilo mi to přijmout novou výzvu;) Doufám, že tato hra bude fungovat mnoho let a že pobaví mnoho dětí, které oslaví konec školního roku!

Poskytuji archivní soubor, který obsahuje všechny dokumenty, které jsem pro projekt použil/vytvořil.

Nevím, jestli bude můj styl psaní správný, protože částečně používám automatický překladač, abych šel rychleji, a protože nemluvím nativně anglicky, myslím si, že některé věty budou pravděpodobně divné pro lidi, kteří píší anglicky perfektně.

Pokud máte k tomuto projektu jakékoli dotazy nebo připomínky, dejte mi prosím vědět!

Doporučuje: