From b1fdb48609a89c5c3b9a97815b0fa29952f77261 Mon Sep 17 00:00:00 2001 From: Ilia Miheev Date: Wed, 3 Jun 2026 22:17:44 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D0=BD=D0=BE=D0=B2=D1=8B=D0=B5=20=D0=B8=D0=B7?= =?UTF-8?q?=D0=BE=D0=B1=D1=80=D0=B0=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=B7=D0=B0=D0=BF=D1=87=D0=B0=D1=81=D1=82=D0=B5?= =?UTF-8?q?=D0=B9=20=D0=B4=D1=80=D0=BE=D0=BD=D0=BE=D0=B2=20=D0=B8=20=D1=82?= =?UTF-8?q?=D0=B5=D1=80=D0=BC=D0=B8=D0=BD=D0=BE=D0=B2,=20=D0=BE=D0=B1?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=BF=D1=83=D1=82?= =?UTF-8?q?=D0=B8=20=D0=BA=20=D0=B8=D0=B7=D0=BE=D0=B1=D1=80=D0=B0=D0=B6?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=D0=BC=20=D0=B2=20=D1=84=D0=B0=D0=B9?= =?UTF-8?q?=D0=BB=D0=B0=D1=85=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../antena.png => images/parts/antenna.png} | Bin .../parts/barometer.png} | Bin .../AKB.png => images/parts/battery.png} | Bin .../images => images/parts}/bec.png | Bin .../images => images/parts}/camera.png | Bin .../zaryadka.png => images/parts/charger.png} | Bin .../images => images/parts}/esc.png | Bin .../parts/flight-controller.png} | Bin .../images => images/parts}/frame.png | Bin .../parts/fuselage.png} | Bin .../ochki.png => images/parts/goggles.png} | Bin .../images => images/parts}/gps.png | Bin .../images => images/parts}/imu.png | Bin .../parts/led-strip.png} | Bin .../volt.png => images/parts/lipo-buzzer.png} | Bin .../images => images/parts}/motor.png | Bin .../images => images/parts}/pdb.png | Bin .../prop.png => images/parts/propeller.png} | Bin .../parts/rangefinder.png} | Bin .../rx.png => images/parts/receiver.png} | Bin .../appa.png => images/parts/transmitter.png} | Bin .../parts/video-transmitter.png} | Bin public/images/terms/ArUco-marker.webp | Bin 0 -> 1022 bytes public/images/terms/ROS.webp | Bin 0 -> 20186 bytes public/images/terms/openCV.webp | Bin 0 -> 2448 bytes src/data/parts.js | 44 +++++++++--------- src/data/terms.js | 5 +- 27 files changed, 26 insertions(+), 23 deletions(-) rename public/{droneComponents/images/antena.png => images/parts/antenna.png} (100%) rename public/{droneComponents/images/barometr.png => images/parts/barometer.png} (100%) rename public/{droneComponents/images/AKB.png => images/parts/battery.png} (100%) rename public/{droneComponents/images => images/parts}/bec.png (100%) rename public/{droneComponents/images => images/parts}/camera.png (100%) rename public/{droneComponents/images/zaryadka.png => images/parts/charger.png} (100%) rename public/{droneComponents/images => images/parts}/esc.png (100%) rename public/{droneComponents/images/controller.png => images/parts/flight-controller.png} (100%) rename public/{droneComponents/images => images/parts}/frame.png (100%) rename public/{droneComponents/images/fuzelazh.png => images/parts/fuselage.png} (100%) rename public/{droneComponents/images/ochki.png => images/parts/goggles.png} (100%) rename public/{droneComponents/images => images/parts}/gps.png (100%) rename public/{droneComponents/images => images/parts}/imu.png (100%) rename public/{droneComponents/images/ledstrip.png => images/parts/led-strip.png} (100%) rename public/{droneComponents/images/volt.png => images/parts/lipo-buzzer.png} (100%) rename public/{droneComponents/images => images/parts}/motor.png (100%) rename public/{droneComponents/images => images/parts}/pdb.png (100%) rename public/{droneComponents/images/prop.png => images/parts/propeller.png} (100%) rename public/{droneComponents/images/dalnomer.png => images/parts/rangefinder.png} (100%) rename public/{droneComponents/images/rx.png => images/parts/receiver.png} (100%) rename public/{droneComponents/images/appa.png => images/parts/transmitter.png} (100%) rename public/{droneComponents/images/videopered.png => images/parts/video-transmitter.png} (100%) create mode 100644 public/images/terms/ArUco-marker.webp create mode 100644 public/images/terms/ROS.webp create mode 100644 public/images/terms/openCV.webp diff --git a/public/droneComponents/images/antena.png b/public/images/parts/antenna.png similarity index 100% rename from public/droneComponents/images/antena.png rename to public/images/parts/antenna.png diff --git a/public/droneComponents/images/barometr.png b/public/images/parts/barometer.png similarity index 100% rename from public/droneComponents/images/barometr.png rename to public/images/parts/barometer.png diff --git a/public/droneComponents/images/AKB.png b/public/images/parts/battery.png similarity index 100% rename from public/droneComponents/images/AKB.png rename to public/images/parts/battery.png diff --git a/public/droneComponents/images/bec.png b/public/images/parts/bec.png similarity index 100% rename from public/droneComponents/images/bec.png rename to public/images/parts/bec.png diff --git a/public/droneComponents/images/camera.png b/public/images/parts/camera.png similarity index 100% rename from public/droneComponents/images/camera.png rename to public/images/parts/camera.png diff --git a/public/droneComponents/images/zaryadka.png b/public/images/parts/charger.png similarity index 100% rename from public/droneComponents/images/zaryadka.png rename to public/images/parts/charger.png diff --git a/public/droneComponents/images/esc.png b/public/images/parts/esc.png similarity index 100% rename from public/droneComponents/images/esc.png rename to public/images/parts/esc.png diff --git a/public/droneComponents/images/controller.png b/public/images/parts/flight-controller.png similarity index 100% rename from public/droneComponents/images/controller.png rename to public/images/parts/flight-controller.png diff --git a/public/droneComponents/images/frame.png b/public/images/parts/frame.png similarity index 100% rename from public/droneComponents/images/frame.png rename to public/images/parts/frame.png diff --git a/public/droneComponents/images/fuzelazh.png b/public/images/parts/fuselage.png similarity index 100% rename from public/droneComponents/images/fuzelazh.png rename to public/images/parts/fuselage.png diff --git a/public/droneComponents/images/ochki.png b/public/images/parts/goggles.png similarity index 100% rename from public/droneComponents/images/ochki.png rename to public/images/parts/goggles.png diff --git a/public/droneComponents/images/gps.png b/public/images/parts/gps.png similarity index 100% rename from public/droneComponents/images/gps.png rename to public/images/parts/gps.png diff --git a/public/droneComponents/images/imu.png b/public/images/parts/imu.png similarity index 100% rename from public/droneComponents/images/imu.png rename to public/images/parts/imu.png diff --git a/public/droneComponents/images/ledstrip.png b/public/images/parts/led-strip.png similarity index 100% rename from public/droneComponents/images/ledstrip.png rename to public/images/parts/led-strip.png diff --git a/public/droneComponents/images/volt.png b/public/images/parts/lipo-buzzer.png similarity index 100% rename from public/droneComponents/images/volt.png rename to public/images/parts/lipo-buzzer.png diff --git a/public/droneComponents/images/motor.png b/public/images/parts/motor.png similarity index 100% rename from public/droneComponents/images/motor.png rename to public/images/parts/motor.png diff --git a/public/droneComponents/images/pdb.png b/public/images/parts/pdb.png similarity index 100% rename from public/droneComponents/images/pdb.png rename to public/images/parts/pdb.png diff --git a/public/droneComponents/images/prop.png b/public/images/parts/propeller.png similarity index 100% rename from public/droneComponents/images/prop.png rename to public/images/parts/propeller.png diff --git a/public/droneComponents/images/dalnomer.png b/public/images/parts/rangefinder.png similarity index 100% rename from public/droneComponents/images/dalnomer.png rename to public/images/parts/rangefinder.png diff --git a/public/droneComponents/images/rx.png b/public/images/parts/receiver.png similarity index 100% rename from public/droneComponents/images/rx.png rename to public/images/parts/receiver.png diff --git a/public/droneComponents/images/appa.png b/public/images/parts/transmitter.png similarity index 100% rename from public/droneComponents/images/appa.png rename to public/images/parts/transmitter.png diff --git a/public/droneComponents/images/videopered.png b/public/images/parts/video-transmitter.png similarity index 100% rename from public/droneComponents/images/videopered.png rename to public/images/parts/video-transmitter.png diff --git a/public/images/terms/ArUco-marker.webp b/public/images/terms/ArUco-marker.webp new file mode 100644 index 0000000000000000000000000000000000000000..a75a842803348eda37dbb147f2a387d58a9fb29b GIT binary patch literal 1022 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 Ngs-1z7qLSW^e++8=-B`O literal 0 HcmV?d00001 diff --git a/public/images/terms/openCV.webp b/public/images/terms/openCV.webp new file mode 100644 index 0000000000000000000000000000000000000000..455fb0495db13b83a4d16b524782a6e017100174 GIT binary patch literal 2448 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 OkPpn0okYL@0002cz{30h literal 0 HcmV?d00001 diff --git a/src/data/parts.js b/src/data/parts.js index 41496ed..dd6f2b5 100644 --- a/src/data/parts.js +++ b/src/data/parts.js @@ -3,154 +3,154 @@ export const partsItems = [ "id": 1, "title": "Пропеллеры (винты) дрона", "subtitle": "Силовая установка", - "image": "/droneComponents/images/prop.png", + "image": "/images/parts/propeller.png", "description": "Пропеллеры (воздушные винты) — это лопасти, которые вращаются моторами и создают подъёмную силу и тягу для движения дрона.\n\nДва основных размера — это две цифры: первые две — диаметр (дюймы), последние две — шаг (расстояние, которое винт проходит за один оборот). Например, 5030: диаметр 5.0 дюймов, шаг 3.0 дюйма.\n\nОсновные правила:\n• Большой диаметр + низкий KV мотора = тяжёлые грузы и стабильность\n• Маленький диаметр + высокий KV = скорость и манёвренность\n• Чем больше шаг — тем быстрее дрон, но выше нагрузка на мотор\n\nПропеллеры бывают двух направлений вращения: CW (по часовой стрелке) и CCW (против часовой). У дрона всегда два винта крутятся в одну сторону, два — в другую для компенсации реактивного момента." }, { "id": 2, "title": "Регулятор оборотов (ESC)", "subtitle": "Электроника", - "image": "/droneComponents/images/esc.png", + "image": "/images/parts/esc.png", "description": "ESC (Electronic Speed Controller) — это устройство, которое получает сигнал от полётного контроллера и преобразует постоянный ток от АКБ в трёхфазный переменный ток для управления бесколлекторным мотором.\n\nФактически ESC — это «педаль газа» для каждого мотора: он меняет скорость вращения тысячи раз в секунду.\n\nОсновные характеристики:\n• Ток (A, амперы): максимальный ток, который ESC может пропустить без перегрева (например, 30A, 50A)\n• Напряжение (S): сколько банок LiPo поддерживает (2-6S и выше)\n• Прошивка (firmware): BLHeli_S, BLHeli_32, AM32 — влияет на плавность и отклик\n\nНа квадрокоптере 4 ESC: один на каждый мотор. Современные дроны часто используют 4-в-1 ESC (одна плата на все 4 мотора) — это компактнее, но если сгорает один канал, менять нужно всю плату." }, { "id": 3, "title": "АКБ дрона (аккумулятор)", "subtitle": "Батареи", - "image": "/droneComponents/images/AKB.png", + "image": "/images/parts/battery.png", "description": "АКБ дрона — это аккумуляторная батарея (химический источник тока), которая обеспечивает питанием все системы БПЛА: двигатели, полетный контроллер, телеметрию, камеру.\n\nКоротко: это «топливный бак» дрона, от которого зависит время полёта.\n\nОсновные характеристики:\n• Тип: Li-Po (литий-полимерные) или Li-Ion (для дальних полётов)\n• Напряжение (S): 3S (11.1В), 4S (14.8В) — чем больше банок, тем мощнее\n• Ёмкость (mAh): влияет на время полёта (1500-5000 mAh)\n• Токоотдача (C): способность мгновенно отдавать энергию" }, { "id": 4, "title": "Моторы дрона (электродвигатели)", "subtitle": "Силовая установка", - "image": "/droneComponents/images/motor.png", + "image": "/images/parts/motor.png", "description": "Моторы дрона — это электродвигатели, которые преобразуют энергию от АКБ во вращение пропеллеров, создавая подъёмную силу и управляя движением коптера.\n\nСуществует два типа: бесколлекторные (Brushless) — стандарт для всех современных дронов (FPV, DJI), высокий КПД и мощность; коллекторные (Brushed) — только в дешёвых игрушках, малый ресурс.\n\nКлючевые характеристики:\n• Размер (4 цифры, например 2207): первые две — диаметр статора (мм), последние две — высота статора (мм)\n• KV (оборотов на вольт): низкий KV (1700-2000) — для тяжёлых грузов и больших винтов, высокий KV (2500-5000+) — для скорости и маленьких винтов\n• ESC (регулятор оборотов): преобразует постоянный ток батареи в трёхфазный для мотора\n\nПравило подбора: чем тяжелее дрон и длиннее винты, тем ниже должно быть KV. Перегрев мотора после полёта — признак перегрузки." }, { "id": 5, "title": "PDB (Плата распределения питания)", "subtitle": "Электроника", - "image": "/droneComponents/images/pdb.png", + "image": "/images/parts/pdb.png", "description": "PDB (Power Distribution Board) — это плата, которая принимает питание от АКБ и распределяет его между всеми потребителями: регуляторами оборотов (ESC), полётным контроллером, видеопередатчиком и другой периферией.\n\nЧасто PDB выполняет роль центральной «силовой магистрали» дрона, к ней сходятся все толстые провода.\n\nОсновные возможности:\n• Медные дорожки рассчитаны на большой ток (до 100+ Ампер)\n• Имеет посадочные места для пайки ESC и других устройств\n• Может включать встроенный BEC для питания электроники (5В или 12В)\n• На современных дронах часто интегрирована прямо в полётный контроллер (FC) — тогда отдельная PDB не нужна" }, { "id": 6, "title": "BEC (Блок стабилизации напряжения)", "subtitle": "Электроника", - "image": "/droneComponents/images/bec.png", + "image": "/images/parts/bec.png", "description": "BEC (Battery Elimination Circuit) — это преобразователь напряжения, который понижает высокое напряжение от АКБ (например, 14.8В от 4S) до стабильного низкого напряжения (обычно 5В или 12В) для питания чувствительной электроники: полётного контроллера, приёмника, GPS, LED-лент.\n\nНазвание произошло от того, что раньше моделистам нужна была отдельная батарея для электроники, а BEC «устранил» эту батарею.\n\nТипы BEC:\n• Линейный (Linear): простой и дешёвый, но греется и неэффективен при большом перепаде напряжения\n• Импульсный (Switching / UBEC): дороже, но холодный и эффективный — используется в большинстве дронов\n\nГде встречается:\n• Встроен в PDB\n• Встроен в ESC (обычно BEC есть в одном из ESC для питания FC)\n• Отдельный модуль (UBEC) для мощных или особо чувствительных систем\n\nВажно: BEC должен выдавать достаточно тока (ампер) для всей подключаемой электроники." }, { "id": 7, "title": "Зарядное устройство (балансировочное)", "subtitle": "Зарядные устройства", - "image": "/droneComponents/images/zaryadka.png", + "image": "/images/parts/charger.png", "description": "Зарядное устройство (LiPo балансировочный зарядник) — это внешний прибор для безопасной зарядки и обслуживания литий-полимерных (LiPo) и литий-ионных (Li-Ion) аккумуляторов дронов.\n\nПростые USB-зарядки из комплекта — это «медленные и опасные» зарядки без балансировки. Хорошее зарядное устройство обязательно выполняет балансировку — выравнивает напряжение на каждой банке (ячейке) АКБ, продлевая срок службы и предотвращая пожар.\n\nОсновные характеристики:\n• Тип: балансировочное (обязательно для LiPo)\n• Мощность: измеряется в Ваттах (например, 50W, 200W, 500W) — влияет на скорость зарядки\n• Ток заряда: 1С (рекомендуемый) — для АКБ 1500mAh это 1.5A\n• Режимы: заряд, разряд, хранение (storage), балансировка\n• Количество каналов: одноканальные или многоканальные (можно заряжать несколько АКБ сразу)\n\nПопулярные модели: ToolkitRC M6D, HOTA D6 Pro, SkyRC B6, ISDT Q6\n\nПравило безопасности: никогда не оставляйте LiPo без присмотра во время зарядки — используйте огнестойкий мешок (LiPo safe bag)." }, { "id": 8, "title": "Полётный контроллер (FC)", "subtitle": "Электроника", - "image": "/droneComponents/images/controller.png", + "image": "/images/parts/flight-controller.png", "description": "Полётный контроллер (Flight Controller, FC) — это главный процессор дрона, который обрабатывает сигналы с датчиков и управляет моторами через ESC, чтобы стабилизировать полёт и выполнять команды пилота.\n\nЭто «мозг» дрона: он получает данные о положении, угле крена, высоте, читает команды с пульта (газ, крен, тангаж, рыскание) и мгновенно подкручивает обороты каждого мотора тысячи раз в секунду.\n\nЧто современные FC умеют:\n• Стабилизация (режимы Angle/Horizon для новичков и Acro для профессионалов)\n• Поддержка Betaflight, INAV, ArduPilot (прошивки)\n• Блэкбокс (запись полётных данных для анализа)\n• Встроенный барометр, гироскоп, иногда OSD (наложение данных на видео)\n\nПопулярные модели: SpeedyBee F405, MATEK F405, Kakute H7, Pixhawk (для тяжёлых дронов)." }, { "id": 9, "title": "Гироскоп и акселерометр (IMU)", "subtitle": "Датчики", - "image": "/droneComponents/images/imu.png", + "image": "/images/parts/imu.png", "description": "Гироскоп и акселерометр — это датчики положения дрона в пространстве. Оба распаяны прямо внутри корпуса полётного контроллера и вместе образуют IMU (Inertial Measurement Unit).\n\nКак работают:\n• Гироскоп измеряет угловую скорость (как быстро дрон вращается вокруг осей: крен, тангаж, рыскание)\n• Акселерометр измеряет линейные ускорения (включая гравитацию — чтобы определить, где «низ»)\n\nСовместная работа: FC объединяет данные обоих датчиков (сенсорная фьюжн) и получает точные углы наклона (attitude).\n\nВажно: акселерометр нужен только для режимов стабилизации (Angle/Horizon). В режиме Acro (свободный полёт) многие пилоты отключают акселерометр для более чистой работы гироскопа.\n\nПопулярные модели датчиков: MPU6000, MPU6050, BMI270, ICM42688." }, { "id": 10, "title": "Барометр (датчик высоты)", "subtitle": "Датчики", - "image": "/droneComponents/images/barometr.png", + "image": "/images/parts/barometer.png", "description": "Барометр — это датчик, который измеряет высоту дрона по изменению атмосферного давления. Чаще всего он уже встроен прямо в полётный контроллер.\n\nПринцип работы: чем выше поднимается дрон, тем ниже давление воздуха. Барометр фиксирует эту разницу и вычисляет высоту.\n\nОсобенности:\n• Работает только на открытом воздухе (давление не меняется в помещении из-за закрытого объёма)\n• Даёт абсолютную высоту относительно стартовой точки\n• Основной датчик для удержания высоты в GPS-режиме и при автономных полётах (INAV, ArduPilot)\n• Точность обычно до ±0.5-1 метра (но чувствителен к ветру и изменениям погоды)\n\nПопулярные модели: BMP280, BMP388, MS5611 (более дорогой и точный)." }, { "id": 11, "title": "Дальномер (ультразвуковой или лазерный)", "subtitle": "Датчики", - "image": "/droneComponents/images/dalnomer.png", + "image": "/images/parts/rangefinder.png", "description": "Дальномер — это датчик для точного измерения расстояния от дрона до земли или препятствия. Используется для удержания высоты на малых высотах (до нескольких метров), где барометр даёт грубую ошибку.\n\nДва основных типа:\n• Ультразвуковой (SONAR): работает по принципу эхолокации — излучает звук и замеряет время возврата эха. Дёшево, но чувствителен к шуму и работает плохо над травой/водой. Дальность: 0.1-5 м.\n• Лазерный (LiDAR / TOF): измеряет время пролёта лазерного луча. Точный, не боится шума, работает на любых поверхностях. Дальность: до 10-30 метров. Дороже.\n\nГде применяется: дроны для съёмки, агродроны, дроны для полётов в помещениях (где нет GPS). В FPV-гоночных дронах почти не встречается." }, { "id": 12, "title": "GPS / Компас (магнитометр)", "subtitle": "Датчики", - "image": "/droneComponents/images/gps.png", + "image": "/images/parts/gps.png", "description": "GPS/Компас — это модуль, который позволяет дрону знать своё местоположение на Земле и направление относительно магнитных полюсов (север/юг). Рекомендуется для любого дрона, который летает на улице.\n\nЧто даёт:\n• Удержание точки (Position Hold) — дрон зависает на месте даже при ветре\n• Возврат домой (RTH — Return To Home) — при потере сигнала или низком заряде дрон возвращается на точку взлёта\n• Полёты по точкам (Waypoints) — автономные миссии\n• Telemetry (скорость, высота, расстояние до дома, координаты)\n\nСостав:\n• GPS приёмник: определяет координаты, высоту (по спутникам), скорость\n• Магнитометр (компас): определяет направление по магнитному полю Земли (нужен для RTH, иначе дрон не поймёт, куда лететь)\n\nВажно: компас требует калибровки перед полётом и страдает от электромагнитных помех от проводов с током. Модуль должен стоять подальше от силовой проводки.\n\nФорматы: M8N, M10, M8Q (чем новее, тем лучше). Рекомендуется M10 с защитой от помех." }, { "id": 13, "title": "Аппаратура управления (пульт пилота)", "subtitle": "Управление", - "image": "/droneComponents/images/appa.png", + "image": "/images/parts/transmitter.png", "description": "Аппаратура управления (Transmitter, TX, пульт) — это устройство в руках пилота, которое отправляет команды на дрон: газ, крен, тангаж, рыскание, а также переключение режимов полёта и дополнительные функции.\n\nЭто «руль и педали» дрона. Современные пульты работают в цифровых протоколах и имеют телеметрию — обратную связь с дроном (уровень батареи, сигнал, высота).\n\nОсновные характеристики:\n• Количество каналов: минимально 4 (газ, крен, тангаж, рыскание), для FPV нужно 6-8 каналов (режимы, бипер, арм)\n• Протокол связи: ELRS (ExpressLRS) — современный стандарт для FPV (дальность километры), также Crossfire, Ghost, FrSky (ACCST, ACCESS)\n• Мощность передатчика: 100mW, 250mW, 1W — влияет на дальность\n• Частота: 2.4 ГГц (стандарт) или 900 МГц (лучшее проникновение через препятствия)\n\nФорм-факторы:\n• Геймпад (игровой стиль): Radiomaster Zorro, Jumper T-Pro\n• Боксёр (классический): Radiomaster TX16S, TBS Mambo, FrSky X18\n• Для новичков: LiteRadio 3, BetaFPV LiteRadio\n\nВажно: пульт должен поддерживать тот же протокол, что и приёмник на дроне (например, оба на ELRS)." }, { "id": 14, "title": "Приёмник (Receiver, RX)", "subtitle": "Управление", - "image": "/droneComponents/images/rx.png", + "image": "/images/parts/receiver.png", "description": "Приёмник (Receiver, RX) — это устройство, которое крепится на дрон, принимает радиосигнал с пульта пилота и передаёт команды на полётный контроллер.\n\nЭто «уши» дрона. Без него вы не сможете управлять дроном — он просто не услышит команды.\n\nКак работает:\n1. Пилот двигает стики на пульте → пульт кодирует команды в радиосигнал\n2. Приёмник на дроне ловит сигнал и расшифровывает его\n3. Полётный контроллер читает данные с приёмника (через протоколы типа SBUS, CRSF) и управляет моторами\n\nОсновные характеристики:\n• Протокол связи: должен совпадать с пультом (ELRS, Crossfire, FrSky, DJI, Spektrum)\n• Количество каналов: обычно 6-16 (чем больше, тем больше функций)\n• Дальность: зависит от мощности и протокола — у ELRS на 100mW можно летать на километры\n• Антенны: один или два штырька (диверсити — две антенны для лучшего приёма)\n\nПопулярные модели:\n• ELRS: Radiomaster RP1, Happymodel EP1/EP2, BetaFPV ELRS Lite\n• Crossfire: TBS Crossfire Nano RX\n• FrSky: XM+, R-XSR (устаревающий, но ещё встречается)\n\nВажно: приёмник должен быть совместим с полётным контроллером (обычно подключается через UART и протокол CRSF для ELRS или SBUS для FrSky)." }, { "id": 15, "title": "FPV-камера", "subtitle": "Видеосистема", - "image": "/droneComponents/images/camera.png", + "image": "/images/parts/camera.png", "description": "FPV-камера — это устройство, которое крепится на дрон и передаёт картинку с его «глаз» в реальном времени. Пилот видит эту картинку в очках или на экране и управляет дроном от первого лица.\n\nЭто «глаза» дрона. Без FPV-камеры полёт от первого лица невозможен.\n\nОсновные характеристики:\n• Размер: самый популярный — 19x19 мм для дронов 3-5 дюймов, также 14x14 мм и 27x27 мм\n• Сенсор: CCD (устаревший, плавная картинка при изменении освещения) или CMOS (современный, лучшее качество)\n• Соотношение сторон: 4:3 (классика) или 16:9 (широкоэкранный)\n• Разрешение: стандартное ~600TVL (аналог), 1080p (цифровые системы типа DJI O4)\n• WDR (широкий динамический диапазон): позволяет видеть детали и в тени, и на свету — критично для полётов против солнца\n• Задержка (латентность): для аналога <5-10 мс, для цифры ~20-40 мс — чем меньше, тем лучше для быстрых маневров\n\nПопулярные модели:\n• Аналог: Caddx Ratel 2, Foxeer T-Rex, Runcam Phoenix 2\n• HDZero: Runcam HDZero\n• Walksnail: Avatar HD\n• DJI: O3 Air Unit (камера + VTX в одном корпусе)" }, { "id": 16, "title": "Видеопередатчик (VTX)", "subtitle": "Видеосистема", - "image": "/droneComponents/images/videopered.png", + "image": "/images/parts/video-transmitter.png", "description": "Видеопередатчик (Video Transmitter, VTX) — это устройство, которое получает видеосигнал с FPV-камеры и транслирует его по радиочастоте на землю (в очки или монитор пилота).\n\nЭто «радиостанция» дрона для видео. VTX определяет, насколько далеко и с каким качеством вы увидите картинку.\n\nОсновные характеристики:\n• Мощность: 25mW, 200mW, 600mW, 1W (1000mW) и выше. Чем выше мощность, тем дальше полёт, но сильнее нагрев\n• Частота: 5.8 ГГц (стандарт для FPV). Бывают ещё 1.3 ГГц и 2.4 ГГц, но редко\n• Каналы: 40+ каналов, включая Raceband (самые чистые частоты для групповых полётов)\n• Тип: аналоговый (дешевле, меньше задержка) или цифровой (качество как на телевизоре, дороже)\n• SmartAudio / Tramp: протоколы для управления VTX с пульта (переключать каналы и мощность в полёте)\n\nПопулярные модели:\n• Аналог: TBS Unify Pro32, Rush Tank Ultimate, Eachine Nano\n• Цифровые системы: DJI O3/O4 Air Unit, Walksnail Avatar, HDZero\n\nВажно: VTX сильно греется — его нельзя включать без антенны (сгорит). Нужен обдув от пропеллеров или радиатор." }, { "id": 17, "title": "Антенна видеопередатчика", "subtitle": "Видеосистема", - "image": "/droneComponents/images/antena.png", + "image": "/images/parts/antenna.png", "description": "Антенна видеопередатчика (VTX Antenna) — это устройство, которое излучает видеосигнал VTX в окружающее пространство. Качество антенны напрямую влияет на дальность и надёжность видеосвязи.\n\nЭто «рупор» дрона для видео. Без антенны VTX не только не передаёт сигнал, но и сгорает от перегрева.\n\nТипы антенн:\n• Штыревая (Whip / Linear): простая, дешёвая, но плохая помехозащищённость — подходит только для очень маленьких дронов\n• Клеверный лист (Cloverleaf / RHCP): круговая поляризация, лучше проникает через препятствия\n• Пагода (Pagoda): дешёвая и эффективная круговая антенна\n• Лутц (Lumenier AXII, TrueRC): современные высококачественные антенны с лучшим коэффициентом усиления\n\nПоляризация:\n• RHCP (Right-Hand Circular Polarized) — правая круговая (стандарт FPV)\n• LHCP (Left-Hand Circular Polarized) — левая круговая (несовместима с RHCP!)\n\nВажно: антенна на дроне и антенны на очках должны иметь одинаковую поляризацию (например, обе RHCP). Иначе дальность упадёт в 10-20 раз.\n\nФорм-факторы: короткая (для минидронов) или длинная (лучше сигнал на большом дроне)." }, { "id": 18, "title": "FPV-шлем / очки", "subtitle": "Видеосистема", - "image": "/droneComponents/images/ochki.png", + "image": "/images/parts/goggles.png", "description": "FPV-шлем или очки (Goggles / Video Receiver) — это устройство, которое пилот надевает на голову. Оно принимает видеосигнал с видеопередатчика (VTX) дрона и показывает картинку с камеры прямо перед глазами, создавая эффект полного погружения «от первого лица».\n\nЭто «окно в кабину» дрона. Без них FPV-полёт теряет смысл.\n\nДва основных типа:\n• Очки-«бабочка» (Box Goggles): один большой экран внутри корпуса. Дешевле, подходят для новичков и людей в очках. Пример: Eachine EV800D.\n• Компактные очки (Slim Goggles): два маленьких экрана, выглядят как лыжная маска. Дороже, компактнее, легче. Пример: FatShark, DJI Goggles.\n\nОсновные характеристики:\n• Приёмник (аналоговый или цифровой): должен совпадать с VTX дрона — аналог не примет цифру и наоборот\n• Разрешение экранов: от 480p до 1080p\n• Угол обзора (FOV): от 30° до 60° — чем больше, тем сильнее погружение\n• Запись видео: многие очки пишут DVR (то, что видел пилот) на SD-карту\n• HDMI-вход: позволяет подключать симулятор или цифровые системы сторонних производителей\n• Диоптрии / регулировка линз: для близоруких пилотов\n\nПопулярные модели:\n• Аналоговые: Eachine EV800D (начальный), FatShark Attitude V6, Skyzone Cobra X\n• Цифровые: DJI Goggles 2 / Integra / V2, Walksnail Avatar Goggles X, HDZero Goggles\n\nВажно: антенны на очках должны совпадать по поляризации с антенной на дроне (RHCP с RHCP, LHCP с LHCP)." }, { "id": 19, "title": "Рама и лучи (несущая основа)", "subtitle": "Конструкция", - "image": "/droneComponents/images/frame.png", + "image": "/images/parts/frame.png", "description": "Рама — это несущая основа дрона, на которую крепятся все компоненты: моторы, полётный контроллер, АКБ, видеопередатчик и остальная электроника. Лучи (arms) — это «руки» дрона, на концах которых устанавливаются моторы. Лучи обычно являются частью рамы (бывают цельные или съёмные).\n\nЭто «скелет» дрона. От жёсткости и веса рамы зависит стабильность полёта и устойчивость к вибрациям.\n\nОсновные материалы:\n• Карбон (углепластик) — самый популярный для FPV: лёгкий, жёсткий, не гнётся. Классическая толщина — 3-4 мм для рамы, 5-6 мм для лучей.\n• Пластик — для игрушек и дешёвых дронов (хрупкий).\n• Алюминий/сталь — для тяжёлых промышленных дронов (редко).\n\nХарактеристики рамы:\n• Размер (wheelbase): расстояние по диагонали между центрами моторов (например, 250 мм для 5-дюймового дрона)\n• Форма: X (симметричный), True X (равные плечи), Wide X (широкий), Deadcat (передние лучи разведены — камера не попадает в кадр)\n• Совместимость с моторами: крепление 12x12 мм (микро), 16x16 мм, 19x19 мм (стандарт M3)\n\nПопулярные производители: TBS, iFlight, GEPRC, Armattan (гарантия на поломку), Source One (дешёвый и хороший)." }, { "id": 20, "title": "Фюзеляж (защитный капот)", "subtitle": "Конструкция", - "image": "/droneComponents/images/fuzelazh.png", + "image": "/images/parts/fuselage.png", "description": "Фюзеляж — это защитный капот (корпус), который закрывает и защищает электронику дрона: полётный контроллер, приёмник, видеопередатчик и провода от пыли, влаги и ударов. Нужен не всем дронам — чаще используется на самолётах (крылатых БПЛА) или готовых consumer-дронах (DJI, Autel).\n\nЭто «кузов» или «кабина» дрона. В FPV-коптерах почти не встречается, так как карбоновая рама сама по себе защищает компоненты, а открытый доступ упрощает ремонт.\n\nГде применяется:\n• Самолёты и крылья: обтекаемый фюзеляж для аэродинамики\n• Промышленные октокоптеры: пыле- и брызгозащита (степень IP54+)\n• Готовые дроны (DJI Mavic, DJI Phantom, Autel Evo): полный пластиковый корпус для защиты и красоты\n• Детские и игрушечные дроны: весь дрон — один большой корпус\n\nМатериалы: пластик (ABS, поликарбонат), пенопласт (для самолётов), иногда карбон с накладками.\n\nВажно: в FPV квадрокоптерах вместо фюзеляжа используют 3D-печатные фиксаторы для АКБ, кейсы для GoPro и небольшой «капот» (top plate) на верхней плате рамы — это минималистичный вариант." }, { "id": 21, "title": "Светодиодная лента (LED / подсветка)", "subtitle": "Электроника", - "image": "/droneComponents/images/ledstrip.png", + "image": "/images/parts/led-strip.png", "description": "Светодиодная лента (LED-подсветка) — это адресные или обычные светодиоды на гибкой плате, которые крепятся на раму дрона. Используется для индикации статуса (вооружён/не вооружён, режим полёта, уровень заряда АКБ) и для визуальной ориентации дрона в темноте.\n\nЭто «световая сигнализация» и «габаритные огни» дрона. Позволяет понять, куда повёрнут дрон ночью и готов ли он к взлёту.\n\nТипы:\n• Обычные одноцветные: просто горят красным/синим/белым (дешёвые)\n• Адресные (WS2812B / NeoPixel): каждый светодиод можно управлять индивидуально — менять цвет, яркость, эффекты (бегущие огни, мигание)\n\nЧто можно делать:\n• Подключить к полётному контроллеру (UART или LED-порт) и настроить в Betaflight\n• Включить разные цвета для задних (обычно красные, тёплые) и передних (синие/белые/холодные) лучей для ориентации\n• Мигать при низком заряде АКБ\n• Светить ярко-синим/зелёным при вооружении (arm)\n\nПараметры: напряжение 5В (питается от BEC), количество светодиодов: 4-8 шт на дрон, длина обычно 1-2 метра на дрон.\n\nВажно: в Betaflight есть встроенный режим для WS2812B — не требует программирования." }, { "id": 22, "title": "Вольтметр (пищалка / LiPo Buzzer)", "subtitle": "Аксессуары", - "image": "/droneComponents/images/volt.png", + "image": "/images/parts/lipo-buzzer.png", "description": "Вольтметр (называется также пищалкой, LiPo Buzzer, checker) — это маленькое устройство, которое подключается к балансировочному разъёму АКБ. Оно измеряет напряжение на каждой банке (ячейке) аккумулятора и громко пищит, когда напряжение падает ниже заданного порога, предупреждая пилота о скором разряде.\n\nЭто «сигнализация разряда» для аккумулятора. Предотвращает глубокий разряд LiPo — одну из главных причин выхода батареи из строя и пожара при зарядке.\n\nКак работает:\n1. Вставляешь в балансировочный разъём АКБ (тот, что с несколькими тонкими проводами)\n2. Устанавливаешь порог писка (для LiPo это 3.3-3.5В на банку)\n3. Когда напряжение на любой банке падает ниже порога — пищалка орёт (сигнал слышен с дрона на 50-100 метров)\n4. Пилот слышит звук и сажает дрон, чтобы не убить батарею\n\nХарактеристики:\n• Диапазон измерения: 1-8 банок (S) (чаще всего 2-6S)\n• Настройка порога срабатывания: кнопками на корпусе (например, 3.3В, 3.4В, 3.5В)\n• Режимы: звуковой сигнал (непрерывный или прерывистый), иногда дисплей с напряжением\n• Размер: маленький (2x3 см), вес 5-10 грамм\n\nВажно: в современных полётных контроллерах есть встроенный функционал пищалки через моторы (dshot beeper) — моторы сами издают звук, и отдельная пищалка не нужна. Но внешний вольтметр надёжнее: он работает даже при отказе полётного контроллера или разряде, когда ESC уже не могут пищать.\n\nПравило: всегда начинающим рекомендуется иметь такой buzzer — он стоит 50-100 рублей и спасёт не один аккумулятор." } ] diff --git a/src/data/terms.js b/src/data/terms.js index cb50432..86baa06 100644 --- a/src/data/terms.js +++ b/src/data/terms.js @@ -2,12 +2,14 @@ const rawTerms = [ { title: 'ROS', body: 'ROS (Robot Operating System) — экосистема для программирования роботов. В приложении через ROS дрон получает команды, передает телеметрию и данные с камеры.', + image: '/images/terms/ROS.webp', hrefToDoc: 'https://www.ros.org/', hrefToCourse: 'https://stepik.org/lesson/2260739/step/1?unit=2294748', }, { title: 'OpenCV', body: 'OpenCV (Open Source Computer Vision Library) — библиотека компьютерного зрения. С её помощью дрон распознает цвета платформ и считывает QR-коды.', + image: '/images/terms/openCV.webp', hrefToDoc: 'https://opencv.org/', hrefToCourse: 'https://stepik.org/lesson/2272700/step/1?unit=2306893', }, @@ -56,6 +58,7 @@ const rawTerms = [ { title: 'ArUco-маркер', body: 'ArUco-маркер — квадратный визуальный маркер, который камера дрона может распознавать. Используется для навигации: по положению маркера дрон определяет свои координаты в пространстве.', + image: '/images/terms/ArUco-marker.webp', hrefToCourse: 'https://stepik.org/lesson/2264336/step/1?unit=2298407', hrefToDoc: 'https://klever-doc.tech/ROS1/ru/aruco.html', }, @@ -82,7 +85,7 @@ export default rawTerms.map((item, index) => ({ id: index + 1, title: item.title, subtitle: toSubtitle(item.body), - image: '', + image: item.image ?? '', description: item.body, hrefToDoc: item.hrefToDoc ?? null, hrefToCourse: item.hrefToCourse ?? null,