Mündəricat:

Bu Arduino Qan-Alkol Reaktiv LED Kubokla Təhlükəsiz Yaz: 10 Addım
Bu Arduino Qan-Alkol Reaktiv LED Kubokla Təhlükəsiz Yaz: 10 Addım

Video: Bu Arduino Qan-Alkol Reaktiv LED Kubokla Təhlükəsiz Yaz: 10 Addım

Video: Bu Arduino Qan-Alkol Reaktiv LED Kubokla Təhlükəsiz Yaz: 10 Addım
Video: Epi - Qırmızı Winston 2024, Noyabr
Anonim
Bu Arduino Qan-Alkol Reaktiv LED Kuboku ilə Təhlükəsiz Yay
Bu Arduino Qan-Alkol Reaktiv LED Kuboku ilə Təhlükəsiz Yay

Layihə Səviyyə Çətinliyi: Orta

Lazım olan bacarıqlar:

- Diaqramın oxunması və təkrarlanması

- Əvvəlcədən lehimlənmiş hissələri almamağı seçsəniz lehimləmə

Layihə Giriş

ABŞ -da və dünyada alkoqol məsuliyyətsiz bir şəkildə istehlak edildikdə ciddi sağlamlıq təhdidləri yaradır. Sürücünün təsiriylə idarə etməsi və qaraciyərin zədələnməsi, həmçinin beyin və böyrəklərin zədələnməsi kimi uzunmüddətli təsirlər, məsuliyyətsiz alkoqol istehlakı nəticəsində baş verə bilər. Təkcə ABŞ -da, alkoqoldan sui -istifadə səbəbiylə 250 milyard dollar zərər gördü (NIAAA, 2010), həmçinin 88.000 -dən çox adam, alkoqolu ölkədə üçüncü önləyici ölüm səbəbi halına gətirdi. Bu layihə üçün sual hazırlayanlardır, bu problemi necə həll edə bilərik və partiyalar kimi spirtli əyləncəli bayramların təhlükəsiz və əyləncəli qalmasını təmin edə bilərik?

Bu suala verdiyim cavab, istifadəçinin proqnozlaşdırılan BAC -nı hansı vəziyyətdə olduqlarını daha yaxşı anlamalarına imkan vermək üçün təxmin etmək və sonra görselleştirmek üçün bir yol tapmaq idi. Bu layihə üçün, bir insanın nə qədər içki içdiyini izləmək üçün su səviyyəsi sensoru, LED halqası və LCD ekranı olan Arduino mikrokontrolöründən istifadə etdim və sonra qan içkisinin miqdarını (BAC) qiymətləndirmək üçün bir yol tapdım. istifadəçi cinsinə və çəkisinə görə. Hansı diapazonda olduğuna görə təxmin edilən BAC, aşağıdakı LED halqasının animasiyasını təyin edir. Aralıqlar dörd fərqli sahəyə bölünür: Təhlükəsiz, əlil, sərxoş və ölümcül. Ümid edirəm ki, bu layihəni yaratmaqla, nəinki istifadə edilə bilən bir Arduino layihəsi yaradacaqsınız, həm də şərh olunan kodu nəzərdən keçirməyi seçsəniz, alkoqolu necə metabolizə etdiyimizi və bəlkə də bəzi əsas proqramlaşdırma proqramlarını daha yaxşı anlayacaqsınız.

Kasa nə qədər içdiyimi hardan bilir?

Su səviyyəsi sensörünün analoq dəyəri 300 -ü keçərsə, fincanı təmsil edən bir boolean dəyər YÜKSƏK (dolu) olaraq qeyd olunacaq. Sensorun analoq dəyəri 300 -dən aşağıdırsa, fincanı təmsil edən boolean dəyər LOW (boş) olaraq qeyd olunacaq. Kuboka əlavə edilən bir içki yazmaq üçün bu boolean dəyər boşdan tama dəyişməlidir.

BAK -ı necə təyin etdiniz?

Bu layihəni mümkün qədər dəqiq etmək üçün, Saint Benedict & Saint John's Universitetindən alınan məlumatlardan istifadə edərək, bir fərdin BAC -ı içki başına nə qədər artırdığını öyrəndim. Bu proqram istifadəçinin BAC hesablamasında yalnız çəkini deyil, həm də istifadəçinin cinsini də nəzərə alır. Bunun səbəbi, BAC, bədənin kişilər və qadınlar və fərqli çəkilərdəki insanlar arasında fərqli olan alkoqol metabolizmasına nə qədər sürətli qadir olduğuna əsaslanır. Qrafiklərə burada baxmaq olar.

BAK niyə fərqli insanlar üçün fərqlidir?

BAC diapazonları, bir istifadəçinin dörd diapazondan birində olması üçün sistemində nə qədər spirt olması lazım olduğunu nəzərə alan SBSJ Universitetindən əldə edilən məlumatlara əsaslanır:

- Təhlükəsiz: Bir avtomobili idarə etmək üçün yeganə etibarlı məsafə (göy qurşağı animasiyası ilə təmsil olunur)

- Qüsurlu: Bu diapazonda bir avtomobili idarə etsəniz cinayət məsuliyyəti yarana bilər (narıncı animasiya ilə təmsil olunur)

- Sərxoş: Əgər bu diapazonda bir avtomobil idarə etsəniz cinayət işi açılacaq

- Ölümcül: Əgər hələ də huşunuzdan getməmisinizsə, bu diapazonda dərhal tibbi təhlükə altındasınız (yanıb -sönən qırmızı və ağ işıqlarla təmsil olunur)

Ancaq spirt yaxşı qəbul edə bilərəm, buna görə də bu fincan düzgün deyil?

Avtomobil sürərkən qanuni həddi keçsəniz, spirt içdikdən sonra nə qədər yaxşı hərəkət edə biləcəyiniz o qədər də əhəmiyyətli olmayacaq. Bu layihədə istifadə edilən məlumatlar, istifadəçinin çəkisi və cinsi nəzərə alınmaqla bir istifadəçinin BAC -ın hüquqi və tibbi aralığının nə olduğunu nəzərə alır.

Təchizat

Bu layihə üçün ümumi elektronika təchizatı daxildir:

- İki düymə

- Jumper telləri

- 10k potensiometr

- 2 ədəd 10k rezistor

- 1 220 müqavimət

Xüsusi hissələr/modullar:

- Arduino (bu layihə üçün Uno istifadə etdim, amma daha ucuz alternativlər var)

- Su səviyyəsi sensoru (DİQQƏT: Bu sensorlar tez-tez qeyri-dəqiqdir və tez korroziyaya uğrayır, bu da bu layihəni hazırlamaqda böyük bir xəyal qırıqlığı idi. Ancaq bu layihə ilə bağlı çətinliklərim sizin çətinliklərinizə çevrilməməsi üçün bir həll tapa bildim. Bu layihə ilə.)

- LED halqası (12 LED)

- LCD ekran

Alətlər:

- Lehimləmə dəmiri (Yalnız başlıqsız LED üzük alanda lazımdır)

- 3d printer (İsteğe bağlı)

Addım 1: Arduino IDE yükləyin və tələb olunan kodu kopyalayın

Bu layihə üçün heç bir kompüter proqramlaşdırması tələb olunmur, yalnız buradan kodu kopyalayıb Arduino IDE -yə yapışdırmaq kifayətdir. Arduino IDE yükləmək üçün:

Arduino IDE -ni yükləyin və konfiqurasiya edin:

- Arduino veb saytına daxil olun və sisteminiz üçün yüklənməni seçin

- Yükləmə tamamlandıqdan sonra Arduino üçün COM port nömrəsini əldə edin. Arduino'yu qoşun və Cihaz menecerinizə gedin. Limanların altında Arduino -nu axtarın və liman nömrəsinə diqqət yetirin. COMx (burada x 1-9 rəqəmidir)

- COM port nömrəsini istifadə edərək Arduino IDE -ni açaraq üst çubuğdakı "Alətlər" seçərək kartınızı və portunuz üçün IDE -ni konfiqurasiya edin. "Board" seçin və modelinizi seçin. Sonra, "Liman" ı seçin və Aygıt Yöneticisinde Arduino üçün gördüyünüz portu seçin.

Layihə kodunun alınması

- Bu addımdakı kodu kopyalayın və Arduino IDE -nin ağ hissəsinə yapışdırın. Əvvəlcə eskizdəki loop () və void () kimi hər şeyi sildiyinizə əmin olun, çünki bunlar kopyaladığınız və yapışdırdığınız kodda tətbiq olunur.

Addım 2: Arduino IDE -dən Lazımi Kitabxanaları Yükləyin

Bu layihədə istifadə olunan kitabxanalara "Wire", "LiquidCrystal" və "Adafruit Neopixel" daxildir. Eskizin bu kitabxanalarda bu layihədə istifadə olunan komponentlərlə əlaqə qurması lazımdır. Bu kitabxanaları yükləmək üçün:

- Üst barda "Sketch" seçin

- Açılan menyudan "Kitabxana daxil et" seçin

- "Kitabxanaları idarə et" seçin

- Bu layihədə istifadə olunan üç kitabxananı (Tel, maye kristal və Adafruit Neopixel) axtarın və hər birini yükləyin.

Nəzərə alın ki, eskiz tərtib edilərkən bu kitabxanaların yüklənməməsi səhvlə nəticələnəcək. Bu addımdan sonra Arduino kabelinizi dizüstü kompüterinizə bağlayın və IDE-nin sol üst küncündəki ox düyməsini basın. Bu eskizi tərtib edərək Arduinoya yükləyəcək. Proqramlaşdırma ilə əlaqəli bütün addımları bitirdikdən sonra kabellərə keçək!

Addım 3: (İsteğe bağlı) hissələrə Lehim Başlıqları

Bu layihə üçün əvvəllər üzərində başlıq pinləri olmayan hissələri satın almağı seçmisinizsə, bunu özünüz etməlisiniz. Bu hissədən çox narahat olmayın, bu layihə üçün lehimləmə çox sadədir.

- Lehimləmək üçün havalandırılan bir mühit yaradın, tercihen filtri olan bir fanla. Əgər belə bir fanatınız yoxdursa, mənim etdiyimi edə bilərsiniz və pəncərələri açıb fanatı yandıra və ya açıq ikən qaraja gedə bilərsiniz.

- Lehimləmə dəmirinizi qızdırın və artıq lehimi silmək üçün nəm süngəriniz olduğundan əmin olun.

- Başlıqları və başlıqları bağlamaq istədiyiniz hissəni bir kömək əli və ya lehimləmə dəmirini tutmağa icazə verərkən hissələri nizamlamağa imkan verən başqa bir alətlə qurun.

- Başlıq pimi ilə sancaqları bağladığınız hissə arasındakı əlaqə zamanı lehimə lehimləmə dəmirinə toxunun. Başlıq pinləri ilə hissə arasında elektrik təmasını təmin etmək üçün kifayət qədər lehim əmələ gəldikdə ütünü çıxarın. Süngər üzərindəki artıq lehimi silin və bu əməliyyatı bütün sancaqlar üçün təkrarlayın.

- Bütün sancaqlar lehimləndikdən sonra, lehimləmə dəmirini stendə qoyun, düyməni "söndürün" və dəmirdən ayırın. Dəmiri tamamilə soyudulana qədər gözləyin.

Addım 4: Şəkil və Arduino -nu Komponentlərə İzləyin

Picture və Wire Arduino'yu Komponentlərə İzləyin
Picture və Wire Arduino'yu Komponentlərə İzləyin

Bu addımda, layihə üçün lazım olan hissələri Arduino'ya bağlamaq üçün tullanan tellərdən istifadə etməlisiniz. Bunu etmək üçün bu addımda görünə bilən bir Fritzing faylı təqdim etdim. Zəhmət olmasa, naqillərlə bağlı bir problemlə qarşılaşsam özümə verdiyim ümumi sualların siyahısı üçün aşağıya baxın:

- Torpaq və elektrik raylarım bir -birinə və Arduinonun 5v və GND pinlərinə düzgün bağlanıbmı?

- LCD displey göstərilmirsə potentiometrimi qarışdırdım? (Ağ işarələr düzgün görünmürsə, müqaviməti dəyişdirmək üçün potansiyometrini çevirməyə çalışın)

- GND və VCC hər bir hissəyə düzgün pinlə düzgün bağlanıbmı? 5 voltluq parametr istifadə olunurmu? (Bu layihədəki bütün sensorlar və komponentlər 3,3 volt deyil, 5 volt istifadə edəcək.

- Təsadüfən bir tel olması lazım olduğu yerdən uzaq bir yerə qoyuldu?

DİQQƏT: Elektronika ilə işləyərkən, dövrə dəyişdirilərkən elektrik enerjisinin olmadığından əmin olun. Əks təqdirdə, hissələr zədələnə bilər və daha böyük gərginliklə işləyərkən bədənə zərər verə bilər

Addım 5: "Sahil gəmisi" layihəsini yığın

Layihə toplamaq
Layihə toplamaq

LED halqasının başlıqlarının bir -birinə yapışdığını və kubokun səthə düz bir şəkildə yerləşdirilməsinə icazə vermədiyini görə bilərsiniz. Bu problemi həll etmək üçün, LED halqanı üzüyün bir masaya düz yerləşdirilməsinə imkan verən 3d çaplı bir hissəyə bağlayacağıq. 3d faylı bu addımda tapa bilərsiniz. 3d printeriniz yoxdursa, narahat olmayın, bu çapın yerli kitabxanamda hazırlanması 1.40 başa gəlir. Yerli kitabxananızda 3d printer yoxdursa, digər seçimlərə Zımbalar və onlayn satıcılar daxildir. Onu da qeyd etməliyəm ki, əlavə etdiyim müəyyən hissə yeganə uyğun deyil, sadəcə mənim üçün bir model hazırlamağın yoludur. Ağac emalı və ya digər sənətkarlıqlarla yaxşı məşğul olsanız, bunlar daha məqbul olardı!

Bu layihənin hissəsini çap etməyi seçsəniz:

- Cura kimi bir dilimləyiciyə idxal etmək üçün STL faylını yükləyin

- İstədiyiniz kubokun dibinin diametrini ölçün

- Modelin miqyasını (Cura istifadə edirsinizsə, millimetrlə) ölçülərinizə uyğunlaşdırın

Addım 6: Seçdiyiniz kuboka sahil gəmisi və sensoru əlavə edin

Sahil gəmisi və sensoru seçdiyiniz kuboka əlavə edin
Sahil gəmisi və sensoru seçdiyiniz kuboka əlavə edin

Sonra, sahil gəmisini götürün və ölçdüyünüz kubokun altına yapışdırıcı istifadə edin. İndi tullanan tellər su səviyyəsi sensoru və LED halqasına daxil ola biləcək və eyni zamanda masanın üstünə uzana biləcək. İndi sensoru bağlamalısınız. Sensorun yerləşdirilməsində diqqətli olmaq çox diqqətlidir, çünki bu sensorlar analoq olaraq satılarkən həqiqətən yalnız iki siqnalı söndürür- su və ya su. Bu mənim üçün çox problem yaratdı, amma başqalarının bu layihə ilə eyni xəyal qırıqlığını yaşamaması üçün həll yolunu tapa bildim. Əsas odur ki, fincan dolduqda sensoru mayenin olduğu yerə yaxın yerləşdirin. Bu, sensorun "boş" bir vəziyyəti qeyd edə biləcəyini və buna görə də növbəti tökülmüş içkini saya biləcəyini təmin edəcək.

Addım 7: Layihəni gözəlləşdirin və Telləri qoruyun

Layihəni Gözəlləşdirin və Telləri Qoruyun
Layihəni Gözəlləşdirin və Telləri Qoruyun

Bu nöqtədə, ehtimal ki, əlavə edilmiş fotoşəkilə bənzəyən bir dəstə tel və hissə qalacaqsınız. Layihənin daha yaxşı görünməsi üçün nə etməli olduğunuz, bu meyarları nəzərə aldığınız müddətdə tamamilə sizə bağlıdır:

- Arduino -nu şarj cihazına qoşa bilməlisiniz

- İstifadəçinin LCD ekrana, düymələrə, su səviyyəli sensora və LED halqasına daxil olması üçün deliklər və ya dizayn yerləri kəsməlisiniz.

- Elektron komponentləri islanmaqdan qorumalısınız, çünki bu, layihə içkilərə yönəldildiyindən mümkündür.

Layihəni əhatə etmək üçün bəzi seçimlər:

- Ayaqqabı qutusu və ya karton

- Burada tapılan kimi suya davamlı elektronika layihəsi

- 3D çaplı bir dizayn (Araşdırmaq istədiyim variant budur, lakin kitabxanamda belə bir dizayn çap etmək çox bahalı idi)

Addım 8: Məsuliyyətlə iç

Məsuliyyətlə iç!
Məsuliyyətlə iç!

Kubokunuzu sahil gəmisinə və su sensörünə bağladıqdan sonra getmək yaxşıdır! LCD ekran cinsiyyətinizə və çəkinizə görə hər şeyi düzgün işlədiyini biləcəksiniz. Bir düymə çəkiyə, digəri isə cinsiyyətə uyğundur. İşarələməzdən əvvəl hansının olduğunu görmək üçün hər birini vura bilərsiniz. Doğru çəkinizi (dəyərlər 20 addımdadır) və cinsi seçdikdən sonra eyni anda hər iki düyməni basın. Bu proqramın qalan hissəsinə başlayacaq və LED halqasının göy qurşağı modelinin yanıb -sönməsini görəcəksiniz. İçki tökmək üçün fincan artıq hazırdır. Daha çox içki içdiyiniz və tökdüyünüz zaman, proqram bir BAC təyin etmək üçün girişdə müzakirə olunan BAC cədvəlindən istifadə edəcək. Unutmayın ki, bu proqram hər kubok üçün bir standart içki qəbul edir, şəkilə baxın (Cənubi Alabama Universiteti) və ya ən çox sevdiyiniz içkinin necə tərcümə olunduğunu görmək üçün bura daxil olun. Həm də unutmayın ki, bu layihənin məqsədi heç bir qanunsuz fəaliyyəti təşviq etmək deyil, spirtli içki içmək üçün yetkin olanların təhlükəsiz içməli olmasını təşviq etməkdir. Ayrıca, BAC qiymətləndirməsinin standart bir içki qəbul etməsinin nə qədər doğru olduğuna çox məmnun olsam da, bu layihə təhlükəsiz içməyinizə kömək edəcək bir vasitədir, ancaq hər hansı bir spirt içdikdən sonra maşın sürməyi seçsəniz heç bir məsuliyyət daşımır.

Addım 9: (İsteğe bağlı) Sorun Giderme

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

- "Lövhəyə yükləmə problemi" xətası: Eskizi tərtib edərək Arduino -ya yükləməyə çalışarkən, COM portunuz düzgün konfiqurasiya edilmədikdə bu səhv ortaya çıxacaq (Düzgün COM portunun necə tapılıb qurulacağına dair birinci addıma baxın) və ya lövhə qoşulmayıb.

- LCD ekran ağ simvol göstərmir: LCD -nin mavi işığı yanar, ancaq eskizi yüklədikdən sonra heç bir ağ simvol görmürsənsə, bu çox güman ki, kontrast problemlərindən qaynaqlanır. Bunu düzəltmək üçün potensiometrinizi sağa çevirin (personajlarınızla ağ bloklar görürsünüzsə sola dönün).

- Layihə içkiləri düzgün saymır: Bu səhv su səviyyəsi sensoru problemidir. Su səviyyəli sensor modulları tez korroziyaya uğrayır və çox qeyri-dəqiq olduğu bilinir. Bununla birlikdə, bu layihə üçün sizi narahat etməməlidir, çünki sensora analoq deyil, rəqəmsal bir sensor kimi baxdım. Su səviyyəsi sensörünü necə düzgün bağlamaq barədə altıncı addıma baxın.

- Bir modul son dərəcə istidir və düzgün dəyərləri göndərmir: Bu, ehtimal ki, digər tellərlə işləyərkən GND və ya VCC bağlantısının pozulmasının nəticəsidir. Sensora GND və VCC bağlantılarının tamamlandığından əmin olun və səhvləri axtarmaq üçün komponentdən GND və 5v pinlərinə, çörək taxtasına, Arduino -ya qədər izləyin.

- Təsadüfən çəkimi aşdım: Narahat olmayın, çəki qəbulu 240 -dan sonra 100 -ə qayıdır, buna görə də çəkinizə qayıtmaq üçün seçimlər arasında fırlanmağa davam edə bilərsiniz.

Problemlər davam edərsə, Arduino kabelini noutbuka qoşun, IDE -ni açın və eskizi işə salın. Eskiz işləyərkən serial monitorda bir neçə dəyər göstəriləcək ki, bu da işləmədiyini görməyə imkan verir. Serial monitora daxil olmaq üçün proqramı və "Alətlər" i, sonra açılan menyudan "Serial Monitor" u işə salın.

Addım 10: Yansıtma

Proqramlaşdırma tərəfində bu layihənin ortaya çıxmasından çox məmnunam. Hələ bir başlanğıc olduğum üçün yazmağım bir müddət çəkdi, amma bir çox yeni kitabxana öyrənə bildim və BAC -ı proqnozlaşdırmaq məqsədinə çatdım və hiss edirəm ki, həm cinsiyyət, həm də cinsi əlaqədən istifadə etdiyim üçün BAC -ı qiymətləndirmək üçün heç bir qısa yol tapmadım. çəki (Bu eskizin çox hissəsini təşkil edirdi). Bununla birlikdə dizaynı təsdiq etməliyəm. 3d printerim olmasa da, ağac emalı işini bilməsəm də, layihəmin daha yaxşı bir şəkildə təqdim olunmasını çox istəyirdim. Tezliklə bir Ender 3 əldə etmək niyyətindəyəm və edəcəyim ilk şey, dizaynı yaxşılaşdırmaq üçün eyni təlimat verənə qayıtmaqdır. İlk təlimat verdiyim kimi, prosesin yaxşı getdiyini hiss edirəm və bu layihənin Partiya Çağırışı üçün yaratdığım sorğuya nə dərəcədə cavab verdiyindən çox məmnunam, ancaq mənbələr olanda daha sonra geri qayıtmaq istədiyim bir şeyi hazırlayıram.

Tövsiyə: