Innehållsförteckning:

CheminElectrique (skills game) - SRO2002: 9 steg
CheminElectrique (skills game) - SRO2002: 9 steg

Video: CheminElectrique (skills game) - SRO2002: 9 steg

Video: CheminElectrique (skills game) - SRO2002: 9 steg
Video: TSP #36 - Keithley 2450 Source Measure Unit (SMU) Review and Experiments 2024, Juli
Anonim
CheminElectrique (skills game) - SRO2002
CheminElectrique (skills game) - SRO2002
CheminElectrique (skills game) - SRO2002
CheminElectrique (skills game) - SRO2002
CheminElectrique (skills game) - SRO2002
CheminElectrique (skills game) - SRO2002

Idag presenterar jag för dig ett spel som jag gjorde för skolårsavslutningen för min son. I Frankrike kallar vi dessa festivaler för "kermessor", jag vet inte om de finns i andra länder och vad de kallas …

I dessa fester finns det ofta samma spel, det är vad jag skulle kalla klassiska spel, och i år bestämde jag mig för att göra en mer modern version av ett av dessa klassiska spel: "Chemin electrique" eller "Main chaude".

Målet med spelet är väldigt enkelt, det finns en tråd där en elektrisk ström passerar, du har sedan en "joystick" som består av en metallcirkel i dess ände som passerar runt den elektriska tråden och målet med spelet är att korsa tråd från ena änden till den andra utan att vidröra den annars slocknar en varningslampa och/eller ljud och du har tappat.

Traditionellt finns det inte riktigt någon elektronik för att skapa det här spelet, ett enkelt 12V -batteri med en glödlampa och lite elektrisk kabel räcker men jag hade några häftiga idéer för att göra spelet mer modernt.

Så låt oss se vad jag lade till som funktionalitet!

Steg 1: Funktioner

Som jag just sa tänds det här spelet helt enkelt när en spelare oavsiktligt vidrör tråden med "joysticken", det händer också ganska ofta att spelet ger ett ljud under kontakt. I min version av spelet kommer det att finnas totalt 6 block med 4 lysdioder (grön-gul-gul-röd) som tänds samtidigt, en summer som kommer att producera ett ljud och även en vibrator integrerad i kontrollen som aktiveras när det är kontakt mellan den elektriska ledningen och "joysticken".

Lysdioderna tänds gradvis från grönt till rött beroende på hur länge kontakten mellan tråden och styrenheten varar.

Jag lade också till ett urval av svårighetsgraden (lätt-normalt-svårt) samt möjligheten att aktivera/inaktivera vibratorn och ljudet. Ljudvolymen kommer också att justeras med en potentiometer.

Valet av svårighet är i själva verket helt enkelt en mer eller mindre lång fördröjning mellan det ögonblick då det finns en kontakt mellan tråden och joysticken och det ögonblick då spelet börjar lysa/ringa/vibrera. Jag ställde in fördefinierade tider genom att programmera, till exempel i lättläge väntar spelet 1 sekund innan varningar utlöses, medan i svårt läge utlöses varningarna direkt.

Jag utformade spelet så att det är lätt att demontera, pålitligt och framför allt att det inte utgör någon fara för de barn som kommer att använda det. Eftersom den elektriska ledningen korsas av en ström och att den är avskalad, var jag tvungen att se till att den inte utgör någon fara för användarna av spelet.

Steg 2: Ansvarsfriskrivning och ytterligare information

Ansvarsfriskrivning och ytterligare information
Ansvarsfriskrivning och ytterligare information

Varning:

Spelet kommer att drivas av 4 batterier på 1,5V, en total spänning på 6V, jag begränsar också strömmen som korsar tråden till bara några mikroampere. Vi är därför inom området för mycket låg säkerhetsspänning (SELV) med ett extremt lågt strömvärde tillgängligt för användaren.

Men uppmärksamhet jag specificerar väl att inget värde av elektrisk ström är ofarligt, en svag ström kan i vissa fall vara farlig för den som är elektrifierad. Jag forskade mycket om detta under skapandet av detta projekt, och även om det inte finns någon vetenskaplig konsensus om gränsvärdet före vilket ström inte har någon inverkan på människokroppen har strömmen hos någon mikroampere som korsar elkabeln väldigt lite chans att skada en person.

Men uppmärksamhet jag kommer inte att kunna hållas ansvarig vid olycka! Försiktighet måste alltid iakttas vid hantering av strömförande elektriska ledare, även vid mycket låga strömvärden. Jag rekommenderar dig starkt att informera dig själv så mycket som möjligt om riskerna med el och de goda försiktighetsåtgärderna

Vidare information:

Detta projekt fungerar mycket bra och har alla funktioner jag ville ha men det har några brister. När jag skapar ett elektroniskt projekt försöker jag att allt är så optimerat som möjligt när det gäller kostnad, antal komponenter, utrymme och särskilt att driften av helheten är så "logisk" som möjligt.

Medan jag gjorde detta projekt och efter att ha avslutat det tror jag att det finns några val jag gjorde som inte är de bästa men jag blev pressad av tiden, jag hade bara 2 veckor på mig att göra allt från grunden (design, programmering, beställning av komponenter, skapa struktur, och särskilt montering av alla element).

Jag kommer att ange när jag går igenom tillverkningsstegen vad jag tror kan optimeras om jag måste skapa det här spelet igen. Men jag upprepar att projektet är ganska funktionellt så, men jag är perfektionistisk …

Jag beklagar också att jag inte tagit fler bilder på projektets olika skeden, men jag föredrog att ägna mig så mycket som möjligt åt projektet för att kunna slutföra det i tid.

Jag är nöjd med det här projektet eftersom det var en stor framgång på min sons skolfest, så låt oss se vad som finns i odjurets mage;)

Steg 3: Skyldigheter

- Måste vara batteridriven (för säkerhet och rörlighet)- Spelet måste vara säkert (det kommer att användas av barn från 2 till 10 år)

- Inställningar måste vara tillgängliga (val av ljud/vibratoraktivering och svårighetsgrad)

- Inställningarna måste vara enkla att förstå och lättillgängliga (det måste antas att personen som kommer att ta hand om spelet under festen inte vet något om elektronik/teknik)

- Ljudet måste vara tillräckligt högt (spelet kommer att användas utomhus i en ganska bullrig miljö).

- Systemet måste vara maximalt avtagbart för lagring och lätt utbytbara fysiska delar (joystick, elektrisk ledning …)

- Måste vara attraktivt för barn (det är huvudmålet de spelar för …:))

Steg 4: Komponenter (BOM)

För fallet:- träplanka

- målning

- några verktyg för att borra och skära ….

För "joystick":- 1 vibrator

- kabeluttag 3,5 (stereo)

- jackkontakt 3.5 (stereo)

- elektrisk kabel 2,5 mm²

- ett litet PVC -rör

Elektroniska komponenter:

- 16F628A

- 12F675

- ULN2003A

- 2 x 2N2222A

- Zenerdiod 2,7V

- 12 blå LED

- 6 gröna lysdioder

- 6 röda lysdioder

- 12 gula lysdioder

- 5 motstånd 10K

- 2 motstånd 4.7K

- 1 motstånd 470 ohm

- 6 motstånd 2.2K

- 6 motstånd 510 ohm

- 18 motstånd 180 ohm

- 1 potentiometer 1K

- 1 PÅ / AV-omkopplare

-2 PÅ-AV-PÅ-omkopplare

- 1 summer

- 1 DC boost -omvandlare

- elektrisk kabel 2,5 mm²

- 2 banankontakter hane

- 2 banankontakter hona

- jackkontakt 3.5 (stereo)

- hållare för 4 LR6 -batterier

- några PCB -prototyper

Elektroniska verktyg: - En programmerare för att injicera koden i ett mikrochip 16F628A och 12F675 (t.ex. PICkit 2) -

Jag råder dig att använda Microchip MPLAB IDE (freeware) om du vill ändra koden men du kommer också att behöva CCS Compiler (shareware). Du kan också använda en annan kompilator men du kommer att behöva många ändringar i programmet.

Men jag kommer att ge dig. HEX -filer så att du kan injicera dem direkt i mikrokontroller.

Steg 5: Funktionsanalys

Funktionsanalys
Funktionsanalys
Funktionsanalys
Funktionsanalys

Mikrokontroller 16F628A (Func1): Det är "hjärnan" i hela systemet, det är denna komponent som detekterar inställningarna för inställningsomkopplare, som upptäcker om det finns kontakt mellan "joysticken" och den elektriska ledningen, och som utlöser varningar (ljus, ljud och vibrator). Jag valde den här komponenten för att jag har ett ganska stort lager och för att jag är van att programmera med det, och eftersom jag inte hade mycket tid att göra det här projektet föredrog jag att ta lite material som jag känner väl.

Effektgränssnitt ULN2003A (Func2): Denna komponent fungerar som ett kraftgränssnitt mellan 16F628A och kretsarna som förbrukar mer energi än mikrokontrollern kan tillhandahålla (LED, summer, vibrator).

Summerkontroll (Func3):

PIC 16F628A kan inte ge tillräckligt med ström för att driva summern, särskilt eftersom summern måste drivas via en boost -omvandlare för att öka dess ljudeffekt.

Eftersom enheten levereras i 6V och att summern kräver 12V för att fungera maximalt använder jag en omvandlare för att få bra spänning. Så jag använder en transistor som omkopplare (kommuteringsläge) för att styra summerns strömförsörjning. Komponenten jag valde är en klassisk 2N2222A som är mycket lämplig för denna användning.

Här är summerns funktioner: 12V 25mA, det betyder att den behöver en teoretisk effekt på P = UI = 12 x 25mA = 0,3W

Så det finns ett effektbehov på 0,3 W från DC -boost -omvandlaren, DC -boost -modulen har en effektivitet på 95% så det är cirka 5% förlust. Därför krävs en minsta effekt på 0,3W + 5% = 0,315W vid omvandlarens ingång.

Vi kan nu härleda strömmen Ic som kommer att passera transistorn Q1:

P = U * Ic

Ic = P / U

Ic = P / Vcc-Vcesat

Ic = 0, 315 / 6-0, 3

Ic = 52mA

Vi beräknar nu basmotståndet så att transistorn kan vara välmättad:

Ibsatmin = Ic / Betamin

Ibsatmin = 52mA / 100

Ibsatmin = 0,5mA

Ibsat = K x Ibsatmin (jag väljer en övermättnadskoefficient K = 2)

Ibsat = 2 x Ibsatmin

Ibsat = 1mA

R12 = Ur12 / Ibsat

R12 = Vcc - Vbe

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

R12 = 5,4K

Normaliserat värde (E12) för R12 = 4,7K

Vibratorstyrning (Func4):

När det gäller summern kan 16F628A inte leverera tillräckligt med ström till vibratorn som kräver en ström på 70mA, dessutom måste den matas till maximalt med en spänning på 3V. Så jag valde att använda en zenerdiod kopplad med en transistor för att göra en 2,7V spänningsregulator för vibratorn. Zener-transistorföreningens funktion är enkel, zener fixerar 2,7V spänning på transistorns bas och transistorn "kopierar" denna spänning och levererar ström.

Strömmen som kommer att passera transistorn Q2 är alltså lika med Ic = 70mA

Vi beräknar nu basmotståndet så att transistorn kan vara välmättad:

Ibsatmin = Ic/Betamin

Ibsatmin = 70mA / 100

Ibsatmin = 0, 7mA

Ibsat = K x Ibsatmin (jag väljer en övermättnadskoefficient K = 2) Ibsat = 2 x Ibsatmin

Ibsat = 1, 4mA

Minsta ström i zenerdioden måste vara minst Iz = 1mA för dess drift, så vi kan härleda strömmen som passerar genom motståndet R13:

Ir13 = Ibsat + Iz

Ir13 = 1, 4mA + 1mA

Ir13 = 2, 4mA

För att säkerställa att strömmen för zenerdioden Iz alltid är i det korrekta arbetsområdet, tas en säkerhetsmarginal med: Ir13_fixed = 5mA (helt godtyckligt val av värde)

Låt oss nu beräkna värdet på R13:

R13 = U13 / Ir13_fixed

R13 = VCC-Vz / Ir13_fixed

R13 = 6-2, 7 / 5mA

R13 = 660 ohm

Normaliserat värde (E12) för R13 = 470 ohm

Jag kunde ha valt 560 ohm i E12 -serien men jag hade inte detta värde så jag tog det tidigare värdet …

Kan optimeras

När jag gjorde konstruktionen av projektet tänkte jag inte på transistorns Vbe så istället för att ha 2,7V för att driva vibratorn har jag bara 2,7V-0,6V = 2,1V. Jag borde ha tagit en 3.3V zener till exempel, vibratorn hade varit lite kraftfullare även om resultatet är ganska tillfredsställande, jag utnyttjar inte all vibratorns kraft …

Varningslampor (Func5):

Lysdioderna är placerade vertikalt som om de bildade en mätare: Röd

Gul2

Gul 1

Grön

När en kontakt detekteras mellan "joysticken" och den elektriska ledningen lyser de gradvis från grönt till rött.

Lysdioderna är anslutna till VCC i grupper enligt deras färg:

- Alla anoder på de gröna lysdioderna är anslutna tillsammans

- Alla anoder på de gula1 lysdioderna är anslutna tillsammans

- Alla anoder på de gul2 lysdioderna är anslutna tillsammans

- Alla anoder på de röda lysdioderna är anslutna tillsammans

Mikrokontrollern aktiverar dem sedan genom att jorda deras katod via ULN2003A.

Notera:

På schemat är det bara en lysdiod i varje färg med symbolen "X6" bredvid eftersom jag använder en gratis version av Cadence Capture och jag är begränsad av ett maximalt antal komponenter per diagram så att jag inte kunde få alla lysdioder att visas …

Summer ljudstyrning (Func6):

Det är helt enkelt en potentiometer i serie med summern som gör det möjligt att justera ljudvolymen.

"Dekoration" lysdioder (Func7 - Schematisk/Sida 2):

Syftet med dessa lysdioder är att skapa en jakt på dekorationen av spelet. De lyser från vänster till höger. Det finns totalt 12 blå lysdioder: 6 i början av banan som representerar startlinjen och 6 i slutet av banan som representerar mållinjen

Jag valde att göra en displaymultiplexering för dessa lysdioder eftersom det skulle ha krävts mycket fler stift för att beställa dem (6 stift med mutliplexing, 12 stift utan multiplexing).

Dessutom är det indikerat i deras datablad att Vf är 4V därför kunde jag inte sätta 2 lysdioder i serie (VCC är 6V), och jag kunde inte heller sätta parallellt eftersom de teoretiskt sett behöver 20 mA och att mikrokontrollern endast kan leverera 25 mA max per stift, därför hade 40mA varit omöjligt.

För att sammanfatta kunde jag inte göra en LED -koppling (i serie eller parallell) och jag hade inte tillräckligt med stift på mikrokontrollern för att driva dem ändå … Så jag valde att använda en annan mikrokontroller (12F675) med 8 stift för att kunna Tack vare denna mikrokontroller styr jag aktiveringen av lysdioderna genom att ställa in en hög logisk nivå (VCC) på deras anoder och jag använder PIC 16F628A och ULN2003A för att utföra multiplexeringen.

Kan optimeras:

Jag insåg när jag utförde testerna på en brödbräda att lysdioderna för samma ström I = 20mA hade stor skillnad i ljusstyrka beroende på deras färger. Till exempel med 20mA var de blå lysdioderna mycket ljusare än de gröna. Jag tyckte inte att det var estetiskt att vissa lysdioder var mycket ljusare än andra, så jag varierade motståndet i serie med de blå lysdioderna tills jag fick samma ljuskraft som de gröna lysdioderna som drivs med en ström på 20mA.

Och jag insåg att de blå lysdioderna hade samma ljusstyrka som de gröna lysdioderna med en ström på endast 1mA! Vilket betyder att om jag hade vetat det innan hade jag kunnat välja att sätta de blå lysdioderna i serie (i grupper om 2). Och jag behövde bara ytterligare 3 stift på 16F675A (som finns tillgängliga), så jag behövde inte lägga till en annan mikrokontroller dedikerad för att hantera dessa lysdioder.

Men vid denna tidpunkt för designen visste jag inte det, det finns ibland en inte försumbar skillnad mellan egenskaperna hos de tekniska dokumentationerna och de verkliga egenskaperna hos komponenterna …

Begränsa strömmen (Func0):

Jag hade inte planerat den här delen alls vid designen. Jag lade till den först i slutet av projektet, när allt redan var klart. I början hade jag helt enkelt anslutit VCC direkt till den elektriska ledningen med ett enkelt neddragningsmotstånd för att sätta ingången från mikrokontrollern som detekterar kontakten till marken.

Men som jag sa tidigare gjorde jag en hel del undersökningar för att ta reda på om strömmen som flödar genom den elektriska ledningen kan vara farlig om den kommer i kontakt med tråden och en människokropp.

Jag hittade inget exakt svar på detta ämne så jag föredrog att lägga till ett motstånd mellan VCC och den elektriska ledningen för att minska strömmen som passerar tråden så mycket som möjligt.

Så jag ville sätta ett högvärdesmotstånd för att minska strömmen till lägsta möjliga värde men eftersom jag redan hade avslutat projektet och därför alla svetsade och kopplade de olika korten kunde jag inte längre ta bort nedrullningsmotståndet på 10Kohm. Jag var därför tvungen att välja ett motståndsvärde för att få 2/3 av VCC på BR0 -stiftet (stift 6 på 16F628A) så att mikrokontrollern detekterar även om det är en hög logisk nivå när det är kontakt mellan joysticken och den elektriska ledningen. Om jag hade lagt till för mycket motstånd hade jag haft risken att mikrokontrollern inte skulle ha upptäckt förändringen mellan det låga logiska tillståndet och det höga logiska tillståndet.

Så jag valde att lägga till ett motstånd på 4,7K för att få en spänning på cirka 4V på stiftet när det är kontakt mellan joysticken och den elektriska ledningen. Om man lägger till detta är den mänskliga hudens motstånd vid kontakt med den elektriska ledningen med handen till exempel att strömmen som flyter genom kroppen skulle vara mindre än 1 mA.

Och även om en person vidrör tråden kommer han bara i kontakt med batteriets positiva terminal och inte mellan den positiva och negativa terminalen men som jag sa i ansvarsfriskrivningen ALLTID uppmärksamma vad du gör med den elektriska strömmen.

Obs: Jag tvekade länge för att lägga till detta motstånd eftersom den elektriska ström som eventuellt är tillgänglig för användaren (via den elektriska ledningen) är svag och att enheten försörjs av batteri med endast 6V spänning och att det kanske är helt onödigt att begränsa strömmen från batterierna men eftersom det är för barn föredrog jag att vidta så många försiktighetsåtgärder som möjligt.

Steg 6: Programmering

Programmering
Programmering

Program skrivs på C -språk med MPLAB IDE och koden kompileras med CCS C Compiler.

Koden är fullständigt kommenterad och ganska enkel att förstå, men jag kommer snabbt att förklara huvudfunktionerna för de 2 koderna (för 16F628A och 12F675).

Det första programmet -CheminElectrique.c- (16F628A):

LED -multiplexhantering: Funktion: RTCC_isr ()

Jag använder timer0 för mikrokontrollern för att orsaka ett överflöde varannan 2 ms vilket gör det möjligt att hantera multiplexering av lysdioderna.

Hantering av kontaktdetektering:

Funktion: void main ()

Detta är huvudslingan, programmet upptäcker om det finns en kontakt mellan joysticken och den elektriska ledningen och aktiverar lysdioderna/summern/vibratorn enligt kontakttiden.

Svårighet att ställa in hantering:

Funktion: lång GetSensitivityValue ()

Denna funktion används för att kontrollera omkopplarens position som gör det möjligt att välja svårigheten och returnerar en variabel som representerar tiden att vänta innan larmet aktiveras.

Larminställningshantering:

Funktion: int GetDeviceConfiguration ()

Denna funktion används för att kontrollera läget för omkopplaren som väljer summer och vibratoraktivering och returnerar en variabel som representerar de larm som måste vara aktiva.

Det andra programmet -LedStartFinishCard.c- (12F675):

Blå LED -aktiveringshantering: Funktion: void main ()

Detta är programmets huvudslinga, det aktiverar lysdioderna en efter en från vänster till höger (för att skapa en jakt)

Se nedan en zip -fil av MPLAB -projektet:

Steg 7: Lödning och montering

Lödning och montering
Lödning och montering
Lödning och montering
Lödning och montering
Lödning och montering
Lödning och montering
Lödning och montering
Lödning och montering

"Fysisk" del: Jag började med att skapa lådan, så jag skar träskivor ca 5 mm tjocka för ovansidan och sidorna och valde en bricka 2 cm tjock för att få botten att ha mer vikt och att spelet inte rör sig.

Jag monterade brädorna mellan att vara med trälim, jag satte inte några skruvar eller spikar och det är riktigt fast!

För att göra spelet mer attraktivt än en enkel målad låda bad jag min fru att skapa en inredning till toppen av lådan (eftersom jag verkligen suger på grafisk design …). Jag bad honom göra en slingrande väg (för att ha en relation med tråden …) Med burkar/panel på kanterna på kurvorna så att jag kan införliva mina varningslampor. Dekorationernas blå lysdioder kommer att likna start- och mållinjerna. Hon skapade ett landskap i Route 66 -stil, med en väg som korsar en slags öken, och efter flera intryck för att hitta lysdiodernas bra läge var vi ganska nöjda med resultatet!

Sedan borrade jag hål för alla kontakter, switchar och naturligtvis lysdioderna.

Den elektriska tråden är vriden för att skapa sicksack för att öka svårigheten i spelet, och varje ände skruvas in i en hanbanankontakt. Anslutningarna kommer sedan att anslutas till de kvinnliga banankontakterna som är fästa på kåpan.

Elektronisk del:

Jag har delat upp den elektroniska delen i flera små prototypkort.

Det finns:

- ett kort för 16F628A

- ett kort för 12F675

- 6 varning LED -kort

- 4 kort för dekorativa lysdioder (startlinje och mållinje)

Jag fixade alla dessa kort under locket på lådan och jag lade batterihållaren i lådans nedre del med summern och DC -boostmodulen.

Alla elektroniska element är anslutna med omslagstrådar, jag har grupperat dem så mycket som möjligt enligt deras riktning och jag har vridit ihop dem och fixat dem med varmt lim så att de är så "rena" som möjligt och särskilt att det finns inga falska kontakter eller ledningar som kopplas bort. Det tog verkligen mycket tid att klippa/strippa/svetsa/placera trådarna korrekt!

"Joystick" -del:

Till joysticken tog jag en liten bit PVC -rör (1,5 cm i diameter och en längd på 25 cm) och sedan lödde jag honkontakten så här:

- en terminal ansluten till kabeln i slutet av joysticken (ContactWire på schematisk)

- en terminal ansluten till vibratorns positiva terminal (2A på J1A -kontakt på schematisk)

- en terminal ansluten till vibratorns negativa terminal (1A på J1A -kontakt på schematisk)

Jag integrerade sedan tråden, vibratorn och jackkontakten inuti röret och fixerade domkraften med varmt lim för att se till att ingenting rör sig när jackkabeln ansluts mellan joysticken och den andra delen av systemet.

Steg 8: Video

Steg 9: Slutsats

Nu är projektet över, det var riktigt häftigt att göra det här projektet trots att jag ångrar att jag hade väldigt lite tid att göra det. Det tillät mig att ta en ny utmaning;) Jag hoppas att det här spelet kommer att fungera i många år och att det kommer att roa många barn som kommer att fira slutet av deras skolår!

Jag tillhandahåller en arkivfil som innehåller alla dokument jag använde/skapade för projektet.

Jag vet inte om min skrivstil kommer att vara korrekt eftersom jag delvis använder en automatisk översättare för att gå snabbare och eftersom jag inte är engelsktalande infödda tror jag att vissa meningar förmodligen kommer att vara konstiga för folk som skriver engelska perfekt.

Om du har några frågor eller kommentarer om detta projekt, vänligen meddela mig!

Rekommenderad: