Spisu treści:

Bezpieczna impreza tego lata z kubkiem LED Arduino reagującym na krew i alkohol: 10 kroków
Bezpieczna impreza tego lata z kubkiem LED Arduino reagującym na krew i alkohol: 10 kroków

Wideo: Bezpieczna impreza tego lata z kubkiem LED Arduino reagującym na krew i alkohol: 10 kroków

Wideo: Bezpieczna impreza tego lata z kubkiem LED Arduino reagującym na krew i alkohol: 10 kroków
Wideo: White 2115 - RiRi 2024, Listopad
Anonim
Bezpieczna impreza tego lata z kubkiem LED Arduino reagującym na alkohol i krew
Bezpieczna impreza tego lata z kubkiem LED Arduino reagującym na alkohol i krew

Poziom trudności projektu: średniozaawansowany

Wymagane umiejętności:

- Czytanie i replikowanie diagramu

- Lutowanie, jeśli nie zdecydujesz się na zakup wstępnie lutowanych części

Wprowadzenie do projektu

W Stanach Zjednoczonych i na całym świecie alkohol, spożywany w nieodpowiedzialny sposób, stanowi poważne zagrożenie dla zdrowia. Nieodpowiedzialne spożywanie alkoholu może prowadzić do zgonów spowodowanych prowadzeniem pojazdu pod wpływem i uszkodzenia wątroby, a także długofalowych skutków, takich jak możliwe uszkodzenie mózgu i nerek. W samych Stanach Zjednoczonych z powodu nadużywania alkoholu stracono 250 miliardów dolarów (NIAAA, 2010), a także ponad 88 000 osób, co czyni alkohol trzecią najczęstszą przyczyną zgonów w kraju, której można zapobiec. Pytanie dla tego projektu brzmi: jako twórcy, jak możemy rozwiązać ten problem i upewnić się, że zabawne świętowanie z alkoholem, takie jak imprezy, będzie bezpieczne i przyjemne?

Moją odpowiedzią na to pytanie było znalezienie sposobu na oszacowanie, a następnie wizualizację przewidywanego BAC użytkownika, aby umożliwić mu lepsze zrozumienie, w jakim stanie się znajdował. W tym projekcie użyłem mikrokontrolera Arduino z czujnikiem poziomu wody, pierścieniem LED i ekranem LCD, aby śledzić, ile napojów dana osoba wypiła, a następnie znaleźć sposób na oszacowanie zawartości alkoholu we krwi (BAC) użytkownik na podstawie płci i wagi. Szacowany BAC, w zależności od tego, w jakim zakresie się znajdował, określa animację pierścienia LED poniżej. Zasięgi mieszczą się w czterech różnych obszarach: bezpiecznym, upośledzonym, odurzonym i śmiertelnym. Mam nadzieję, że tworząc ten projekt, nie tylko stworzysz użyteczny projekt Arduino, ale także lepiej zrozumiesz, w jaki sposób metabolizujemy alkohol, a być może nawet podstawowe programowanie, jeśli zdecydujesz się przejrzeć komentowany kod.

Skąd kubek wie, ile drinków wypiłem?

Jeśli wartość analogowa czujnika poziomu wody przekroczy 300, wartość logiczna reprezentująca kubek zostanie zarejestrowana jako WYSOKA (pełna). Jeśli wartość analogowa czujnika jest niższa niż 300, wartość logiczna reprezentująca kubek zostanie zarejestrowana jako LOW (pusta). Aby zarejestrować napój dodawany do kubka, ta wartość logiczna musi zmienić się z pustej na pełną.

Jak ustaliłeś BAC?

Aby ten projekt był jak najdokładniejszy, wykorzystałem dane z Saint Benedict & Saint John's University o tym, o ile zwiększyło się stężenie alkoholu we krwi danej osoby na spożyty napój. Program ten uwzględnia nie tylko wagę, ale także płeć użytkownika przy obliczaniu BAC użytkownika. Dzieje się tak, ponieważ BAC opiera się na tym, jak szybko organizm jest w stanie metabolizować alkohol, co różni się u mężczyzn i kobiet oraz osób o różnej wadze. Wykresy można zobaczyć tutaj.

Dlaczego zakresy BAC są różne dla różnych osób?

Zakresy BAC opierają się bezpośrednio na danych uzyskanych z Uniwersytetu SBSJ, który bierze pod uwagę, ile alkoholu użytkownik musi mieć w swoim systemie, aby znalazł się w jednym z czterech zakresów:

- Bezpieczny: jedyny bezpieczny zasięg, na którym można prowadzić pojazd (reprezentowany przez animację tęczy)

- Upośledzony: Prowadzenie pojazdu w tym zasięgu może spowodować oskarżenie (oznaczone pomarańczową animacją)

- Nietrzeźwy: Jeśli prowadzisz pojazd w tym zakresie (reprezentowanym przez czerwone światła), zostaną naliczone zarzuty karne.

- Śmiertelne: Jeśli jeszcze nie zemdlałeś, jesteś w bezpośrednim niebezpieczeństwie medycznym w tym zakresie (reprezentowane przez migające czerwone i białe światła)

Ale mogę dobrze przyjmować alkohol, więc czy ten kubek jest niedokładny?

To, jak dobrze jesteś w stanie działać po spożyciu alkoholu, nie będzie miało większego znaczenia, jeśli przekroczysz dozwolony limit podczas jazdy. Dane wykorzystane w tym projekcie uwzględniają prawne i medyczne zakresy BAC użytkownika, a także uwzględniają wagę i płeć użytkownika.

Kieszonkowe dzieci

Ogólne dostawy elektroniki dla tego projektu obejmują:

- Dwa przyciski

- Przewody połączeniowe

- potencjometr 10k

- 2 rezystory 10k

- rezystor 1 220

Części/moduły specjalne:

- Arduino (użyłem Uno do tego projektu, ale istnieje wiele tańszych alternatyw)

- Czujnik poziomu wody (UWAGA: te czujniki są często niedokładne i szybko korodują, co było główną frustracją przy opracowywaniu tego projektu. Udało mi się jednak znaleźć rozwiązanie, aby moje trudności z tym projektem nie przełożyły się na twoje trudności z tym projektem.)

- Pierścień LED (12 diod)

- Ekran LCD

Narzędzia:

- Lutownica (wymagana tylko przy zakupie pierścienia LED bez nagłówków)

- drukarka 3d (opcjonalnie)

Krok 1: Pobierz Arduino IDE i skopiuj wymagany kod

Do tego projektu nie jest wymagane żadne programowanie komputerowe, wystarczy skopiować kod stąd i wkleić go do Arduino IDE. Aby pobrać środowisko Arduino IDE:

Pobieranie i konfiguracja Arduino IDE:

- Odwiedź stronę Arduino i wybierz plik do pobrania dla swojego systemu

- Po zakończeniu pobierania uzyskaj numer portu COM dla Arduino. Podłącz Arduino i przejdź do Menedżera urządzeń. Pod portami poszukaj swojego Arduino i zanotuj numer portu. Powinno to wyglądać mniej więcej tak: COMx (gdzie x to liczba 1-9)

- Korzystając z numeru portu COM, skonfiguruj IDE dla swojej płyty i portu, otwierając Arduino IDE i wybierając „Narzędzia” na górnym pasku. Wybierz "Płyta" i wybierz swój model. Następnie wybierz „Port” i wybierz port, który widziałeś dla swojego Arduino w Menedżerze urządzeń.

Uzyskanie kodu projektu

- Skopiuj kod z tego kroku i wklej go do białej sekcji Arduino IDE. Pamiętaj, aby najpierw usunąć wszystko ze szkicu, takie jak procedury loop() i void(), ponieważ są one zaimplementowane w kodzie, który kopiujesz i wklejasz.

Krok 2: Pobierz wymagane biblioteki z Arduino IDE

Biblioteki wykorzystane w tym projekcie to „Wire”, „LiquidCrystal” i „Adafruit Neopixel”. Szkic potrzebuje tych bibliotek do komunikacji z komponentami używanymi w tym projekcie. Aby pobrać te biblioteki:

- Wybierz „Szkic” na górnym pasku

- Wybierz „Dołącz bibliotekę” z menu rozwijanego

- Wybierz "Zarządzaj bibliotekami"

- Wyszukaj trzy biblioteki (Wire, Liquid Crystal i Adafruit Neopixel) używane w tym projekcie i pobierz każdą z nich.

Należy pamiętać, że niepobranie tych bibliotek spowoduje błąd podczas kompilacji szkicu. Po tym kroku podłącz kabel z Arduino do laptopa i naciśnij przycisk strzałki w lewym górnym rogu IDE. Spowoduje to skompilowanie i przesłanie szkicu do Arduino. Teraz, gdy skończyliśmy ze wszystkimi krokami związanymi z programowaniem, przejdźmy do okablowania!

Krok 3: (Opcjonalnie) Przylutuj nagłówki do części

Jeśli zdecydowałeś się na zakup części do tego projektu, które nie mają jeszcze przylutowanych do nich pinów nagłówka, musisz to zrobić samodzielnie. Nie przejmuj się zbytnio tą częścią, lutowanie w tym projekcie jest bardzo proste.

- Stwórz wentylowane środowisko do lutowania, najlepiej z wentylatorem zawierającym filtr. Jeśli nie masz takiego wentylatora, możesz zrobić to, co ja i otworzyć okna i włączyć wentylator lub iść do garażu póki jest otwarty.

- Podgrzej lutownicę i upewnij się, że masz również wilgotną gąbkę do wycierania nadmiaru lutowia.

- Ustaw nagłówki i część, do której chcesz przymocować nagłówki, za pomocą pomocnej dłoni lub innego narzędzia, które pozwala ułożyć części, jednocześnie pozwalając na trzymanie lutownicy.

- Dotknij lutowia do lutownicy podczas połączenia między kołkiem głowicy a częścią, do której lutujesz kołki. Zdejmij żelazko, gdy utworzy się wystarczająca ilość lutu, aby zapewnić styk elektryczny między kołkami głowicy a częścią. Zetrzyj nadmiar lutowia z gąbki i powtórz ten proces dla wszystkich pinów.

- Po przylutowaniu wszystkich pinów umieść lutownicę w podstawce, przekręć pokrętło na "off" i odłącz żelazko. Poczekaj, aż żelazko całkowicie ostygnie, aby je odłożyć.

Krok 4: Śledź obraz i podłącz Arduino do komponentów

Śledź obraz i podłącz Arduino do komponentów
Śledź obraz i podłącz Arduino do komponentów

W tym kroku będziesz musiał użyć zworek użytkownika, aby połączyć części niezbędne do projektu z Arduino. W tym celu udostępniłem plik Fritzing, który można zobaczyć w tym kroku. Poniżej znajduje się lista typowych pytań, które zadaję sobie, jeśli napotkam problem z okablowaniem:

- Czy moje szyny uziemiające i zasilające są prawidłowo połączone ze sobą oraz pinami 5v i GND Arduino?

- Czy bawiłem się potencjometrem, jeśli wyświetlacz LCD się nie wyświetla? (Spróbuj obrócić potencjometr, aby zmienić rezystancję, jeśli białe znaki nie pojawiają się prawidłowo)

- Czy GND i VCC są prawidłowo podłączone do każdej części do właściwego pinu? Czy używane jest ustawienie 5 V? (Wszystkie czujniki i komponenty w tym projekcie będą używać 5 woltów, a nie 3,3 wolta.

- Czy przewód został przypadkowo umieszczony o jedno połączenie dalej od miejsca, w którym powinien być?

UWAGA: Podczas pracy z elektroniką zawsze upewnij się, że obwód nie jest zasilany podczas jego wymiany. W przeciwnym razie części mogą ulec uszkodzeniu, a podczas pracy z wyższym napięciem może dojść do obrażeń ciała

Krok 5: Złóż projekt „Coaster”

Złóż projekt
Złóż projekt

Możesz zauważyć, że nagłówki pierścienia LED wystają i nie pozwalają na umieszczenie kubka płasko na powierzchni. Aby rozwiązać ten problem, przymocujemy pierścień LED do drukowanej w 3D części, która pozwoli na umieszczenie pierścienia płasko na stole. Plik 3d można znaleźć na tym etapie. Jeśli nie masz drukarki 3D, nie martw się, ten wydruk kosztował 1,40 w mojej lokalnej bibliotece. Jeśli twoja lokalna biblioteka nie ma drukarki 3D, inne opcje obejmują zszywki i sprzedawców online. Należy również zauważyć, że pewna część, którą dołączyłem, nie jest jedyną kompatybilną, to tylko sposób na zrobienie dla mnie modelu. Więc jeśli jesteś dobry w obróbce drewna lub innym rzemiośle, byłoby to więcej niż akceptowalne!

Jeśli zdecydujesz się wydrukować część do tego projektu:

- Pobierz plik STL, aby zaimportować do fragmentatora, takiego jak Cura

-Zmierz średnicę dna wybranego kubka

- Dostosuj skalę modelu (w milimetrach, jeśli używasz Cura) do swojego pomiaru

Krok 6: Przymocuj podstawkę i czujnik do wybranego kubka

Przymocuj podstawkę i czujnik do wybranego kubka
Przymocuj podstawkę i czujnik do wybranego kubka

Następnie weź podkładkę i użyj kleju, aby przymocować ją do dna mierzonego kubka. Teraz przewody połączeniowe będą mogły uzyskać dostęp do czujnika poziomu wody i pierścienia LED, a także leżeć płasko na stole. Teraz musisz podłączyć czujnik. Należy bardzo uważać na umieszczenie czujnika, ponieważ te czujniki, choć sprzedawane jako analogowe, tak naprawdę wysyłają tylko dwa sygnały - wodę lub brak wody. Spowodowało to dla mnie bardzo wiele problemów, ale udało mi się znaleźć sposób na rozwiązanie tego problemu, aby inni nie odczuwali takich samych frustracji przy tym projekcie. Kluczem jest umieszczenie czujnika blisko górnej części miejsca, w którym będzie znajdowała się ciecz, gdy kubek jest pełny. Zapewni to, że czujnik będzie w stanie zarejestrować stan „pusty”, a tym samym zliczyć następny nalany napój.

Krok 7: Upiększ projekt i chroń przewody

Upiększ projekt i chroń przewody
Upiększ projekt i chroń przewody

W tym momencie prawdopodobnie pozostanie Ci wiązka przewodów i części, która wygląda jak na załączonym zdjęciu. To, co zrobisz, aby projekt wyglądał lepiej, zależy wyłącznie od Ciebie, o ile pamiętasz o tych kryteriach:

- Musisz być w stanie podłączyć ładowarkę do zasilania Arduino

- Musisz wyciąć otwory lub zaprojektować przestrzenie, aby użytkownik miał dostęp do ekranu LCD, przycisków, czujnika poziomu wody i pierścienia LED.

- Musisz chronić elementy elektroniczne przed zamoczeniem, ponieważ jest to możliwe, ponieważ projekt koncentruje się na napojach.

Niektóre opcje załączenia projektu to:

- Pudełko na buty lub karton

- Wodoodporna obudowa projektu elektroniki, taka jak ta, którą można znaleźć tutaj

- Projekt drukowany w 3D (jest to opcja, którą chciałem zrealizować, jednak wydrukowanie takiego projektu w mojej bibliotece było zbyt drogie)

Krok 8: Pij odpowiedzialnie

Pij odpowiedzialnie!
Pij odpowiedzialnie!

Po przymocowaniu kubka do podstawki i czujnika wody, możesz ruszać! Będziesz wiedział, że wszystko działa poprawnie, gdy na ekranie LCD pojawi się monit o podanie płci i wagi. Jeden przycisk odpowiada wadze, a drugi odpowiada płci. Możesz kliknąć każdy z nich, aby zobaczyć, który to jest przed oznaczeniem go. Po wybraniu prawidłowej wagi (wartości są w krokach co 20) i płci, kliknij oba przyciski jednocześnie. Spowoduje to rozpoczęcie dalszej części programu, a pierścień LED zacznie migać wzorem tęczy. Kubek jest teraz gotowy do nalania drinka. W miarę spożywania i nalewania większej ilości napojów program użyje tabeli BAC omówionej we wstępie do określenia BAC. Należy pamiętać, że ten program zakłada jeden standardowy napój na każdą filiżankę, zobacz zdjęcie (Uniwersytet Południowej Alabamy) lub odwiedź tutaj, aby zobaczyć, jak tłumaczy się Twój ulubiony napój. Należy również pamiętać, że celem tego projektu nie jest zachęcanie do jakiejkolwiek nielegalnej działalności, ale promowanie bezpiecznego picia wśród osób w wieku wystarczającym do spożywania alkoholu. Ponadto, chociaż jestem bardzo zadowolony z tego, jak dokładne jest oszacowanie BAC przy założeniu standardowego napoju, ten projekt jest narzędziem pomagającym ci pić bezpiecznie, ale nie ponosi żadnej odpowiedzialności, jeśli zdecydujesz się prowadzić samochód po spożyciu jakiegokolwiek alkoholu.

Krok 9: (Opcjonalnie) Rozwiązywanie problemów

(Opcjonalnie) Rozwiązywanie problemów
(Opcjonalnie) Rozwiązywanie problemów

- Błąd „Problem uploading to board”: Podczas próby skompilowania i przesłania szkicu do Arduino ten błąd wystąpi, jeśli twój port COM nie jest poprawnie skonfigurowany (patrz krok pierwszy, jak znaleźć i ustawić poprawny port COM) lub twój płyta nie jest podłączona.

- Ekran LCD nie wyświetla białych znaków: Jeśli niebieskie światło na ekranie LCD jest włączone, ale po przesłaniu szkicu nie widać białych znaków, jest to najprawdopodobniej spowodowane problemami z kontrastem. Aby to naprawić, po prostu obróć potencjometr w prawo (obróć w lewo, jeśli zobaczysz białe klocki ze swoimi postaciami).

- Projekt nie liczy napojów poprawnie: Ten błąd to problem z czujnikiem poziomu wody. Moduły czujników poziomu wody szybko korodują i są znane z tego, że są bardzo niedokładne. To jednak nie powinno Cię dotyczyć w przypadku tego projektu, ponieważ potraktowałem czujnik jako czujnik cyfrowy, a nie analogowy. Zobacz krok szósty, aby dowiedzieć się, jak prawidłowo zamocować czujnik poziomu wody.

- Moduł jest bardzo gorący i nie wysyła prawidłowych wartości: Jest to wynik przerwania połączenia GND lub VCC, prawdopodobnie podczas pracy z innymi przewodami. Upewnij się, że połączenia GND i VCC z czujnikiem są kompletne i podążaj za nimi do pinów GND i 5v z komponentu, do płytki stykowej, do Arduino, aby wyszukać błędy.

- Przypadkowo przekroczyłem swoją wagę: nie martw się, ustawienie wagi powraca do 100 po 240, więc możesz po prostu obracać opcje, aby wrócić do swojej wagi.

Jeśli problemy będą się powtarzać, podłącz kabel z Arduino do laptopa, otwórz IDE i uruchom szkic. Podczas działania szkicu na monitorze szeregowym zostanie wyświetlonych kilka wartości, co pozwoli zobaczyć, co nie działa tak, jak powinno. Aby uzyskać dostęp do monitora szeregowego, uruchom program i "Narzędzia", a następnie "Monitor szeregowy" z menu rozwijanego.

Krok 10: Refleksja

Od strony programistycznej jestem bardzo zadowolony z przebiegu tego projektu. Pisanie zajęło mi trochę czasu, ponieważ wciąż jestem początkującym, ale udało mi się nauczyć wielu nowych bibliotek i osiągnąć cel, jakim jest przewidywanie BAC, i czuję, że nie poszedłem na skróty w szacowaniu BAC, ponieważ używałem zarówno płci, jak i waga (stanowiła to większość szkicu). Muszę jednak zatwierdzić projekt. Chociaż nie posiadam drukarki 3d ani nie znam się na obróbce drewna, naprawdę chciałem, aby mój projekt był prezentowany w lepszy sposób. Zamierzam wkrótce zdobyć Endera 3, a pierwszą rzeczą, którą zrobię, jest powrót do tej samej instrukcji, aby ulepszyć projekt. Jako mój pierwszy instruktaż w historii, czuję, że proces przebiegł dobrze i jestem bardzo zadowolony z zakresu, w jakim ten projekt rozwiązał podpowiedź, którą stworzyłem dla Party Challenge, ale zaprojektuj coś, do czego chciałbym później wrócić, gdy będę miał zasoby.

Zalecana: