İçindekiler:
- Adım 1: Gerekli Malzemeler ve Parçalar:
- 2. Adım: Neopiksel Halkaları
- 3. Adım: Bağlantılar
- Adım 4: Kod:
- Adım 5: Her Şeyi Bir Araya Getirmek:
Video: Gevşeme Gözlüğü - ITTT: 5 Adım (Resimli)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:21
HKU Projesi - ITTT (Bu Oysa O Zaman) - Julia Berkouwer, 1B
Hiç stresli hissettiniz mi ve kendinizi nasıl sakinleştireceğinizi bilmiyorsanız, bu gevşeme gözlüklerini denemelisiniz! Onları giyip gözlerini kapatıyorsun, sonra bir nefes kalıbı çalacak. Bu nefes alma düzenini takip ederek nefes ritminiz dakikada 6 kez nefes alıp vermeye kadar inecektir. Bunu yapmak günlük stresi azaltır.
Ayrıca bir fsr sensörü kullanarak bir anahtarı çevirerek nefes alma yoğunluğunuzu takip edebilirsiniz.
Bu toturial ile adım adım kendi rahatlatıcı gözlüklerinizi oluşturmanız için size rehberlik edeceğim.
Adım 1: Gerekli Malzemeler ve Parçalar:
Malzemeler:
1x arduino uno;
1xbreadboard veya PCV;
3x 10k dirençler
Teller(Tercihen farklı renkler, böylece hangi şeylerin yere, hangilerinin farklı pinlere gideceğini söylemek daha kolay olur, vb.);
Bazı ısıyla daralan tüpler;
2x NeoPixel Ring - Entegre Sürücülü 16 x 5050 RGB LED;
1x anahtarı;
1x FSR sensörü;
1x SteamPunk gözlükleri (Bunları bir parti mağazasından satın alabilirsiniz, neopiksel halka gözlüklere mükemmel şekilde oturduğundan kullanımı kolaydır. Her zaman başka gözlükleri kullanmayı deneyin veya kendinizinkini yaratın.);
1x göğsünüzün etrafına sarabileceğiniz bir çeşit (elastik) bant.
Araçlar:-Dizüstü bilgisayar
-Havya
-Arduino IDE yazılımı
Pvc'imde iki buton ve bir anahtar göreceksiniz, ben sadece soldaki butonu switch'e bağlamak için kullanıyorum, resmin sağındaki ikinci butonu kullanmıyorum. Düğmelere ihtiyacım olmadığını ve bunun yerine bir anahtar kullanmam gerektiğini fark etmeden önce pvc'nin üzerine düğmeler koydum.
Aşağıda kullandığım her şeyin resimlerini göreceksiniz:
2. Adım: Neopiksel Halkaları
Beyaz tel, neopiksel halkasının arkasındaki toprağa bağlanır.
Turuncu tel 5V'a bağlanır.
Ve kahverengi kablo veri girişine bağlanır
3. Adım: Bağlantılar
Prototipleme sırasında breadboard'um böyle görünüyordu, bunu referans olarak kullanabilirsiniz.
Ayrıca tek bir düğmeyle nasıl görünmesi gerektiğinin kablo düzenini de yaptım.
Adım 4: Kod:
Muhtemelen en verimli kod değil, ama benim için çalışıyor. Kendinize meydan okuyun ve daha verimli hale getirmeye çalışın;P
#Dahil etmek
// Hangi
Arduino'daki pin NeoPixels'e bağlı mı?
#tanımlamak
PIN 6
// Hangi
Arduino üzerindeki pin butona bağlanır
#tanımlamak
BUTTON_PIN 9
// Nasıl
Arduino'ya birçok NeoPiksel bağlı mı?
#tanımlamak
SAYISALLAR 16
// Ne zaman
NeoPixel kütüphanesini kuruyoruz, kaç piksel olduğunu ve sinyal göndermek için hangi pini kullanacağını söylüyoruz.
// Not
daha eski NeoPixel şeritleri için üçüncü parametreyi değiştirmeniz gerekebileceğini
//
olası değerler hakkında daha fazla bilgi için örnek.
Adafruit_NeoPixel
piksel = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int duraklatma
= 1; //gecikme2
int
duraklama2 = 80; // fsr kullanılırken aşağı iniyor
int
duraklama3 = 150; // fsr kullanılırken yapılıyor
int
gecikme değeri = 4; // gecikme1
int
fsrPin = 0; // FSR ve 10K açılan menü a0'a bağlı
int
fsrOkuma;
geçersiz
kurmak() {
pinMode(BUTTON_PIN, INPUT);
Seri.başla(9600);
piksel.begin(); // Bu, NeoPixel kitaplığı.
piksel.göster();
}
bool
düğmeye basılmış(int pin){
geri digitalRead(pin);
}
geçersiz
loop() { // pin girişinin doğru mu yanlış mı olduğunu okur
fsrReading = analogRead(fsrPin);
Serial.print("Analog okuma = ");
Serial.print(fsrReading);
if (düğmeye basılmış(BUTTON_PIN) == doğru){
// fsr sensörünü kullanırken ışık efekti
if (fsrReading > 50){
piksel.setPixelColor(0, 1, 0, 1);
piksel.setPixelColor(15, 1, 0, 1);
piksel.setPixelColor(1, 1, 0, 1);
piksel.setPixelColor(14, 1, 0, 1);
piksel.göster();
gecikme(duraklatma3);
}
if (fsrReading < 52){
piksel.setPixelColor(0, 0, 0, 0);
piksel.setPixelColor(15, 0, 0, 0);
piksel.setPixelColor(1, 0, 0, 0);
piksel.setPixelColor(14, 0, 0, 0);
piksel.göster();
gecikme(duraklatma2);
}
if (fsrReading > 57){
piksel.setPixelColor(2, 1, 0, 1);
piksel.setPixelColor(13, 1, 0, 1);
piksel.setPixelColor(3, 1, 0, 1);
piksel.setPixelColor(12, 1, 0, 1);
piksel.göster();
gecikme(duraklatma3);
}
if (fsrReading < 59){
piksel.setPixelColor(2, 0, 0, 0);
piksel.setPixelColor(13, 0, 0, 0);
piksel.setPixelColor(3, 0, 0, 0);
piksel.setPixelColor(12, 0, 0, 0);
piksel.göster();
gecikme(duraklatma2);
}
if (fsrReading > 65){
piksel.setPixelColor(4, 1, 0, 1);
piksel.setPixelColor(11, 1, 0, 1);
piksel.setPixelColor(5, 1, 0, 1);
piksel.setPixelColor(10, 1, 0, 1);
piksel.göster();
gecikme(duraklatma3);
}
if (fsrReading <67){
piksel.setPixelColor(4, 0, 0, 0);
piksel.setPixelColor(11, 0, 0, 0);
piksel.setPixelColor(5, 0, 0, 0);
piksel.setPixelColor(10, 0, 0, 0);
piksel.göster();
gecikme(40);
}
if (fsrReading > 79){
piksel.setPixelColor(6, 1, 0, 1);
piksel.setPixelColor(9, 1, 0, 1);
piksel.setPixelColor(7, 1, 0, 1);
piksel.setPixelColor(8, 1, 0, 1);
piksel.göster();
gecikme(duraklatma3);
}
if (fsrOkuma <85){
piksel.setPixelColor(6, 0, 0, 0);
piksel.setPixelColor(9, 0, 0, 0);
piksel.setPixelColor(7, 0, 0, 0);
piksel.setPixelColor(8, 0, 0, 0);
piksel.göster();
gecikme(20);
}
}
Başka{
nefes_mavi(20, 100, 0, 1, 1); // normal
Efekt
}
}
// Duraklat
= geçişler arasındaki gecikme
// Adımlar
= adım sayısı
// R, G, B = Tam RGB değerleri
// De void Breath, voor het licht effect als de
fsrsensor niet gebruikt wordt. Deze void loop() weer aangeroepen.
void Breath_blue(int duraklama, int adımlar, bayt R, bayt G, bayt B) {
int
tmpR, tmpG, tmpB; // Sıcaklık değerleri
// Karartmak
for (int s=1; s<=adımlar; s++) {
tmpR = (R * s) /
adımlar; // Kesme hatalarından kaçınmak için önce çarp
tmpG = (G * s) / adımlar;
tmpB = (B * s) / adımlar;
için (int i=0;
benpiksel.setPixelColor(0, tmpR, tmpG+1, tmpB);
piksel.setPixelColor(15, tmpR, tmpG+1, tmpB);
}
piksel.göster();
gecikme(4);
}
// Karartmak
for (int s=1; s<=adımlar; s++) {
tmpR = (R * s) /
adımlar; // Kesme hatalarından kaçınmak için önce çarp
tmpG = (G * s) / adımlar;
tmpB = (B * s) / adımlar;
için (int i=0;
benpiksel.setPixelColor(1, tmpR, tmpG+1, tmpB);piksel.setPixelColor(14, tmpR, tmpG+1, tmpB);
}
piksel.göster();
gecikme(4);
}
// Karartmak
for (int s=1; s<=adımlar; s++) {
tmpR = (R * s) /
adımlar; // Kesme hatalarından kaçınmak için önce çarp
tmpG = (G * s) / adımlar;
tmpB = (B * s) / adımlar;
için (int i=0;
benpiksel.setPixelColor(2, tmpR, tmpG+2, tmpB);piksel.setPixelColor(13, tmpR, tmpG+2, tmpB);
}
piksel.göster();
gecikme(3.5);
}
// Karartmak
for (int s=1; s<=adımlar; s++) {
tmpR = (R * s) /
adımlar; // Kesme hatalarından kaçınmak için önce çarp
tmpG = (G * s) / adımlar;
tmpB = (B * s) / adımlar;
için (int i=0;
benpiksel.setPixelColor(3, tmpR, tmpG+3, tmpB+5);piksel.setPixelColor(12, tmpR, tmpG+3, tmpB+5);
}
piksel.göster();
gecikme(3);
}
için (int i=0;
benpiksel.setPixelColor(0, 0, 0, 0);piksel.setPixelColor(15, 0, 0, 0);
}
// Karartmak
for (int s=1; s<=adımlar; s++) {
tmpR = (R * s) /
adımlar; // Kesme hatalarından kaçınmak için önce çarp
tmpG = (G * s) / adımlar;
tmpB = (B * s) / adımlar;
için (int i=0;
ben
piksel.setPixelColor(4, tmpR, tmpG+3, tmpB+15);piksel.setPixelColor(11, tmpR, tmpG+3, tmpB+15);
}
piksel.göster();
gecikme(3);
}
// Karartmak
for (int s=1; s<=adımlar; s++) {
tmpR = (R * s) /
adımlar; // Kesme hatalarından kaçınmak için önce çarp
tmpG = (G * s) / adımlar;
tmpB = (B * s) / adımlar;
için (int i=0;
benpiksel.setPixelColor(5, tmpR, tmpG+4, tmpB+20);piksel.setPixelColor(10, tmpR, tmpG+4, tmpB+20);
}
piksel.göster();
gecikme(2);
}
için (int i=0;
benpiksel.setPixelColor(1, 0, 0, 0);
piksel.setPixelColor(14, 0, 0, 0);
}
// Karartmak
for (int s=1; s<=adımlar; s++) {
tmpR = (R * s) /
adımlar; // Kesme hatalarından kaçınmak için önce çarp
tmpG = (G * s) / adımlar;
tmpB = (B * s) / adımlar;
için (int i=0;
benpiksel.setPixelColor(6, tmpR, tmpG+2, tmpB+40);
piksel.setPixelColor(9, tmpR, tmpG+2, tmpB+40);
}
piksel.göster();
gecikme (gecikme);
}
için (int i=0;
benpiksel.setPixelColor(2, 0, 0, 0);piksel.setPixelColor(13, 0, 0, 0);
}
// Karartmak
for (int s=1; s<=adımlar; s++) {
tmpR = (R * s) /
adımlar; // Kesme hatalarından kaçınmak için önce çarp
tmpG = (G * s) / adımlar;
tmpB = (B * s) / adımlar;
için (int i=0;
ben
piksel.setPixelColor(7, tmpR, tmpG, tmpB+44);piksel.setPixelColor(8, tmpR, tmpG, tmpB+44);
}
piksel.göster();
gecikme (gecikme);
}
// Sönük
for (int s=adımlar; s>0; s--) {
tmpR = (R * s) / adımlar; // Kesilmeyi önlemek için önce çarp
hatalar
tmpG = (G * s) / adımlar;
tmpB = (B * s) / adımlar;
for (int i=0; ben
piksel.setPixelColor(7, tmpR, tmpG, tmpB);
piksel.setPixelColor(8, tmpR, tmpG, tmpB);
}
piksel.göster();
gecikme(1);
}
// Sönük
for (int s=adımlar; s>0; s--) {
tmpR = (R * s) / adımlar; // Kesilmeyi önlemek için önce çarp
hatalar
tmpG = (G * s) / adımlar;
tmpB = (B * s) / adımlar;
for (int i=0; ben
piksel.setPixelColor(6, tmpR, tmpG, tmpB);
piksel.setPixelColor(9, tmpR, tmpG, tmpB);
}
piksel.göster();
gecikme(1);
}
// Sönük
for (int s=adımlar; s>0; s--) {
tmpR = (R * s) / adımlar; // Kesilmeyi önlemek için önce çarp
hatalar
tmpG = (G * s) / adımlar;
tmpB = (B * s) / adımlar;
for (int i=0; ben
piksel.setPixelColor(5, tmpR, tmpG, tmpB);
piksel.setPixelColor(10, tmpR, tmpG, tmpB);
}
piksel.göster();
gecikme(2);
}
// Sönük
for (int s=adımlar; s>0; s--) {
tmpR = (R * s) / adımlar; // Kesilmeyi önlemek için önce çarp
hatalar
tmpG = (G * s) / adımlar;
tmpB = (B * s) / adımlar;
for (int i=0; ben
piksel.setPixelColor(4, tmpR, tmpG, tmpB);
piksel.setPixelColor(11, tmpR, tmpG, tmpB);
}
piksel.göster();
gecikme(2);
}
// Sönük
for (int s=adımlar; s>0; s--) {
tmpR = (R * s) / adımlar; // Kesilmeyi önlemek için önce çarp
hatalar
tmpG = (G * s) / adımlar;
tmpB = (B * s) / adımlar;
for (int i=0; ben
piksel.setPixelColor(3, tmpR, tmpG, tmpB);
piksel.setPixelColor(12, tmpR, tmpG, tmpB);
}
piksel.göster();
gecikme(3);
}
// Sönük
for (int s=adımlar; s>0; s--) {
tmpR = (R * s) / adımlar; //
Kesme hatalarını önlemek için önce çarpın
tmpG = (G * s) / adımlar;
tmpB = (B * s) / adımlar;
for (int i=0; ben
piksel.setPixelColor(2, tmpR, tmpG, tmpB);
piksel.setPixelColor(13, tmpR, tmpG, tmpB);
}
piksel.göster();
gecikme(3);
}
// Sönük
for (int s=adımlar; s>0; s--) {
tmpR = (R * s) / adımlar; // Kesilmeyi önlemek için önce çarp
hatalar
tmpG = (G * s) / adımlar;
tmpB = (B * s) / adımlar;
for (int i=0; ben
piksel.setPixelColor(1, tmpR, tmpG, tmpB);
piksel.setPixelColor(14, tmpR, tmpG, tmpB);
}
piksel.göster();
gecikme(4);
}
// Sönük
for (int s=adımlar; s>0; s--) {
tmpR = (R * s) / adımlar; // Kesilmeyi önlemek için önce çarp
hatalar
tmpG = (G * s) / adımlar;
tmpB = (B * s) / adımlar;
for (int i=0; ben
piksel.setPixelColor(0, tmpR, tmpG, tmpB);
piksel.setPixelColor(15, tmpR, tmpG, tmpB);
}
piksel.göster();
gecikme(4);
}
}
Adım 5: Her Şeyi Bir Araya Getirmek:
Tüm kablolarınızı breadboard'unuza veya bir PVC'ye bağlı bırakabilirsiniz, bu size kalmış (arduino'nun üstüne bir PVC koymayı seçtim, bu şekilde güzel ve temiz).
Bir sonraki adım, tüm kabloların etrafına ısıyla daralan tüpler yerleştirmektir, böylece daha az karışıklık olur.
PVC kullanmayı seçtiyseniz, şimdiye kadar her şeyi lehimlemiş olmanız gerekirdi.
Bundan sonra, neopiksel halkalarını gözlüklerin dışına yerleştirirsiniz (ledlerin altta hizalandığından emin olun) ve bunları bir bant veya yapıştırıcı ile yerine sabitleyin (bant kullandım).
Fsr-sensörünü bir miktar bantla elastik banda yapıştırmayı veya kendi başına bırakmayı tercih edebilirsiniz.
Gözlüklerin tadını çıkar:)
Önerilen:
Airsoft/Paintball için Prototip Gece Görüş Gözlüğü: 4 Adım
Airsoft/Paintball için Prototip Gece Görüş Gözlüğü: Gece Görüşü Üzerine Kısa Bir NotGerçek gece görüş gözlükleri (gen 1, 2. ve 3. nesil) tipik olarak ortam ışığını yükselterek çalışır, ancak burada yapacağımız gece görüş gözlükleri farklı bir prensiple çalışır. Pi NoIR kamerayı kullanacağız
Google Cardboard için Gece Görüş Gözlüğü: 10 Adım (Resimlerle)
Google Cardboard için Gece Görüş Gözlüğü: Sorumluluk Reddi: Bu cihazın kullanımı yalnızca eğlence, eğitim ve bilimsel kullanım içindir; casusluk ve/veya gözetleme için değil. "Casus gadget" Uygulamaya sadece eğlence için özellikler eklendi ve herhangi bir pratik amaca hizmet etmeyecek
Yatağınıza Gevşeme Verin!: 7 Adım (Resimlerle)
Yatağınıza Underglow verin!: Bu Eğitilebilir Kitapta, RGB LED'lerle yatağınızın nasıl harika görüneceğini açıklayacağım. Benimkiler uzaktan kumandalı, kararma veya yanıp sönme gibi farklı seçenekleri var ve çok ucuzlar. Geçenlerde bangg'de bir indirim vardı
Radar Gözlüğü: 14 Adım (Resimli)
Radar Gözlükleri: Geçen yaz Maine'de tatildeyken başka bir çiftle tanıştık: Mike ve Linda. Linda kördü ve (sanırım) ilk çocuklarının doğumundan beri kördü. Gerçekten çok hoşlardı ve birlikte çok güldük. Eve geldikten sonra yapamadım
Ev Yapımı Gece Görüş Gözlüğü: 6 Adım
Ev Yapımı Gece Görüş Gözlüğü: Başlangıç için kısa lirik arasöz. 5 yıl üst üste Litvanya'da bir STALKER - airsoft / LARP etkinliği düzenledik. Strugatsky kardeşlerin kitaplarına ve PC oyununa dayanan bir dizi oyun – STALKER.Oyun genellikle