Съдържание:

Монитор на силата на въздействие на Raspberry Pi!: 16 стъпки (със снимки)
Монитор на силата на въздействие на Raspberry Pi!: 16 стъпки (със снимки)

Видео: Монитор на силата на въздействие на Raspberry Pi!: 16 стъпки (със снимки)

Видео: Монитор на силата на въздействие на Raspberry Pi!: 16 стъпки (със снимки)
Видео: Lesson 68, Home Automation: How to control 16 Channel Relay module using Arduino control 16 AC loads 2024, Юли
Anonim
Image
Image
Предложено четиво
Предложено четиво

Колко въздействие може да понесе човешкото тяло? Независимо дали става въпрос за футбол, скално катерене или инцидент с велосипед, знанието кога да потърсите незабавна медицинска помощ след сблъсък е изключително важно, особено ако няма очевидни признаци на травма. Този урок ще ви научи как да създадете свой собствен монитор за сила на удара!

Време за четене: ~ 15 мин

Време за изграждане: ~ 60-90 мин

Този проект с отворен код използва Raspberry Pi Zero W и акселерометър LIS331 за наблюдение и предупреждение на потребителя за потенциално опасни G-сили. Разбира се, не се колебайте да промените и адаптирате системата, за да отговаря на различните нужди на науката на гражданите.

Забележка: Създавайте забавни неща с монитора на силата на въздействието! Въпреки това, моля, не го използвайте като заместител на професионален медицински съвет и диагностика. Ако смятате, че сте паднали сериозно, моля, посетете квалифициран и лицензиран специалист за подходящо лечение.

Стъпка 1: Предложено четиво

За да запазите този урок кратък и сладък (е, добре, доколкото е възможно), предполагам, че започвате с функционален Pi Zero W. Нуждаете се от помощ? Няма проблем! Ето пълен урок за настройка.

Също така ще се свързваме дистанционно с Pi (известен още като безжично). За по -задълбочен преглед на този процес вижте този урок.

** Застанал или искате да научите повече? Ето някои удобни ресурси: **

1. Отлично ръководство „Първи стъпки“за Pi.

2. Пълно ръководство за свързване на платката за акселерометър LIS331.

3. Повече за акселерометри!

4. Преглед на пиновете на Raspberry Pi GPIO.

5. Използване на серийни шини SPI и I2C на Pi.

6. Лист с данни LIS331

Стъпка 2: Материали

Материали
Материали
Материали
Материали
  • Основен комплект Raspberry Pi Zero W

    • Този комплект включва следното: SD карта с операционна система NOOBS; USB OTG кабел (microUSB към USB женски); Мини HDMI към HDMI; Захранване MicroUSB (~ 5V)
    • Препоръчва се също: USB хъб
  • Raspberry Pi 3 заглавни щифтове
  • LIS331 Акселерометър Breakout Board
  • Батерия с конектор MicroUSB
  • 5 мм червен светодиод
  • 1k резистор
  • 6 "Термосвиваема тръба или електрическа лента
  • Щифтове за заглавки за акселерометър (4 - 8) и LED (2)
  • Джъмперни проводници от женски към женски (6)

Инструменти

  • Поялник и аксесоари
  • Епоксидна смола (или друго постоянно, непроводимо течно лепило)
  • Вероятно и ножици:)

Стъпка 3: Но изчакайте! Какво представлява силата на удара?

За щастие терминът „сила на удара“е доста ясен: количеството сила при удар. Както повечето неща обаче, измерването му изисква по -точна дефиниция. Уравнението за сила на удара е:

F = KE/d

където F е силата на удара, KE е кинетичната енергия (енергия на движение), а d е разстоянието на удара или колко обектът се хруска. Има две ключови изводи от това уравнение:

1. Ударната сила е правопропорционална на кинетичната енергия, което означава, че силата на удара се увеличава, ако кинетичната енергия се увеличава.

2. Ударната сила е обратно пропорционална на разстоянието на удара, което означава, че силата на удара намалява, ако разстоянието на удара се увеличава. (Ето защо имаме въздушни възглавници: за да увеличим разстоянието на удара си.)

Силата обикновено се измерва в Нютони (N), но силата на удара може да се обсъжда чрез "G-сила", число, изразено като кратно на g, или земното гравитационно ускорение (9,8 m/s^2). Когато използваме единици G-сила, ние измерваме ускорение на обекти спрямо свободното падане към земята.

Технически погледнато g е ускорение, а не сила, но е полезно, когато говорим за сблъсъци, защото ускорението* е това, което уврежда човешкото тяло.

За този проект ще използваме единици G-force, за да определим дали въздействието е потенциално опасно и заслужава медицинска помощ. Изследванията са установили, че g-силите над 9G могат да бъдат фатални за повечето хора (без специално обучение), а 4-6G могат да бъдат опасни, ако се поддържат за повече от няколко секунди.

Знаейки това, ние можем да програмираме нашия монитор на силата на удара, за да ни предупреди, ако нашият акселерометър измерва G-сила над някой от тези прагове. Ура, наука!

За повече информация прочетете за силата на удара и g-силата в Wikipedia!

Ускорението е промяна в скоростта и/или посоката

Стъпка 4: Конфигурирайте Pi Zero W

Конфигурирайте Pi Zero W
Конфигурирайте Pi Zero W

Съберете вашия Raspberry Pi Zero и периферни устройства, за да конфигурирате Pi да бъде без глава!

  • Свържете Pi към монитор и свързаните с него периферни устройства (клавиатура, мишка), включете захранването и влезте.
  • Актуализирайте софтуера, за да поддържате вашия Pi бърз и защитен. Отворете прозореца на терминала и въведете тези команди:

    Въведете и въведете:

sudo apt-get update

Въведете и въведете:

sudo apt-get надстройка

Нулиране:

sudo shutdown -r сега

Стъпка 5: Активирайте WiFi и I2C

Активирайте WiFi и I2C
Активирайте WiFi и I2C
Активирайте WiFi и I2C
Активирайте WiFi и I2C
Активирайте WiFi и I2C
Активирайте WiFi и I2C
  • Щракнете върху иконата WiFi в горния десен ъгъл на работния плот и се свържете с вашата WiFi мрежа.
  • В терминала въведете тази команда, за да изведете инструмента за конфигуриране на софтуера на Pi:

sudo raspi-config

  • Изберете „Опции за взаимодействие“, след това „SSH“и изберете „Да“в долната част, за да активирате.
  • Върнете се към „Опции за взаимодействие“, след това „I2C“и изберете „Да“, за да активирате.
  • В терминала инсталирайте софтуер за връзка с отдалечен работен плот:

sudo apt-get install xrdp

  • Въведете „Y“(да) на клавиатурата си и за двете подкани.
  • Намерете IP адреса на Pi, като задържите курсора на мишката върху WiFi връзката (може също да искате да го запишете).
  • Променете паролата на Pi с командата passwd.

Стъпка 6: Рестартирайте Pi и влезте дистанционно

Рестартирайте Pi и влезте дистанционно
Рестартирайте Pi и влезте дистанционно

Вече можем да се откажем от HDMI и периферни устройства, woohoo!

  • Настройте връзка с отдалечен работен плот.

    • На компютър отворете Връзка към отдалечен работен плот (или PuTTY, ако сте удобни с това).
    • За Mac/Linux можете да инсталирате тази програма или да използвате VNC програма.
  • Въведете IP за Pi и щракнете върху „Свързване“(Игнорирайте предупрежденията за неизвестно устройство).
  • Влезте в Pi, използвайки вашите идентификационни данни и си тръгваме!

Стъпка 7: Изградете го: Електроника

Изградете го: Електроника!
Изградете го: Електроника!
Изградете го: Електроника!
Изградете го: Електроника!

Двете снимки по -горе показват електрическата схема за този проект и Pi Zero Pinout. Ще имаме нужда и от двете, за да се справим с хардуерните връзки.

Забележка: Пробивната платка LIS331 в схемата е по -стара версия - използвайте етикетите на щифтовете за насоки

Стъпка 8: Свържете акселерометъра към GPIO на Pi

Свържете акселерометъра към GPIO на Pi
Свържете акселерометъра към GPIO на Pi
Свържете акселерометъра към GPIO на Pi
Свържете акселерометъра към GPIO на Pi
Свържете акселерометъра към GPIO на Pi
Свържете акселерометъра към GPIO на Pi
  • Запояйте и внимателно отстранете всички остатъци от потока на акселерометъра и щифтовете на заглавката на Pi GPIO.
  • След това свържете джъмперните проводници между пробивната платка LIS331 и Pi между следните щифтове:

LIS331 Breakout Board Raspberry Pi GPIO Pin

GND GPIO 9 (GND)

VCC GPIO 1 (3.3V)

SDA GPIO 3 (SDA)

SCL GPIO 5 (SCL)

За да се улесни свързването на сензора към Pi Zero, беше направен персонализиран адаптер с помощта на женски заглавие и джъмперни проводници. Топлинно свиване беше добавено след тестване на връзките

Стъпка 9: Добавете предупредителен светодиод

Добавете предупредителен светодиод!
Добавете предупредителен светодиод!
Добавете предупредителен светодиод!
Добавете предупредителен светодиод!
Добавете предупредителен светодиод!
Добавете предупредителен светодиод!
Добавете предупредителен светодиод!
Добавете предупредителен светодиод!
  • Запоявайте резистор за ограничаване на тока към отрицателния LED крак (по -къс крак) и добавете свиваща обвивка (или електрическа лента) за изолация.
  • Използвайте два джъмпер кабела или щифта на заглавката, за да свържете положителния LED крак към GPIO26 и резистора към GND (позиции на заглавията съответно 37 и 39).
  • Свържете батерията към входната мощност на Pi, за да завършите настройката!

Стъпка 10: Програмирайте го

Програмирайте го!
Програмирайте го!

Кодът на Python за този проект е с отворен код! Ето връзка към хранилището на GitHub.

За хора, които са нови в програмирането:

Прочетете кода на програмата и коментарите. Нещата, които са лесни за промяна, са в секцията „Потребителски параметри“в горната част

За по -удобни хора с техническите детайли:

Тази програма инициализира акселерометъра LIS331 с настройки по подразбиране, включително нормален режим на захранване и 50Hz скорост на данни. Прочетете листа с данни LIS331 и променете настройките за инициализация по желание

всичко

  • Максималната скала на ускорение, използвана в този проект, е 24G, защото силата на удара става голяма много бързо!
  • Препоръчително е да коментирате изявленията за ускорено отпечатване в основната функция, когато сте готови за пълно внедряване.

Преди да стартирате програмата, проверете отново дали адресът на акселерометъра е 0x19. Отворете прозореца на терминала и инсталирайте някои полезни инструменти с тази команда:

sudo apt-get install -y i2c-tools

След това стартирайте програмата i2cdetect:

i2cdetect -y 1

Ще видите таблица с I2C адреси, показана, както е показано на изображението по -горе. Ако приемем, че това е единственото свързано I2C устройство, номерът, който виждате (в случая: 19) е адресът на акселерометъра! Ако видите различен номер, обърнете внимание и променете програмата (променлива addr).

Стъпка 11: Бърз преглед на програмата

Бърз преглед на програмата
Бърз преглед на програмата

Програмата чете ускорението x, y и z, изчислява g-сила и след това записва данните в два файла (в същата папка с кода на програмата) според случая:

  • AllSensorData.txt-дава времева отметка, последвана от g-сила по осите x, y и z.
  • AlertData.txt - същото като по -горе, но само за показания, които са над нашите прагове за безопасност (абсолютен праг от 9G или 4G за повече от 3 секунди).

G-силите над нашите прагове за безопасност също ще включат нашия светодиод за предупреждение и ще го запазят, докато не рестартираме програмата. Спрете програмата, като въведете “CTRL+c” (прекъсване на клавиатурата) в командния терминал.

Снимката по -горе показва двата файла с данни, създадени по време на тестването.

Стъпка 12: Тествайте системата

Тествайте системата!
Тествайте системата!
Тествайте системата!
Тествайте системата!

Отворете прозореца на терминала, отворете папката, където сте записали програмния код, като използвате командата cd.

cd път/към/папка

Стартирайте програмата, като използвате root права:

sudo python NameOfFile.py

Проверете дали стойностите на ускорението в посоката x, y и z се отпечатват към прозореца на терминала, са разумни и включете LED светлината, ако g-силата е над нашите прагове.

  • За да тествате, завъртете акселерометъра, така че всяка ос да сочи към земята и проверете дали измерените стойности са или 1 или -1 (съответства на ускорението поради гравитацията).
  • Разклатете акселерометъра, за да се уверите, че показанията се увеличават (знакът показва посоката на оста, най -много ни интересува величината на отчитането).

Стъпка 13: Защитете електрическите връзки и го инсталирайте

Защитете електрическите връзки и го инсталирайте!
Защитете електрическите връзки и го инсталирайте!

След като всичко работи правилно, нека се уверим, че мониторът на силата на удара действително може да издържи на удара!

  • Използвайте термосвиваема тръба и/или покрийте електрическите връзки за акселерометъра и светодиода в епоксидна смола.
  • За супер издръжливи, постоянни инсталации, помислете за покриване на целия шебанг с епоксидна смола: Pi Zero, LED и акселерометъра (но НЕ кабелните съединители Pi или SD картата).

    Внимание! Все още можете да получите достъп до Pi и да правите всички компютърни неща, но пълният слой епоксидна смола ще попречи на използването на GPIO щифтовете за бъдещи проекти. Като алтернатива можете да направите или закупите персонализиран калъф за Pi Zero, въпреки че проверете за издръжливост

Прикрепете към каска, вашето лице или начин на транспорт, като вашия скейтборд, велосипед или котка*!

Напълно проверете дали Pi е здраво закрепен или GPIO щифтовете могат да се разхлабят, което да доведе до срив на програмата.

*Забележка: Първоначално имах предвид да напиша „кола“, но реших, че монитор на силата на удара за котка също може да даде някои интересни данни (със съгласието на коте, разбира се).

Стъпка 14: Вграждане на веригата в каска

Вграждане на веригата в каска
Вграждане на веригата в каска
Вграждане на веригата в каска
Вграждане на веригата в каска
Вграждане на веригата в каска
Вграждане на веригата в каска

Има няколко метода за вграждане на веригата в каска. Ето моя подход към инсталирането на каска:

  • Ако все още не сте, свържете батерията към Pi (с изключена батерия). Закрепете акселерометъра към гърба на Pi с непроводима изолация между тях (като обвивка с балончета или тънка опаковъчна пяна).
  • Измерете размерите на комбинацията Pi Zero, акселерометър, LED и конектор на батерията. Добавете 10% от двете страни.
  • Начертайте изрез за проекта от едната страна на каската, с конектора на батерията, обърнат към върха на каската. Изрежете подложката в шлема, оставяйки няколко милиметра (~ 1/8 инча).
  • Поставете сензора, Pi и LED в изреза. Изрежете парчета от излишната подложка на каската или използвайте опаковъчна пяна, за да изолирате, защитите и задържите електрониката на място.
  • Измерете размерите на батерията, добавете 10%и следвайте същото изрязване за батерията. Поставете батерията в джоба.
  • Повторете техниката на изолация за батерията от другата страна на каската.
  • Задръжте подложката на шлема на място с тиксо (главата ви ще ги държи на място, когато го носите).

Стъпка 15: Разгърнете

Разгърнете!
Разгърнете!
Разгърнете!
Разгърнете!

Включете батерията!

Сега можете дистанционно да влезете в Pi чрез SSH или отдалечен работен плот и да стартирате програмата чрез терминала. След като програмата работи, тя започва да записва данни.

Когато прекъснете връзката с домашния си WiFi, SSH връзката ще се прекъсне, но програмата все още трябва да регистрира данни. Помислете за свързване на Pi към вашата WiFi точка за достъп до вашия смартфон или просто влезте отново и вземете данните, когато се приберете.

За достъп до данните, дистанционно влезте в Pi и прочетете текстовите файлове. Текущата програма винаги ще добавя данни към съществуващите файлове - ако искате да изтриете данни (например от тестване), да изтриете текстовия файл (чрез работния плот или да използвате командата rm в терминала) или да създадете ново име на файл в програмата код (в потребителски параметри).

Ако светодиодът свети, рестартирането на програмата ще го изключи.

Сега продължете, забавлявайте се в живота и проверявайте данните от време на време, ако случайно се натъкнете на нещо. Надяваме се, че това е малък удар, но поне ще знаете!

Стъпка 16: Добавяне на още функции

Добавяне на още функции
Добавяне на още функции

Търсите подобрения в монитора на силата на удара? Това е извън обхвата на урока, но опитайте да разгледате списъка по -долу за идеи!

Направете анализ на вашите g-force данни в Python!

Pi Zero има Bluetooth и WiFi възможности - напишете приложение за изпращане на данните от акселерометъра до вашия смартфон! За да започнете, ето урок за Pi Twitter Monitor.

Добавете други сензори, като температурен сензор или микрофон*!

Честита сграда

*Забележка: За да чуете свистящите звуци, свързани с вашето ускорение!:Д

Препоръчано: