- Преглед:
- Необходими компоненти:
- Обяснение на веригата:
- Работа на акселерометър:
- Програмиране на Arduino:
- Обработка на програмиране:
- Тестване:
Разширената реалност и виртуалните игри се превърнаха в скорошна тенденция в игралната индустрия. Времената на използване на клавиатура / джойстик и мишка за игра на компютърна игра отминаха. Сега всяка игрална конзола се предлага с виртуален контролер, който ни помага да играем играта, използвайки движенията на тялото и жестовете си, по този начин игровото изживяване се е увеличило много и потребителят се чувства по-ангажиран в играта.
В този проект нека се опитаме да се забавляваме, докато се учим през проекта. Позволете ни да създадем игра (Да, чухте, че поправяме, трябва да създадем игра) и да я играем, като използваме движението на ръката ви. Създаваме класическата игра за топка за пинг понг, използвайки Arduino и акселерометър.
Преглед:
В наши дни се предлагат тонове софтуер с отворен код, който донесе много щастие за любители като нас и обработката е един от тях. С това приложение, базирано на JAVA, можем да създадем собствен софтуер (.exe формат), както и приложение за Android (.apk файл). Така че ние ще използваме този софтуер, за да изградим нашата игра, преди сме използвали обработката при създаването на Arduino Chat Room.
Хардуерната част ще се състои от Arduino, който ще извлича входа от акселерометъра, за да го подава последователно към нашия компютър / лаптоп.
Та хайде да пазаруваме !!!!
Необходими компоненти:
- Arduino (всяка версия или модел)
- Акселерометър
- Свързващи проводници
- Лихва (Lolz)
Акселерометър и Arduino Nano
Обяснение на веригата:
Circuit of Arduino Ping Pong Ball Game Project не включва никакви сложни връзки. Използвал съм Arduino Nano с акселерометър. Но има няколко неща, за които трябва да се погрижите, както е споменато по-долу:
1. Вашият акселерометър не може да се справи с 5V, така че винаги свързвайте Vcc на акселерометъра към вашия 3.3V щифт на Arduino.
2. Всеки акселерометър страда от ефекта на гравитацията, с който трябва да се борави при програмиране (просто с помощта на филтър).
Имайки това предвид, нека да разгледаме работата на акселерометъра и как го използваме.
Работа на акселерометър:
Един акселерометър е устройство, което може да конвертира ускорение във всяка посока на съответния променлива напрежение. Това се постига чрез използване на кондензатори (препратка към изображението), докато Accel се движи, кондензаторът, намиращ се вътре в него, също ще претърпи промени (препратка към изображението) въз основа на движението, тъй като капацитетът е променлив, може да се получи и променливо напрежение.
И така, както беше споменато по-горе, всеки акселерометър страда от проблема с гравитационния ефект. Без значение колко точно е калибриран вашият сензор (дори вашите Apple телефони Accel.), Той ще бъде засегнат от гравитацията. По-техническо обяснение на този проблем е дадено по-долу.
Сега в Arduino можем да намалим ефекта на гравитацията, като използваме обикновен филтър. Този филтър ще се състои от два масива, единият се използва за съхраняване на примерните стойности от сензора, а другият се използва за сортиране на примерните стойности и намиране на най-повтарящата се стойност. Нека внедрим този алгоритъм в нашия Arduino и да подготвим хардуера си.
Програмиране на Arduino:
Програмата Arduino е дадена по-долу в раздела Код. Няма критични данни, които трябва да бъдат модифицирани. Но може да помислите за следното:
Увеличете размера на извадката, ако вашият Accel все още показва произволни стойности.
#define Samplesize 13 // filterSample number
Играйте с 9600 скорости на предаване, за да увеличите скоростта на комуникация между Arduino и Processing. Но не забравяйте да ги промените и в двата софтуера (програми).
void setup () {Serial.begin (9600); }
Моят акселерометър по оста X дава 193 в крайния ляв край и 280 в крайния десен край, измервайте ги за вашия Accel и актуализирайте стойността.
toSend = карта (smoothData1, 193, 280, 0, 255);
Стойностите се преобразуват в един байт данни за последователна комуникация.
По-нататък проверете коментарите в дадения по-долу Кодекс, за да го разберете ясно.
Обработка на програмиране:
Processing е софтуер с отворен код, който се използва от художници за графично проектиране. Този софтуер се използва за разработване на софтуер и приложения за Android. Лесно е да се разработи и много прилича на IDE за разработка на Android. Затова съм съкратил обяснението.
Кодът за обработка на играта за пинг понг е даден тук:
- Код за обработка на игра Arduino Ping Ball
Щракнете с десния бутон върху него и кликнете върху „Запазване на връзката като..“, за да изтеглите кодовия файл. След това отворете файла в софтуера „Обработка“ и кликнете върху бутона „Изпълни“, за да играете Играта. Трябва да инсталирате софтуера „Обработка“, за да отворите *.pde файлове. Разделът за коментари е отворен за заявки и също така проверете коментарите в програмата, за да го разберете по-добре.
Под реда е важна функцията void setup () на Processing code, тъй като тя решава от кой порт да се подават данни.
порт = нов сериен (този, Serial.list (), 9600); // Чете 4-ия ПОРТ при 9600 баудрат
Тук прочетох данни от 4-ия порт от моя Arduino.
Така например, ако имате COM COM COM COM COM
Тогава горният код ще чете данни от COM.
Тестване:
Сега, тъй като нашата скица за обработка и Arduino е готова, просто качете дадената по-долу програма в Arduino и свържете вашия Arduino към кабела за цялостно програмиране на потребителския компютър и стартирайте играта, като стартирате кодовия файл за обработка (.pde). Това е! Преместете вашия акселерометър и играйте вашата игра за пинг понг. The Video ще ви преведе през целия проект.
След като сте разбрали програмата, можете да създадете много подобни игри и да ги играете с помощта на вашия Arduino. Освен това оста Y и Z оста също могат да бъдат включени за игри.