Агуулгын хүснэгт:
- Алхам 1: эд анги, дагалдах хэрэгсэл
- Алхам 2: Хэсгийн тайлбар: Sense Hat
- Алхам 3: Угсрах: Цохилтын бичлэг
- Алхам 4: Угсрах: Машины самбар дээрх цохилт бүртгэгч
- Алхам 5: Нөлөөллийн кодлогч: Ажил ба програмууд
- Алхам 6: Програм хангамжийн тайлбар: Улаан цэг
- Алхам 7: Зангилааны улаан өнгийн үндсэн ойлголтууд
- Алхам 8: Зангилааны улаан: Урсгал _1a
- Алхам 9: Улаан зангилаа: Flow_1b
- Алхам 10: Улаан зангилаа: Flow_2a
- Алхам 11: Улаан зангилаа: Flow_2b
- Алхам 12: Улаан зангилаа; Урсгал_3
- Алхам 13: MQTT
- Алхам 14: MQTT: Захиалагч
- Алхам 15: MQTT: Properties-ийг зангилааны улаан өнгөөр засварлах
- Алхам 16: Python код:
- Алхам 17: Эцсийн код
- Алхам 18: Шууд видеог хянах
Видео: Тээврийн хэрэгслийн цохилт бүртгэгч: 18 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
Цохилт бүртгэгч нь тээврийн хэрэгсэл жолоодох эсвэл зогсох үед гарсан нөлөөллийг бүртгэхэд зориулагдсан болно. Нөлөөллийг мэдээллийн баазад унших, видео/зураг хэлбэрээр хадгалдаг. Цохилтын алсын хэрэглэгчийг бодит цаг хугацаанд нь шалгах боломжтой бөгөөд алсын хэрэглэгч хадгалсан видеог үзэх эсвэл pi камер руу алсаас хандах, үйл явдлыг үзэх боломжтой..
Алхам 1: эд анги, дагалдах хэрэгсэл
(1) Raspberry Pi 3 ба түүнээс дээш: Тооцоолох хүч шаардлагатай
(2) Raspberry pi мэдрэмжтэй малгай
(3) Raspberry pi камер / USB камер
(4) Хамгийн сүүлийн үеийн raspbian дүрс бүхий санах ойн карт
(5) Хамгийн багадаа 2.1 А цахилгаан хангамж
Алхам 2: Хэсгийн тайлбар: Sense Hat
Sense HAT нь 8 × 8 RGB LED матрицтай, таван товчлууртай джойстиктой бөгөөд дараах мэдрэгчүүдийг агуулдаг.
- Гироскоп
- Хурдасгуур
- Соронзон хэмжигч
- Температур
- Барометр
- даралт
- Чийгшил
Мэдрэх малгайтай ажиллах талаархи дэлгэрэнгүй мэдээллийг дараах линкүүдээс авах боломжтой: Sense_Hat
Мэдрэх малгайны API -ийг Sense_hat_API дээр байрлуулсан болно
Мэдрэмжтэй малгай програмчлах кодыг дараагийн алхамуудад авч үзэх болно. Мэдрэмжтэй малгай кодыг дараах хаягаар байрлуулсан симулятор дээр дуурайж болно: Sense-hat симулятор
Алхам 3: Угсрах: Цохилтын бичлэг
- Мэдрэх малгайг пи дээр овоолох шаардлагатай байдаг тул угсрах нь илүү хялбар байдаг (зориулалтын бэхэлгээний боолтыг мэдрэгчтэй малгайгаар хангадаг).
- USB камер эсвэл pi камерыг холбож болно. Хичээлд pi камерыг авч үзэх бөгөөд үүний дагуу кодчилол хийдэг.
- Санах ойн картыг оруулаад python код болон зангилааны цэгийг тохируулна уу (тохиргоо ба кодыг цаашдын алхамуудад тусгасан болно)
Дээрх зураг нь хавтгай тууз кабелиар pi руу холбогдсон пи камерыг харуулж байна
Алхам 4: Угсрах: Машины самбар дээрх цохилт бүртгэгч
Бичигчийг суурилуулахын тулд би хоёр талт соронзон хальс ашигласан бөгөөд давуу тал нь бичигчийг өөр байрлалд хялбархан өөрчилж болох бөгөөд таны машинд хамгийн тохиромжтой.
Цаашдын камерыг зураг дээр үзүүлсэн шиг босоо байдлаар, хоёр талт соронзон хальс ашиглан суурилуулсан болно.
Дараагийнх нь бэлэн болсон интернет холболтын хамт тэжээлийн эх үүсвэр (10,000 мАч чадалтай банк) холбох явдал юм
MQTT програмыг ашиглахын тулд интернет холболт шаардлагатай болно (MQTT -ийн дэлгэрэнгүй мэдээллийг дараагийн алхамуудад тусгасан болно)
Алхам 5: Нөлөөллийн кодлогч: Ажил ба програмууд
Мэдрэх малгайгаас хурдатгал ба гироскоп ашиглан түүхий утга кодын тогтоосон хязгаараас хэтэрсэн эсэхийг шалгаж болно.
Хурдатгал хэмжигч: Хурдны хэмжигч нь x, y & z тэнхлэг тус бүр дээр ажилладаг таталцлын хүчний (G хүч) хэмжээг хэлдэг. (доош чиглэсэн тэнхлэг нь 1g утгатай байх бөгөөд үүнийг питон кодын дагуу авч үзэх шаардлагатайг анхаарна уу).
Гироскоп; Гироскопыг өнцгийн хөдөлгөөнийг хэмжихэд ашигладаг, өөрөөр хэлбэл огцом эргэх үед мэдрэгч идэвхжиж магадгүй (кодын тохиргооноос хамаарна), ингэснээр машиныг огцом эргүүлж буй хүн баригдах болно.
Тодорхой хязгаарыг идэвхжүүлэхийг LED мэдрэгч малгай дээр мөн "!" Гэж харуулдаг. хурдатгалыг улаанаар, гироскопыг идэвхжүүлэхийн тулд ногооноор
Алхам 6: Програм хангамжийн тайлбар: Улаан цэг
Node-RED бол урсгалд суурилсан програмчлалын хэрэгсэл бөгөөд анх IBM-ийн шинээр гарч ирж буй технологийн үйлчилгээ, одоо JS сангийн нэг хэсэг юм.
Улаан зангилааны талаарх дэлгэрэнгүй мэдээллийг дараах линкээс авах боломжтой: node-red
Бидний хувьд бид node -red ашиглан дараах үйлдлүүдийг хийх болно
(1) Камерын функцийг эхлүүлэхийн тулд джойстиктой харилцах
(2) MQTT -ийг ашиглан автомашинд үзүүлэх нөлөөллийг хянах, эцсийн хэрэглэгчдэд мэдээлэл дамжуулах, MQTT -ээр дамжуулан эцсийн хэрэглэгчийн тушаалыг хүлээн авах, pi дээр шаардлагатай програмыг эхлүүлэх.
(3) Pi -г хаах гэх мэт зарим үндсэн зүйлийг хийх
Цаашдын алхамууд нь зангилаа улаан дээр хэрэгжүүлсэн урсгалын диаграмын талаархи дэлгэрэнгүй мэдээллийг өгдөг
Зангилааны улаан урсгалын диаграм нь питон кодтой харилцан үйлчилдэг тул сүүлийн хэсэг нь питон кодын талыг хамардаг болохыг анхаарна уу
Алхам 7: Зангилааны улаан өнгийн үндсэн ойлголтууд
Node-red-ийг хурдан эхлүүлэхийн тулд зарим үндсэн алхмуудыг тодруулсан байдаг, гэхдээ зангилааны улаан нь програмыг эхлүүлэх, боловсруулахад хэтэрхий энгийн байдаг.
- Node-red-ийг эхлүүлж байна: https:// localhost: 1880.
- Pi интернетэд холбогдсон үед Node-red-ийг эхлүүлж байна https:// ip address>: 1880
Алхам 8: Зангилааны улаан: Урсгал _1a
Flow _1a нь CSV файл дахь аливаа өөрчлөлтийг хянадаг бөгөөд өөрчлөлтийн үндсэн дээр, өөрөөр хэлбэл нөлөөллийг илрүүлсэн, камерын видео бичлэгийг асаалттай горимд тохируулж, хэрэглэгчдэд нөлөөлөл гарсан тухай интернетээр мэдээлдэг.
Алхам 9: Улаан зангилаа: Flow_1b
Дээрх урсгалд видео бичлэгийг хүссэн үедээ джойстик дээр дарж эхлүүлж болно
Алхам 10: Улаан зангилаа: Flow_2a
Дээрх урсгалд, шинэ зураг, видеог лавлах санд хадгалах/байршуулах бүрт мэдээллийг интернетээр бүртгүүлсэн хэрэглэгч рүү дамжуулдаг.
Алхам 11: Улаан зангилаа: Flow_2b
Энэхүү урсгал нь төхөөрөмжийг алсын зайн хэрэглэгчдэд зориулан бүтээсэн бөгөөд ингэснээр төхөөрөмжийг дараах байдлаар хянана
(а) унтраах төхөөрөмж
(б) зураг авах
(в) Видео бичлэг хийх
(d) үндсэн кодыг эхлүүлэх (өгөгдөл бүртгэгч код нь нөлөөллийг тооцдог гол код юм)
Алхам 12: Улаан зангилаа; Урсгал_3
Гол код эсвэл унтраах төхөөрөмжийг эхлүүлэхийн тулд урсгал нь орон нутгийн хандалтанд зориулагдсан болно
Алхам 13: MQTT
MQTT (Message Queuing Telemetry Transport) нь нийтлэгч ба захиалагч харилцан үйлчлэлцдэг TCP/IP протокол юм.
Манай тохиолдолд Pi бол хэвлэгч, харин манай moblile/PC -д суулгасан програм нь захиалагч байх ёстой.
Ийм байдлаар аливаа нөлөөллийг бий болгохын тулд мэдээллийг алсаас хэрэглэгч рүү дамжуулдаг (ажиллаж байгаа интернет холболт заавал байх ёстой).
MQTT -ийн талаарх дэлгэрэнгүй мэдээллийг дараах линкээс авах боломжтой: MQTT
MQTT -ийг ашиглаж эхлэхийн тулд бид эхлээд бүртгүүлэх хэрэгтэй, би cloudmqtt (www.cloudmqtt.com) ашигласан хичээлд "хөөрхөн муур" гэсэн үнэгүй төлөвлөгөө байгаа бөгөөд энэ нь бүгд л юм.
Бүртгүүлсний дараа жишээ үүсгэн "pi" гэж хэлсний дараа та дараах мэдээллийг авах болно
- Серверийн нэр
- боомт
- хэрэглэгчийн нэр
- нууц үг
Мобайл/компьютерээр дамжуулан захиалга өгөхдөө дээр дурдсан зүйлс шаардлагатай болно
Миний програмын хувьд би google play store -аас MQTT програмыг ашигласан (Android хувилбар)
Алхам 14: MQTT: Захиалагч
Гар утсан дээр ажилладаг MQTT програм (Android хувилбар)
Пи дээр илэрсэн цохилтыг буцааж дамжуулдаг
Алхам 15: MQTT: Properties-ийг зангилааны улаан өнгөөр засварлах
MQTT зангилаа, "Серверийн нэр" болон "сэдэв" -ийг сонгосны дараа зангилаа улаан өнгөтэй байна. Энэ нь захиалагчийн төгсгөлд ижил байх ёстой.
Алхам 16: Python код:
Кодын функц нь хавсаргасан схемийн дагуу хийгддэг
Алхам 17: Эцсийн код
Питоны кодыг хавсаргасан болно
Питон скриптийг терминалаас ажиллуулахын тулд бид тэдгээрийг chmod +x datalogger.py хэлбэрээр ажиллуулах ёстой бөгөөд кодын дээд хэсэгт дараах "shebang" мөр #байх ёстой. /usr/bin/python3 (энэ нь зангилааны улаанаас функцийг гүйцэтгэхийн тулд шаардлагатай)
#!/usr/bin/python3 // shebang linefrom_hat импортоор
мэдрэмж = SenseHat ()
csv импортлох
timestamp = datetime.now ()
delay = 5 // хоцрогдол нь өгөгдлийг data.csv файлд хадгалахаар тодорхойлогдсон улаан = (255, 0, 0) ногоон = (0, 255, 0) шар = (255, 255, 0)
#GPIO.setmode (GPIO. BCM)
#GPIO. тохиргоо (17, GPIO. OUT)
def get_sense_impact ():
sense_impact = acc = sense.get_accelerometer_raw () sense_impact.append (acc ["x"]) sense_impact.append (acc ["y"]) sense_impact.append (acc ["z"])
gyro = мэдрэмж.get_gyroscope_raw ()
мэдрэх_үйлдүүлэх
sense_impact -ийг буцаах
def Impact (): // нөлөөллийг илрүүлэх функц #GPIO.setmode (GPIO. BCM) #GPIO.setup (4, GPIO. OUT) хурдатгал = sense.get_accelerometer_raw () x = хурдатгал ['x'] y = хурдатгал ['y'] z = хурдатгал ['z'] x = abs (x) y = abs (y) z = abs (z)
gyro = мэдрэмж.get_gyroscope_raw ()
гирокс = гиро ["x"] гирой = гиро ["y"] гироз = гиро ["z"]
гирокс = дугуй (гирокс, 2)
гирой = дугуй (гирой, 2) гироз = дугуй (гироз, 2)
нөлөө = get_sense_impact ()
Хэрэв x> 1.5 эсвэл y> 1.5 эсвэл z> 1.5: // бодит зам дээрх давталтын дараа утгыг тохируулсан бол түүнийг өөр өөр төрөл, жолоодлогын ур чадварын дагуу өөрчилж болно ('effect.csv', 'w', newline = ' ') байдлаар f: data_writer = зохиолч (f) data_writer.writerow ([' acc x ',' acc y ',' acc z ',' gyro x ',' gyro y ',' gyro z ']) #GPIO. output (4, GPIO. HIGH) sense.clear () sense.show_letter ("!", red) data_writer.writerow (цохилт)
elif gyrox> 1.5 эсвэл gyroy> 1.5 or gyroz> 1.5: // утгыг f: data_writer хэлбэрээр нээлттэй ('Impact.csv', 'w', newline = '') эргэлтийг эхлүүлэх хурдыг харгалзан тохируулна. = зохиолч (f) data_writer.writerow (['acc x', 'acc y', 'acc z', 'gyro x', 'gyro y', 'gyro z']) #GPIO.output (4, GPIO. HIGH) мэдрэмж.тухай () мэдрэмж.шоу_сах бичиг ("!", Ногоон) өгөгдөл_зохиогч.зохиогч (нөлөөлөл)
өөр:
# GPIO.output (4, GPIO. LOW) мэдрэмж. Ойлгомжтой ()
def get_sense_data (): // мэдрэгчийн утгыг бүртгэх, хадгалах функц sense_data =
мэдрэх_ өгөгдөл.хавах (мэдрэмж.гарт температур ()) мэдрэх_ата
чиг баримжаа = мэдрэмж.get_orientation ()
мэдрэмж_ өгөгдөл. хавсаргах (чиг баримжаа ["эвхэх"]) мэдрэмж_ өгөгдөл.хавах (чиг баримжаа ["давирхай"]) мэдрэмж_ өгөгдөл. оруулах (чиг баримжаа ["өнхрөх"])
acc = sense.get_accelerometer_raw ()
sense_data.append (acc ["x"]) sense_data.append (acc ["y"]) sense_data.append (acc ["z"]) mag = sense.get_compass_raw () sense_data.append (mag ["x"]) мэдрэмж_ өгөгдөл.авах (mag ["y"]) мэдрэмж_ өгөгдөл.хавах (mag ["z"])
gyro = мэдрэмж.get_gyroscope_raw ()
мэдрэх_ өгөгдөл. хавсрах (гиро ["x"]) мэдрэмжийн_ өгөгдөл.
sense_data.append (datetime.now ())
утга_ өгөгдлийг буцаах
open ('data.csv', 'w', newline = '') f хэлбэрээр:
data_writer = зохиолч (f)
data_writer.writerow (['temp', 'pres', 'hum', 'yaw', 'pitch', 'roll', 'acc x', 'acc y', 'acc z', 'mag x', ' mag y ',' mag z ',' gyro x ',' gyro y ',' gyro z ',' datetime '])
үнэн байхад:
print (get_sense_data ()) in event for sense.stick.get_events (): # Event.action == "дарагдсан" тохиолдолд joystick дарагдсан эсэхийг шалгаарай: # Event.direction == "up" бол аль чиглэлийг шалгана уу: # утга.show_letter ("U") # Дээд сумны хурдатгал = мэдрэмж.get_accelerometer_raw () x = хурдатгал ['x'] y = хурдатгал ['y'] z = хурдатгал ['z'] x = дугуй (x, 0) y = дугуй (y, 0) z = дугуй (z, 0)
# Хэрэв x == -1: sense.set_rotation (90) elif y == 1: sense.set_rotation (270) elif y == -1: sense.set_rotation (180) else: sense.set_rotation (0) sense.clear () t = sense.get_temperature () t = round (t, 1) message = "T:" + str (t) sense.show_message (message, text_colour = улаан, scroll_speed = 0.09) elif event.direction == "down": acceleration = sense.get_accelerometer_raw () x = acceleration ['x'] y = acceleration ['y'] z = acceleration ['z'] x = round (x), 0) y = дугуй (y, 0) z = дугуй (z, 0)
# Хэрэв x == -1: sense.set_rotation (90) elif y == 1: sense.set_rotation (270) elif y == -1: sense.set_rotation (180) өөр: sense.set_rotation (0) # sense.show_letter ("D") # Доош сум мэдрэх.тогт () h = мэдрэмж.get_humidity () h = дугуй (h, 1) message = "H:" + str (h) утга.шоу шар, scroll_speed = 0.09)
# elif event.direction == "зүүн":
#хурдатгал = мэдрэмж.жагсуур хэмжигч_рав () #x = хурдатгал ['x'] #y = хурдатгал ['y'] #z = хурдатгал ['z'] #x = дугуй (x, 0) #y = дугуй (y, 0) #z = дугуй (z, 0)
#Дэлгэцийн эргэлтийг аль чиглэлд дээшлэхээс шалтгаалан шинэчилнэ үү // Улаан зангилаанд ашиглагдаагүй ба хянагдаагүй #if x == -1: sense.set_rotation (90) #elif y == 1: sense.set_rotation (270) #elif y == -1: sense.set_rotation (180) #else: sense.set_rotation (0) # sense.show_letter ("L") # Зүүн сум # elif event.direction == "баруун": # sense.show_letter ("K") # Баруун сум # elif event.direction == "дунд": # sense.clear ()
цохилт ()
өгөгдөл = get_sense_data ()
dt = өгөгдөл [-1] - dt.seconds> саатал бол цаг хугацааны тамга: data_writer.writerow (data) timestamp = datetime.now ()
Алхам 18: Шууд видеог хянах
Impact Recorder -ийг шууд видеог хянахад ашиглаж болно, учир нь MQTT -ээр дамжуулан видеог хүссэн үедээ хаана ч эхлүүлж болно
Бид видео дамжуулахын тулд VLC тоглуулагчийг ашиглах болно, хамгийн сүүлд raspbian-д VLC-ийг урьдчилан суулгасан болно, өөрөөр бол доорх байдлаар vlc суулгаарай.
Сүлжээний урсгалыг үзэх талаархи нэмэлт мэдээллийг VLC Network урсгалаар дамжуулан авах боломжтой
Уншсанд баярлалаа!!
Цохилтын бичлэг хийж чадах илүү их зүйл бий.
Саад бэрхшээлийн зураглалыг хийхдээ соронзон орны шинжилгээ хийх дараагийн орон зайг анхаарч үзээрэй
Зөвлөмж болгож буй:
Тээврийн хэрэгслийн CAN автобусны өгөгдлийг хэрхэн тайлах вэ: 8 алхам
Тээврийн хэрэгслийн CAN автобусны өгөгдлийг хэрхэн декодлох вэ: Энэхүү зааварчилгаанд бид автомашин, ачааны машины CAN автобусны өгөгдлийг бүртгэж, бүртгэгдсэн CAN автобусны бүртгэлийн мэдээллийг унших боломжтой болгоно. Декодлохын тулд бид үнэгүй can2sky.com үүл үйлчилгээг ашиглах болно. Бид бүртгэлийг CAN-USB адаптераар бичиж болох боловч төлбөрөө төлж болно
Сонгодог тээврийн хэрэгслийн утасгүй датчик бүхий хөдөлгүүрийн температур мэдрэгч/хэмжигч: 7 алхам
Хөдөлгүүрийн температурын мэдрэгч/сонгодог тээврийн хэрэгслийн утасгүй шалгалт хэмжигч: Би хөөрхөн Чипитактаа зориулж энэхүү датчик хийсэн. Арын тагны доор 2 цилиндртэй агаар хөргөлттэй хөдөлгүүртэй fiat 126 автомашинтай. Ципитак нь хөдөлгүүр ямар халуун байгааг харуулах температур хэмжигчгүй тул мэдрэгч нь туслах болно гэж бодсон
Тээврийн хэрэгслийн дижитал хэмжигч дэлгэц: 8 алхам
Тээврийн хэрэгслийн дижитал хэмжигч дэлгэц: Энэ бол миний 73 Montego -д оруулахаар төлөвлөж буй миний дижитал хэмжигч төсөл юм. Энэ нь Arduino Mega 2560 R3, Screw терминал бамбай, ITDB02 TFT бамбайгаар тоноглогдсон бөгөөд Sain Smart 4.3 TFT -ээр тоноглогдсон бөгөөд энэхүү төслийн зорилго нь газрын тосны
TripComputer - GPS -ийн аяллын компьютер ба таны тээврийн хэрэгслийн цаг агаарын модуль: 11 алхам (зурагтай)
TripComputer - Таны тээврийн хэрэгсэлд зориулсан GPS аялалын компьютер ба цаг агаарын модуль: GPS -ийн таслах модуль, 2 жижиг Digole дэлгэцийг ашиглан зураас дээрээ навигацийн компьютер байрлуулах гайхалтай бөөрөлзгөнө pi төсөл
Тээврийн хэрэгслийн арын хараа: 9 алхам (зурагтай)
Тээврийн хэрэгслийн арын хараа: Бид яагаад тээврийн хэрэгслийн арын харааг бүтээдэг вэ? Нөөцлөлтийн мөргөлдөөн нь томоохон асуудал байсныг АНУ-ын Өвчний хяналтын төв мэдээлсэн бөгөөд 2003 оноос хойш 15-аас доош насны 7475 хүүхэд (жилд 2,492) байжээ. автомашины нянгийн эмчилгээ хийлгэсэн