İçindekiler:

OUIJA: 5 Adım (Resimlerle)
OUIJA: 5 Adım (Resimlerle)

Video: OUIJA: 5 Adım (Resimlerle)

Video: OUIJA: 5 Adım (Resimlerle)
Video: Ouija Tahtası ile gelen ŞEY neydi?... | Sonunda oynadık! (Paranormal) 2024, Temmuz
Anonim
OUIJA
OUIJA
OUIJA
OUIJA
OUIJA
OUIJA

Cadılar Bayramı sezonu yaklaştıkça yeni projeler ortaya çıkıyor. Çok iyi bildiğimiz gibi, Cadılar Bayramı ölülerin günüdür, aramızda boşluk bırakanları hatırlamamızı sağlayan bir gündür. Projemiz, artık orada olmayanlarla, özlediklerimizle, bir portal olan Ouija panosu aracılığıyla bağlantıya izin veriyor.

Ouija tahtasının, öteyle konuşmak, soru sormak, "ruh" ile oyuncu arasında bir iletişim aracı olarak tahtaya sahip olmak arasında bir etkileşime sahip olmak için bir "portal" olduğu fikrine dayanıyoruz. Bu nedenle, yalnızca geçerli ve işlevsel bir kod oluşturmanın değil, oyuncunun programla nasıl hareket edeceğini anlamanın gerekliliğini görüyoruz. Ne için, programlamaya başlamadan önce, her durumda ne yapılacağını ve ne olacağını bilmek için bir akış diyagramı uygularız.

Ana fikrimiz, kullanıcı tahtaya dokunduğunda, yani kullanıcı iki elini tahtanın üzerinde tutup bir soru sorduğunda, ouija'nın işaretçisinin cevap olarak Evet'e veya Hayır'a doğru hareket etmesiydi. Kod için, kullanmak istediğimiz motor için performans aralıklarını programlamak zorundaydık, çünkü kartta Evet ve Hayır karşıttı (her iki tarafta birer tane). Ayrıca, cevapların rastgele olmasını istedik, bu yüzden önceki bir çalışma ile bu parametreleri oluşturmamız gerekti.

1. Adım: MALZEMELER

MALZEMELER
MALZEMELER
MALZEMELER
MALZEMELER
MALZEMELER
MALZEMELER

Bu projeyi gerçekleştirmek için aşağıdakiler gibi farklı elektrikli bileşenler, aletler ve malzemeler kullandık:

1. Elegoo uno R3. Denetleyici Kartı

2. Breadboard Jumper Telleri ve Dişi - erkek Dupont Teli

3. Basınç/Kuvvet sensörü

4. Anakart

5. Servo Motor

6. USB Kablosu

7. Lazer kesim makinesi

8. Mıknatıslar

9. Ahşap

Kutunun yapımında dört milimetrelik bir tahta kullandık. Sendikalar ve genişletilmiş porexpand için mıknatıslar.

2. Adım: TinkerCad Şeması

TinkerCad Şeması
TinkerCad Şeması
TinkerCad Şeması
TinkerCad Şeması

Burada kodumuzu simüle eden TinkerCad şemamız var.

Tüm bu yaklaşımın ardından bir kuvvet/basınç sensörü satın aldık ve onunla deney yapmaya başladık. Sensör çok basit bir bileşendir ve bağlanması kolaydır. Nasıl çalıştığını anlamak için, doğru çalışıp çalışmadığını görmek için denemenizi öneririz, bu yüzden size onu nasıl bağlayacağınızı ve kullanılan kodu göstereceğiz: kuvvet sensörünün fotoğrafı.

Bu bileşenin anlaşılmasından, sensörün işaretçi yolculuğunu başlatmak ve bitirmek için bir anahtar görevi göreceği sonucuna varıyoruz. Böylece uygulanan kuvveti "if" ve "else" den düzenlemeyi öğreniriz. Daha sonra ihtiyacımız olan motor tipini belirliyoruz. Ouija panosu, step motor gibi farklı şekillerde kontrol edilebilse de, göz atması gereken adımlarla çalışmak yerine hareketin açısını sınırlamak istediğimiz için bir servo motor kullanıyoruz.

Basınç sensörünün anlaşılması sayesinde 10 ile 800 arasında bir kuvvet olduğunda servo motorun bir açıya (Evet konumu) hareket ettiğini tanımlıyoruz. 800'den büyüktür ve tahtada basınç olmadığında bizim için 0 pozisyonuna (veya 90º açıya) ilk konumuna dönecektir. Yani kuvvet 10'dan az olduğunda. Tüm bu birimler, sensörün nereye yerleştirildiğine ve ne kadar etkileşim kurmak istediğinize bağlı olarak değişebilir.

Adım 3: Akış Şeması ve Kod

Akış Şeması ve Kodu
Akış Şeması ve Kodu
Akış Şeması ve Kodu
Akış Şeması ve Kodu
Akış Şeması ve Kodu
Akış Şeması ve Kodu

#Dahil etmek

int servoPin = 8;

şamandıra servoPozisyonu;

şamandıra startPosition;

Servo myServo;

uzun randNum;

int ben = 0;

int BasınçPin = A1;

int fuerza;

geçersiz kurulum() {

// bir kez çalıştırmak için kurulum kodunuzu buraya koyun:

Seri.başla(9600);

myServo.attach(servoPin);

}

boşluk döngüsü () {

// tekrar tekrar çalıştırmak için ana kodunuzu buraya koyun

fuerza = analogRead(PressurePin);

if (fuerza > 10) {

ben++;

gecikme(100);

if (fuerza < 800) {

gecikme(100);

servoPosition = servoPosition + i;

} else if (fuerza > 800) {

gecikme(100);

servoPosition = servoPosition - i;

}

} else if (fuerza < 10) {

ben = 0;

servoPozisyon = 90;

}

Serial.println(servoPosition);

myServo.write(servoPosition);

}

Adım 4: OUIJA NASIL YAPILIR?

OUIJA NASIL YAPILIR?
OUIJA NASIL YAPILIR?
OUIJA NASIL YAPILIR?
OUIJA NASIL YAPILIR?
OUIJA NASIL YAPILIR?
OUIJA NASIL YAPILIR?

Öncelikle tüm Arduino bileşenlerinin olacağı kutunun ölçülerini belirledik. Solidworks programından 300 mm'ye 200 mm'lik bir taban ve 30 mm'lik bir yükseklik oluşturduk. 4 mm kalınlığında ahşap kullandık. Planları ilgili programa geçirdikten sonra lazer makinesi ile ahşabı kesiyoruz.

Ouija tahtası başka bir hikayeydi. Önce tahtaya kazımak için tahtaların bir fotoğrafını veya vektörel çizimini aramamız gerekti. Aynı işlemi imleç için de yaptık. Tüm ana bileşenlere sahip olduğumuzda, elektroniği tanıtmaya başladık. Servomotoru kutunun ortasına, Arduino'yu ve protoboard'u bir tarafa (özellikle solda) konumlandırdık ve son olarak basınç sensörünü nereye yerleştireceğimize karar verdik. Sağ tarafa genişletilmiş bir porexpan tabanı ve bunun üzerine sensör yerleştirdik.

Kullanıcının ellerinin pozisyonunu dikkate alarak, üstüne daha fazla porexpan koyduk, böylece kullanıcı ellerini üzerine koyduğunda etkileşim gerçekleşir. Üst kapak ve kutunun birleşiminde mantar yapılar tarafından tutulan küçük mıknatıslar kullanıyoruz.

Servo motor için, servoda fazla moment üretmemek için iki koldan bir metakrilat kol tasarladık: mini servo motor ve mıknatıs kısmı. Bu parça başka malzemelerden yapılabilir ve servo dişli ile birleştirmek için Superglue kullanıyoruz, ancak sıcak silikon veya özel bir vida öneriyoruz. İmlecin altında, servonun mıknatısı tarafından çekilen bir mıknatıs kancalanır, böylece hareketi mümkün kılar.

Adım 5: Sonuç

Çözüm
Çözüm

Çalışma tamamlandıktan sonra, bunu gerçekleştirmek için izlediğimiz metodolojinin iki bölüme ayrılabileceğini belirleyebiliriz. İş, bir yandan, onun yapmasını istediğimiz şeyin analizinden, yolculuğunun bilgisini anlamak ve bir akış şemasına dönüştürmekten oluşuyordu. Bu analiz, kodun yapısını oluşturmamıza yardımcı oldu. Akış şeması sayesinde izlenen her adımın önemini fark ettik ve projenin ikinci bölümünü geliştirmemize olanak sağladı.

Pratik kısımla ilgili olarak, doğrusal bir evrim değil, bir deneme yanılma süreci olmuştur. Hareket yaratmanın ve etkileşimi kışkırtmanın birçok yolu olduğundan, her bileşenin işlevini anlamak, onu Ouija tahtasına uygularken bize yardımcı oldu. Servo motordaki açıların kısıtlanması veya analog ve elektronik elemanlar arasındaki bağlantıyı çözme şeklimiz gibi çeşitli engellerle başa çıkma şeklimizden gurur duyuyoruz. Arduino'nun sunduğu farklı seçenekler ilginçtir ve fikirlerimizi ve tekliflerimizi tasarlamamıza ve gerçekleştirmemize olanak tanır. Nazik bir şekilde interaktif ürünler yaratmanın ne kadar kolay olduğunun farkındayız.

Önerilen: