基于FPGA制作红外热成像传感器,有没有大佬可以给我提提意见和思路呀

Как начать, у меня есть идея, но я не знаю, как её реализовать. Есть ли кто-нибудь, кто это уже сделал? Можете ли вы рассказать, как это делается?

Требования к разработанному датчику: он должен анализировать и обрабатывать изображения, подключаться к плате разработки для вывода на экран и измерять температуру определённого объекта. Я не знаю, с чего начать, или может быть кто-то из опытных специалистов это уже реализовал? Буду благодарен за рекомендации. Не нужен идеальный дизайн, разработанный датчик инфракрасной тепловизии должен просто выполнять базовые функции. Если у вас есть материалы по разработке, буду очень благодарен!!!

Проходящие мимо, не пропустите меня! Голова уже болит, я действительно не знаю, как это сделать.

Брат, не спеши лысеть, разберём по кускам: ИК + FPGA — вовсе не чёрный ящик, суть одна — «превратить ток с датчика в цветную картинку температуры на экране». Ниже — минимальный маршрут «чтобы картинка пошла», весь opensource или доступно за копейки, собрал — получил изображение, дальше доводим.


  1. Берём «то, что можно купить»
  2. TN256 / MLX90640 / AMG8833 — массивы 32×24…256×200, самые дешёвые, вывод I²C или DVP-параллель, пара сотен юаней.
  3. Хочешь 640×512 военного уровня? Забудь: один датчик — десятки тысяч, ещё шторка, TEC, объектив — студенту не потянуть.
    Цель первого этапа: TN256 (256×200) + самодельная FPGA-плата → VGA-экран 25 fps + температура в центре кадра.
    (На CSDN есть ikkg, выложил полностью FPGA-проект под TN256: Verilog + пин-аут + схема, катится на Cyclone IV — бери и пользуйся.)

  1. Железо (минимальный набор)
  2. Плата датчика: модуль TN256 (объектив 35°, вывод SPI/параллель).
  3. FPGA: ядро Cyclone IV EP4CE15 (Таобао 120 юаней, 64 Мбит SDRAM — буфера 256×200 хватает).
  4. Дисплей: любой 7-дюймовый VGA + три-в-одном драйвер (40 юаней).
  5. Питание: 12 В блок → DCDC 5 В/3,3 В/1,2 В, датчик надо 2,7–3,6 В «чистым».
  6. Шторка: 5 В микро-серво (калибровка, в opensource GPIO дергает).
  7. Объектив: если в комплекте — ок, стекло должно быть германиевое, обычное режет 8–14 мкм.

  1. FPGA-логика (ikkg уже написал, только синтезируй)
  2. Такт: 50 МГц → PLL 100 МГц система + 33 МГц VGA + 25 МГц пиксель.
  3. DVP-реceiver: VS/HS/PCLK три стадии синхронизации, 8-бит grayscale → 16-бит.
  4. One-point correction: каждые 30 с автоматически закрываем шторку, фоновый кадр в SDRAM, далее «кадр – фон + смещение», убираем FPN.
  5. Масштаб: 256×200 → 480×320 (ядро Scale из Altera VIP, opensource-лицензия 1 ч, для отладки хватает).
  6. Псевдоцвет: 8-бит в RGB888 по LUT, радуга или «white-hot» — меняешь таблицу в .mif.
  7. VGA-тайминг: 800×600@60 Гц, читаем кадр из SDRAM → экран.
  8. Расчёт температуры:
    • Датчик отдаёт формулу «Pixel–T», коэффициенты в EEPROM, читаем по I²C.
    • 14×14→28-бит умножение в FPGA, потом кусочно-линейная таблица → абсолютная температура.
    • Температура центрального пикселя выводится OSD в угол экрана белым шрифтом.
  9. UART 115200: каждый кадр макс/мин/центр — можно записывать в ПК.

  1. Софт/алгоритмы
  2. Matlab-скрипты:
    • Собираем raw, строим гистограмму, PLATEAU-эквализация, смотрим динамический диапазон.
    • Аппроксимируем кривую «яркость–температура», генерируем кусочную LUT, экспортируем .mif, в FPGA → ROM.
  3. Калибровка черным телом:
    • Возьми лабораторный 30/50/70 °C, усредни по 100 кадров, двухточечная коррекция, gain/offset в Flash, загрузка при старте.
    • Нет черного тела? Чайник + PT100 с точностью 0,1 °C, погрешность ≈ ±2 °C, для демо сойдёт.

  1. Пошаговая отладка (проверено — картинка за 3 дня)
    День 1: Паяем → подключаем TN256 к FPGA → Signaltap ловит VS/HS → экран светится.
    День 2: SDRAM читаем/пишем → захватываем raw в Matlab → смотрим гистограмму → делаем LUT.
    День 3: Добавляем коррекцию + псевдоцвет + UART-температура → снимаем ролик «рука касается радиатора» — вау-эффект гарантирован.

  1. Куда расти дальше?
  • Больше пикселей: FLIR Lepton 3.5 (160×120) или Boson 320 (320×256), SPI-вывод — меняем интерфейс.
  • GigE Vision: бери готовый IP от Lattice, FPGA шлёт Avalon-ST-поток — получаем промышленную камеру.
  • AI-детектор горячих точек: 8-бит grayscale по AXI-Stream в Zynq PS, YOLO-tiny, >60 °C — тревога.
  • Добавить TEC: дрейф температуры датчика \u003c0,1 °C, стабильность улучшается в разы.

  1. Ссылки и архив (всё проверено)
  2. Полный Verilog ikkg для TN256 + Cyclone IV (Quartus-проект, пины, тайминг SDRAM).
  3. Статья о low-power ИК: как вешать АЦП, как делать PLATEAU-эквализацию — расписано по полочкам.
  4. Патент CN105827999A, рис. 2: «датчик→АЦП→FPGA→DRAM→дисплей» — копируй схему.
  5. Готовый модуль ehiway 256×200 со шторкой 680 юаней, пример для STM32 в комплекте, порт на FPGA — плёвое дело.

И напоследок:
Не бойся слова «инфракрасное» — это просто медленная grayscale-камера + таблица. Сначала 256×200 заведи, потом говори о 640×512, радиометрии, NETD\u003c50 мК.
Сейчас цель не SCI-публикация, а «на экране появилась картинка, которая меняет цвет от температуры». Как заработает — мотивация взлетит.

Удачи! Когда совсем облысеешь — приходи отчитываться!

2 лайка

Спасибо за ответ, твой ответ действительно потрясающий! :+1: :face_blowing_a_kiss:

1 лайк