İçindekiler:

Arduino Kan-Alkol Reaktif LED Kupası ile Bu Yaz Güvenli Parti: 10 Adım
Arduino Kan-Alkol Reaktif LED Kupası ile Bu Yaz Güvenli Parti: 10 Adım

Video: Arduino Kan-Alkol Reaktif LED Kupası ile Bu Yaz Güvenli Parti: 10 Adım

Video: Arduino Kan-Alkol Reaktif LED Kupası ile Bu Yaz Güvenli Parti: 10 Adım
Video: ELF/EMBARC Bronchiectasis conference 2023 with subtitles 2024, Temmuz
Anonim
Arduino Kan-Alkol Reaktif LED Kupası ile Bu Yaz Parti Güvenli
Arduino Kan-Alkol Reaktif LED Kupası ile Bu Yaz Parti Güvenli

Proje Seviyesi Zorluk: Orta

Gerekli Beceriler:

- Bir diyagramı okuma ve kopyalama

- Önceden lehimlenmiş parçaları satın almamayı tercih ederseniz lehimleme

Proje Tanıtımı

Amerika Birleşik Devletleri'nde ve tüm dünyada alkol, sorumsuz bir şekilde tüketildiğinde ciddi sağlık tehditleri oluşturmuştur. Alkolün etkisi altında araç kullanma ve karaciğer hasarına bağlı ölümlerin yanı sıra olası beyin ve böbrek hasarı gibi uzun süreli etkiler de sorumsuzca alkol tüketiminden kaynaklanabilir. Yalnızca Amerika Birleşik Devletleri'nde, alkolün kötüye kullanımı nedeniyle 250 milyar dolar kaybedildi (NIAAA, 2010) ve ayrıca 88.000'den fazla insan, alkolü ülkedeki üçüncü önde gelen önlenebilir ölüm nedeni haline getirdi. Bu projenin sorulması gereken soru, yapımcılar olarak, bu sorunu nasıl çözebiliriz ve alkol benzeri partilerle eğlenceli kutlamaların güvenli ve eğlenceli kalmasını nasıl sağlayabiliriz?

Bu soruya cevabım, kullanıcının hangi durumda olduklarını daha iyi anlamalarını sağlamak için tahmin edilen BAC'yi tahmin etmenin ve ardından görselleştirmenin bir yolunu bulmaktı. Bu proje için, bir kişinin kaç içki içtiğini takip etmek ve ardından kandaki alkol içeriğini (BAC) tahmin etmenin bir yolunu bulmak için su seviyesi sensörü, LED halkası ve LCD ekranlı Arduino mikro denetleyicisini kullandım. kullanıcı cinsiyete ve kiloya göre. Hangi aralıkta olduğuna bağlı olarak tahmini BAC, aşağıdaki LED halkasının animasyonunu belirler. Aralıklar dört farklı alan arasında yer alır: Güvenli, bozulmuş, sarhoş ve ölümcül. Umuyorum ki, bu projeyi yaratarak, sadece kullanılabilir bir Arduino projesi yaratmış olmayacaksınız, aynı zamanda alkolü nasıl metabolize ettiğimizi ve hatta yorumlanan koda bakmayı seçerseniz muhtemelen bazı temel programlamaları daha iyi anlamış olacaksınız.

Bardak kaç içki içtiğimi nereden biliyor?

Su seviye sensörünün analog değeri 300'ü aşarsa, bardağı temsil eden bir boole değeri YÜKSEK (dolu) olarak kaydedilecektir. Sensörün analog değeri 300'ün altında ise bardağı temsil eden boole değeri DÜŞÜK (boş) olarak kaydedilecektir. Bardağa eklenen bir içeceği kaydetmek için bu boole değeri boştan doluya değişmelidir.

BAC'ı nasıl belirlediniz?

Bu projeyi olabildiğince doğru yapmak için, Saint Benedict ve Saint John's Üniversitesi'nden alınan ve tüketilen içecek başına bir bireyin BAC'sinin ne kadar arttığına ilişkin verileri kullandım. Bu program, kullanıcının BAC'sini hesaplamada sadece ağırlığını değil, aynı zamanda kullanıcının cinsiyetini de dikkate alır. Bunun nedeni, BAC'nin bir vücudun alkolü ne kadar hızlı metabolize edebileceğine dayanmasıdır; bu, erkekler ve kadınlar ve farklı ağırlıktaki insanlar arasında farklıdır. Grafikler burada görülebilir.

BAC aralıkları neden farklı insanlar için farklı?

BAC aralıkları, doğrudan, bir kullanıcının dört aralıktan birinde olması için sistemlerinde ne kadar alkol olması gerektiğini dikkate alan SBSJ Üniversitesi'nden elde edilen verilere dayanmaktadır:

- Güvenli: Bir aracı çalıştırmak için tek güvenli menzil (gökkuşağı animasyonuyla gösterilir)

- Engelli: Bu aralıkta bir araç kullanırsanız (turuncu animasyonla gösterilir) cezai yaptırımlar uygulanabilir.

- Sarhoş: Bu aralıkta bir araç kullanırsanız (kırmızı ışıklarla gösterilir) cezai yaptırımlar uygulanacaktır.

- Ölümcül: Henüz bayılmadıysanız, bu aralıkta (yanıp sönen kırmızı ve beyaz ışıklarla temsil edilir) acil tıbbi tehlike içindesiniz.

Ama alkolü iyi alabilirim, yani bu bardak yanlış mı?

Alkol aldıktan sonra ne kadar iyi hareket edebildiğiniz, araba kullanırken yasal sınırı aşarsanız çok da önemli olmayacaktır. Bu projede kullanılan veriler, bir kullanıcının BAC'sinin yasal ve tıbbi aralıklarının ne olduğunu ve aynı zamanda kullanıcının ağırlığını ve cinsiyetini de dikkate alır.

Gereçler

Bu proje için genel elektronik malzemeleri şunları içerir:

- İki buton

- Atlama telleri

- 10k potansiyometre

- 2 adet 10k direnç

- 1 220 direnç

Özel parçalar/modüller:

- Bir Arduino (Bu proje için bir Uno kullandım, ancak daha ucuz birçok alternatif var)

- Bir su seviyesi sensörü (NOT: Bu sensörler genellikle hatalıdır ve çabuk aşınır, bu da bu projeyi geliştirmenin büyük bir hayal kırıklığıydı. Ancak, bu projedeki zorluklarımın sizin zorluklarınıza dönüşmemesi için bir çözüm bulabildim. Bu proje ile.)

- Bir LED Halka (12 LED)

- LCD Ekran

Aletler:

- Havya (Yalnızca başlıksız LED halka satın alırken gereklidir)

- 3d yazıcı (Opsiyonel)

Adım 1: Arduino IDE'yi İndirin ve Gerekli Kodu Kopyalayın

Bu proje için herhangi bir bilgisayar programlaması gerekmiyor, tek yapmanız gereken kodu buradan kopyalayıp Arduino IDE'ye yapıştırmak. Arduino IDE'yi indirmek için:

Arduino IDE'yi indirme ve yapılandırma:

- Arduino web sitesini ziyaret edin ve sisteminiz için indirmeyi seçin

- İndirme işlemi tamamlandıktan sonra Arduino için COM port numarasını alın. Arduino'yu takın ve Aygıt Yöneticinize gidin. Bağlantı noktalarının altında Arduino'nuzu arayın ve bağlantı noktası numarasını not edin. Şuna benzemelidir: COMx (x 1-9 sayısıdır)

- COM bağlantı noktası numarasını kullanarak, Arduino IDE'yi açıp üst çubuktaki "Araçlar" öğesini seçerek panonuz ve bağlantı noktanız için IDE'yi yapılandırın. "Board" öğesini seçin ve modelinizi seçin. Ardından, "Port" u seçin ve Arduino'nuz için gördüğünüz bağlantı noktasını Aygıt Yöneticisi'nde seçin.

Proje Kodunun Alınması

- Bu adımdaki kodu kopyalayın ve Arduino IDE'nin beyaz bölümüne yapıştırın. Kopyalayıp yapıştırdığınız kodda uygulandıkları için, ilk önce çizimdeki loop() ve void() rutinleri gibi her şeyi sildiğinizden emin olun.

Adım 2: Arduino IDE'den Gerekli Kitaplıkları İndirin

Bu projede kullanılan kütüphaneler arasında "Wire", "LiquidCrystal" ve "Adafruit Neopixel" bulunmaktadır. Çizim, bu projede kullanılan bileşenlerle iletişim kurmak için bu kitaplıklara ihtiyaç duyar. Bu kitaplıkları indirmek için:

- Üst çubukta "Çizim"i seçin

- Açılır menüden "Kitaplığı dahil et"i seçin

- "Kitaplıkları yönet"i seçin

- Bu projede kullanılan üç kitaplığı (Wire, likit kristal ve Adafruit Neopixel) arayın ve her birini indirin.

Lütfen bu kitaplıkların indirilememesinin taslak derlenirken bir hataya yol açacağını unutmayın. Bu adımdan sonra Arduino'nuzdan gelen kabloyu dizüstü bilgisayarınıza takın ve IDE'nin sol üst köşesindeki ok düğmesine basın. Bu, taslağı Arduino'ya derleyecek ve yükleyecektir. Artık programlamayla ilgili tüm adımları tamamladığımıza göre, kablolamaya geçelim!

Adım 3: (Opsiyonel) Lehim Başlıklarını Parçalar Üzerine

Bu proje için, üzerlerine lehimlenmiş başlık pimleri olmayan parçaları satın almayı seçtiyseniz, bunu kendiniz yapmanız gerekecektir. Bu kısım hakkında çok fazla endişelenmeyin, bu proje için lehimleme çok basittir.

- Tercihen filtre içeren bir fan ile lehimlemek için havalandırılmış bir ortam oluşturun. Eğer böyle bir fanınız yoksa benim yaptığımı yapıp camları açıp fanı açabilir veya açıkken garaja gidebilirsiniz.

- Havyanızı ısıtın ve fazla lehimi silmek için ıslak süngeriniz olduğundan emin olun.

- Bir yardım eli veya havyayı tutmanıza izin verirken parçaları düzenlemenize izin veren başka bir araç kullanarak başlıkları ve başlıkları takmak istediğiniz parçayı ayarlayın.

- Başlık pimi ile pimleri lehimleyeceğiniz kısım arasındaki bağlantıdayken lehimi havyaya değdirin. Başlık pimleri ile parça arasında elektriksel teması sağlamak için yeterli lehim oluştuğunda ütüyü çıkarın. Sünger üzerindeki fazla lehimi silin ve bu işlemi tüm pimler için tekrarlayın.

- Tüm pimler lehimlendikten sonra, havyayı standa yerleştirin, düğmeyi "kapalı" konuma getirin ve ütünün fişini çekin. Ütüyü kaldırmak için tamamen soğumasını bekleyin.

Adım 4: Resmi Takip Edin ve Arduino'yu Bileşenlere Bağlayın

Resmi Takip Edin ve Arduino'yu Bileşenlere Bağlayın
Resmi Takip Edin ve Arduino'yu Bileşenlere Bağlayın

Bu adımda, proje için gerekli olan parçaları Arduino'ya bağlamak için kullanıcı jumper kablolarına ihtiyacınız olacak. Bunu yapmak için bu adımda görülebilecek bir Fritzing dosyası sağladım. Kablolamayla ilgili bir sorunla karşılaşırsam kendime sorduğum genel soruların bir listesi için lütfen aşağıya bakın:

- Toprak ve güç raylarım birbirine ve Arduino'nun 5v ve GND pinlerine düzgün şekilde bağlı mı?

- LCD ekran görünmüyorsa potansiyometremle uğraştım mı? (Beyaz karakterler düzgün görünmüyorsa, direnci değiştirmek için potansiyometreyi döndürmeyi deneyin)

- GND ve VCC, her bir parçaya doğru pime düzgün şekilde bağlanmış mı? 5 volt ayarı kullanılıyor mu? (Bu projedeki tüm sensörler ve bileşenler 3,3 volt değil 5 volt kullanacaktır.

- Bir kablo yanlışlıkla olması gereken yerden bir bağlantı uzağa mı yerleştirildi?

NOT: Elektronikle çalışırken, değiştirilirken devrenin her zaman elektriklenmediğinden emin olun. Aksi takdirde parçalar zarar görebilir ve daha yüksek voltajlarla çalışırken bedensel zararlar meydana gelebilir

Adım 5: "Coaster" Projesini Birleştirin

Montaj Projesi
Montaj Projesi

LED halkasının başlıklarının dışarı çıktığını ve bardağı gerçekten düz bir yüzeye yerleştirmenize izin vermediğini fark edebilirsiniz. Bu sorunu çözmek için, LED halkayı, halkanın bir masaya düz bir şekilde yerleştirilmesine izin verecek 3 boyutlu baskılı bir parçaya ekleyeceğiz. 3d dosya bu adımda bulunabilir. 3d yazıcınız yoksa endişelenmeyin, yerel kütüphanemde bu baskının maliyeti 1.40'tır. Yerel kitaplığınızda bir 3d yazıcı yoksa, diğer seçenekler arasında Zımbalar ve çevrimiçi satıcılar bulunur. Ayrıca eklediğim parçanın tek uyumlu parça olmadığını, benim için bir model yapmanın yolu olduğunu da belirtmek gerekir. Bu nedenle, ahşap işçiliği veya diğer el işlerinde iyiyseniz, bunlar kabul edilebilirden daha fazlası olacaktır!

Bu proje için parçayı yazdırmayı seçerseniz:

- Cura gibi bir dilimleyiciye aktarmak için STL dosyasını indirin

- Seçtiğiniz bir bardağın tabanının çapını ölçün

- Modelin ölçeğini (Cura kullanıyorsanız milimetre cinsinden) ölçümünüze göre ayarlayın

Adım 6: Altlığı ve Sensörü Seçtiğiniz Bardağa Takın

Bardak Altlığı ve Sensörü Seçtiğiniz Bardağa Takın
Bardak Altlığı ve Sensörü Seçtiğiniz Bardağa Takın

Ardından, bardak altlığınızı alın ve ölçtüğünüz bardağın altına yapıştırmak için yapıştırıcı kullanın. Artık jumper kabloları su seviyesi sensörüne ve LED halkasına erişebilecek ve ayrıca masanın üzerinde düz durabilecek. Şimdi sensörü takmanız gerekiyor. Sensörün yerleşimi konusunda düşünceli olmak çok dikkatlidir, çünkü bu sensörler analog olarak pazarlanırken gerçekten sadece iki sinyal verir - su veya su yok. Bu benim için çok fazla soruna neden oldu, ancak bunu çözmenin bir yolunu bulabildim, böylece başkaları bu projede aynı hayal kırıklıklarını yaşamadı. Anahtar, sensörü, bardak dolduğunda sıvının olacağı yere yakın bir yere yerleştirmektir. Bu, sensörün bir "boş" durumu kaydedebilmesini ve dolayısıyla bir sonraki dökülen içeceği sayabilmesini sağlayacaktır.

Adım 7: Projeyi Güzelleştirin ve Telleri Koruyun

Projeyi Güzelleştirin ve Telleri Koruyun
Projeyi Güzelleştirin ve Telleri Koruyun

Bu noktada, muhtemelen ekli fotoğrafa benzeyen bir yığın kablo ve parça ile kalacaksınız. Bu kriterleri göz önünde bulundurduğunuz sürece, projenin daha iyi görünmesi için ne yapacağınız tamamen size kalmış:

- Arduino'ya güç sağlamak için bir şarj cihazı takabilmelisiniz

- Kullanıcının LCD ekrana, düğmelere, su seviyesi sensörüne ve LED halkasına erişmesi için delikler açmanız veya boşluklar tasarlamanız gerekir.

- Proje içeceklere odaklandığından, elektronik bileşenlerin ıslanmasına karşı korunmalısınız.

Projeyi dahil etmek için bazı seçenekler şunlardır:

- Bir ayakkabı kutusu veya karton

- Burada bulunan gibi su geçirmez bir elektronik proje muhafazası

- 3d baskılı bir tasarım (Bu benim takip etmek istediğim seçenekti, ancak böyle bir tasarımı kütüphanemde basmak çok pahalıydı)

Adım 8: Sorumlu İçki

Ayarında içmek!
Ayarında içmek!

Bardağınızı bardak altlığına ve su sensörüne taktıktan sonra hazırsınız! LCD ekran cinsiyetinizi ve kilonuzu sorduğunda her şeyin düzgün çalıştığını anlayacaksınız. Bir düğme kiloya, diğeri cinsiyete karşılık gelir. Etiketlemeden önce hangisi olduğunu görmek için her birine tıklayabilirsiniz. Doğru kilonuzu (değerler 20'lik adımlarla verilmiştir) ve cinsiyetinizi seçtikten sonra, her iki düğmeyi de aynı anda tıklayın. Bu, programın geri kalanını başlatacak ve LED halkasının bir gökkuşağı deseninde yanıp söndüğünü göreceksiniz. Bardak artık bir içecek doldurmanız için hazır. Siz daha fazla içecek tüketip döktükçe, program bir BAC belirlemek için girişte tartışılan BAC tablosunu kullanacaktır. Lütfen bu programın her fincan için bir standart içecek kabul ettiğini unutmayın, lütfen resme bakın (Güney Alabama Üniversitesi) veya en sevdiğiniz içeceğin nasıl tercüme edildiğini görmek için burayı ziyaret edin. Ayrıca, bu projenin amacının herhangi bir yasa dışı faaliyeti teşvik etmek değil, alkol tüketebilecek yaştakiler için güvenli içmeyi teşvik etmek olduğunu unutmayın. Ayrıca, standart bir içki varsayıldığında BAC tahmininin ne kadar doğru olduğundan çok memnun olsam da, bu proje güvenli içmenize yardımcı olacak bir araçtır, ancak herhangi bir alkol tüketiminden sonra araba kullanmayı seçerseniz hiçbir sorumluluk kabul etmez.

9. Adım: (İsteğe Bağlı) Sorun Giderme

(İsteğe bağlı) Sorun Giderme
(İsteğe bağlı) Sorun Giderme

- "Karta yükleme sorunu" hatası: Çizimi Arduino'ya derlemeye ve yüklemeye çalışırken, COM bağlantı noktanız doğru yapılandırılmamışsa (doğru COM bağlantı noktasını nasıl bulacağınız ve ayarlayacağınızla ilgili birinci adıma bakın) veya kurulu takılı değil.

- LCD ekran beyaz karakterler göstermiyor: LCD'nizin mavi ışığı yanıyorsa ancak çizimi yükledikten sonra beyaz karakter görmüyorsanız, bu büyük olasılıkla kontrast sorunlarından kaynaklanmaktadır. Bunu düzeltmek için, potansiyometrenizi sağa çevirin (karakterlerinizle beyaz bloklar görürseniz sola çevirin).

- Proje içecekleri doğru saymıyor: Bu hata bir su seviyesi sensörü sorunudur. Su seviyesi sensör modülleri hızla paslanır ve çok hatalı oldukları bilinir. Ancak, bu proje için sizi ilgilendirmemelidir, çünkü sensöre analogdan ziyade dijital bir sensör gibi davrandım. Su seviyesi sensörünüzü doğru şekilde nasıl bağlayacağınız konusunda altıncı adıma bakın.

- Bir modül aşırı derecede sıcak ve doğru değerleri göndermiyor: Bu, muhtemelen diğer kablolarla çalışırken bir GND veya VCC bağlantısının kesilmesinin sonucudur. Sensöre giden GND ve VCC bağlantılarının tam olduğundan emin olun ve bunları bileşenden, devre tahtasına, Arduino'dan GND ve 5v pinlerine kadar takip ederek hataları arayın.

- Yanlışlıkla kilomu aştım: Merak etmeyin, ağırlık ayarı 240'dan sonra 100'e dönüyor, böylece kilonuza geri dönmek için seçenekler arasında dönmeye devam edebilirsiniz.

Sorun devam ederse, Arduino'dan gelen kabloyu dizüstü bilgisayara bağlayın, IDE'yi açın ve çizimi çalıştırın. Çizim çalışırken, seri monitörde çeşitli değerler görüntülenerek neyin olması gerektiği gibi çalışmadığını görmenize olanak tanır. Seri monitöre erişmek için programı çalıştırın ve açılır menüden "Araçlar" ve ardından "Seri Monitör".

Adım 10: Yansıma

Programlama tarafında, bu projenin gidişatından çok memnunum. Henüz acemi olduğum için yazmam biraz zaman aldı, ancak birçok yeni kütüphane öğrenebildim ve BAC'yi tahmin etme hedefine ulaştım ve hem cinsiyet hem de ağırlık (Bu, eskizin çoğunluğunu oluşturdu). Ancak, tasarımı onaylamam gerekiyor. 3d yazıcım olmasa da ahşap işçiliği bilmesem de projemin daha iyi bir şekilde sunulmasını çok istiyordum. Yakında bir Ender 3 almayı planlıyorum ve yapacağım ilk şey, tasarımı geliştirmek için aynı talimata geri dönmek. Şimdiye kadarki ilk dersim olarak, sürecin iyi gittiğini hissediyorum ve bu projenin Parti Mücadelesi için yarattığım istemi ne ölçüde ele aldığından çok memnunum, ancak kaynaklarım olduğunda daha sonra geri dönmek istediğim bir şey tasarladım.

Önerilen: