Satura rādītājs:

Ballīte droša šovasar ar Arduino asins reaktīvo reaktīvo LED kausu: 10 soļi
Ballīte droša šovasar ar Arduino asins reaktīvo reaktīvo LED kausu: 10 soļi

Video: Ballīte droša šovasar ar Arduino asins reaktīvo reaktīvo LED kausu: 10 soļi

Video: Ballīte droša šovasar ar Arduino asins reaktīvo reaktīvo LED kausu: 10 soļi
Video: CS50 2015 – 10-я неделя 2024, Novembris
Anonim
Ballītes droši šovasar ar Arduino asins reaktīvais LED kausu
Ballītes droši šovasar ar Arduino asins reaktīvais LED kausu

Projekta līmeņa grūtības: vidējs

Nepieciešamās prasmes:

- Diagrammas lasīšana un atkārtošana

- Lodēšana, ja izvēlaties nepirkt iepriekš lodētas detaļas

Ievads projektā

Amerikas Savienotajās Valstīs un visā pasaulē alkohols ir radījis nopietnus draudus veselībai, ja to lieto bezatbildīgi. Nāves gadījumi transportlīdzekļa vadīšanas rezultātā reibumā un aknu bojājumi, kā arī ilgtermiņa sekas, piemēram, iespējami smadzeņu un nieru bojājumi, var rasties bezatbildīgas alkohola lietošanas dēļ. Amerikas Savienotajās Valstīs vien alkohola ļaunprātīgas izmantošanas dēļ tika zaudēti 250 miljardi dolāru (NIAAA, 2010), kā arī vairāk nekā 88 000 cilvēku, padarot alkoholu par trešo galveno novēršamo nāves cēloni valstī. Jautājums šim projektam ir kā veidotājiem, kā mēs varam risināt šo problēmu un pārliecināties, ka jautras svinības ar alkoholu, piemēram, ballītes, var palikt drošas un jautras?

Mana atbilde uz šo jautājumu bija atrast veidu, kā novērtēt un pēc tam vizualizēt paredzamo lietotāja BAC, lai ļautu viņiem labāk saprast, kādā stāvoklī viņi bija. Šim projektam es izmantoju Arduino mikrokontrolleru ar ūdens līmeņa sensoru, LED gredzenu un LCD ekrānu, lai izsekotu, cik daudz dzērienu cilvēks ir izdzēris, un pēc tam, lai atrastu veidu, kā novērtēt alkohola saturu asinīs (BAC). lietotājs atkarībā no dzimuma un svara. Aptuvenais BAC, atkarībā no tā, kādā diapazonā tas atradās, nosaka zemāk esošā LED gredzena animāciju. Diapazoni ietilpst četrās atšķirīgās zonās: drošs, traucēts, apreibis un nāvējošs. Es ceru, ka, izveidojot šo projektu, jūs ne tikai būsit izveidojis lietojamu Arduino projektu, bet arī iegūsit labāku izpratni par to, kā mēs metabolizējam alkoholu, un, iespējams, pat kādu pamata programmēšanu, ja izvēlēsities izskatīt komentēto kodu.

Kā tasīte zina, cik daudz dzērienu esmu izdzēris?

Ja ūdens līmeņa sensora analogā vērtība pārsniedz 300, Būla vērtību, kas attēlo tasi, reģistrēs kā HIGH (pilna). Ja sensora analogā vērtība ir zemāka par 300, Būla vērtību, kas attēlo kausu, reģistrēs kā LOW (tukšs). Lai ierakstītu, ka tasē tiek pievienots dzēriens, šī Būla vērtība jāmaina no tukšas uz pilnu.

Kā jūs noteicāt BAC?

Lai padarītu šo projektu pēc iespējas precīzāku, es izmantoju Saint Benedict & Saint John's University datus par to, cik daudz indivīda BAC palielinājās uz vienu patērēto dzērienu. Šī programma ne tikai ņem vērā svaru, bet arī lietotāja dzimumu, aprēķinot lietotāja BAC. Tas ir tāpēc, ka BAC pamatā ir tas, cik ātri organisms spēj metabolizēt alkoholu, kas vīriešiem un sievietēm un dažāda svara cilvēkiem ir atšķirīgs. Diagrammas var redzēt šeit.

Kāpēc BAC diapazons dažādiem cilvēkiem ir atšķirīgs?

BAC diapazoni ir balstīti tieši uz datiem, kas iegūti no SBSJ universitātes, kurā tiek ņemts vērā, cik daudz alkohola lietotājam jābūt sistēmā, lai viņš būtu vienā no četriem diapazoniem:

- Drošs: vienīgais drošais diapazons transportlīdzekļa vadīšanai (attēlots ar varavīksnes animāciju)

- Traucējumi: ja jūs vadāt transportlīdzekli šajā diapazonā (attēlots oranžā animācijā), var tikt ierosināta kriminālatbildība

- Reibumā: ja jūs vadāt transportlīdzekli šajā diapazonā (apzīmēts ar sarkanām gaismām), tiks ierosināta kriminālatbildība

- Nāvējošs: ja jūs vēl neesat noguris, šajā diapazonā jums ir tūlītējas medicīniskas briesmas (to raksturo mirgojošas sarkanās un baltās gaismas)

Bet es varu labi uzņemt alkoholu, vai tad šī krūze ir neprecīza?

Tam, cik labi jūs spējat rīkoties pēc alkohola lietošanas, nebūs lielas nozīmes, ja braukšanas laikā pārsitīsit likumīgo robežu. Šajā projektā izmantotie dati ņem vērā lietotāja BAC juridisko un medicīnisko diapazonu, vienlaikus ņemot vērā lietotāja svaru un dzimumu.

Piegādes

Vispārējie elektronikas piederumi šim projektam ietver:

- Divas pogas

- Jumper vadi

- 10k potenciometrs

- 2 10k rezistori

- 1 220 rezistors

Īpašas detaļas/moduļi:

- Arduino (šim projektam es izmantoju Uno, taču ir daudz lētāku alternatīvu)

- Ūdens līmeņa sensors (PIEZĪME. Šie sensori bieži ir neprecīzi un ātri sarūsē, kas bija liela vilšanās šī projekta izstrādē. Tomēr man izdevās atrast risinājumu, lai manas grūtības saistībā ar šo projektu neizraisītu jūsu grūtības ar šo projektu.)

- LED gredzens (12 gaismas diodes)

- LCD ekrāns

Rīki:

- lodāmurs (nepieciešams tikai tad, ja pērkat LED gredzenu bez galvenēm)

- 3D printeris (pēc izvēles)

1. darbība: lejupielādējiet Arduino IDE un kopējiet nepieciešamo kodu

Šim projektam nav nepieciešama datorprogrammēšana, viss, kas jums jādara, ir nokopēt kodu no šejienes un ielīmēt to Arduino IDE. Lai lejupielādētu Arduino IDE:

Arduino IDE lejupielāde un konfigurēšana:

- Apmeklējiet Arduino vietni un izvēlieties lejupielādi savai sistēmai

- Kad lejupielāde ir pabeigta, iegūstiet Arduino COM porta numuru. Pievienojiet Arduino un dodieties uz savu ierīču pārvaldnieku. Zem ostām atrodiet savu Arduino un ņemiet vērā porta numuru. Tam vajadzētu izskatīties apmēram šādi: COMx (kur x ir skaitlis 1–9)

- Izmantojot COM porta numuru, konfigurējiet tāfeles un porta IDE, atverot Arduino IDE un augšējā joslā atlasot "Tools". Izvēlieties "Board" un izvēlieties savu modeli. Pēc tam izvēlieties "Port" un ierīču pārvaldniekā atlasiet portu, kuru redzējāt savam Arduino.

Projekta koda iegūšana

- Kopējiet kodu no šīs darbības un ielīmējiet to Arduino IDE baltajā sadaļā. Noteikti vispirms izdzēsiet visu, kas ir skicē, piemēram, cikla () un void () rutīnas, jo tās tiek ieviestas kodā, kuru kopējat un ielīmējat.

2. darbība: lejupielādējiet nepieciešamās bibliotēkas no Arduino IDE

Šajā projektā izmantotās bibliotēkas ir "Wire", "LiquidCrystal" un "Adafruit Neopixel". Skicei ir vajadzīgas šīs bibliotēkas, lai sazinātos ar šajā projektā izmantotajām sastāvdaļām. Lai lejupielādētu šīs bibliotēkas:

- Augšējā joslā atlasiet “Skice”

- Nolaižamajā izvēlnē atlasiet “Iekļaut bibliotēku”

- Atlasiet "Pārvaldīt bibliotēkas"

- Atrodiet trīs šajā projektā izmantotās bibliotēkas (stieples, šķidro kristālu un Adafruit Neopixel) un lejupielādējiet katru no tām.

Lūdzu, ņemiet vērā, ka, neielādējot šīs bibliotēkas, skices apkopošanas laikā radīsies kļūda. Pēc šīs darbības pievienojiet Arduino kabeli klēpjdatoram un nospiediet bultiņas pogu IDE augšējā kreisajā stūrī. Tas apkopos un augšupielādēs skici Arduino. Tagad, kad esam pabeiguši visas ar programmēšanu saistītās darbības, pāriesim pie elektroinstalācijas!

3. solis: (pēc izvēles) lodēšanas galvenes uz detaļām

Ja šim projektam izvēlējāties iegādāties detaļas, kurām vēl nebija pielodētas galvenes tapas, tas jādara pašam. Neuztraucieties pārāk daudz par šo daļu, šī projekta lodēšana ir ļoti vienkārša.

- Izveidojiet ventilējamu vidi lodēšanai, vēlams ar ventilatoru, kas satur filtru. Ja jums nav šāda ventilatora, varat darīt to, ko es daru, un atvērt logus un ieslēgt ventilatoru vai doties uz garāžu, kamēr tas ir atvērts.

- Uzkarsējiet lodāmuru un pārliecinieties, ka jums ir arī slapjš sūklis, lai notīrītu lieko lodmetālu.

- Uzstādiet galvenes un daļu, kurai vēlaties pievienot galvenes, izmantojot palīdzīgu roku vai citu instrumentu, kas ļauj sakārtot detaļas, vienlaikus ļaujot turēt lodāmuru.

- Pieskarieties lodēšanai pie lodāmura, atrodoties savienojumā starp galvenes tapu un detaļu, pie kuras lodējat tapas. Noņemiet gludekli, kad ir izveidojies pietiekami daudz lodēšanas, lai nodrošinātu elektrisko kontaktu starp galvenes tapām un detaļu. Noslaukiet sūkļa lieko lodējumu un atkārtojiet šo procesu visām tapām.

- Kad visas tapas ir pielodētas, ievietojiet lodāmuru statīvā, pagrieziet pogu uz "izslēgtu" un atvienojiet gludekli no kontaktligzdas. Pagaidiet, līdz gludeklis ir pilnībā atdzisis, lai to noliktu.

4. solis: sekojiet attēlam un vadam Arduino līdz komponentiem

Sekojiet Attēlam un vadam Arduino līdz komponentiem
Sekojiet Attēlam un vadam Arduino līdz komponentiem

Šajā solī jums būs jāizmanto savienojuma vadi, lai projektam nepieciešamās detaļas savienotu ar Arduino. Lai to izdarītu, esmu nodrošinājis Fritzing failu, ko var redzēt šajā solī. Lūdzu, skatiet zemāk sarakstu ar bieži uzdotajiem jautājumiem, kurus es sev uzdodu, ja rodas problēmas ar vadiem:

- Vai manas zemes un strāvas sliedes ir pareizi savienotas viena ar otru un Arduino 5v un GND tapām?

- Vai es sajaucos ar potenciometru, ja LCD displejs netiek rādīts? (Mēģiniet pagriezt potenciometru, lai mainītu pretestību, ja baltās rakstzīmes netiek rādītas pareizi)

- Vai GND un VCC ir pareizi savienoti ar katru daļu ar pareizo tapu? Vai tiek izmantots 5 voltu iestatījums? (Visi šī projekta sensori un sastāvdaļas izmantos 5 voltus, nevis 3,3 voltus.

- Vai vads nejauši tika novietots viena savienojuma attālumā no vietas, kur tam vajadzēja būt?

PIEZĪME. Strādājot ar elektroniku, vienmēr pārliecinieties, ka ķēdes maiņas laikā netiek pievadīta barošana. Pretējā gadījumā var tikt bojātas detaļas un, strādājot ar lielāku spriegumu, var tikt nodarīti miesas bojājumi

5. solis: samontējiet projektu "Coaster"

Samontēt projektu
Samontēt projektu

Jūs varat pamanīt, ka LED gredzena galvenes izceļas un neļauj faktiski novietot krūzīti plakaniski pret virsmu. Lai atrisinātu šo problēmu, mēs pievienosim LED gredzenu 3D drukātajai daļai, kas ļaus gredzenu novietot plakaniski uz galda. 3D failu var atrast šajā solī. Ja jums nav 3D printera, neuztraucieties, šīs izdrukas izgatavošana vietējā bibliotēkā maksāja 1,40. Ja jūsu vietējā bibliotēkā nav 3D printera, citas iespējas ietver skavas un tiešsaistes pārdevējus. Jāatzīmē arī tas, ka noteiktā daļa, kuru esmu pievienojusi, nav vienīgā saderīgā, tā ir tikai veids, kā izveidot man modeli. Tātad, ja jums labi padodas kokapstrāde vai citi amati, tie būtu vairāk nekā pieņemami!

Ja izvēlaties izdrukāt šī projekta daļu:

- Lejupielādējiet STL failu, lai to importētu, piemēram, Cura

- Izmēriet izvēlētās krūzes dibena diametru

- Pielāgojiet modeļa mērogu (milimetros, ja izmantojat Cura) atbilstoši jūsu mērījumiem

6. solis: pievienojiet paliktni un sensoru jūsu izvēlētajam kausam

Pievienojiet paliktni un sensoru jūsu izvēlētajam kausam
Pievienojiet paliktni un sensoru jūsu izvēlētajam kausam

Pēc tam paņemiet paliktni un izmantojiet līmi, lai to piestiprinātu izmērītās krūzes apakšai. Tagad džempera vadi varēs piekļūt ūdens līmeņa sensoram un LED gredzenam, kā arī gulēt uz galda. Tagad jums jāpiestiprina sensors. Ir ļoti rūpīgi jāapsver sensora izvietojums, jo šie sensori, lai gan tiek pārdoti kā analogi, patiešām nodod tikai divus signālus- ūdeni vai bez ūdens. Tas man radīja ļoti daudz problēmu, taču es varēju atrast veidu, kā to atrisināt, lai citi neizjustu tādu pašu vilšanos saistībā ar šo projektu. Galvenais ir novietot sensoru netālu no augšas, kur atradīsies šķidrums, kad tasīte būs pilna. Tas nodrošinās, ka sensors spēj reģistrēt "tukšu" stāvokli un līdz ar to arī saskaitīt nākamo ielej dzērienu.

7. solis: izdaiļojiet projektu un aizsargājiet vadus

Izdaiļojiet projektu un aizsargājiet vadus
Izdaiļojiet projektu un aizsargājiet vadus

Šajā brīdī jūs, iespējams, paliekat ar vadu un detaļu kopumu, kas izskatās kā pievienotais fotoattēls. Tas, ko jūs darāt, lai projekts izskatītos labāk, ir atkarīgs no jums, ja vien paturat prātā šos kritērijus:

- Jums ir jāspēj pievienot lādētāju Arduino barošanai

- Jums jāizgriež caurumi vai jāizveido telpas, lai lietotājs varētu piekļūt LCD ekrānam, pogām, ūdens līmeņa sensoram un LED gredzenam.

- Jums ir jāaizsargā elektroniskās detaļas no mitruma, jo tā ir iespēja, jo projekts koncentrējas uz dzērieniem.

Dažas iespējas projekta norobežošanai ir šādas:

- apavu kaste vai kartona kārba

- Ūdensizturīgs elektronikas projekta korpuss, piemēram, šeit atrodamais

- 3D drukāts dizains (šī ir iespēja, kuru vēlējos īstenot, tomēr šāda dizaina izdrukāšana manā bibliotēkā bija pārāk dārga)

8. solis: dzeriet atbildīgi

Dzeriet atbildīgi!
Dzeriet atbildīgi!

Pēc krūzes piestiprināšanas pie paliktņiem un ūdens sensora varat doties! Jūs sapratīsit, ka viss darbojas pareizi, kad LCD ekrāns norāda uz jūsu dzimumu un svaru. Viena poga atbilst svaram, bet otra - dzimumam. Pirms marķēšanas varat noklikšķināt uz katra, lai redzētu, kurš no tiem ir. Pēc pareizā svara (vērtības ir 20 soļi) un dzimuma izvēles vienlaicīgi noklikšķiniet uz abām pogām. Tas sāks pārējo programmu, un jūs redzēsit, kā LED gredzens mirgo varavīksnes rakstā. Kauss tagad ir gatavs, lai jūs varētu ieliet dzērienu. Kad jūs patērējat un ielejat vairāk dzērienu, programma izmantos ievadā apskatīto BAC tabulu, lai noteiktu BAC. Lūdzu, ņemiet vērā, ka šajā programmā tiek pieņemts viens standarta dzēriens katrai krūzei, lūdzu, skatiet attēlu (Dienvidalablabamas Universitāte) vai apmeklējiet šeit, lai redzētu, kā tiek tulkots jūsu iecienītākais dzēriens. Ņemiet vērā arī to, ka šī projekta mērķis nav veicināt nelikumīgas darbības, bet gan veicināt drošu dzeršanu tiem, kas ir pietiekami veci, lai varētu lietot alkoholu. Turklāt, lai gan esmu ļoti apmierināts ar to, cik precīzs BAC novērtējums ir standarta dzēriens, šis projekts ir rīks, kas palīdz droši dzert, taču neuzņemas nekādu atbildību, ja izvēlaties braukt pēc alkohola lietošanas.

9. darbība: (pēc izvēles) Traucējummeklēšana

(Neobligāti) Traucējummeklēšana
(Neobligāti) Traucējummeklēšana

- Kļūda "Augšupielādējot uz kuģa": mēģinot apkopot un augšupielādēt skici Arduino, šī kļūda rodas, ja jūsu COM ports nav pareizi konfigurēts (skatiet pirmo darbību, kā atrast un iestatīt pareizo COM portu) vai dēlis nav pievienots.

- LCD ekrāns nerāda baltas rakstzīmes: ja jūsu LCD zilā gaisma iedegas, bet pēc skices augšupielādes neredzat baltas rakstzīmes, tas, visticamāk, ir saistīts ar kontrasta problēmām. Lai to labotu, vienkārši pagrieziet potenciometru pa labi (pagriezieties pa kreisi, ja redzat baltus blokus ar rakstzīmēm).

- Projekts neskaita dzērienus pareizi: šī kļūda ir ūdens līmeņa sensora problēma. Ūdens līmeņa sensoru moduļi ātri korozē un ir pazīstami kā ļoti neprecīzi. Tomēr tam nevajadzētu uztraukties par šo projektu, jo es uztvēru sensoru kā digitālu sensoru, nevis analogu. Skatiet sesto soli, kā pareizi piestiprināt ūdens līmeņa sensoru.

- Modulis ir ārkārtīgi karsts un nesūta pareizās vērtības: tas ir saistīts ar GND vai VCC savienojuma pārtraukšanu, iespējams, strādājot ar citiem vadiem. Pārbaudiet, vai GND un VCC savienojumi ar sensoru ir pabeigti, un sekojiet tiem līdz GND un 5 V tapām no komponenta, līdz maizei un Arduino, lai meklētu kļūdas.

- Es nejauši pārspēju savu svaru: neuztraucieties, svara iestatījums atgriežas pie 100 pēc 240, tāpēc jūs varat turpināt griezties, izmantojot iespējas, lai atgrieztos pie sava svara.

Ja problēmas joprojām pastāv, pievienojiet Arduino kabeli klēpjdatoram, atveriet IDE un palaidiet skici. Skices darbības laikā sērijveida monitorā tiks parādītas vairākas vērtības, kas ļaus jums redzēt, kas nedarbojas, kā paredzēts. Lai piekļūtu seriālajam monitoram, palaidiet programmu un "Rīki" un pēc tam nolaižamajā izvēlnē "Sērijas monitors".

10. solis: pārdomas

Runājot par programmēšanu, esmu ļoti apmierināts ar šī projekta iznākumu. Pagāja zināms laiks, līdz es rakstīju, jo esmu vēl iesācējs, bet es varēju apgūt daudzas jaunas bibliotēkas un sasniegt mērķi - paredzēt BAC, un es uzskatu, ka es neizmantoju īsceļus, lai novērtētu BAC, izmantojot gan seksu, gan seksu. svars (tas veidoja lielāko daļu skices). Tomēr man ir jāapstiprina dizains. Lai gan man nepieder 3D printeris vai es nezinu kokapstrādi, es patiešām vēlējos, lai mans projekts tiktu prezentēts labāk. Es plānoju drīz iegūt Ender 3, un pirmā lieta, ko es darīšu, ir atgriezties pie šīs pašas pamācības, lai uzlabotu dizainu. Kā pirmo pamācību jebkad es uzskatu, ka process noritēja labi, un esmu ļoti apmierināts ar to, cik lielā mērā šis projekts pievērsās uzvednei, ko izveidoju Party Challenge, bet izstrādāju kaut ko tādu, pie kā es vēlētos atgriezties vēlāk, kad man būs resursi.

Ieteicams: