Съдържание:

CheminElectrique (Игра за умения) - SRO2002: 9 стъпки
CheminElectrique (Игра за умения) - SRO2002: 9 стъпки

Видео: CheminElectrique (Игра за умения) - SRO2002: 9 стъпки

Видео: CheminElectrique (Игра за умения) - SRO2002: 9 стъпки
Видео: 20 ЛУЧШИХ XCOM-ЛАЙКОВ И ТАКТИЧЕСКИХ ИГР // 2021 2024, Ноември
Anonim
CheminElectrique (Игра за умения) - SRO2002
CheminElectrique (Игра за умения) - SRO2002
CheminElectrique (Игра за умения) - SRO2002
CheminElectrique (Игра за умения) - SRO2002
CheminElectrique (Игра за умения) - SRO2002
CheminElectrique (Игра за умения) - SRO2002

Днес ви представям създаването на игра, която направих за партито в края на учебната година за моя син. Във Франция наричаме тези фестивали „кермеси“, не знам дали съществуват в други страни и как се наричат …

В тези партита често има едни и същи игри, това бих нарекъл класически игри и тази година реших да направя по -модерна версия на една от тези класически игри: „Chemin electrique“или „Main chaude“.

Целта на играта е много проста, има проводник, през който преминава електрически ток, след което имате „джойстик“, съставен от метален кръг в края му, който преминава около електрическия проводник и целта на играта е да премине през проводник от единия край до другия, без да го докосвате, в противен случай предупредителната лампа и/или звук изгасна и сте загубили.

Традиционно няма никаква електроника за създаването на тази игра, обикновена 12V батерия с крушка и малко електрически проводник е достатъчна, но имах някои готини идеи да направя играта по -модерна.

Така че нека видим какво добавих като функционалност!

Стъпка 1: Функции

Както току -що казах, тази игра просто включва светлина, когато играчът неволно докосне проводника с „джойстика“, също се случва доста често играта да издава звук по време на контакт. В моята версия на играта ще има общо 6 блока от 4 светодиода (зелено-жълто-жълто-червено), които ще светнат едновременно, зумер, който ще произвежда звук, а също и вибратор, интегриран в контролера, който ще активира когато има контакт между електрическия проводник и "джойстика".

Светодиодите ще светнат постепенно от зелено до червено в зависимост от това колко дълго трае контактът между проводника и контролера.

Добавих и избор на ниво на трудност (лесно-нормално-трудно), както и възможност за активиране/деактивиране на вибратора и звука. Силата на звука също ще се регулира с потенциометър.

Изборът на трудност всъщност е просто повече или по -малко дълго забавяне между момента, в който има контакт между проводника и джойстика, и момента, в който играта започне да свети/звъни/вибрира. Задавам предварително зададени времена чрез програмиране, например в лесен режим играта изчаква 1 секунда, преди да задейства предупреждения, докато в труден режим предупрежденията ще се задействат незабавно.

Създадох играта така, че да е лесна за демонтиране, надеждна и най -вече да не представлява никаква опасност за децата, които ще я използват. Всъщност, тъй като електрическият проводник е пресечен от ток и че е оголен, трябваше да се уверя, че той не представлява никаква опасност за потребителите на играта.

Стъпка 2: Отказ от отговорност и допълнителна информация

Отказ от отговорност и допълнителна информация
Отказ от отговорност и допълнителна информация

Опровержение:

Играта ще се захранва от 4 батерии по 1.5V, общо напрежение 6V, също така ограничавам тока, който пресича жицата, само до няколко микроампера. Следователно ние сме в областта на много ниско защитно напрежение (SELV) с изключително ниска стойност на тока, достъпна за потребителя.

Но внимателно уточнявам, че никоя стойност на електрическия ток не е безобидна, слаб ток може в определени случаи да бъде опасен за наелектризирания човек. Направих много изследвания по този въпрос по време на създаването на този проект и въпреки че няма научен консенсус относно граничната стойност, преди която токът не оказва влияние върху човешкото тяло, токът на някакъв микроампер, който пресича електрическия кабел, има много малко възможност да нараните човек.

Но внимание няма да мога да нося отговорност в случай на злополука! Винаги трябва да се внимава при работа с електрически проводници под напрежение, дори при много ниски стойности на тока. Силно ви съветвам да се информирате колкото е възможно повече за рисковете от електричеството и за добрите предпазни мерки, които трябва да предприемете

Допълнителна информация:

Този проект работи много добре и има всички функции, които исках, но има някои недостатъци. Когато създавам електронен проект, се опитвам всичко да е максимално оптимизирано по отношение на разходите, броя на компонентите, пространството и най -вече операцията на цялото да е възможно най -„логична“.

Докато правех този проект и след като го завърших, мисля, че направих някои избори, които не са най -добрите, но бях притиснат от времето, имах само 2 седмици, за да направя всичко от нулата (дизайн, програмиране, поръчване на компоненти, създаване на структура и особено сглобяване на всички елементи).

Ще посоча, докато преминавам през производствените стъпки, какво мисля, че би могло да бъде оптимизирано, ако трябваше да създам тази игра отново. Но повтарям, че проектът е доста функционален, но аз съм перфекционист …

Съжалявам също, че не съм направил повече снимки на различните етапи на проекта, но предпочетох да се посветя максимално на проекта, за да мога да го завърша навреме.

Доволен съм от този проект, защото беше голям успех на училищното парти на сина ми, така че нека видим какво има в корема на звяра;)

Стъпка 3: Задължения

- Трябва да се захранва от батерии (за безопасност и мобилност)- Играта трябва да е безопасна (ще се използва от деца от 2 до 10 години)

- Настройките трябва да са налични (избор на активиране на звук/вибратор и избор на трудност)

- Настройките трябва да са лесни за разбиране и лесно достъпни (трябва да се приеме, че лицето, което ще се грижи за играта по време на партито, не знае нищо по електроника/технически)

- Звукът трябва да е достатъчно силен (играта ще се използва навън в доста шумна среда).

- Системата трябва да се сваля максимално за съхранение и лесно заменяеми физически части (джойстик, електрически проводник …)

- Трябва да е привлекателен за децата (това е основната цел, за която играят …:))

Стъпка 4: Компоненти (BOM)

За случая:- дървена дъска

- рисуване

- някои инструменти за пробиване и рязане….

За "джойстика":- 1 вибратор

- кабелен жак 3.5 (стерео)

- жак конектор 3.5 (стерео)

- електрически проводник 2,5 мм²

- малка PVC тръба

Електронни компоненти:

- 16F628A

- 12F675

- ULN2003A

- 2 x 2N2222A

- Ценеров диод 2.7V

- 12 сини светодиода

- 6 зелени светодиода

- 6 червени светодиода

- 12 жълт светодиод

- 5 резистора 10K

- 2 резистора 4.7K

- 1 резистор 470 ома

- 6 резистора 2.2K

- 6 резистора 510 ома

- 18 резистора 180 ома

- 1 потенциометър 1K

- 1 ключ за включване и изключване

-2 превключвател ON-OFF-ON

- 1 зумер

- 1 DC усилващ преобразувател

- електрически проводник 2,5 мм²

- 2 бананови конектора мъжки

- 2 конектора за банан женски

- жак конектор 3.5 (стерео)

- държач за 4 батерии LR6

- някои платки за прототипи на печатни платки

Електронни инструменти: - Програмист за инжектиране на кода в Microchip 16F628A и 12F675 (напр. PICkit 2) -

Съветвам ви да използвате Microchip MPLAB IDE (безплатна програма), ако искате да промените кода, но ще ви е необходим и CCS компилатор (shareware). Можете също да използвате друг компилатор, но ще ви трябват много промени в програмата.

Но аз ще ви осигуря. HEX файлове, така че да можете да ги инжектирате директно в микроконтролери.

Стъпка 5: Анализ на функциите

Анализ на функциите
Анализ на функциите
Анализ на функциите
Анализ на функциите

Микроконтролер 16F628A (Func1): Това е "мозъкът" на цялата система, именно този компонент открива позицията на превключвателите за настройки, който открива дали има контакт между "джойстика" и електрическия проводник и който задейства предупреждения (светлина, звук и вибратор). Избрах този компонент, защото имам доста голям запас и защото съм свикнал да програмирам с него, и тъй като нямах много време да направя този проект, предпочетох да взема някои материали, които познавам добре.

Захранващ интерфейс ULN2003A (Func2): Този компонент служи като захранващ интерфейс между 16F628A и веригите, които консумират повече енергия, отколкото микроконтролерът може да осигури (LED, зумер, вибратор).

Управление на зумера (Func3):

PIC 16F628A не може да осигури достатъчно ток за захранване на зумера, особено след като зумерът трябва да се захранва чрез усилващ преобразувател, за да се увеличи неговата звукова мощност.

Всъщност, тъй като монтажът се доставя в 6V и че зумерът изисква 12V, за да работи максимално, използвам преобразувател, за да получа доброто напрежение. Затова използвам транзистор като превключвател (режим на комутация) за управление на захранването на зумера. Компонентът, който избрах, е класически 2N2222A, който е много подходящ за тази употреба.

Ето характеристиките на зумера: 12V 25mA, това означава, че се нуждае от теоретична мощност P = UI = 12 x 25mA = 0.3W

Така че има изискване за мощност от 0,3 W от DC усилвателния преобразувател, модулът за усилване на DC има ефективност от 95%, така че има около 5% загуба. Следователно, на входа на преобразувателя е необходима минимална мощност от 0,3 W + 5% = 0,315 W.

Сега можем да изведем текущия Ic, който ще пресича транзистора Q1:

P = U * Ic

Ic = P / U

Ic = P / Vcc-Vcesat

Ic = 0, 315 / 6-0, 3

Ic = 52mA

Сега изчисляваме базовия резистор, позволяващ транзисторът да бъде добре наситен:

Ibsatmin = Ic / Betamin

Ibsatmin = 52mA / 100

Ibsatmin = 0.5mA

Ibsat = K x Ibsatmin (избирам коефициент на пренасищане K = 2)

Ibsat = 2 x Ibsatmin

Ibsat = 1mA

R12 = Ur12 / Ibsat

R12 = Vcc - Vbe

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

R12 = 5,4K

Нормализирана стойност (E12) за R12 = 4,7K

Управление на вибратора (Func4):

Що се отнася до зумера, 16F628A не може да подаде достатъчно ток към вибратора, който изисква ток от 70mA, освен това той трябва да бъде захранван максимално с напрежение 3V. Затова избрах да използвам ценеров диод, свързан с транзистор, за да направя 2.7V регулатор на напрежението за вибратора. Работата на ценерово-транзисторната асоциация е проста, ценерът фиксира напрежението от 2,7 V на основата на транзистора и транзисторът "копира" това напрежение и захранва.

Токът, който ще премине през транзистора Q2, е равен на Ic = 70mA

Сега изчисляваме базовото съпротивление, което позволява на транзистора да бъде добре наситен:

Ibsatmin = Ic/Betamin

Ibsatmin = 70mA / 100

Ibsatmin = 0, 7mA

Ibsat = K x Ibsatmin (аз избирам коефициент на пренасищане K = 2) Ibsat = 2 x Ibsatmin

Ibsat = 1,4 mA

Минималният ток в ценеровия диод трябва да бъде най -малко Iz = 1mA за неговата работа, така че можем да изведем тока, преминаващ през резистора R13:

Ir13 = Ibsat + Iz

Ir13 = 1,4 mA + 1 mA

Ir13 = 2,4 mA

За да се гарантира, че токът на стабилитрона Iz винаги е в правилния работен диапазон, се взема граница на безопасност с: Ir13_фиксиран = 5mA (напълно произволен избор на стойност)

Сега нека изчислим стойността на R13:

R13 = U13 / Ir13_фиксирано

R13 = VCC-Vz / Ir13_фиксиран

R13 = 6-2, 7 / 5mA

R13 = 660 ома

Нормализирана стойност (E12) за R13 = 470 ома

Можех да избера 560 ома в серията E12, но нямах тази стойност, затова взех предишната стойност …

Може да се оптимизира

Когато направих дизайна на проекта, не мислех за Vbe на транзистора, така че вместо да имам 2.7V за захранване на вибратора, имам само 2.7V-0.6V = 2.1V. Трябваше да взема например 3.3V ценер, вибраторът щеше да е малко по -мощен, дори резултатът да е доста задоволителен, не използвам цялата сила на вибратора …

Предупредителни светодиоди (Func5):

Светодиодите са разположени вертикално, сякаш са образували габарит: Червен

Жълто 2

Жълто 1

Зелено

Когато се открие контакт между „джойстика“и електрическия проводник, те постепенно светват от зелено до червено.

Светодиодите са свързани към VCC на групи според техния цвят:

- Всички аноди на зелените светодиоди са свързани заедно

- Всички аноди на жълтите1 светодиоди са свързани заедно

- Всички аноди на жълтите 2 светодиода са свързани заедно

- Всички аноди на червените светодиоди са свързани заедно

След това микроконтролерът ги активира чрез заземяване на техния катод чрез ULN2003A.

Забележка:

На схемата има само един светодиод от всеки цвят със символ "X6" до него, защото използвам безплатна версия на Cadence Capture и съм ограничен от максимален брой компоненти на диаграма, така че не мога да накарам всички светодиоди да се появяват …

Управление на нивото на звука на зумера (Func6):

Това е просто последователен потенциометър със зумера, който дава възможност за регулиране на силата на звука.

„Декоративни“светодиоди (Func7 - Схеми/Страница 2):

Целта на тези светодиоди е да създадат преследване за украсата на играта. Светят отляво надясно. Има общо 12 сини светодиода: 6 в началото на курса, представляващи стартовата линия и 6 в края на курса, представляващи финалната линия

Избрах да направя дисплейно мултиплексиране за тези светодиоди, защото биха били необходими много повече пинове, за да ги поръчам (6 пинов с мултиплексиране, 12 пинов без мултиплексиране).

Освен това в техния лист е посочено, че Vf е 4V, поради което не мога да поставя 2 светодиода последователно (VCC е 6V) и не можех да ги поставя паралелно, защото те ТЕОРИЧНО се нуждаят от 20 mA и че микроконтролерът може да захранва само 25 mA max на пин, следователно 40mA би било невъзможно.

За да обобщим, не можах да направя асоциация на светодиоди (поставени последователно или паралелно) и нямах достатъчно щифт на микроконтролера, за да ги управлявам така или иначе … Затова избрах да използвам друг микроконтролер (12F675) с 8 пина, за да мога Благодарение на този микроконтролер контролирам активирането на светодиодите, като задавам високо логическо ниво (VCC) на техните аноди и използвам PIC 16F628A и ULN2003A за извършване на мултиплексиране.

Може да се оптимизира:

При осъществяването на тестовете на макет разбрах, че при същия ток I = 20mA светодиодите имат голяма разлика в яркостта според цветовете им. Например при 20mA сините светодиоди са много по -ярки от зелените. Не ми се стори естетично, че някои светодиоди са много по -ярки от други, затова променях съпротивлението последователно със сините светодиоди, докато получих същата светлинна мощност като зелените светодиоди, захранвани с ток от 20 mA.

И разбрах, че сините светодиоди имат същата яркост като зелените светодиоди с ток само 1mA! Което означава, че ако знаех това преди, можех да избера да поставя последователно сините светодиоди (на групи от 2). И имах нужда само от още 3 пина на 16F675A (които са налични), така че нямаше нужда да добавя друг микроконтролер, предназначен за управление на тези светодиоди.

Но по това време на дизайна аз не го знаех, понякога има не пренебрежимо малка разлика между характеристиките на техническата документация и реалните характеристики на компонентите …

Ограничаване на тока (Func0):

Изобщо не бях планирал тази част по време на проектирането, добавих я едва в самия край на проекта, когато всичко вече беше завършено. В началото просто бях свързал VCC директно към електрическия проводник с просто издърпващ се резистор, за да поставя входа на микроконтролера, който открива контакта към земята.

Но както казах преди, направих много изследвания, за да разбера дали токът, протичащ през електрическия проводник, може да бъде опасен, ако дойде в контакт между проводника и човешкото тяло.

Не намерих точен отговор по тази тема, затова предпочетох да добавя съпротивление между VCC и електрическия проводник, за да намалим максимално тока, пресичащ проводника.

Така че исках да сложа резистор с висока стойност, за да намаля тока до възможно най -ниската стойност, но тъй като вече бях завършил проекта и следователно всички заварени и свързани различни карти, вече не можех да премахна падащия резистор от 10Kohm. Затова трябваше да избера стойност на съпротивление, за да получа 2/3 от VCC на щифта BR0 (щифт 6 от 16F628A), така че микроконтролерът да открие, въпреки че е високо логическо ниво, когато има контакт между джойстика и електрическия проводник. Ако бях добавил твърде много съпротивление, щях да имам риск микроконтролерът да не е открил промяната между ниско логическо състояние и високо логическо състояние.

Затова избрах да добавя съпротивление от 4.7K, за да получа напрежение от около 4V на щифта, когато има контакт между джойстика и електрическия проводник. Ако добавим към това съпротивлението на човешката кожа в случай на контакт на електрическия проводник с ръката, например токът, протичащ през тялото, ще бъде по -малък от 1 mA.

И дори ако човек докосне проводника, той ще бъде в контакт само с положителния извод на батериите, а не между положителния и отрицателния извод, но както казах в отказ от отговорност ВИНАГИ обръщайте внимание на това, което правите с електрическия ток.

Забележка: Дълго се колебаех да добавя това съпротивление, тъй като евентуално достъпният за потребителя електрически ток (чрез електрическия проводник) е слаб и че монтажът се захранва от батерия само с напрежение 6V и че може би е строго ненужно да ограничаване на тока от батериите, но тъй като е за деца, предпочитах да взема възможно най -много предпазни мерки.

Стъпка 6: Програмиране

Програмиране
Програмиране

Програмите са написани на език C с MPLAB IDE и кодът се компилира с CCS C компилатора.

Кодът е напълно коментиран и доста лесен за разбиране, но бързо ще обясня основните функции на 2 -те кода (за 16F628A и 12F675).

Първата програма -CheminElectrique.c- (16F628A):

Управление на LED мултиплексиране: Функция: RTCC_isr ()

Използвам timer0 на микроконтролера, за да предизвиква преливане на всеки 2ms, което позволява да се управлява мултиплексирането на светодиодите.

Управление на откриване на контакти:

Функция: void main ()

Това е основният контур, програмата открива дали има контакт между джойстика и електрическия проводник и активира светодиодите/зумера/вибратора според времето за контакт.

Трудности при настройването на настройките:

Функция: дълъг GetSensitivityValue ()

Тази функция се използва за проверка на позицията на превключвателя, която позволява да се избере трудността и връща променлива, представляваща времето за изчакване преди активиране на алармите.

Управление на алармени настройки:

Функция: int GetDeviceConfiguration ()

Тази функция се използва за проверка на позицията на превключвателя, който избира активирането на зумера и вибратора и връща променлива, представляваща алармите, които трябва да бъдат активни.

Втората програма -LedStartFinishCard.c- (12F675):

Управление на активиране със син светодиод: Функция: void main ()

Това е основният цикъл на програмата, той активира светодиодите един след друг отляво надясно (за създаване на преследване)

Вижте по -долу zip файл на проекта MPLAB:

Стъпка 7: Запояване и сглобяване

Запояване и сглобяване
Запояване и сглобяване
Запояване и сглобяване
Запояване и сглобяване
Запояване и сглобяване
Запояване и сглобяване
Запояване и сглобяване
Запояване и сглобяване

„Физическа“част: Започнах със създаването на кутията, затова изрязах дървени дъски с дебелина около 5 мм за горната част и отстрани и избрах дъска с дебелина 2 см, за да може дъното да има по -голяма тежест и играта да не се движи.

Сглобих дъските между това, че съм с лепило за дърво, не сложих никакви винтове или пирони и наистина е здрав!

За да направя играта по -привлекателна от обикновена боядисана кутия, помолих съпругата ми да създаде декор за горната част на кутията (защото наистина съм гаден от графичния дизайн …). Помолих го да направи криволичещ път (да има връзка с жицата …) с кутии/панел по ръбовете на кривите, за да мога да вградя предупредителните си светодиоди. Сините светодиоди на декорациите ще бъдат като стартовата и финалната линия. Тя създаде пейзаж в стил „Route 66“, с път, който пресича някаква пустиня и след няколко впечатления, за да намерим доброто местоположение на светодиодите, бяхме доста доволни от резултата!

След това пробих дупки за всички конектори, ключове и разбира се светодиодите.

Електрическият проводник се усуква, за да създаде зигзагове, за да увеличи трудността на играта, и всеки край се завинтва в мъжки конектор за банан. След това конекторите ще бъдат свързани към женските бананови конектори, които са прикрепени към капака на корпуса.

Електронна част:

Разделих електронната част на няколко малки прототипни карти.

Има:

- карта за 16F628A

- карта за 12F675

- 6 предупредителни LED карти

- 4 карти за декоративни светодиоди (начална линия и финална линия)

Поправих всички тези карти под капака на кутията и поставих държача на батерията в долната част на кутията със зумера и модула за постоянен ток.

Всички електронни елементи са свързани чрез опаковане на проводници, аз съм ги групирал възможно най -много според тяхната посока и съм ги усукал заедно и ги закрепил с горещо лепило, така че да са възможно най -"чисти" и особено, че има няма фалшиви контакти или проводници, които да прекъсват връзката. Наистина ми отне много време, за да отрежа/сваля/заваря/позиционирам правилно проводниците!

Част "Джойстик":

За джойстика взех малко парче PVC тръба (диаметър 1,5 см и дължина 25 см), а след това запоявах конектора на женския жак така:

- терминал, свързан към проводника в края на джойстика (ContactWire на схемата)

- терминал, свързан към положителния извод на вибратора (2A на конектора J1A на схемата)

- клема, свързана към отрицателния извод на вибратора (1A на конектора J1A на схемата)

След това интегрирах проводника, вибратора и конектора на жака вътре в тръбата и фиксирах жака с горещо лепило, за да се уверя, че нищо не се движи, когато свързвате кабела на жака между джойстика и другата част на системата.

Стъпка 8: Видео

Стъпка 9: Заключение

Сега проектът приключи, беше наистина страхотно да го направя, въпреки че съжалявам, че имах много малко време да го направя. Това ми позволи да се справя с ново предизвикателство;) Надявам се, че тази игра ще работи много години и че ще забавлява много деца, които ще празнуват края на учебната си година!

Предоставям архивен файл, който съдържа всички документи, които използвах/създадох за проекта.

Не знам дали стилът ми на писане ще бъде правилен, защото отчасти използвам автоматичен преводач, за да вървя по -бързо и тъй като не говоря английски, мисля, че някои изречения вероятно ще бъдат странни за хората, които пишат перфектно английски.

Ако имате въпроси или коментари относно този проект, моля, уведомете ме!

Препоръчано: