Съдържание:

LED лента Atari Pong Аркадна машина: 8 стъпки
LED лента Atari Pong Аркадна машина: 8 стъпки

Видео: LED лента Atari Pong Аркадна машина: 8 стъпки

Видео: LED лента Atari Pong Аркадна машина: 8 стъпки
Видео: Восстановление консоли ATARI PONG IV Sears Tele-Games | Ретро ремонтник Эпизод 26 2024, Ноември
Anonim
Аркадна машина Atari Pong с LED лента
Аркадна машина Atari Pong с LED лента

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

В тази инструкция ще ви покажа как да направите ретро оформена игра Atari Pong в ретро аркадна кутия. Можете да видите горното видео за демонстрация на проекта, можете също да видите готовия проект и случая само и в двете снимки. В края на този натрапчив ще се задълбоча в кода и как да го редактирам, за да го персонализирам.

Списъкът на основните части ще бъде разделен на раздели: Инструменти, монтажни части и компоненти

Инструментите, които ще ви трябват, ще включват следното:

- Пробивна машина

- поялник

- отвертка (съвпадаща с винтовете, които решите да използвате)

- Мултиметър

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

-Резачка за кабел или ножица

- Пистолет за лепило

Частите, които ще ви трябват за сглобяване, ще включват

- Лепило за дърво

- 10 дървени блока с размер 1 инч на един инч

- голям лист от четвърт инчово дърво или дърво по избор

- 24 винта с дължина половин инч

- 14 x 6,5 инча LED дифузионна пластмаса (по избор)

- червена и синя електрическа лента

Компонентите, които ще ви трябват са:

- 2 100k ома потенциометъра

- 8 метра индивидуално адресируема LED лента (30 светодиода на метър)

www.amazon.ca/ALITOVE-WS2812B- Индивидуално- Адресируема- Водоустойчива/dp/B018XAELE4/ref=sr_1_1?s=hi&ie=UTF8&qid=1535323567&sr=1-

- няколко метра тел или няколко цвята тел

- захранващ адаптер за променлив ток към постоянен ток, който извежда 6v през щепсел за варел

- 1 arduino Uno R3

ако нямате достъп до Arduino Uno R3 като мен, можете да създадете такъв като този, който ще използвам в този проект, който използва процесор atmel328-pu. Следвайте тази връзка, за да научите как да създадете свой собствен

Ако използвате arduino uno, продължете към първата стъпка.

Стъпка 1: Изграждане на LED масив

Изграждане на LED масив
Изграждане на LED масив
Изграждане на LED масив
Изграждане на LED масив
Изграждане на LED масив
Изграждане на LED масив

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

-за начало ще ви трябва парче дърво 10 3/4 инча на 6 1/2 инча.

-след като имате парче дърво, вземете вашата LED лента и изрежете 26 сегмента на всеки 10 светодиода или на всеки 6 1/2 от инча.

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

-след като залепите лентите и ги оставите да се утаят, ще започнем да запояваме.

-ще ви трябват три различни по цвят тел

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

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

-накрая ще се свържем с Arduino. вашият цифров вход или вашият среден проводник ще се свърже към вас с 6 -пинов цифров вход и заземяването ви и положителното ще се свържат към положителните и отрицателните релси на дъската.

Стъпка 2: Управление на греблото

Лопатки за управление
Лопатки за управление
Лопатки за управление
Лопатки за управление
Лопатки за управление
Лопатки за управление

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

след като сте запоявали проводниците, ние ще ги свържем с Arduino. вие позитивни и негативни ще се свържете към съответните положителни и отрицателни дъждове. извеждащите проводници на потенциометрите ще се свързват към различни входове на arduino. единият ще се свърже към (A0) щепсела, а другият ще се свърже към (A1) щепсела.

Стъпка 3: Изрязване на кутията

Изрязване на кутията
Изрязване на кутията
Изрязване на кутията
Изрязване на кутията
Изрязване на кутията
Изрязване на кутията
Изрязване на кутията
Изрязване на кутията

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

**** много важно ***** уверете се, че дървото ви е с дебелина четвърт инч (1/4 инча)

също така, когато изрязвате части, не забравяйте да маркирате вашите части

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

размери на частите

- Долу: 13 3/4 инча X 10 1/4 инча

- Гърб: 13 3/4 инча X 15 1/2 инча

- Отгоре: 13 3/4 инча X 6 1/2 инча

- Предно дъно: 13 3/4 инча X 4 1/4 инча

- Панел за набиране: 13 3/4 инча X 6 инча

- Вътрешна горна част: 13 3/4 инча X 3 1/4 инча

- LED сайдинг: 6 1/4 инча X 1 инч (изрежете две от тях)

- LED вътрешно дъно: 13 1/4 инча X 4 1/2 инча

- вътрешен заден LED панел: 13 1/4 инча X 9 инча

- Блокове: 1 инч X 1 инч X 1 инч (изрязани 10 блока)

- Акрилен панел: 13 3/4 инча X 6 1/2 инча

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

Стъпка 4: Сглобяване на корпуса

Сглобяване на корпуса
Сглобяване на корпуса
Сглобяване на корпуса
Сглобяване на корпуса
Сглобяване на корпуса
Сглобяване на корпуса

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

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

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

-след това ще трябва да пробиете няколко пилотни отвора от дървото и блоковете. след като сте направили този винт, след това до дъното.

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

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

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

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

-Следващата част е малко по -предизвикателна поради факта, че работите с по -малка площ. за начало ще ни трябват всички горни части и 6 блока.

-Кажете това, което сте изградили досега на гърба му и поставете блоковете в ъглите на четвърт инч от върха. (както е показано на третата снимка в началото)

-пробийте пилотните отвори за страните и гърба и ги завийте.

-сега ще съберем останалата част от върха

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

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

-трябва да останете с нещо подобно (показано на първата снимка на тази стъпка)

следващата стъпка ще обясни останалата част от монтажа.

Стъпка 5: Завършване на монтажа

Завършване на монтажа
Завършване на монтажа
Завършване на монтажа
Завършване на монтажа
Завършване на монтажа
Завършване на монтажа

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

Сега остава само да инсталирате електрониката.

-Ще започнем, като пробием дупки в панела за набиране за вашия потенциометър. не се колебайте да пробиете дупките там, където смятате, че би било удобно. в моя случай съм поставил отворите на 2 1/2 инча от дъното и 3 1/2 инча отстрани за двата потенциометра.

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

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

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

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

*** Внимание ***-Бъдете изключително внимателни, когато поставяте светодиодната решетка, тъй като местата на запояване могат да бъдат крехки.

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

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

-Достигнахте до последната част. Препоръчвам да боядисате едната страна на тази последна част (Вътрешна LED задна част) в черно или бяло за контраст между светодиодите и тази част.

-Ние ще знаем да поставим това директно зад LED подложката и леко да притиснем гърба на светодиодите, за да не се движат. веднъж поставен, нанесете лепило по ръба, за да го предотвратите. показан на третата снимка.

**** честито, че завършихте цялото събрание !!!

продължете до последната стъпка, за да кодирате играта

Стъпка 6: Кодът

Поздравления още веднъж, че стигнахте дотук.

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

но преди да влезем в това, ще ви е необходим (adafruit_NeoPixel-master), който също съм свързал с изтеглянето.

за да инсталирате капитана, отворете вашата програма arduino

1. отидете на скица

2. отворете библиотеката за включване

3. щракнете върху (библиотека add.zip)

4. изберете файла (adafruit_NeoPixel-master) и готово

под това съм поставил кода за играта.

#включва

#включва

дълга топка Xabs = 12;

дълга топкаYabs = 4;

int ballX;

int ballY;

int ballvelX = 1;

int ballvelY = 1;

int индекс;

int fps = 50;

int paddlewidth = 3;

int paddlemax = 9 - paddlewidth + 1;

int knobseg = 1023 / (paddlemax);

int гребло1 = 4;

int гребло2 = 4;

#дефинирайте NUMPIXELS 260

#дефинирайте ПИН 6

Adafruit_NeoPixel пиксели = Adafruit_NeoPixel (NUMPIXELS, PIN6, NEO_GRB + NEO_KHZ800);

void setup () {

pixels.begin ();

Serial.begin (9600);

}

void loop () {

clearScreen ();

updateBall ();

updatePaddle1 ();

updatePaddle2 ();

displayBall ();

displayPaddle1 ();

displayPaddle2 ();

pixels.show ();

detectCollision ();

забавяне (fps);

}

void clearScreen () {

for (int i = 0; i <NUMPIXELS; i ++) {

pixels.setPixelColor (i, pixels. Color (0, 0, 0));

}

}

void updateBall () {

ballXabs += ballvelX;

ballYabs += ballvelY;

}

void detectionCollision () {

Serial.print (ballYabs);

Serial.print ("");

Serial.println (paddle1);

if (ballvelX> 0 && ballXabs> = 25) {// сблъскват дясната стена

Serial.println ("CollisionX");

score1 (); // ballvelX*=-1;

}

if (ballvelX <0 && ballXabs <= 0) {// се сблъскват с лявата стена

Serial.println ("CollisionX");

score2 (); // ballvelX*=-1;

}

if (ballvelY> 0 && ballYabs> = 9) {// сблъскват горната стена

Serial.println ("CollisionY"); ballvelY *= -1;

}

if (ballvelY <0 && ballYabs <= 0) {// сблъскват долната стена

Serial.println ("CollisionY");

ballvelY *= -1;

}

// откриване на сблъсък с гребло 2

if ((ballvelX> 0 && ballXabs == 24) && ((ballYabs> = paddle2) && (ballYabs <= paddle2 + paddlewidth - 1)))

{// сблъскват дясната стена

Serial.println ("CollisionPaddle");

ballvelX *= -1;

}

// откриване на сблъсък с гребло 1

if ((ballvelX = paddle1) && (ballYabs <= paddle1 + paddlewidth - 1)))

{// сблъскват дясната стена

Serial.println ("CollisionPaddle");

ballvelX *= -1;

}

}

void updatePaddle1 () {

int бутон = analogRead (A0);

гребло1 = кръгъл ((дълъг) бутон / (дълъг) бутон);

}

void updatePaddle2 () {

int knob2 = analogRead (A1);

гребло2 = кръгло ((дълго) копче2 / (дълго) бутонче);

}

void displayBall () {

ballX = кръг (ballXabs);

ballY = кръг (ballYabs);

ако (ballX % 2! = 0) {

индекс = (9 - ballY) + 10 * ballX;

ако (ballX! = 0) {

pixels.setPixelColor (ballY + 10 * (ballX - 1), pixels. Color (30, 0, 0)); // лявата страна на топчето

}

if (ballX! = 25) {pixels.setPixelColor (ballY + 10 * (ballX + 1), pixels. Color (30, 0, 0)); // дясната страна на цвета на топката

}

if (ballY! = 9) {pixels.setPixelColor (индекс - 1, пиксели. Color (30, 0, 0)); // долните страни на цвета на топката

}

if (ballY! = 0) {pixels.setPixelColor (индекс + 1, пиксели. Color (30, 0, 0)); // горните страни на цвета на топката

}

}

иначе {

индекс = ballY + 10 * ballX; ако (ballX! = 0) {

pixels.setPixelColor ((9 - ballY) + 10 * (ballX - 1), pixels. Color (30, 0, 0)); // лявата страна на равния ред на топката

}

ако (ballX! = 25) {

pixels.setPixelColor ((9 - ballY) + 10 * (ballX + 1), pixels. Color (30, 0, 0)); // дясната страна на равния ред на топката

}

if (ballY! = 9) {

pixels.setPixelColor (индекс + 1, пиксели. Color (30, 0, 0)); // долните страни на равния ред на топката

}

if (ballY! = 0) {pixels.setPixelColor (индекс - 1, пиксели. Color (30, 0, 0)); // горните страни на равния ред на топката

}

}

pixels.setPixelColor (индекс, пиксели. Color (255, 0, 0)); /// център на цвета на топката

}

void displayPaddle1 () {

for (int i = 0; i <ширина на греблото; i ++) {пиксели.setPixelColor (paddle1+i, пиксели. Color (0, 0, 255));

}

}

void displayPaddle2 () {

за (int i = 0; i <ширина на греблото; i ++) {пиксели.setPixelColor (NUMPIXELS - 1 - paddle2 - i, пиксели. Color (0, 0, 255));

}

}

void score1 () {

resetBall (0);

}

void score2 () {

resetBall (1);

}

void resetBall (int player) {

забавяне (1000);

ballXabs = 12

; ballYabs = 4;

ballvelX = играч? 1: -1;

ballvelY = 1;

clearScreen ();

забавяне (1000);

displayBall ();

pixels.show ();

забавяне (1000);

displayPaddle1 ();

displayPaddle2 (); pixels.show (); забавяне (2000); }

Стъпка 7: Завършване

Довършителни работи
Довършителни работи

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

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

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

Накрая бих искал да ви поздравя за завършването на проекта.

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

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