Съдържание:

Portal 2 Turret - Master Turrel Control: 9 стъпки (със снимки)
Portal 2 Turret - Master Turrel Control: 9 стъпки (със снимки)

Видео: Portal 2 Turret - Master Turrel Control: 9 стъпки (със снимки)

Видео: Portal 2 Turret - Master Turrel Control: 9 стъпки (със снимки)
Видео: Зашёл на политический сервер в майнкрафте 2024, Юли
Anonim
Image
Image

Този проект е разширение или ремикс на моя оригинален Portal Turret on Instructables (Portal-2-Turret-Gun). Може да се използва и като евтин контролер за управление на всичко, което използва радиочип nRF24L01. LCD екранът е особено полезен при персонализиране.

(Оказва се, че е доста полезно при проверка, когато моите радиостанции установят и загубят връзки с други nRF24L01 в „мрежата“. Мога да се разхождам и да гледам на дисплея да показва състоянието на връзката на радиостанциите! Доста полезно за регулиране на настройките и проверка диапазон!)

След като завърших Portal Turret, видях кратък видеоклип от оперната сцена Cara Mia в края на Portal 2. Помислих си: „Хей, сега съм построил няколко кули. Мога да го направя! Е, имах кулите, но за да работи, сега те трябва да комуникират помежду си или с друго устройство. След като се замислих и мислех, че ръчното управление също би било готино, в крайна сметка реших, че ще създам главен контролер на кули или MTC.

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

Ръчно управление: Така че, след като крилата са отворени, бих искал да контролирам терена и завъртането. 2 оси = джойстик, така че управлението на джойстика и някои бутони. Натискането на бутон 1 ще задейства купола и може би натискането на бутон 2 ще го накара да каже една от думите му. Звучи добре! Достатъчно просто…

Чат: Наскоро видях „Кой е на първо място“- рутината на Абот и Костело отново и в главата ми светна лампа! Бих направил и скица рутинна комедия, използвайки всички поговорки, използвайки множество кули !! Добре, този не беше напълно изяснен, но съм сигурен, че ще го оправя, след като изграждането ми е в ход.

Исках също така този MTC да бъде безжичен, затова избрах обикновена опция, захранвана от батерии с 9V, и проектирах контролера да се захранва от мини-USB щепсела през Nano отзад. Полезно и за актуализиране.

Стъпка 1: Включване на радиото в кулите

Първо накарах радиото да работи с няколко голи Nanos, за да се уверя, че мога да го накарам да работи и да изпраща информация между множество устройства. След като това беше направено, беше въпрос на включване на радиото в съществуващите кули. Хм, добавянето на физическата печатна платка в кулата беше доста лесно. Току -що промених държача на чипа, за да включва nRF24L01, Nano и mp3 чипа. Добре. Една физическа част е променена, с малко окабеляване.

Модифицираният държач за чипове вече е част от отпечатаните кули части. Току-що изтрих опцията non-radio от отпечатаните части в тази компилация. Няма да има значение, ако някой иска да създаде вариант без радио. Просто не включвайте радиочипа nRF24L01.

Стъпка 2: (Повторно) окабеляване на кулите

(Повторно окабеляване на кулите)
(Повторно окабеляване на кулите)
(Повторно окабеляване на кулите)
(Повторно окабеляване на кулите)
(Повторно окабеляване на кулите)
(Повторно окабеляване на кулите)
(Повторно окабеляване на кулите)
(Повторно окабеляване на кулите)

Ъ ох …

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

За тези, които искат да направят „Радио кула“и вече са изградили предишното поколение … Извинете …

Сега направих тази промяна няколко пъти и се оказа, че процесът не е толкова лош. Това включва връщане назад, но успях да разваля съществуващите връзки с Nano и след това да се свържа отново със съответните щифтове без прекалено много мъка. Добавих 7 -те проводника за радиочипа към nRF24L01 (5 комуникационни проводника, 3v и GND), след което свързах другите краища към Nano.

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

ВАЖНО: Когато сглобявате, уверете се, че проводниците не натискат бутона за нулиране на Nano на платката !! Това ми се случи на един и ме хвърли за ненужен цикъл!

Така че конструкцията на кулата сега има 2 схеми на окабеляване: старата наследствена опция „без радио“и преработената опция „радио кула“. Ако днес изграждам кула „без радио“, все още бих използвал схемата и кода на радиото. Просто изтрийте или коментирайте частите на радиото, ако това е избраният маршрут или не. Кулата все още трябва да работи сама без радиото.

Стъпка 3: Електрически компоненти на MTC

Електрически компоненти на MTC
Електрически компоненти на MTC
Електрически компоненти на MTC
Електрически компоненти на MTC
Електрически компоненти на MTC
Електрически компоненти на MTC

След като куполите бяха подредени, беше време да се направи MTC.

MTC използва следните компоненти, всички от Amazon или Baggood или Ali Express и т.н. изчакайте 2+ седмици, за да се добера до това, от което се нуждаех, преди да започна механичния дизайн!)

  • Arduino Nano 0.96”LCD, (SSD1306) Използвах синя/жълта версия
  • Малък джойстик (HW-504) 5V PS джойстик модул
  • Превключвател (dx-004) 22 мм * 13 мм
  • Радио - (nRF24L01)
  • 12-милиметрови бутони (CLT1088 за цветни бутони, PBS-33B за черно)
  • 2 мм винтове (комплект самонарезни винтове M2, асортимент с кръстосано задвижване)
  • 5 мм светодиоди по ваш избор за индикатори. (Не използвайте ярки светодиоди !!)
  • Общ 9V конектор за батерия с пигтейли
  • 9V батерия (използвайте добра, а не една от сортовете доларови магазини, които не винаги могат да доставят достатъчно енергия за тези проекти!)
  • Използвах тел със силиконова обвивка. Обичам да го използвам за тези проекти.

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

Стъпка 4: 3D отпечатани части

3D отпечатани части
3D отпечатани части
3D отпечатани части
3D отпечатани части
3D отпечатани части
3D отпечатани части

Проектирах MTC, използвайки Fusion, подобно на начина, по който направих дизайна на кулата.

Отпечатаният монтаж изисква само 3 части:

  • Горен панел (версия 1 или 2)
  • Долен корпус
  • LCD каишка

Чипът nRF, Nano, 9V батерията, превключвателят и светодиодите са инсталирани в горната плоча без крепежни елементи. Светодиодите просто натискат в плочата и се държат на място от езичета. Те просто трябва да се намесят, но не прекалявайте. Горната плоча е проектирана да захваща Nano и чипът nRF трябва да влезе леко. Внимателно с малкия раздел nRF; той е малък и е огънат назад, за да се отвори и освободен, за да улови чипа. Въпреки че пътуването му е ограничено, бъдете внимателни тук.

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

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

Обърнете внимание, че LCD дисплеят може да бъде инсталиран физически в горната плоча така или иначе, но дисплеят се показва изцяло само през отвора в една ориентация! Поради тази причина включих втора опция за горна плоча, когато използвам разделения жълто/син екран. Едната версия има жълтото в горната част, а другата ще показва жълтото в долната част, както е показано на моите снимки.

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

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

Вместо опция „врата на батерията“, просто вградих батерията в горната плоча. Това означава да премахнете 4 -те винта, които държат долната част отгоре, за да смените батерията, но тъй като тя може да се захранва и от USB кабел, а не от края на света. Горната плоча е направена с 9V система за държачи на батерии, която трябва да е достатъчно здрава за многократна употреба, не е прекалено сложна, но предотвратява движението на батерията.

Отпечатах горната плоча в 2 цвята, както се вижда на снимките. Използвам Prusa i3 Mk2 без опцията за много цветове, но използвам техния инструмент за цветен печат (https://www.prusaprinters.org/color-print/), за да променя цвета по средата на процеса. Проверете слоя, че текстът спира и става плътен, и го направете преходния слой. Вола! Цветен текст!

Отпечатах частите на височина на слоя 0,35 мм, тъй като няма нужда от по -фина разделителна способност на тези плоски части. Аз също предпочитам начина, по който изглежда тази резолюция. О, и се отпечатва доста бързо!

Стъпка 5: Електрически монтаж

Електрически монтаж
Електрически монтаж
Електрически монтаж
Електрически монтаж
Електрически монтаж
Електрически монтаж
Електрически монтаж
Електрически монтаж

Всички електрически компоненти са инсталирани от долната страна на горната плоча и всички кабели се извършват заедно. Първо трябва да бъдат инсталирани бутони и превключватели, а LCD, Nano, джойстик, nRF радио могат да бъдат предварително свързани, преди да бъдат инсталирани в горната плоча. Препоръчвам този метод за предварително окабеляване на отделните компоненти, след което да направите окончателните връзки към Nano в края. Препоръчвам също така първо да качите скицата в гол Nano, преди да завършите окабеляването.

Няма нищо по -удовлетворяващо от това да включите устройството и да гледате как оживява, както се очаква, когато приключи!

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

Стъпка 6: Код

Кодът за MTC, Червената кула, Бялата кула и Синята кула сега е готов

Е, това беше опит в кодирането! Имах кулата, работеща независимо, но включването на радиото беше по -трудно, отколкото първоначално си мислех! Също така се забавлявах да накарам секцията „Чат“да работи по желание (повече за това по -късно).

Кодът на MTC, след като бъде напълно разбран, започна да облага ограниченията на паметта на Nano! Трябваше да направя корекции и да спестя кода, за да бъда по -ефективен от паметта. Още едно добро обучение.

Включих съответния код за опция „Turret w radio option“в тази компилация, тъй като те работят заедно. Изграждането на опция за радио за кулата според страницата за изграждане на кулата ще я направи готова за използване с MTC или за другия ви метод на управление nRF24L01.

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

Стъпка 7: Меню MTC - Навигация

MTC меню - навигация
MTC меню - навигация
MTC меню - навигация
MTC меню - навигация
MTC меню - навигация
MTC меню - навигация

MTC кодът се стартира с персонализиран Splash екран, след което проверява състоянието на кулите. Ако няма кули, той просто ще седи там, докато кулите се свържат!

Ако е свързана поне една кула, главното меню ще се покаже и светодиодът „Ready“ще светне, освен ако кулите не са прекъснати или са заети „да се занимават с някого“. Ако те са заети, ще се покаже екран „Turrets are Busy“и светодиодът „Busy“ще светне.

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

Използвайте джойстика (нагоре и надолу), за да преминете през избора на менюто:

  • Ария
  • Чат
  • Ръководство

Изберете желаната опция с помощта на бутона „X“или чрез натискане на джойстика.

Aria Mode - избирането на тази опция ще покаже екрана „Aria Mode“и ще накара кулите да изпълнят сцената Aria в края на играта Portal 2. След като приключат, кулите ще се затворят и ще изчакат команда или някой да ги събуди.

Режим на чат - Избирането на тази опция ще покаже екрана „Режим на чат“и ще започне последователността на чата. След като приключат, кулите ще се затворят и ще изчакат команда или някой да ги събуди.

Ръчен режим - Избирането на тази опция ще покаже екрана „Ръчен режим“, ще светне светодиода „Ръчен“и ще позволи ръчно управление на кулите. Джойстик за контрол на височината и въртенето. Натискането на бутона „X“ще активира последователността на стрелба. Натискането на бутона „Т“ще ги накара да „говорят“, където кулите произнасят произволна поговорка от библиотеката си.

Натискането на бутона „<“или обратно ще отмени тези три режима, ще затвори кулите и ще се върне в главното меню.

Ако искате да видите състоянието на връзката на вашия куп кули (понастоящем ограничено до 3), натиснете бутона „T“, когато сте в главното меню. Ще бъдете отведени до екрана „състояние на кулата“, където можете да видите състоянието на връзката на всяка кула.

Когато сте на екрана „състояние на кулата“, ще видите състоянието на всяка кула.

  • Готов - готов за контрол
  • Зает - кулата е заета да „се грижи“за някого
  • Не е налично - MTC не може да се свърже с тази кула

Натиснете бутона „<“, за да се върнете в главното меню.

Стъпка 8: Персонализиране на кода

Персонализиране на кода
Персонализиране на кода

Екранният кадър, показан тук, показва какво гледах твърде дълго … 4 скици наведнъж! Кой каза, че отстраняването на грешки не е забавно!

Кодът осигурява контрола и опциите, показани по -горе, но какво ще кажете за персонализирането на кода?

Разбира се! Но тук се случва доста сума, така че ето някои насоки или съвети.

Съвет 1 - Промяна на последователността „Чат“. Тази промяна се извършва в кода на кулата.

Опитах се да намеря начин кодът да работи за мен, където мога. Подобряването на последователността на чата (Това дума ли е?), За да мога да се съсредоточа върху историята, отне повече работа отпред, но улеснява персонализирането след това.

Промяната на чат последователността с помощта на предоставената кодираща структура може да стане по доста лесен начин, при условие че следвате метода, използван в кода. Използвайки предоставените звукови файлове от играта Portal 2, ще трябва само да промените таблицата (chatSayings ).

Изберете поговорката за обикновената кула или дефектната кула. Поговорката е mp3 файлът, който се идентифицира с „00XX -“, последван от текст, описващ поговорката. Важното е числото. Кулата # 1 ще използва тази XX стойност в таблицата. Кулата # 2 ще префиксира стойността на XX с „1“, а кулата # 3 ще посочи стойността на XX с „2“. Така например, ако избирате израза „0040 - съжалявам“и искате кула №3 да го каже, бихте вмъкнали „240“в таблицата в правилната последователност. Ако кулата №1 го каза, щяхте да вмъкнете „40“в таблицата.

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

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

if (i> = 43) {// край на поредицата

Стойността на i тук трябва да бъде зададена на броя на поговорките в таблицата chatSayings.

За да направите напълно персонализирани поговорки (където започва истинското забавление!), Ще трябва да настроите изразите в номерирани файлове и да знаете продължителността на времето, необходимо за възпроизвеждане на файла. Запишете файла в папката “mp3” в основната директория на SD картата, като използвате четирицифрения метод (“0001”, “0002” и т.н.). След това регистрирайте времето в милисекунди, което е необходимо за възпроизвеждането на този файл. Вмъкнете тези стойности в съответната таблица.

Така че за израз, запазен като „0037 - [вашият израз]”, който отнема 5400 милисекунди за възпроизвеждане, бихте поставили „37“в таблицата chatSayings на подходящото място (и добавете префикса в зависимост от това, коя кула казва it) и 5400 в таблицата NormaTimings на същото място (например 5 -ти елемент във всяка таблица).

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

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

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

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

Ако някой има по -добър начин да направи това, ще се радвам да го чуя !!

Стъпка 9: Обобщение

Резюме
Резюме

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

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

Бих искал също да видя други идеи, включени в MTC и контрола на кулите!

Надявам се, че съм предоставил платформа за други дизайнери и кодери, които да използват / крадат / учат. Виждах, че това се използва, за да помогне на хората да се научат да кодират. Премахнете раздел от MTC и/или кулата, като например „Ръчен режим“например, и накарайте учениците да разработят свой собствен начин за включване на ръчно управление!

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

Успех и забавление в изграждането на собствена армия от кули!

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