четверг, 30 июля 2020 г.

Кнопки для переключения по кадрам вперед и назад в VLC и MPC

Ссылки:
1) vlc не поддерживает прокрутку назад, вперед на кадр - кнопка "e" 
2) mpc - назад (ctrl + "стрелка влево"), вперед (ctrl + "стрелка вправо")

Download VS2017 Community Edition

Чтобы скачать vs2017 community нужно перейти сюда и авторизоваться (завести аккаунт microsoft или skype, если ещё нет). Затем надо перейти по ссылке и вбить в строку поиска "vs 2017 community". Нажать на кнопку и скачать студию. После установки ide надо в интерфейсе, который появился после запуска скачать фреймворк, microsoft sdk для разработки на c++ (~6gb):

1. Изменение цветовой схемы подсветки кода в VS 2017.
"Средства" - "Параметры" - "Общие" - "Цветовая схема" (темная|другие)

2. Автоматическое закрытие консоли после отладки.
"Отладка" - "Параметры..." - "Отладка" - "Общие" - "Автоматически закрывать консоль при остановке отладки"


Errors.

1. Ошибка C1010: непредвиденный конец файла во время поиска предкомпилированного заголовка. Возможно, вы забыли добавить директиву "#include "pch.h"" в источник https://docs.microsoft.com/ru-ru/cpp/error-messages/compiler-errors-1/fatal-error-c1010?view=msvc-170. Эта ошибка оставалась в проекте на VS2017 для архитектуры x64, даже когда предкомпиляция была отключена в проекте. Ошибка исчезла, когда я перешел на сборку под x86.

понедельник, 27 июля 2020 г.

McASP

2) TMS320C6000 DSP Multichannel Audio Serial Port (McASP) Reference Guide https://www.ti.com/lit/ug/spru041j/spru041j.pdf

McBSP (spi)

Кольцевые и пинг-понг буферы

Пинг-понг:
1) (ti c6000) Implementing a Double Buffered System on DSP C6000

Кольцевые:
1) Кольцевой буфер
2) https://en.wikipedia.org/wiki/Circular_buffer
3) http://www.scicompiler.cloud/userguide/CircularBuffer.html
4) https://embeddedartistry.com/blog/2017/05/17/creating-a-circular-buffer-in-c-and-c/
5) https://www.youtube.com/watch?v=uvD9_Wdtjtw
6) https://medium.com/@abhinavagarwal1996/a-fast-circular-ring-buffer-4d102ef4d4a3
7) https://www.embedded.com/ring-buffer-basics/
8) ring buffer for arduino https://github.com/Locoduino/RingBuffer

Полифазные буферы:
1) http://ntlab.com/IP/rus/Hard/Analog_Mixed/MIXER/180SMIC_MIX_02R.pdf
2) http://ntlab.com/IP/rus/Hard/Analog_Mixed/MIXER/350AMS_MIX_07R.pdf
3) Как реализовать анализирующий полифазный косинусно модулированный банк фильтров по синтезирующему? https://qna.habr.com/q/678812
4) ДВУХКАНАЛЬНЫЙ БАНК ФИЛЬТРОВ НА ОСНОВЕ ЛЕСТНИЧНЫХ СТРУКТУР И АРИФМЕТИКИ С ФИКСИРОВАННОЙ ЗАПЯТОЙ ПЕРЕМЕННОГО ФОРМАТА
http://www.dspa.ru/articles/year2010/jour10_2/art10_2_3.pdf
5) Устройство цифровой обработки полифазных дополнительных фазокодоманипулированных сигналов https://rusneb.ru/catalog/000224_000128_0002647632_20180316_C1_RU/
6) http://www.rsreu.ru/component/docman/doc_download/2047-tor-slajdy-po-distsipline-tsifrovye-tsepi-i-signaly

Конвейеризация:

среда, 22 июля 2020 г.

ИК-лампа для пайки BGA

Ссылки:
1) ик-станция https://youtu.be/6EhJZr1SZ04
2) ик-станция https://youtu.be/kikttR3pFj0
3) ик-паяльник https://youtu.be/juhSAzw_IO4
4) паяльник для smd из утюга https://youtu.be/OUIK6_Es7i4

Художественные тексты, написанные нейросетью GPT-3

Русский gpt-3:
1) Сбер обучил GPT-3 на 600 гигабайтах русских текстов https://nplus1.ru/news/2020/10/22/russian-gpt-3
2) Сбер выложил русскоязычную модель GPT-3 Large с 760 миллионами параметров в открытый доступ https://habr.com/ru/post/512494/

GPT-3:
1) Тексты в стиле Нила Геймана и Терри Пратчета
https://www.reddit.com/r/slatestarcodex/comments/hmu5lm/fiction_by_neil_gaiman_and_terry_pratchett_by_gpt3/
2) GPT-3 Creative Fiction https://www.gwern.net/GPT-3
3) Необычное собеседование: GPT-3 в роли кандидата https://habr.com/ru/post/512494/

ti omapl137 and omapl138

ti omapl137 page:
2) trm

ti omapl138 page:
2) trm
3) linux 4.19/ti-rtos sdk page
4) evm (200$)

ti dm6437

Внешняя отделка

пятница, 17 июля 2020 г.

stm32 cube ide

STM32 cube ide download page (windows, linux).

STM32 Cube MX download page (windows, linux).

Atollic TRUEStudio download page (windows, linux).

Быстрый старт по stm32 cube mx и Atollic TrueSTUDIO:
1) STM32 - STM32CubeMX и Atollic TrueStudio https://istarik.ru/blog/stm32/106.html
2) (?) Начинаем работать в STM32CubeMX. Часть 1 https://habr.com/ru/post/310742/
3) (?) START: Создание проекта с STM32 Cube MX и FreeRTOS для Atollic TrueSTUDIO http://www.milbestore.ru/article/sozdanie-proekta-s-stm32-cube-mx-i-freertos-dlya-atollic-truestudio
4) (?) STM32 fast start. Часть 1 ПО, материалы, Cube MX https://habr.com/ru/post/442162/
5) STM32 fast start. Часть 2 Hello World на HAL, отладка в Atollic TrueSTUDIO https://habr.com/ru/post/481436/
6) Переход с TrueSTUDIO на STM32CubeIDE https://istarik.ru/blog/stm32/146.html

stm32f103 arduino ide:
2) Arduino STM32 - внешние прерывания https://istarik.ru/blog/arduino/104.html
3) Arduino STM32 - таймеры https://istarik.ru/blog/arduino/105.html

Быстрый старт по stm32 cube ide:
1) (!) STM32 + CMSIS + STM32CubeIDE https://habr.com/ru/post/481478/
2) STM32CubeIDE - IDE and CubeMX together https://www.youtube.com/watch?v=LKiHViMFTKM

Настройка клоков (делителей частоты) периферийных модулей в stm32 cube mx:
1) Tutorial 3: STM32L4 Clock Configuration https://www.youtube.com/watch?v=o6ZWD0PAoJk
2) STM32CubeMX basics: 03.1 STM32CubeMX clock configuration tab - Basics 

HAL:
1) (!) HAL stm32
2) (!) Библиотека HAL. STM32 CUBE MX. Светодиоды и кнопка https://narodstream.ru/stm-urok-4-biblioteka-hal-stm32-cube-mx-svetodiody-i-knopka/
3) Слой аппаратной абстракции HAL https://themagicsmoke.ru/courses/stm32/hal.html
5) Arduino <-> STM32 HAL, или туда и обратно https://habr.com/ru/post/357920/

6) Начинаем изучать STM32 или Управляем светом по-умному https://habr.com/ru/post/406839/

среда, 15 июля 2020 г.

ti ccs

1. Чтобы вызвать диалог Find in Files в ccs8 надо нажать "ctrl"+H. Выбираем tabpad "remote search", вводим в поле "Search string" искомую строку, выбираем папку в комбобоксе "Folder", ставим чекбокс "Search subfolders" для просмотра подпапок.

Ссылки:
1) https://e2e.ti.com/support/tools/ccs/f/81/p/154598/560640#560640

2. Включить хэдеры в сборку проекта можно во вкладке проекта Properties-ARM Compiler-Include Options:


3. Добавить путь к собранным либам vision sdk и сами либы можно в пункте Properties-Build-ARM Linker-File Search Path. Добавить путь, куда вы собираетесь скинуть собранные либы (у меня C:\ti\pdk_libs), можно в пункте "Add <dir> to library search path". А добавить сами либы в пункте "Include library file".



4. Изменить путь к библиотеке vision sdk (переменная внутри CCS $(SDK_VISION_PACKAGES)) можно во вкладке проекта Properties-Resource-Linked resources:


5. CCS downloads.
5.1. CCS 5.2.1 (windows, linux). CCS5 linux setup.

5.2. CCS 8.3.1 (windows, linux). CCS8 ubuntu setup.
5.3. CCS 11.1.0 (download link).

5.2.1. On Fedora 31 x86_64 you need to install this:

sudo dnf install glibc.i686 ncurses-compat-libs.i686 libusb.i686

Скачиваем установщик, распаковываем, переходим в распакованную папку, запускаем:

sudo ./ccs_setup_linux64_8.3.1.00004.bin

Во время запуска установки ccs8 появляется ошибка:

Failed to locate system libraries required for CCS operation:

 libncurses.so.5
 libnsl.so.1
 libusb-0.1.so.4

Хотя в реальности у меня есть символические ссылки:

[adil@localhost CCS8.3.1.00004_linux-x64]$ ls /usr/lib/ | grep lib*
eclipse
ld-linux.so.2
libanl-2.30.so
libanl.so.1
libBrokenLocale-2.30.so
libBrokenLocale.so.1
libc-2.30.so
libc.so.6
libdl-2.30.so
libdl.so.2
libform.so.5
libform.so.5.9
libformw.so.5
libformw.so.5.9
libgcc_s-9-20190827.so.1
libgcc_s.so.1
libgcrypt.so.20
libgcrypt.so.20.2.5
libgpg-error.so.0
libgpg-error.so.0.27.0
liblz4.so.1
liblz4.so.1.9.1
liblzma.so.5
liblzma.so.5.2.4
libm-2.30.so
libmemusage.so
libmenu.so.5
libmenu.so.5.9
libmenuw.so.5
libmenuw.so.5.9
libm.so.6
libncurses++.so.5
libncurses.so.5
libncurses++.so.5.9
libncurses.so.5.9
libncurses++w.so.5
libncursesw.so.5
libncurses++w.so.5.9
libncursesw.so.5.9
libnss_compat-2.30.so
libnss_compat.so.2
libnss_dns-2.30.so
libnss_dns.so.2
libnss_files-2.30.so
libnss_files.so.2
libnss_myhostname.so.2
libnss_resolve.so.2
libnss_systemd.so.2
libpanel.so.5
libpanel.so.5.9
libpanelw.so.5
libpanelw.so.5.9
libpcprofile.so
libpthread-2.30.so
libpthread.so.0
libresolv-2.30.so
libresolv.so.2
librt-2.30.so
librt.so.1
libSegFault.so
libstdc++.so.6
libstdc++.so.6.0.27
libsystemd.so.0
libsystemd.so.0.27.0
libthread_db-1.0.so
libthread_db.so.1
libtic.so.5
libtic.so.5.9
libtinfo.so.5
libtinfo.so.5.9
libudev.so.1
libudev.so.1.6.15
libusb-0.1.so.4
libusb-0.1.so.4.4.4
libusb-1.0.so.0
libusb-1.0.so.0.1.0
libutil-2.30.so
libutil.so.1

Нажимаем кнопку "continue", соглашаемся на установку в папку "/opt/ti". 
Я оставляю поддержку следующих микропроцессорных технологий:



И всех jtag-отладчиков:


5.2.2. Устанавливаем CCS8.3.1 на win10 x86_64. Установщику нужна папка для временных файлов, он просит создать папку на диске c (c://temp) и снять для неё права только на чтение, разрешить запись. У меня на одной системе снялся атрибут "только чтение" у папки, а на двух других системах остался. После этого запускаем установщик, выбираем путь для установки (у меня по умолчанию c://ti). Выбираем опции как при установке в федоре.

При установке появляется ошибка на стадии "Installing Eclipse...". Я думал, что ошибка вызвана неснятым атрибутом "только для чтения". Ошибка была вызвана слишком длинным директорией, из которой запускается установщик, скорее всего, связано с разархивированием. Пример директории с установщиком, которая вызывала ошибку: "E:\Downloads\avr, stm32, pic, 8051, bbb, raspberrypi, orangepi\dsp\CCS8.3.1.00004_win32". Пример пути, из которого установка прошла успешно: "E:\Downloads\CCS8.3.1.00004_win32".

Ссылки:


5.3. Code Composer Studio 11 (11.2.0.00007 (08 Apr 2022)) (windows, linux).

Установка зависимостей в Ubuntu описана здесь https://software-dl.ti.com/ccs/esd/documents/ccsv11_linux_host_support.html

При установке с именем пользователя в win10 с русскими буквами ccs 11 отказывается ставиться и говорит: your temp directory path contains unicode characters which can corrupt the installation. please refer to the trouble-shooting guide for a workaround

6. Настройка клоков периферии.

Страница с описанием проги ClockTreeTool (аналог cubemx для stm32) 

Oracle Java7 page here.
JRE8 for win10 here.

ClockTreeTool (jar):
1) Описание программы (в нее и из нее можно скачать дамп содержимого регистров ccs или специальной проги omapconf для линукса, поддерживается am335x, на котором сделан beagle bone black ) https://www.ti.com/lit/ug/spruib7i/spruib7i.pdf
2) How to use the Sitara Clock Tree Tool in 5 minutes or less! 

7. xds100v2 jtag bugs.

1) CCS/TMS320F28377D: XDS100 V2 not installed
https://e2e.ti.com/support/tools/ccs/f/81/t/587743?CCS-TMS320F28377D-XDS100-V2-not-installed

Вылечились удалением виндовых драйверов и установкой под локальным администратором (win7 x86_64).


3) Debugger Initialization Error
Fix:
8.5.9. How do I resolve this error when launching a debug session “Could not fetch next record for SQL statement” and running fsclean does not help. 
Try deleting the target cache files as described in the Troubleshooting chapter

9.7.5. Delete Target Cache Files

CCS has a utility called fsclean that removes the most important cache files. This utility is typically installed under [CCS INSTALL FOLDER]/ccsv[x]/ccs_base/common/bin.

The cache files removed by fsclean are saved in a user and CCS installation specific location:
Windows: the location is: C:\Users\[username]\AppData\Local\Texas Instruments\CCS\[CCSV[x] INSTALL FOLDER]\0\0.
Linux/OSX: there is a hidden directory named .ti/[CCSV[x]INSTALL FOLDER]/0/0 and located in the user area. The location is ~/.ti.

Trace cache files are usually saved in similar locations:
Windows: the location is: C:\Users\[username]\.TI-trace
Linux/OSX: there is a hidden directory named .TI-trace and located in the user area. The location is ~/.TI-trace.

cmd (window shell):
cd C:\Users\YOV\AppData\Local\Texas Instruments\CCS\ccs831\0\0>
del .lock
del xpti.dat

cmd (window shell):
cd C:\Users\YOV\.TI-trace
del data
del settings


- пересоздал файл ccxml с конфигурацией
- удалил кэш следующим образом:

cmd (window shell):
cd C:\ti_830\ccsv8\ccs_base\common\bin
C:\ti_830\ccsv8\ccs_base\common\bin>fsclean.bat
Removing temporary files...
boost::filesystem::remove: ╧ЁюЎхёё эх ьюцхЄ яюыєўшЄ№ фюёЄєя ъ Їрщыє, Єръ ъръ ¤Єю
Є Їрщы чрэ Є фЁєушь яЁюЎхёёюь: "C:\Users\YOV\AppData\Local\Texas Instruments\CCS
\ti_830\0\0\targetdb.dat"


8. Debug server scripting (DSS):

9. Как отобразить пиксельные данные из памяти (например, DDR) в вьюхе (Window->Show View->Others->Analysis views->Image)

Ссылки:

10. Как скопировать байтовый массив из CCS, чтобы посмотреть картинку:


11. printf not printing in Console Window in Code Composer Studio v8:
6) MSP430 Optimizing C++ Compiler https://www.ti.com/lit/ug/slau132y/slau132y.pdf


Solution.
- Remove the project from the workspace with right click > delete
- Import it again with project>import existing CC5/CCE Eclipse project

PROJECT_LOC is now at the right value.

I think when I first moved the workspace, and opened it, CCS didn't check if the path was the same, and kept the old value.

13. memery mapped register in expressin window by address:
*(int*)0x4a009120 (CM_DSS_DSS_CLKCTRL)

вторник, 14 июля 2020 г.

rs232-usb based on ch340 win driver

Драйвер для чипа usb-uart ch340 для винды здесь. На этой странице драйверы для мака и линукс.

В винде через диспетчер устройств опознается как "usb2.0serial" и имеет ID оборудования USB\VID_1A86&PID_7523&REV_0254.

Чип usb-uart ch340 используется в usb-uart-, usb-rs232-переходниках, в arduino-nano, usb-asp-программаторах для avr-контроллеров.

Ссылки:
1) https://micro-pi.ru/ch340g-%D0%BF%D1%80%D0%B5%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C-usb-uart-rs232/

rs232 loopback

Для простейшей проверки rs232-порта надо соединить rx и tx ноги:

Спаивать лучше на ответном материнском разъеме:


Под виндой в программе bray's terminal проверка выглядит следующим образом:


Ссылки:
1) http://v-comp.kiev.ua/diagnostika/loopback_rs232.html
2) http://www.ni.com/tutorial/3450/ru/

Программа HTerm для общения по rs232:

HyperTerminal.

1. При работе под виндой со стандартной прогой "HyperTerminal" для того, чтобы она показывала каждую новую строку на новой строчке надо поставить следующий настройки: "File"-"Properties"-"Settings"-"ASCII setup"-"ASCII receiving"-"Append line feeds to incoming line ends".

2. В "HyperTerminal" для того, чтобы она показывала отосланные отсылаемые команды надо поставить следующий настройки: "File"-"Properties"-"Settings"-"ASCII setup"-"ASCII sending"-"Echo typed characters locally". Чтобы посылались 0xD и 0xA после нажатия "enter", надо поставить "Send line ends with line feeds". 

понедельник, 13 июля 2020 г.

BBB run TI-RTOS (SYS/BIOS) and JTAG

14-pin and 20-pin jtag pinout

JTAG, CCS on BBB:
1) https://www.twosixlabs.com/running-a-baremetal-beaglebone-black-part-1/
2) https://www.twosixlabs.com/running-a-baremetal-beaglebone-black-part-2/
3) http://cholla.mmto.org/bbb/jtag.html
4) https://elinux.org/BeagleBoardJTAG
5) https://blog.parr.us/2014/11/14/beaglebone-black-debugging-via-ti-usb100v2-jtag-emulator/
6) https://beagleboard.org/static/Docs/ccs-jtag-simple.htm
7) https://www.vittali.ch/1-bbb-jtag/
8) #BBB - Getting Started with StarterWare, CCSv6, JTAG on BeagleBone Black https://www.youtube.com/watch?v=iOQisBaDANA
9) #BBB - GPIO Control on #Beaglebone Black in #CCSv6
https://www.youtube.com/watch?v=QmV_WDJsnZw

jtag xdc100 v1/2/3 emulator (https://processors.wiki.ti.com/index.php/XDS100):
3) (?) Diymore XILINX USB JTAG https://aliexpress.ru/item/32672868436.html (1800р.)

ti jtag bugs:
1) http://software-dl.ti.com/ccs/esd/documents/ccsv7_debugging_jtag_connectivity_issues.html

TI-RTOS (SYS/BIOS):
1) TI-RTOS - Lab 1 translated to Beagle https://www.youtube.com/watch?v=-rMY0iIMiz8
2) http://huesmanbros.com/marc/2017/09/22/getting-ti-rtos-running-on-the-beaglebone-black/
3) https://processors.wiki.ti.com/index.php/AM335X_StarterWare_Booting_And_Flashing
4) https://e2e.ti.com/support/processors/f/791/t/439536?Using-BeagleBone-Black-with-SYS-BIOS-for-Real-Time-processing
5) https://ieeexplore.ieee.org/document/9017009
6) https://e2e.ti.com/support/legacy_forums/embedded/tirtos/f/355/t/312951?SYSBIOS-on-Beaglebone-Black

20-pin jtag connector:

20-pin to 14-pin jtag adapter:

chip-dip, aliexpress:
1) PBD1.27-20S, Разъем 2х10 гнездо на плату, поверхностный монтаж, шаг 1,27мм
2) DS1031-08-2*10 P8BS42 (PLLD1.27-20S*), Вилка штыревая 1,27мм 2х10 поверхностный монтаж https://www.electronshik.ru/item/BM/PBD1.27-20S (73 р.)
3) (на всякий случай, более дешевая замена гнезду) 
PBS1.27-10A/BS (DS1065-02-1*10), Разъем 1х10(м), поверхностный монтаж, шаг 1,27мм 
4) (!!!)(jtag с кабелем) Эмулятор DSP XDS100V2 Enterprise Edition, Прямая поставка с завода, поддерживает TI DSP ARM https://aliexpress.ru/item/32939545711.html (1370р.)
5) (гребенка для jtag) 2,54 мм 1*40P 1X40P 90 градусов прямоугольный Однорядный штырьковый разъем, положительный/обратный/верхний изгиб печатной платы, разъем, штыревой разъем (можно было взять просто прямые, всё равно надо паяться на макетке)

BeagleBoneAI

Offcial link https://beagleboard.org/ai.

Microcontroller https://www.ti.com/product/AM5729/.

AM572x datasheet and trm.

TI EDMA:
1) https://training.ti.com/using-c6000-edma3-overview-12-15
2) TMS320C6000 DSP Enhanced Direct Memory Access (EDMA) Controller Reference Guide (link)
3) TMS320C642x DSP Enhanced Direct Memory Access (EDMA3) Controller User's Guide (link)
4) https://www.kernel.org/doc/Documentation/devicetree/bindings/dma/ti-edma.txt
5) EDMA3 FAQ (link)
6) https://processors.wiki.ti.com/index.php/Programming_the_EDMA3_using_the_Low-Level_Driver_(LLD)
7) How to Use the EDMA3 Driver on a TMS320DM643x Device (link)
8) EDMA3 Low Level Driver (link)

Books:
1) Naim Dahnoun - Multicore DSP: From Algorithms to Real-time Implementation on the TMS320C66x SoC

Boards:
1) BeagleBoneAI aliexpress (9500р. + 300р. доставка) (chipdip 13000р.)

пятница, 10 июля 2020 г.

Измерение температуры через термистор, термопару и датчик kty81 на ардуино

Датчики и измерения:
1) Датчики и микроконтроллеры. Часть 1. Матчасть https://habr.com/ru/post/258967/
2) Датчики и микроконтроллеры. Часть 2. Климат-контроль https://habr.com/ru/post/259203/

1. Терморезистор NTC 10K:

Скетч:

#define B 3950 // B-коэффициент
#define SERIAL_R 10000 // сопротивление последовательного резистора, 10 кОм
#define THERMISTOR_R 10000 // номинальное сопротивления термистора, 10 кОм
#define NOMINAL_T 25 // номинальная температура (при которой TR = 100 кОм)

const byte tempPin = A0;

void setup() {
Serial.begin( 9600 );
pinMode( tempPin, INPUT );
}

void loop() {
int t = analogRead( tempPin );
float tr = 1023.0 / t - 1;
tr = SERIAL_R / tr;
Serial.print("R=");
Serial.print(tr);
Serial.print(", t=");

float steinhart;
steinhart = tr / THERMISTOR_R; // (R/Ro)
steinhart = log(steinhart); // ln(R/Ro)
steinhart /= B; // 1/B * ln(R/Ro)
steinhart += 1.0 / (NOMINAL_T + 273.15); // + (1/To)
steinhart = 1.0 / steinhart; // Invert
steinhart -= 273.15;
Serial.println(steinhart);

delay(100);
}

Ссылки:
1) http://arduino-diy.com/arduino-thermistor
2) https://robotclass.ru/tutorials/arduino-thermistor-100k/

2. Термопара:
1) Урок 27. Термопары в системе Ардуино. Проект Ардуино термометра-регистратора для высоких температур. http://mypractic.ru/urok-27-termopary-v-sisteme-arduino-proekt-arduino-termometra-registratora-dlya-vysokix-temperatur.html
2) http://arduino-diy.com/arduino-termopara

3. Датчик kty81:
1) Урок 25. Кремниевые термодатчики серии KTY81 в системе Ардино. Проект термометра-регистратора. http://mypractic.ru/urok-25-kremnievye-termodatchiki-serii-kty81-v-sisteme-ardino-proekt-termometra-registratora.html
2) https://playground.arduino.cc/Main/Kty81-110/
3) http://mypractic.ru/kremnievye-datchiki-temperatury-serii-kty81-xarakteristiki-primenenie.html

Тепловизионная болометрическая матрица + arduino, raspberrypi

Вики:

Инфракрасный тепловизионный спектр (8-14 микрометров):

Работающие модели:
1) Тепловизор Seek Thermal Compact https://habr.com/ru/post/457808/
2) Тепловизор для смартфона FLIR ONE https://habr.com/ru/company/lamptest/blog/402071/
3) Тепловизор на FLIR Lepton своими руками https://habr.com/ru/company/mailru/blog/257189/
4) Прибор ночного видения на базе тепловизионного модуля Flir Lepton 3 
5) Как подружить тепловизор FLIR One второго поколения с компьютером https://habr.com/ru/post/373449/
6) The FLIR One: что умеет тепловизор для телефона? https://habr.com/ru/company/medgadgets/blog/239023/

arduino + MLX90640, MLX90620, AMG8833:
1) Тепловизор на arduino, esp8266 и датчике AMG8833 https://www.youtube.com/watch?v=Ayte48SuKaA (текст)
2) Самодельный тепловизор на MLX90640 https://www.youtube.com/watch?v=ShXswHycXbs
3) Самодельный тепловизор. Прошивка V1.1 https://www.youtube.com/watch?v=7j6DSND6Ass
4) Тепловизор на базе Arduino менее чем за 100$ https://habr.com/ru/post/172947/ (по элементам, еще)
5) https://spectrum.ieee.org/geek-life/hands-on/ir-eye
6) Тепловизор на базе MLX90620 http://www.poprobot.ru/home/mlx90620_Arduino

RaspberryPi + MLX90640:
1) DIY тепловизор на Raspberry PI https://habr.com/ru/post/435946/
2) ТЕПЛОВИЗОР НА ПЛАТФОРМЕ ARDUINO И RASPBERRY PI http://science-start.ru/ru/article/view?id=1424

Продуктовые модели тепловизоров (VLM640, VS320 и др.):
1) Видеть невидимое. Поляризация в дальнем ИК (8-12мкм) https://habr.com/ru/post/422535/
2) Видеть невидимое. Ближний инфракрасный диапазон (0.9-1.7мкм) https://habr.com/ru/post/428778/
3) 

ULIS:
1) Бабкин П.С., Павлов Ю.Н., Перов А.Н. Применение двухточечного метода калибровки для тепловизионных матриц фирмы UlisТекст научной статьи по специальности «Компьютерные и информационные науки» https://cyberleninka.ru/article/n/primenenie-dvuhtochechnogo-metoda-kalibrovki-dlya-teplovizionnyh-matrits-firmy-ulis

Телеметрия, радиометрия:
4) Н.В. Пилипенко ПРИБОРЫ И МЕТОДЫ НЕСТАЦИОНАРНОЙ ТЕПЛОМЕТРИИ https://books.ifmo.ru/file/pdf/2052.pdf
5) ТЕПЛОМЕТРИЯ: теория, метрология, практика (монография в трех книгах) Под редакцией д.т.н. Т.Г. Грищенко http://ittf.kiev.ua/wp-content/uploads/2017/06/kniga-1-teplometrija.pdf

Германиевые стекла:

Оптическая система:

stm32f429 dma usart

dma stm32:
7) STM32. Уроки по программированию STM32F4. Урок № 5. Работа с АЦП+DMA + фильтр скользящее среднее. https://druid.su/index.php?view=rubrik&name=stm32_program&id=39
narodstream:

dma, usart:

обработка статического изображения и видео (dsp) с cmos-матрицы (csi-2)

raspberry pi csi-2 cam pinout:





1.3. raspberry pi 3b camera v2 and camera v2 NoIR (csi-2):
1.5. Media subsystem media internal API:

1.5.1 Video4Linux devices:

1.5.2.1  MIPI CSI-2:

1.5.2.2. MIPI CSI-2 in rspberrypi:
2) Raw sensor access / CSI-2 receiver peripheral https://www.raspberrypi.org/forums/viewtopic.php?f=43&t=109137

omnivision ov5647:
4) Камера для Raspberry Pi «Модель D» 
6) (!)Настройка и примеры работы MIPI CSI-камер для Raspberry Pi 

arducam with ov5647 (external trigger):
2) Capturing with Arducam MIPI monochrome global shutter cameras 
3) ArduCam OV5647 Camera Board w/ M12 Mount 
4) ArduCam OV5647 changing FREX exposure time in global reset mode https://www.raspberrypi.org/forums/viewtopic.php?t=299773

Работа с камерой ov5647 (самый дешёвый вариант модуля камеры из ali) из raspberry pi 3b, активация камеры через config.txt:
2) (!) Enable camera without Raspi-config 
4) Работа с камерой Raspberry Pi (часть 1) - Time-lapse https://www.newkamikaze.com/articles/73
5) Подключение камеры к Raspberry Pi Zero W https://4te.me/post/camera-raspberry-pi/
6) Описание утилит для работы с камерой 



Читать полностью: https://www.newkamikaze.com/articles/7
3

Включение камеры через консоль:
sudo raspi-config nonint do_camera 0

Убедиться, что всё корректно прошло, можно посмотрев файл /boot/config.txt после перезагрузки:
cat /boot/config.txt

Вывод (start_x=1 и gpu_mem=128 говорят о корректной установке):
[all]
dtoverlay=disable-bt
enable_uart=1
start_x=1
gpu_mem=128

По умолчанию, картинки хранятся в домашней папке (/home/pi), сохраняем изображение с подключенной камеры при помощи уже установленной утилиты raspistill:
raspistill -o image.jpg -t 10000



vision components, arducam mipi cmos camera modules:


sony imx 219:
1) IMX219 datasheet
2) Reverse Engineering the Raspberry Pi Camera V2: A study of Pixel Non-Uniformity using a Scanning Electron Microscope https://arxiv.org/pdf/1901.03807.pdf

sony imx 274:

sony imx 296:

omnivision ov5640:

omnivision ov7251:
2) OV SCCB Specification 


ov9281 forums, manuals:
4) RAW8/GREY image from MIPI CSI sensor has displacements to right 
ov9281 linux drivers, ROS (robot operation system), antmicro:
3) (!)What is the CRA (chief ray angle)? https://www.optowiki.info/faq/what-is-the-cra-chief-ray-angle/


connect old phone csi cam to raspberry pi, stm32, pic32

1. phone csi camera

1.1. Wiki:
6) (прочитать) Фильтр Байера
1.2. defect pixel detection, image histogram:
3) Intensity Histogram CMOS Image Sensor for Adaptive Optics https://isn.ucsd.edu/pub/papers//iscas10_hist.pdf


1.6. stm32f4 or other with dcmi, i2c + csi2 camera:
1) Digital Camera with STM32 and OV7670 https://www.youtube.com/watch?v=MqtJbraAlOU
2) (!)STM32F4Discovery – подключаем камеру по интерфейсу DCMI https://habr.com/ru/post/186980/
5) Ввод данных в STM32F4xx с параллельного АЦП через DCMI https://habr.com/ru/post/482506/
6) 

1.7. arduino, stm32 with usb + csi camera + uvc:
1) Как дешево забрать картинку MIPI/CSI камеры по USB? http://forum.easyelectronics.ru/viewtopic.php?f=14&t=29823
4) (uvc) How to make Real Spy Cctv Camera From Old Mobile Phone Camera https://www.youtube.com/watch?v=THFKtFVdrvo

7) (interrupts) Interfacing a cheap phone camera module to a PIC32 microcontroller https://www.youtube.com/watch?v=rQYByorpoFk

1.8. arduino, stm32 + csi camera + csi-2 in fpga:
1) Opensource IMX219 FPGA MIPI CSI-2 Camera USB3.0 2Gbps UVC Video Test 15 To 1000FPS, Upto ~ 4K https://www.youtube.com/watch?v=uRaHXo-Zu90
2) 1000 FPS MIPI CSI-2 Camera Sensor FPGA Receiver https://hackaday.io/project/170250-1000-fps-mipi-csi-2-camera-sensor-fpga-receiver

1.9. Old mobile phone, mouse camera use cases.

1.9.1. ip webcam, action camera, fpv, night vision cam from mobile phone cam:
1) https://blog.kvv213.com/2015/10/sozdaem-ip-kameru-videonablyudeniya-iz-starogo-smartfona/
2) How To Turn Your Old Phone Into An Action Camera (DIY) https://www.youtube.com/watch?v=-lsaZ1CEHOE
4) How to make a night vision camera using your old phone https://www.youtube.com/watch?v=2YEvkOVCaNI
5) How to make Night Vision Camera Using a Smatphone Version 2 -DIY Tutorial https://www.youtube.com/watch?v=PtN4ddIIZbA

1.9.2. fpv cam:
1) Micro FPV Camera & Transmitter (FX798T, 5.8GHz, 25mW, 40ch) https://www.youtube.com/watch?v=0SnQDcb4a-I
1.9.3. разборка:
1) Tear Down, Camera Module, #3 808 Car Keys Micro Camera https://www.youtube.com/watch?v=5j1DOYNXEqg
3) What's Inside Smartphone Camera & How it works?? https://www.youtube.com/watch?v=fkG3D0WXRAw
4) Close look at mobile phone camera optics https://www.youtube.com/watch?v=KH0MZctnJlo

1.9.4. microscope from phone cam:
1) DIY microscope - mobile phone and DVD RW drive hack https://www.youtube.com/watch?v=auQwOtrUN5A

1.9.5. optical mouse turn into cam:
1) Hack an optical mouse into a camera with Arduino and Processing https://www.youtube.com/watch?v=bci7Gi05BNc

1.9.6. mipi csi-2:
2) OpenMV Review - Machine Vision Camera Module https://www.youtube.com/watch?v=vsnZzPEQeeQ
3) OpenMV Cam H7 Kickstarter Video https://www.youtube.com/watch?v=7Q8A6LeP41g
4) Sensor module vs. camera module https://www.youtube.com/watch?v=Oi4S7SwumGs
6) Close look at mobile phone camera optics https://www.youtube.com/watch?v=KH0MZctnJlo
7) Smartphone Camera Teardown and Possible Modification to Night Vision https://www.youtube.com/watch?v=GMd77on_k0Q

2. progressive / interlaced frames:
3) How To: Interlaced, Progressive and Frame Rates https://www.youtube.com/watch?v=WxH23dxDIsQ&ab_channel=SonyEurope
4) Interlaced and Progressive Frame Rates Explained! : FRIDAY 101 https://www.youtube.com/watch?v=xKMWjRlIvrY&ab_channel=IndyMogul