Мазмуну:
- 1 -кадам: материалдар
- 2 -кадам: Куралдар
- 3 -кадам: 3D басып чыгаруу
- 4 -кадам: Райондук конструкция
- 5 -кадам: LCD зымдары
- 6 -кадам: Mic/Amplifier Wiring
- 7 -кадам: Моменталдык которуу зымдары
- 8 -кадам: Потенциометрдин зымдары
- 9 -кадам: Гарнитура Jack Wiring
- 10 -кадам: Микрофон/Күчөткүчтү чыгаруу
- 11 -кадам: Микрофон/Күчөткүчтү чыгаруу улантылды
- 12 -кадам: Корпустагы компоненттер
- 13-кадам: Корпуста-Лайкоо
- 14 -кадам: +5V, GND Extended Wires
- 15 -кадам: Узун зымдарды корпус тешиги аркылуу тайдырыңыз
- 16 -кадам: Жылуулукту азайтуу
- 17 -кадам: Мөөрдүн корпусу
- 18 -кадам: Arduino менен туташуу
- 19 -кадам: Arduino IDE/Китепканалары
- 20 -кадам: Arduino Sketch
- 21 -кадам: Аны сынап көрүңүз
- 22 -кадам: Келечектеги иш
Video: Fast Hartley Transform Spectral Stethoscope: 22 Steps
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:38
Бул көрсөтмөдө сиз тез Хартли трансформациясын колдонуп, спектралдык стетоскоп жасоону үйрөнөсүз. Бул жүрөк жана өпкө үндөрүн элестетүү үчүн колдонулушу мүмкүн.
1 -кадам: материалдар
1,8 дюймдук LCD экран (Amazonдо $ 7.50)
Arduino Uno же барабар (Gearbest боюнча $ 7.00)
Электр күчөткүчү (Adafruitте 6,95 доллар)
100 µF Конденсатор ($ 0.79)
Зым жана секиргичтер ($ 4.00)
3.5мм стерео джек ($ 1.50)
10kOhm потенциометр ($ 2.00)
Кыска которуу ($ 1.50)
2 -кадам: Куралдар
Кандооч
Hot Glue Gun
3D принтери… же 3D принтери бар досу (картондон да жасаса болот)
Wire Cutter
Breadboard
3 -кадам: 3D басып чыгаруу
Биринчиси, бул кадамга тиркелген.stl файлдарын 3D басып чыгаруу. Мен эки файлды тең төмөнкү материалды/жөндөөлөрдү басып чыгардым:
Материал: PLA
Катмар бийиктиги: 0.1мм
Дубал/Топ/Төмөнкү калыңдыгы: 0.8мм
Басып чыгаруу температурасы: 200⁰C
Төшөктүн температурасы: 60⁰C
Колдоо иштетилген @ 10%
4 -кадам: Райондук конструкция
Материалдар бөлүмүндөгү компоненттерди колдонуп, схеманы куруңуз. Мен ар дайым схеманы нан плитага чогуу коюп, анын ширетүүчү темирге тийгенге чейин туура иштеп жатканына ынануу үчүн.
5 -кадам: LCD зымдары
Бул кадамга тиркелген фигураны колдонуп, ЖК экрандын сегиз казыгынын жетөөнө зымдарды кошуңуз. Бул зымдардын узундугу болжол менен 3 фут болушу керек, жерди жана +5В казыктарды кошпогондо (бул 2-3 дюйм болушу керек)
6 -кадам: Mic/Amplifier Wiring
Бул кадамга тиркелген фигураны колдонуп, Adafruit микрофонундагы/күчөткүчтөгү +5V, Ground жана Out казыктарына үч зымдарды кошуңуз. Булардын узундугу болжол менен 2-3 дюйм болушу керек.
7 -кадам: Моменталдык которуу зымдары
Учурдагы которгучтагы эки кулактын ар бирине бир 2-3 дюймдук зым.
8 -кадам: Потенциометрдин зымдары
6-кадамдагы фигураны колдонуп, потенциометрдин үч учуна узундугу 2-3 дюйм болгон үч зымды ээрчиңиз.
9 -кадам: Гарнитура Jack Wiring
Кулакчындын уячасынын шакегине, учуна жана жеңинин учуна үч зымды туташтырыңыз. Мен буга чейин зымдуу болгон метрономдон джекти колдондум. Эгер шакек, уч жана жең манжалары эмне экенин билбесеңиз, анда гуглда стерео джектердин зымдары жөнүндө көптөгөн жакшы сүрөттөр бар.
10 -кадам: Микрофон/Күчөткүчтү чыгаруу
Микрофон/амп, потенциометр жана гарнитуранын уячасына зымдарды кошкондон кийин, узундугу үч футка жакын болгон бир зымды микрофондун күчөткүчүнүн "чыккан" зымына кошуңуз. Бул зым кийинчерээк arduino A0 пинине туташтырылат.
11 -кадам: Микрофон/Күчөткүчтү чыгаруу улантылды
Экинчи зымды микрофондун/күчөткүчтүн "чыгып кеткен" зымына туташтырыңыз. Бул зым 100 microFarad конденсаторуна ширетилиши керек. Эгерде сиз электролиттик конденсатор колдонуп жатсаңыз, оң жагы бул зымга туташкандыгын текшериңиз.
12 -кадам: Корпустагы компоненттер
Бардык зымдар компоненттерге ширетилгенден кийин, бул кадамга тиркелген цифраларга ылайык компоненттерди тиешелүү жерлерге коюңуз. Мен микрофон менен гарнитуранын уячасын бекемдөө үчүн ысык клей колдондум.
13-кадам: Корпуста-Лайкоо
Бардык компоненттер корпуска бекитилгенден кийин, бардык жер зымдарын чогуу ширеткиле. ЖКдан бирөө, микрофондон/амптан жана гарнитуранын уячасынын жеңинен бирөө болушу керек. Ошондой эле +5V зымдарын чогуу жана учурдагы которгучтан бир зымды ширеткиле. Дагы бирөө ЖКдан, бири микрофондон/күчөткүчтөн жана бирөө убактылуу которгучта болушу керек.
14 -кадам: +5V, GND Extended Wires
Эми узундугу болжол менен 3 фут болгон эки зымды кесип алыңыз. Бирин жерге зымдардын кластерине, экинчисин учурдагы которгучтагы ачык зымга туташтырыңыз.
15 -кадам: Узун зымдарды корпус тешиги аркылуу тайдырыңыз
Эми сизде жалпы узундугу 3 фут болгон сегиз зым болушу керек. Буларды корпустагы толтурулбаган тешик аркылуу коюңуз. Бул кадамга тиркелген сүрөттү караңыз
16 -кадам: Жылуулукту азайтуу
Бардык ширетүү аяктагандан кийин, ачык зымдардын жабылганын текшериңиз. Мен жылуулукту азайтуучу түтүктөрдү колдондум, бирок электр лентасы да жакшы иштейт.
17 -кадам: Мөөрдүн корпусу
ЖК экраны бар корпустун жарымын алыңыз жана башка компоненттерди камтыган корпустун экинчи жарымына жылдырыңыз. Эки бөлүктү бириктирип жатканда, корпусту бириктирүү үчүн ысык желим менен жабыңыз.
18 -кадам: Arduino менен туташуу
Калган сегиз, узун, зымдар түздөн -түз схемалардын схемаларында көрсөтүлгөн тиешелүү Arduino казыктарына туташтырылган. Узун 3 фут зымдардын бирин чынжырга ар бир жолу салганда, экинчи четине бир тасма кийгизип, Arduino пини эмнеге баратканын көрсөтүңүз!
19 -кадам: Arduino IDE/Китепканалары
Сиз Arduino IDE жүктөп алышыңыз керек. Бул эскиз үчүн мен үч башка китепкананы колдондум: FHT.h, SPI.h жана TFT.h. Эгерде сиз Arduino китепканаларын кантип жүктөөнү билбесеңиз, https://www.arduino.cc/en/Guide/Libraries караңыз. FHT.h китепканасы openmusiclabs.com сайтынан жүктөлүп алынды. Калган экөө GitHubдан жүктөлгөн.
20 -кадам: Arduino Sketch
Убакыт доменин жыштык доменине өзгөртүү үчүн код Fast Hartley Transform (FHT) колдонот. Бул ошондой эле Fast Fourier Transform (FFT) аркылуу жасалышы мүмкүн, бирок FHT алда канча тезирээк. FFT жана FHT сигналдарды иштетүүдө эң негизги идеялар жана үйрөнүү абдан кызыктуу. Эгерде сизди кызыктырса, өзүңүз окуп көрүүнү сунуштайм. Мен Open Music Labs веб -сайтынан көчүргөн FHT мисал коду ар бир жыштык кутусунун амплитудасын логарифмдик же децибелдик чыгаруу катары чыгарды. Мен муну жыштык контейнерлерин сызыктуу масштабда чыгаруу үчүн өзгөрттүм. Бул сызыктуу масштаб адамдардын үн угуусун жакшыраак визуалдуу чагылдыруу болгондуктан. Аягындагы for () цикли ЖК экрандагы ар бир жыштык кутусунун амплитудасын тартуу үчүн. Толук FHT спектри i = 0ден i <128ге чейинки бардык жыштыктарды камтыйт. Менин () циклым i = 5тен i <40ка чейин экенин байкайсыз, себеби өпкө шарттарын диагноздоо үчүн маанилүү жыштыктар адатта 150 Гц менен 3.5 кГц ортосунда болот, мен болжол менен 4 кГцке чейин барууну чечтим. Толук жыштык спектрин көрсөткүңүз келсе, муну туураласа болот.
[код]
// Санарип стетоскоптун коду
// Fast Hartley Transform китепканасы openmusiclabsтен жүктөлдү
#define LIN_OUT 1 // сызыктуу чыгарууну өндүрүү үчүн FHT коюңуз
#define LOG_OUT 0 // FHT логарифмдик чыгарууну өчүрүү
#define FHT_N 256 // FHT үлгү номери
#include // FHT китепканасын камтыйт
#include // TFT китепканасын камтыйт
#include // SPI китепканасын камтыйт
#аныктоо cs 10 // lcd cs pin'ди arduino pin 10го коюңуз
#decine dc 9 // lcd dc pin'ди arduino pin 9го коюңуз
#define rst 8 // lcd баштапкы абалга келтирүүчү пинди arduino pin 8ге коюңуз
TFT myScreen = TFT (cs, dc, rst); // TFT экрандын атын жарыялоо
жараксыз орнотуу () {
//Serial.begin(9600);// тандалма ылдамдыгын
myScreen.begin (); // TFT экранын баштоо
myScreen.background (0, 0, 0); // фонду кара кылып коюу
ADCSRA = 0xe5; // эркин иштөө режимине adc орнотуңуз
ADMUX = 0x40; // adc0 колдонуңуз
}
void loop () {
while (1) {// jitter cli () кыскартат; // UDRE үзгүлтүккө учуроосу arduino1.0де ушинтип басаңдайт
for (int i = 0; i <FHT_N; i ++) {// 256 үлгүнү сактоо
while (! (ADCSRA & 0x10)); // adc даяр болушун күтө туруңуз
ADCSRA = 0xf5; // adc байтын өчүрүп күйгүзүү
m = ADCL; // ADC маалымат байтын алуу
j = ADCH; int k = (j << 8) | м; // int түрүнө айландырыңыз
k -= 0x0200; // формасы кол коюлган int
k << = 6; // формасы 16b кол коюлган int
fht_input = k; // реалдуу маалыматтарды урналарга салыңыз
}
fht_window (); // жакшыраак жыштык үчүн маалыматтарды терезе
fht_reorder (); // fht жасоодон мурун маалыматтарды кайра иреттөө
fht_run (); // fht маалыматтарын иштетүү
fht_mag_lin (); // fht чыгарылышын алыңыз
sei ();
үчүн (int i = 5; i <40; i ++) {
myScreen.stroke (255, 255, 255);
myScreen.fill (255, 255, 255);
int drawHeight = карта (fht_lin_out , 10, 255, 10, myScreen.height ());
int ypos = myScreen.height ()-drawHeight-8; myScreen.rect ((4*i) +8, ypos, 3, drawHeight);
}
myScreen.background (0, 0, 0);
}
}
[/код]
21 -кадам: Аны сынап көрүңүз
Мен коддун туура иштеп жатканын ырастоо үчүн онлайн тон генераторун (https://www.szynalski.com/tone-generator/) колдондум. Иштегенин ырастагандан кийин, стетоскоптун коңгуроосун көкүрөгүңүзгө чейин басыңыз, терең дем алып, кандай жыштыктар бар экенин көрүңүз !!
22 -кадам: Келечектеги иш
** Эскертүү: Мен химикмин, инженер же компьютер илими эмесмин **. Дизайнга жана кодго каталар жана жакшыртуулар болушу мүмкүн. Бул айтылгандай, бул абдан пайдалуу жана арзан болуп калышы мүмкүн болгон нерсенин жакшы башталышы деп ойлойм. Төмөнкү октор мен жасагым келген келечектеги жакшыртуулар жана кээ бирлериңиз дагы аны жакшыртууга аракет кыласыз деп үмүттөнөм!
· Аппаратты мобилдик кылыңыз. Менде CPU же башка микроконтроллерлер боюнча чоң тажрыйба жок, бирок ал бүт FHT китепканасын, же Bluetoothду сактоо үчүн жетиштүү эс тутумга ээ болушу керек.
· Кодго кээ бир статистикалык анализ эсептөөлөрүн киргизүү. Мисалы, адатта, сыбызгы негизги жыштыгы 400 Гцке барабар же андан чоңураак жана 250 мске чейин созулат. Rhonchi болжол менен 200 Гц же андан аз фундаменталдуу жыштыкта пайда болот жана жок дегенде 250 мс созулат. Көптөгөн башка өпкө тыбыштары аныкталган жана ден соолук абалынын көрсөткүчү (https://commongiant.github.io/iSonea-Physicians/assets/publications/7_ISN-charbonneau-Euro-resp-Jour-1995-1942-full.pdf). Менимче, бул коддо FHT аркылуу белгилүү бир циклден кийин жыштык контейнерлеринин сигналын салыштыруу аркылуу текшерилип, миллис () функциясын иштетүү менен анын канча убакыт болгонун көрүп, анан аны салыштырып көрүүгө болот. FHT эсептөөнүн ызы -чуу кабатына. Мен ишенем, бул нерселерди жасаса болот!
Баарыңыздар бул долбоор менен кызыктуу болдуңуздар деп үмүттөнөм, эгер сизде кандайдыр бир суроолор болсо, комментарий калтырыңыз, мен мүмкүн болушунча тезирээк жооп берем! Мен комментарийлерди чыдамсыздык менен күтөм.
Сунушталууда:
Super FAST RC Ground Effect Vehicle (Экраноплан): 5 кадам (Сүрөттөр менен)
Супер FAST RC Ground Effect Vehicle (Экраноплан): Билесизби, тийүү учурунда учактар дөңгөлөктөрү учуп-конуу тилкесине тийгенге чейин бир канча убакыт бою жерден бир нече фут бийиктикте учушат? Бул жүргүнчүлөргө конуу үчүн гана эмес, ошондой эле жер эффектинин табигый натыйжасы, анда
EasyFFT: Arduino үчүн Fast Fourier Transform (FFT): 6 кадам
EasyFFT: Arduino үчүн Fast Fourier Transform (FFT): Тартылган сигналдан жыштыкты өлчөө, айрыкча Arduinoдо, ал эсептөө күчү төмөн болгондуктан, кыйын иш болушу мүмкүн. Нөлдүк өтүүнү кармоо үчүн жеткиликтүү ыкмалар бар, бул жерде жыштыгы канча жолу текшерилгени текшерилет
Arduino: Frequency Transform (DFT): 6 кадам
Arduino: Frequency Transform (DFT): бул программа ардуинодогу жыштыктагы өзгөрүүлөрдү эсептөө үчүн, параметрлерди көзөмөлдөө менен. бул FFT эмес. FFT - бул DFTди азыраак убакыт менен чечүү үчүн колдонулган алгоритм. FFT кодун бул жерден тапса болот
DHT12 (i2c арзан нымдуулук жана температура сенсору), Fast Easy Use: 14 Steps
DHT12 (i2c Нымдуулук жана Температура Сенсору), Тез Оңой Колдонуу: Сиз жаңыртууларды жана башкаларды менин сайтымдан таба аласыз https://www.mischianti.org/2019/01/01/dht12-library-en/. 2 зым менен колдонсо болот (i2c протоколу), бирок мен арзанын жакшы көрөм, бул DHT12 сериясындагы Arduino жана esp8266 китепканасы
PCF8591 (i2c Analog I/O Expander) Fast Easy Use: 9 Steps
PCF8591 (i2c Analog I/O Expander) Fast Easy Use: Китепкана i2c pcf8591 IC arduino жана esp8266 менен колдонуу үчүн. Бул IC чыңалуу сыяктуу аналогдук кирүүнү жана/же 1 аналогдук чыгууну көзөмөлдөй алат, термистордун маанисин окуй алат же ледди өчүрөт. Аналогдук маанини окуп, аналогдук маанини 2 зым менен гана жаза алат (perfec