Turinys:

„Raspberry Pi“smūgio jėgos monitorius!: 16 žingsnių (su nuotraukomis)
„Raspberry Pi“smūgio jėgos monitorius!: 16 žingsnių (su nuotraukomis)

Video: „Raspberry Pi“smūgio jėgos monitorius!: 16 žingsnių (su nuotraukomis)

Video: „Raspberry Pi“smūgio jėgos monitorius!: 16 žingsnių (su nuotraukomis)
Video: Создание приложений для мобильных устройств, игр, Интернета вещей и многого другого с помощью AWS DynamoDB, Рик Хулихан 2024, Liepa
Anonim
Image
Image
Siūlomas skaitymas
Siūlomas skaitymas

Kokį poveikį gali atlaikyti žmogaus kūnas? Nesvarbu, ar tai būtų futbolas, laipiojimas uolomis, ar dviračio avarija, labai svarbu žinoti, kada po susidūrimo reikia nedelsiant kreiptis į gydytoją, ypač jei nėra akivaizdžių traumų požymių. Ši pamoka išmokys jus sukurti savo smūgio jėgos monitorių!

Skaitymo laikas: ~ 15 min

Sukūrimo laikas: ~ 60-90 min

Šis atviro kodo projektas naudoja „Raspberry Pi Zero W“ir LIS331 akselerometrą, kad galėtų stebėti ir įspėti vartotoją apie potencialiai pavojingas G jėgas. Žinoma, nedvejodami pakeiskite ir pritaikykite sistemą, kad ji atitiktų įvairius jūsų piliečių mokslo poreikius.

Pastaba: sukurkite įdomių dalykų naudodami „Impact Force Monitor“! Tačiau nenaudokite jo kaip profesionalaus gydytojo patarimo ir diagnozės pakaitalo. Jei manote, kad rimtai kritote, kreipkitės į kvalifikuotą ir licencijuotą specialistą, kad gautumėte tinkamą gydymą.

1 žingsnis: Siūlomas skaitymas

Kad ši pamoka būtų trumpa ir miela (er, na, kiek įmanoma), darau prielaidą, kad pradedate nuo funkcinio „Pi Zero W.“. Reikia pagalbos? Jokiu problemu! Čia yra visa sąrankos pamoka.

Mes taip pat prisijungsime prie „Pi“nuotoliniu būdu (dar žinomas kaip belaidis ryšys). Norėdami gauti išsamesnę šio proceso apžvalgą, peržiūrėkite šią mokymo programą.

** Įstrigo ar norite sužinoti daugiau? Štai keletas naudingų išteklių: **

1. Puikus „Darbo pradžios“vadovas „Pi“.

2. Pilnas akselerometro išjungimo plokštės prijungimo vadovas LIS331.

3. Daugiau apie akselerometrus!

4. Raspberry Pi GPIO kaiščių apžvalga.

5. Naudojant „SPI“ir „I2C Serial“magistralę.

6. LIS331 duomenų lapas

2 žingsnis: medžiagos

Medžiagos
Medžiagos
Medžiagos
Medžiagos
  • Pagrindinis Raspberry Pi Zero W rinkinys

    • Į šį rinkinį įeina: SD kortelė su NOOBS operacine sistema; USB OTG kabelis („microUSB to USB female“); Mini HDMI į HDMI; „MicroUSB“maitinimo šaltinis (~ 5V)
    • Taip pat rekomenduojama: USB šakotuvas
  • Raspberry Pi 3 antraštės kaiščiai
  • LIS331 Akselerometro pertraukimo lenta

  • Akumuliatorius su „MicroUSB“jungtimi
  • 5 mm raudonas šviesos diodas
  • 1k rezistorius
  • 6 "termiškai susitraukiantis vamzdis arba elektros juosta
  • Akselerometro (4–8) ir šviesos diodo (2) antgaliai
  • Moteriški jungiamieji laidai (6)

Įrankiai

  • Lituoklis ir jo priedai
  • Epoksidas (arba kiti nuolatiniai, nelaidūs skysti klijai)
  • Tikriausiai ir žirklės:)

3 žingsnis: Bet palaukite! Kas yra smūgio jėga?

Laimei, sąvoka „smūgio jėga“yra gana paprasta: smūgio jėga. Tačiau, kaip ir daugumą dalykų, jo matavimas reikalauja tikslesnio apibrėžimo. Smūgio jėgos lygtis yra tokia:

F = KE/d

kur F yra smūgio jėga, KE - kinetinė energija (judesio energija), o d - smūgio atstumas arba objekto traškėjimas. Iš šios lygties galima išskirti du pagrindinius dalykus:

1. Smūgio jėga yra tiesiogiai proporcinga kinetinei energijai, o tai reiškia, kad smūgio jėga padidėja, jei kinetinė energija padidėja.

2. Smūgio jėga yra atvirkščiai proporcinga smūgio atstumui, o tai reiškia, kad smūgio jėga mažėja, jei smūgio atstumas didėja. (Štai kodėl mes turime oro pagalves: kad padidintume smūgio atstumą.)

Paprastai jėga matuojama niutonais (N), tačiau smūgio jėga gali būti aptarta „G jėga“, skaičiumi, išreikštu kaip g kartotinis, arba žemės gravitaciniu pagreičiu (9,8 m/s^2). Kai naudojame G jėgos vienetus, mes matuojame objektų pagreitį, palyginti su laisvu kritimu žemės link.

Techniškai kalbant, g yra pagreitis, o ne jėga, tačiau tai naudinga kalbant apie susidūrimus, nes pagreitis* kenkia žmogaus kūnui.

Šiam projektui mes naudosime G jėgos vienetus, kad nustatytume, ar smūgis yra potencialiai pavojingas ir nusipelno medicininės pagalbos. Tyrimai parodė, kad g-jėgos, viršijančios 9G, gali būti mirtinos daugumai žmonių (be specialaus mokymo), o 4-6G gali būti pavojingos, jei išlieka ilgiau nei kelias sekundes.

Žinodami tai, galime suprogramuoti savo smūgio jėgos monitorių, kad jis mus įspėtų, jei mūsų akselerometras matuoja G jėgą, viršijančią bet kurią iš šių ribų. Hurra, mokslas!

Norėdami gauti daugiau informacijos, skaitykite apie smūgio jėgą ir „g-force“Vikipedijoje!

Pagreitis yra greičio ir (arba) krypties pasikeitimas

4 žingsnis: sukonfigūruokite „Pi Zero W“

Konfigūruokite „Pi Zero W“
Konfigūruokite „Pi Zero W“

Surinkite „Raspberry Pi Zero“ir išorinius įrenginius, kad sukonfigūruotumėte „Pi“be galvos!

  • Prijunkite „Pi“prie monitoriaus ir susijusių išorinių įrenginių (klaviatūros, pelės), prijunkite maitinimo šaltinį ir prisijunkite.
  • Atnaujinkite programinę įrangą, kad „Pi“būtų greitas ir saugus. Atidarykite terminalo langą ir įveskite šias komandas:

    Įveskite ir įveskite:

sudo apt-get atnaujinimas

Įveskite ir įveskite:

sudo apt-get atnaujinimas

Iš naujo nustatyti:

sudo shutdown -r dabar

5 veiksmas: įjunkite „WiFi“ir „I2C“

Įgalinti „WiFi“ir „I2C“
Įgalinti „WiFi“ir „I2C“
Įgalinti „WiFi“ir „I2C“
Įgalinti „WiFi“ir „I2C“
Įgalinti „WiFi“ir „I2C“
Įgalinti „WiFi“ir „I2C“
  • Spustelėkite „WiFi“piktogramą viršutiniame dešiniajame darbalaukio kampe ir prisijunkite prie „WiFi“tinklo.
  • Terminale įveskite šią komandą, kad būtų parodytas „Pi“programinės įrangos konfigūravimo įrankis:

sudo raspi-config

  • Norėdami įjungti, pasirinkite „Sąsajos parinktys“, tada „SSH“ir apačioje pasirinkite „Taip“.
  • Grįžkite į „Sąsajos parinktys“, tada „I2C“ir pasirinkite „Taip“, kad įgalintumėte.
  • Terminale įdiekite nuotolinio darbalaukio ryšio programinę įrangą:

sudo apt-get install xrdp

  • Į abu raginimus klaviatūroje įveskite „Y“(taip).
  • Raskite „Pi“IP adresą, užvesdami pelės žymeklį virš „WiFi“ryšio (taip pat galite jį užsirašyti).
  • Pakeiskite Pi slaptažodį naudodami komandą passwd.

6 veiksmas: iš naujo paleiskite „Pi“ir prisijunkite nuotoliniu būdu

Iš naujo paleiskite „Pi“ir prisijunkite nuotoliniu būdu
Iš naujo paleiskite „Pi“ir prisijunkite nuotoliniu būdu

Dabar galime atsisakyti HDMI ir išorinių įrenginių, oho!

  • Nustatykite nuotolinio darbalaukio ryšį.

    • Kompiuteryje atidarykite nuotolinio darbalaukio ryšį (arba „PuTTY“, jei jums tai patinka).
    • „Mac“/„Linux“galite įdiegti šią programą arba naudoti VNC programą.
  • Įveskite „Pi“IP ir spustelėkite „Prisijungti“(nepaisykite įspėjimų apie nežinomą įrenginį).
  • Prisijunkite prie „Pi“naudodami savo kredencialus ir einame!

7 žingsnis: sukurkite: elektronika

Sukurkite: elektronika!
Sukurkite: elektronika!
Sukurkite: elektronika!
Sukurkite: elektronika!

Dvi aukščiau pateiktos nuotraukos rodo šio projekto ir „Pi Zero Pinout“elektros schemą. Mums reikės abiejų, kad galėtume išspręsti techninės įrangos jungtis.

Pastaba: schemoje esanti LIS331 pertraukimo plokštė yra senesnė versija - naudokite kaiščių etiketes

8 veiksmas: prijunkite akselerometrą prie „Pi“GPIO

Prijunkite pagreičio matuoklį prie „Pi“GPIO
Prijunkite pagreičio matuoklį prie „Pi“GPIO
Prijunkite pagreičio matuoklį prie „Pi“GPIO
Prijunkite pagreičio matuoklį prie „Pi“GPIO
Prijunkite pagreičio matuoklį prie „Pi“GPIO
Prijunkite pagreičio matuoklį prie „Pi“GPIO
  • Lituokite ir atsargiai pašalinkite visus srauto likučius ant akselerometro ir „Pi GPIO“antraštės kaiščių.
  • Tada prijunkite trumpiklius prie LIS331 pertraukos plokštės ir Pi tarp šių kaiščių:

LIS331 Breakout Board Raspberry Pi GPIO kaištis

GND GPIO 9 (GND)

VCC GPIO 1 (3.3V)

SDA GPIO 3 (SDA)

SCL GPIO 5 (SCL)

Kad būtų lengviau prijungti jutiklį prie „Pi Zero“, buvo sukurtas individualus adapteris, naudojant moterišką antraštę ir trumpiklius. Išbandžius jungtis, buvo pridėtas šilumos susitraukimas

9 veiksmas: pridėkite įspėjimo šviesos diodą

Pridėkite įspėjimo šviesos diodą!
Pridėkite įspėjimo šviesos diodą!
Pridėkite įspėjimo šviesos diodą!
Pridėkite įspėjimo šviesos diodą!
Pridėkite įspėjimo šviesos diodą!
Pridėkite įspėjimo šviesos diodą!
Pridėkite įspėjimo šviesos diodą!
Pridėkite įspėjimo šviesos diodą!
  • Lituokite srovės ribojimo rezistorių prie neigiamos LED kojos (trumpesnė kojelė) ir izoliacijai pridėkite susitraukiančią plėvelę (arba elektros juostą).
  • Norėdami prijungti teigiamą LED kojelę prie GPIO26 ir rezistorių prie GND, naudokite du trumpiklius kabelius arba antgalių kaiščius (atitinkamai 37 ir 39 antraštės pozicijos).
  • Prijunkite akumuliatorių prie „Pi“maitinimo šaltinio, kad užbaigtumėte sąranką!

10 žingsnis: užprogramuokite

Užprogramuokite!
Užprogramuokite!

Šio projekto „Python“kodas yra atvirojo kodo! Čia yra nuoroda į „GitHub“saugyklą.

Žmonėms, pradedantiems programuoti:

Perskaitykite programos kodą ir komentarus. Lengvai keičiami dalykai yra viršuje esančioje skiltyje „Vartotojo parametrai“

Žmonėms, patogesniems su techniniais sprendimais:

Ši programa inicijuoja LIS331 akselerometrą su numatytais nustatymais, įskaitant įprastą maitinimo režimą ir 50 Hz duomenų perdavimo spartą. Perskaitykite LIS331 duomenų lapą ir, jei norite, pakeiskite inicijavimo nustatymus

Visi

  • Didžiausia pagreičio skalė, naudojama šiame projekte, yra 24G, nes smūgio jėga greitai išauga!
  • Rekomenduojama komentuoti pagreičio spausdinimo teiginius pagrindinėje funkcijoje, kai būsite pasiruošę visam diegimui.

Prieš paleisdami programą, dar kartą patikrinkite, ar akselerometro adresas yra 0x19. Atidarykite terminalo langą ir įdiekite keletą naudingų įrankių naudodami šią komandą:

sudo apt-get install -y i2c-tools

Tada paleiskite „i2cdetect“programą:

i2cdetect -y 1

Pamatysite I2C adresų lentelę, rodomą taip, kaip parodyta aukščiau esančiame paveikslėlyje. Darant prielaidą, kad tai yra vienintelis prijungtas I2C įrenginys, matomas skaičius (šiuo atveju: 19) yra akselerometro adresas! Jei matote kitą skaičių, atkreipkite dėmesį ir pakeiskite programą (kintamasis priedas).

11 veiksmas: greita programos apžvalga

Greita programos apžvalga
Greita programos apžvalga

Programa nuskaito pagreitį x, y ir z, apskaičiuoja g jėgą ir tada įrašo duomenis į du failus (tame pačiame aplanke kaip ir programos kodas):

  • AllSensorData.txt-pateikia laiko žymę, po kurios g, x, y ir z ašyse.
  • „AlertData.txt“- tas pats, kaip nurodyta aukščiau, bet tik tiems rodmenims, kurie viršija mūsų saugos ribas (absoliuti 9G arba 4G riba ilgiau nei 3 sekundes).

G-jėgos, viršijančios mūsų saugos slenksčius, taip pat įjungs mūsų įspėjamąjį šviesos diodą ir palaikys jį įjungtą, kol iš naujo paleisime programą. Sustabdykite programą komandų terminale įvesdami „CTRL+c“(klaviatūros pertraukimas).

Aukščiau esančioje nuotraukoje rodomi abu bandymų metu sukurti duomenų failai.

12 žingsnis: išbandykite sistemą

Išbandykite sistemą!
Išbandykite sistemą!
Išbandykite sistemą!
Išbandykite sistemą!

Atidarykite terminalo langą, eikite į aplanką, kuriame išsaugojote programos kodą naudodami komandą cd.

cd kelias/į/aplanką

Paleiskite programą naudodami root teises:

sudo python NameOfFile.py

Patikrinkite, ar pagreičio vertės x, y ir z kryptimi spausdinamos į terminalo langą, ar yra pagrįstos, ir įjunkite šviesos diodo lemputę, jei g jėga viršija mūsų slenksčius.

  • Norėdami patikrinti, pasukite akselerometrą taip, kad kiekviena ašis būtų nukreipta į žemę, ir patikrinkite, ar išmatuotos vertės yra 1 arba -1 (atitinka pagreitį dėl gravitacijos).
  • Pakratykite akselerometrą, kad įsitikintumėte, jog rodmenys padidėja (ženklas rodo ašies kryptį, mus labiausiai domina rodmenų dydis).

13 veiksmas: apsaugokite elektros jungtis ir įdiekite jas

Apsaugokite elektros jungtis ir įdiekite jas!
Apsaugokite elektros jungtis ir įdiekite jas!

Kai viskas veiks tinkamai, įsitikinkime, kad smūgio jėgos monitorius iš tikrųjų gali atlaikyti smūgį!

  • Naudokite termiškai susitraukiantį vamzdelį ir (arba) padenkite akselerometro ir šviesos diodų elektros jungtis epoksidine danga.
  • Jei norite labai patvarių, nuolatinių įrenginių, apsvarstykite galimybę visą apvalkalą padengti epoksidine derva: „Pi Zero“, šviesos diodą ir akselerometrą (bet NE „Pi“kabelio jungtis ar SD kortelę).

    Įspėjimas! Jūs vis tiek galite pasiekti „Pi“ir atlikti visus kompiuterio darbus, tačiau pilnas epoksidinės dangos sluoksnis neleis GPIO kaiščių naudoti būsimiems projektams. Arba galite pagaminti ar įsigyti pasirinktinį „Pi Zero“dėklą, nors patikrinkite jo patvarumą

Apsaugokite šalmą, savo asmenį ar tokią transporto priemonę kaip riedlentė, dviratis ar katė*!

Visiškai patikrinkite, ar „Pi“yra tvirtai pritvirtintas, ar GPIO kaiščiai gali atsilaisvinti, todėl programa sugenda.

*Pastaba: iš pradžių norėjau įvesti „automobilį“, bet supratau, kad katės smūgio jėgos monitorius taip pat gali pateikti įdomių duomenų (žinoma, gavus katytės sutikimą).

14 žingsnis: grandinės įterpimas į šalmą

Grandinės įterpimas į šalmą
Grandinės įterpimas į šalmą
Grandinės įterpimas į šalmą
Grandinės įterpimas į šalmą
Grandinės įterpimas į šalmą
Grandinės įterpimas į šalmą

Yra keletas būdų, kaip grandinę įterpti į šalmą. Štai mano požiūris į šalmo montavimą:

  • Jei to dar nepadarėte, prijunkite akumuliatorių prie „Pi“(išjungę bateriją). Pritvirtinkite akselerometrą prie „Pi“užpakalinės dalies, naudodami nelaidžią izoliaciją (pvz., Burbulinę plėvelę ar ploną pakavimo putą).
  • Išmatuokite „Pi Zero“, akselerometro, šviesos diodų ir akumuliatoriaus jungčių derinio matmenis. Įpilkite 10% iš abiejų pusių.
  • Vienoje šalmo pusėje nupieškite projekto išpjovą, o akumuliatoriaus jungtis nukreipta į šalmo viršų. Iškirpkite šalmo paminkštinimą, palikdami kelis milimetrus (~ 1/8 colio).
  • Įdėkite jutiklį, Pi ir šviesos diodą į išjungimą. Iškirpkite šalmo apmušalų perteklių arba naudokite pakavimo putas, kad izoliuotumėte, apsaugotumėte ir laikytumėte elektroniką.
  • Išmatuokite akumuliatoriaus matmenis, pridėkite 10%ir atlikite tą patį akumuliatoriaus išjungimą. Įdėkite bateriją į kišenę.
  • Pakartokite akumuliatoriaus izoliacijos techniką kitoje šalmo pusėje.
  • Laikykite šalmo pamušalą su juosta (dėvėdama galva laikys juos vietoje).

15 žingsnis: diegti

Diegti!
Diegti!
Diegti!
Diegti!

Įjunkite akumuliatorių!

Dabar galite nuotoliniu būdu prisijungti prie „Pi“per SSH arba nuotolinį darbalaukį ir paleisti programą per terminalą. Kai programa veikia, ji pradeda įrašyti duomenis.

Kai atsijungsite nuo namų „WiFi“, SSH ryšys nutrūks, tačiau programa vis tiek turėtų registruoti duomenis. Apsvarstykite galimybę prijungti „Pi“prie savo išmaniojo telefono viešosios interneto prieigos taško „WiFi“arba tiesiog vėl prisijunkite ir grįžę namo paimkite duomenis.

Norėdami pasiekti duomenis, nuotoliniu būdu prisijunkite prie „Pi“ir perskaitykite tekstinius failus. Dabartinė programa visada pridės duomenis prie esamų failų - jei norite ištrinti duomenis (pvz., Iš bandymų), ištrinkite tekstinį failą (per darbalaukį arba naudokite komandą rm terminale) arba sukurkite naują failo pavadinimą programoje kodą (vartotojo parametruose).

Jei šviesos diodas dega, iš naujo paleidus programą, jis bus išjungtas.

Dabar eikite, linksminkitės gyvenime ir kiekvieną kartą tikrinkite duomenis, jei atsitiktinai susiduriate su kažkuo. Tikimės, kad tai nedidelis guzas, bet bent jau žinosite!

16 veiksmas: pridėkite daugiau funkcijų

Pridedama daugiau funkcijų
Pridedama daugiau funkcijų

Ieškote smūgio jėgos monitoriaus patobulinimų? Tai nepatenka į pamokos taikymo sritį, tačiau pabandykite ieškoti idėjų žemiau esančiame sąraše!

Atlikite savo „G-force“duomenų analizę „Python“!

„Pi Zero“turi „Bluetooth“ir „WiFi“galimybes - parašykite programą, kad akselerometro duomenys būtų siunčiami į jūsų išmanųjį telefoną! Norėdami pradėti, čia yra „Pi Twitter“monitoriaus pamoka.

Pridėkite kitų jutiklių, pvz., Temperatūros jutiklį ar mikrofoną*!

Laimingas pastatas

*Pastaba: norėdami išgirsti triukšmingus garsus, susijusius su jūsų pagreičiu!: D

Rekomenduojamas: