Mundarija:
- 1 -qadam: talablar
- 2 -qadam: QURILMA
- 3 -qadam: dasturiy ta'minot
- 4 -qadam: Asosiy kod
- 5 -qadam: TEST KODLARI
- 6 -qadam: O'YINNI NAZORAT
- 7 -qadam: O'rnatish
Video: Arduino yordamida virtual reallik kostyumi: 7 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
Men ushbu loyihani oddiy kompyuter o'yinlarini to'liq VR rejimida o'ynash uchun yaratdim. Ushbu loyiha sizning harakatlaringizni klaviatura tugmachalarini bosib ushlab turishga taqlid qiladi
Misol- oldinga siljiganingizda "w" tugmachasini bosish harakati taqlid qilinadi.
Men Call of Duty 4: Modern Warfare o'yinini taqlid qildim, lekin tortishish paytida orqaga qaytadigan o'yinlarni tanlamang, chunki u sichqonchaning asl holatini o'zgartiradi.
1 -qadam: talablar
Talablar-
Bu kostyumni tayyorlash uchun kerak bo'lgan narsalar ro'yxati bor
Sensorli sensorlar-5
Kuch sensori-1
GPU 6050 - 4
(yoki)
GPU 6050 - 2 va akselerometr - 2
Vr ko'zoynaklar
Vr yoqilgan telefon
Kompyuter
Wi -Fi ulanish nuqtasi
O'yinchoq qurol
Kompyuter o'yini (men Call of Duty- Modern Warfare 1-dan foydalanganman)
Non paneli simlari (erkak-ayol)
ARDUINO LEONARDO-2
Avtomatik qobiq - 2
Quvvat manbai (lipo)
Kamalak simlari
2 -qadam: QURILMA
*reload_pin, shoot_pin, tungi ko'rish_pin, granata_pin, qurol almashtirish_pin - sensorli sensorlar. aim_pin - bu kuch sensori va sichqoncha MPU6050 tomonidan taqlid qilinadi, boshqa sensorlar akselerometrdir (duruş, harakat1 va 2).
1.1) Lehimlash
SOLDER MPU 6050, akselerometr, sensorli sensorlar va simli kuch sensori
1.2) simlar
MPU 6050 uchun
2-pin- SDA
3-pin- SCL
GND - GND
5V - PWR/VCC
Harakat_pin1 uchun-
Pin A1- x o'qi
GND-GND
5V - PWR/VCC
Harakat_pin2 uchun-
Pin A2- x o'qi
GND-GND
5V - PWR/VCC
Posture_pin uchun-
A0- x o'qi
GND-GND
5V - PWR/VCC
qurol_pin uchun -
sig-5v
GND-GND
5V - PWR/VCC
Reload_pin uchun -
pin12 - 5v
GND-GND
5V - PWR/VCC
Nightvision_pin uchun -
pin 10 - 5V
GND-GND
5V - PWR/VCC
Shoot_pin uchun -
Pin 7 - 5v
GND-GND
5V - PWR/VCC
Aim_pin uchun -
Pin 8 - 5v
5V - PWR/VCC
1.3) LAYHLANISH TELLARI
Non paneli simlarini kamalak simlari bilan lehimlang
1.4) YALITISH
Qisqa tutashuvlarning oldini olish uchun payvandlangan joyga simlarni izolyatsiya tasmasi bilan yopishtiring
3 -qadam: dasturiy ta'minot
Men videoni noutbukdan telefonga uzatish uchun Play do'konidagi "Remotr" ilovasidan foydalandim
2.1) REMOTR-
Kompyuteringizga REMOTR dasturini o'rnating va hisob yarating
Mana havola-
remotrapp.com/#download
Smartfoningizga REMOTR ilovasini o'rnating
2.2) VIDEO STREAM
Avval kompyuterni va bir xil Wi -Fi tarmog'ini ulang va ikkala qurilmada ham REMOTR hisob qaydnomangizni kiriting
Endi dasturiy ta'minotda uzatmoqchi bo'lgan o'yinni qo'lda qo'shing
Endi ilova kompyuterni administrator sifatida ko'rsatadi, oqimni boshlash uchun uni bosing
VR rejimida translyatsiya qilish uchun smartfonda vr rejimini yoqing
Agar siz tushunmasangiz, batafsil ma'lumot uchun ushbu havolani tekshiring
remotrapp.com/uz/howto
4 -qadam: Asosiy kod
Ushbu loyihaning kodi murakkab yoki murakkab emas, lekin uzoq
Bu erda kod faqat nusxa ko'chiring va arduino faylingizga joylashtiring
ARDUINO
LEONARDO sichqonchasi-
Men Gabry295 ni takrorladim. Bu sichqoncha kodi uning boshiga asoslangan Sichqoncha ko'rsatma
#qo'shing
#qo'shing
#qo'shing
#qo'shing
int aim_pin;
int shoot_pin;
MPU6050 MPa;
int16_t ax, ay, az, gx, gy, gz;
int vx, vy;
bo'sh o'rnatish () {
Serial.begin (9600);
Sichqoncha.begin ();
Wire.begin ();
mpu.initialize ();
agar (! mpu.testConnection ()) {
vaqt (1);
}
pinMode (7, INPUT);
pinMode (8, INPUT);
}
void loop () {
shoot_pin = digitalRead (7);
aim_pin = digitalRead (8);
mpu.getMotion6 (& ax, & ay, & az, & gx, & gy, & gz);
vx = (gx-300)/200; // Men -300 va +490 ni qo'ydim, chunki mpu6050 chekni siljitganda bu qiymatlarni ko'rsatadi
vy = -(gz+490)/200; // bu qiymatlar haqida qo'shimcha ma'lumot olish uchun Gabry295 tomonidan bosh sichqonchasi kodini tekshiring
Sichqoncha harakati (vx, vy);
kechikish (20);
while (shoot_pin == HIGH);
{
Sichqonchani bosing ();
}
while (aim_pin == HIGH);
{
Sichqonchani bosing ();
}
}
Leonardo klaviaturasi
#qo'shing
int granata;
int qurol_pin;
int reload_pin;
int harakati1_pin;
int harakati2_pin;
int posture_pin;
char nightvision_pin;
bo'sh o'rnatish ()
{
pinMode (7, Kirish);
pinMode (8, INPUT);
pinMod (9, Kirish);
pinMod (10, Kirish);
pinMode (11, INPUT);
pinMode (12, INPUT);
pinMode (A0, INPUT);
pinMode (A1, Kirish);
Keyboard.begin ();
}
bo'sh halqa ()
{
Grenade_pin = digitalRead (8);
qurol_pin = digitalRead (9);
motion1_pin = analogRead (A1);
motion2_pin = analogRead (A2);
posture_pin = analogRead (A0);
reload_pin = digitalRead (12);
nightvision_pin = digitalRead (10);
agar (granata == YUQORI)
{
Keyboard.press ('g');
}
vaqt (qurol_pin == YUQORI)
{
Keyboard.press ('q');
}
while (reload_pin == HIGH)
{
Keyboard.press ('r');
}
while (harakat1_pin> 340 && harakat1_pin <420)
{
Keyboard.press ('w');
}
vaqt (harakat1_pin> 420)
{
Keyboard.press ('w');
Keyboard.press ('p');
}
while (harakat2_pin> 340 && harakat2_pin <420)
{
Keyboard.press ('w');
}
vaqt (harakat2_pin> 420)
{
Keyboard.press ('p');
Keyboard.press ('w');
}
while (posture_pin> 340 && posture_pin <420)
{
Keyboard.press ('c');
}
vaqt (posture_pin> 420)
{
Keyboard.press ('l');
}
vaqt (posture_pin <340)
{
Keyboard.press ('z');
}
vaqt (nightvision_pin == YUQORI)
{
Keyboard.press ('n');
}
}
}
5 -qadam: TEST KODLARI
Bu erda funktsiya bo'yicha asosiy koddan ajratilgan bir nechta kodlar
OTISH-
#qo'shing
int x;
bo'sh o'rnatish () {
pinMode (8, INPUT);
Sichqoncha.begin ();
}
void loop () {
x = digitalRead (8);
agar (x == YUQORI)
{
Sichqonchani bosing ('g');
}
}
MAKSID-
#qo'shing
#qo'shing
#qo'shing
#qo'shing
MPU6050 MPa;
int16_t ax, ay, az, gx, gy, gz;
int vx, vy;
bo'sh o'rnatish () {
Serial.begin (9600);
Sichqoncha.begin ();
Wire.begin ();
mpu.initialize ();
agar (! mpu.testConnection ()) {
vaqt (1);
}
}
void loop () {
shoot_pin = digitalRead (7);
aim_pin = digitalRead (8);
mpu.getMotion6 (& ax, & ay, & az, & gx, & gy, & gz);
vx = (gx+300)/200; // "+300", chunki giroskopning x o'qi -350 atrofida, u qimirlamay turibdi. Agar siz TEST kodini ishlatib, noldan uzoqroq qiymatlar bo'lsa, chacking yordamida boshqa narsani olsangiz, bu qiymatni o'zgartiring.
vy = -(gz_ -100)/200; // bu erda "-100" haqida
Qayta yuklanmoqda-
#qo'shing
int x;
bo'sh o'rnatish () {
pinMode (8, INPUT);
Keyboard.begin ();
}
void loop () {
x = digitalRead (8);
agar (x == YUQORI)
{
Keyboard.press ('r');
}
boshqa
{
Keyboard.release ('r');
}
}
NIGHT VISIO #o'z ichiga oladi
int x;
bo'sh o'rnatish () {
pinMode (8, INPUT);
Keyboard.begin ();
}
void loop () {
x = digitalRead (8);
agar (x == YUQORI)
{
Keyboard.press ('g');
}
boshqa
{
Keyboard.release ('g');
}
}
KRUCH VA PRON-
#qo'shing
int y;
bo'sh o'rnatish () {
pinMode (A0, INPUT);
Serial.begin (9600);
}
void loop () {
y = analogRead (A0);
agar (y <260)
{
Keyboard.release ('c');
Keyboard.release ('p');
}
aks holda (y> 260 && y <310)
{
Keyboard.press ('c');
}
aks holda (y> 310)
{
Keyboard.press ('p');
}
}
6 -qadam: O'YINNI NAZORAT
O'yin boshqaruvini quyidagicha o'zgartiring
egilgan - x
moyil - l
qurol almashtirish - q
sprint - p
turish/sakrash - z
tungi ko'rish - n
oldinga harakat - v
granata - g
7 -qadam: O'rnatish
Nihoyat, biz arduino qo'yadigan oxirgi bosqichga keldik
taxtalarni qutiga solib, sumkaga soling
Endi arduino mikro USB -ni noutbukning USB portlariga ulang, datchiklarni yuqorida ko'rsatilgan tarzda ulang
*yuqoridagi rasmlardagi o'q belgilari sensorning yuzini ko'rsatishi kerak
Agar sizda biron bir shubha bo'lsa, sharh qoldirishdan tortinmang va tajribangiz bilan bo'lishishni unutmang
Bu sizga rahmat va
BYE.
Tavsiya:
DIY LED tayoqli rasm kostyumi: 7 qadam (rasmlar bilan)
DIY LED tayoqli rasm kostyumi: Men sizga oddiy LED tayoqchali kostyumni qanday yasashni ko'rsataman. Lehimlashning asosiy ko'nikmalariga ega bo'lgan holda, bu loyiha juda oson. Bu mahallamizda katta zarba bo'ldi. Men qancha odam bu eng yaxshi kostyum deb aytganini bilmay qoldim
ETextile Unicorn kostyumi: 16 qadam (rasmlar bilan)
ETextile Unicorn kostyumi: Yakkaxo'rlar - boy folklor va ramziy tarixga ega ajoyib sehrli hayvonlar. Ularga ko'plab ajoyib fazilatlar berilgan - poklik, umid, sir, shifo va xushbo'ylik, ularning bir nechta xususiyatlarini o'z ichiga oladi. Xo'sh, kim jim bo'lishni xohlamaydi
O'zingizning virtual reallik ko'zoynaklaringizni yarating: 4 qadam
O'zingizning virtual reallik ko'zoynaklaringizni yarating: Materiallar:- karton poyabzal qutisi- qaychi / X-Acto pichog'i- 2 ta 45 mm bikonveks linzalari- 4 chiziqli Velcro- Gluestick
Virtual va aralash reallik ko'zoynaklari: 15 qadam (rasmlar bilan)
Virtual va aralash reallik ko'zoynaklari: Kirish: Kontsept -dizayn texnologiyasi bo'yicha magistratura kursida bizdan asosiy loyihamizga mos keladigan yangi texnologiyani o'rganish va prototip yaratish orqali ushbu texnologiyani sinab ko'rish so'raldi. Biz tanlagan texnologiyalar - bu virtual reallik
Android uchun ishlov berish yordamida virtual virtual haqiqat (TfCD): 7 qadam (rasmlar bilan)
Android uchun protsessor yordamida mobil virtual haqiqat (TfCD): Virtual haqiqat (VR) - bu kelajakdagi mahsulotlar qiziqarli bo'lishi mumkin bo'lgan yangi texnologiyalardan biri. Bu juda ko'p imkoniyatlarga ega va sizga qimmat VR ko'zoynaklari ham kerak emas (Oculus Rift). O'zingizni qilish juda qiyin bo'lib tuyulishi mumkin, lekin asosiysi