Съдържание:
- Стъпка 1: Изграждане на случая
- Стъпка 2: Конструиране на механика на плавниците
- Стъпка 3: Поставяне на стените
- Стъпка 4: Добавяне на блокове за оценка
- Стъпка 5: Добавяне на играта над контакт
- Стъпка 6: Пробиване на отворите за кабели
- Стъпка 7: Окабеляване на всичко
- Стъпка 8: Качване на кода
Видео: Arduino: Pinball Machine: 8 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:54
Тъй като винаги съм обичал както пинбол машините, така и електрониката, реших да направя своя собствена пинбол машина. Избрах Arduino за програмиране и електроника, защото това е изключително достъпна платформа, която е едновременно компактна и лесна за използване.
В това ръководство ще обясня моя процес на развитие, така че може би един от вас ентусиасти би могъл да създаде нещо подобно.
Стъпка 1: Изграждане на случая
Нека започнем с случая на пинбол машината. Направих доста проста конструкция. Отрязах долната плоча и използвах 4 малки дървени стълба в ъглите, за да свържа стенните части. Размерът на вашия калъф е ваш собствен избор, аз избрах да го направя малко по -малък от оригиналната машина за пинбол, тъй като не смятах да добавям супер ефектни екстри, които да запълнят пространството. Използвах и винтове, и лепило, за да направя корпуса възможно най -стабилен. Отзад пробих две дупки в пода за двата крака, които ще придадат на пинбол машината емблематичния наклон. Отново височината на краката зависи от вас. Колкото по -високи правите краката, толкова по -бързо топката се търкаля (надолу).
Стъпка 2: Конструиране на механика на плавниците
Тъй като исках да огранича цената на този проект, реших да направя изцяло механични ласти вместо електронни. Ако се интересувате от електронни плавници, можете да използвате конструкция, която е донякъде същата, но с т.нар.
Започнах с пробиване на две дупки в долната част за точката на завъртане на двете плавници. Пробих дупките (според мен) малко прекалено близо един до друг и това накара играта да стане малко прекалено лесна в крайна сметка. Затова внимавайте да не поставяте ластите твърде близо един до друг, освен ако не искате лесен стил на игра.
Пробих и два отвора в двете странични стени, успоредни на отворите за плавници. Тези отвори трябва да се използват за двата бутона с плавници.
Използвах пружини, за да издърпам плавниците обратно в първоначалното им положение и направих завъртаща се конструкция между ластите и бутоните, за да ги накарам да се въртят при натискане на бутоните. За да попреча на пружините да издърпват плавниците твърде далеч, поставих два винта, за да задържам ластите в първоначалното им положение.
Стъпка 3: Поставяне на стените
Поставих няколко стени, за да пренасоча пинбола към плавниците. Те са много лесни за правене. Просто пробийте 3 дупки в долната част на кутията и натиснете три дървени щифта. Увийте гумена лента около щифтовете и сте готови.
Стъпка 4: Добавяне на блокове за оценка
Блоковете за оценка са една от най -важните части на пинбол машината, затова се уверете, че правите тази част правилно. Направих три блокчета за моята пинбол машина, но отново всичко зависи от вас.
Отрязах малко парче метла и обвих медна тел около него. Arduino ще захранва този меден проводник постоянно с 5V. Запоявах четири пружини за писалка отстрани за по -добър контакт с топката.
Начинът, по който действат блоковете за оценка, е, че топката завършва верига, която води до входен щифт на Arduino. И така, това, което направих, беше да залепя алуминиево фолио в долната част на кутията (НЕ ДОКОСВАЙТЕ МЕДА) и да свържа фолиото до щифт на Arduino. Всеки път, когато топката удари както медта, така и алуминия, веригата е завършена и Arduino ще получи сигнал.
Свързах всички делителни блокове заедно с алуминиево фолио, но имайте предвид, че лепкавата страна НЕ провежда електричество.
Стъпка 5: Добавяне на играта над контакт
В долната част на машината за пинбол, между плавниците, добавих игра върху контакт. Всеки път, когато топката удари този контакт, играчът ще загуби топка. Конструкцията, която направих, е почти същата като десетките. Само тук използвах два винта, а на дъното отново парче алуминиево фолио.
Стъпка 6: Пробиване на отворите за кабели
Преди да започнем да свързваме всичко до Arduino, първо трябва да пробием няколко дупки за кабелите. Пробих дупка през двете парчета алуминиево фолио, така че една дупка в алуминиевото фолио близо до делителните блокове и една дупка в алуминиевото фолио близо до играта върху контакт.
Освен това, пробих дупка и в долния ляв ъгъл, между стените, за кабела, водещ до допълнителната сферична порта Servo.
Също така трябва да има отвор за кабела, свързан към LCD дисплея в долната част.
Стъпка 7: Окабеляване на всичко
Направих тази схема, за да има по -добър преглед на това къде трябва да отидат всички кабели. Кръстовете са точките, където кабелите се свързват. Опитах се да запоя възможно най -много, за да направя всичко малко по -стабилно и надеждно. Окабеляването ще отнеме известно време, но след като това стане, вие сте почти там!
Стъпка 8: Качване на кода
Качете следния код на вашия Arduino, за да заживее вашата пинбол машина!
// Включване на библиотеката за lcd
#включи #включи
// Инициализираме щифтовете за данни на lcd
LiquidCrystal lcd (7, 8, 9, 10, 11, 12);
// Създаване на серво
Servo ballGateServo;
// Създаване на променливи за пиновете, които използваме
int gameoverPin = 6; int scorePin = 5; int speakerPin = 4; int ballGateServoPin = 3;
// Инициализиране на променливите на геймплея за пинбол машината
int резултат = 0; int рекорд = 500; bool highscoreReached = false; int топки = 3; int gameoverTimer = 0; int gameoverTimerDuration = 100; bool gameoverTriggered = false;
// стартирайте този код веднъж в първия кадър
void setup () {// Задайте pinMode за пиновете, които използваме pinMode (gameoverPin, INPUT); pinMode (scorePin, INPUT);
// Инициализираме lcd, като даваме ширина и височина
lcd.begin (16, 2);
// Прикрепете сервопривода на сферичната порта към подходящия щифт
ballGateServo.attach (ballGateServoPin);
// Възстановяване на сервосистемата на портата в изходна позиция
ballGateServo.write (0); }
// Изпълнява този код на всеки отделен кадър
void loop () {// Заснемане на пин входовете int gameoverState = digitalRead (gameoverPin); int scoreState = digitalRead (scorePin);
// Добавяне към резултата, ако е получен вход
if (scoreState) {тон (speakerPin, 1000); резултат += 10; } else {noTone (4); }
// Изваждаме от топките, ако се задейства играта
if (gameoverState и! gameoverTriggered) {топки -= 1; gameoverTriggered = вярно; gameoverTimer = gameoverTimerDuration; }
// Стартирайте таймера за превключване на играта веднага щом топката не докосне контакта за игра
if (! gameoverState) {if (gameoverTimer> = 1) {gameoverTimer -= 1; } else {gameoverTriggered = false; }}
// Премигване на текста на играта към lcd и нулиране на резултата и топките
if (топки <= 0) {lcd.setCursor (0, 0); for (int i = 5; i> = 1; i--) {lcd.clear (); забавяне (250); lcd.print ("GAME OVER"); lcd.setCursor (0, 1); lcd.print ("Опитайте отново?"); забавяне (250); } lcd.clear (); резултат = 0; ballGateServo.write (0); highscoreReached = false; топки = 3; }
if (score> highscore and! highscoreReached) {
lcd.setCursor (0, 0); for (int i = 5; i> = 1; i--) {lcd.clear (); забавяне (250); lcd.print ("NEW HIGHSCORE"); lcd.setCursor (0, 1); lcd.print ("Внезапна смърт!"); забавяне (250); } lcd.clear (); топки = 1; ballGateServo.write (120); рекорд = резултат; highscoreReached = вярно; }
// Актуализиране на рекорда, ако текущият резултат е по -висок
if (резултат> рекорд) {рекорд = резултат; }
// Поставете курсора на ред 0
lcd.setCursor (0, 0); // Отпечатва текущия (най -висок) резултат на lcd if (score <= 0) {lcd.print ("Highscore:" + String (highscore) + ""); } else {lcd.print ("Резултат:" + String (резултат) + ""); }
// Поставете курсора на ред 1
lcd.setCursor (0, 1);
// Отпечатайте текущото количество топки на lcd
lcd.print ("Топки:" + Низ (топки)); }
Препоръчано:
LED светлина (и) със захранване от батерията със слънчево зареждане: 11 стъпки (със снимки)
LED светлини (и), захранвани от батерии, със слънчево зареждане: Жена ми учи хората как да правят сапун, повечето от часовете й бяха вечер и тук през зимата се стъмва около 16:30 ч. Някои от нейните ученици имаха проблеми с намирането на нашите къща. Имахме табела отпред, но дори и с улично осветление
Лек хак за стая със зрителни увреждания със слухови увреждания: 7 стъпки (със снимки)
Лек хак на стаята със слухови увреждания на вратата: Проблем: баща ми е регистриран като глух, а майка ми е с увреден слух и поради това често им е трудно да чуят звънеца на вратата. Това би могло да бъде проблем, претърпян и от много други.Купиха мигащ светлинен звънец на вратата, за да им помогнат с
Arduino Pinball машина, която играе сама!: 13 стъпки (със снимки)
Машина за пинбол Arduino, която играе сама !: " Машина за пинбол, която играе сама, нали това отнема цялото забавление от нея? &Quot; Чувам да питаш. Може би, ако не се интересувате от автономни роботи, това би могло. Аз обаче се занимавам изключително с изграждането на роботи, които могат да правят готини неща, а този
Висящи бижута със слънчево захранване на сърцето със светкавици: 11 стъпки (със снимки)
Висящи бижута със слънчево захранване за сърце: Тази инструкция е за сърце със слънчева енергия с пулсиращ червен светодиод. Той измерва около 2 " до 1,25 ", включително USB раздела. Той има една дупка през горната част на дъската, което улеснява окачването. Носете го като огърлица, обеци, връзки на щифт
Персонализиран часовник със стрелки за снимки: 5 стъпки (със снимки)
Персонализиран часовник със стрелки за снимки: Някои хора наблюдават часовника. Сега всеки може да бъде часовник. Други проекти персонализират лицето на часовника. Този персонализира стрелките на часовника. Изглежда скъп, но е по -малко от 5 долара и около 30 минути на часовник. Перфектен за Chr