Ахтунг! Автор немного упорот. Сохраняйте спокойствие и не думайте о белой обезьяне.
Что делать, если чудо-порошок всё ещё не отпустил и хочется подключить к чему-то очередной спонтанно купленный в китаях модуль, а под рукой нет ни распберри, ни оранжа, ни, прости бже, ардуины? Ответ прост: расслабьтесь и плывите по течению, рано или поздно руки сами всё сделают! :D
Итак, у нас был персональный компьютер, два монитора, четыре паяльника, полшприца палёного NC-559 и целое множество проводков всех длин и расцветок, а также коробка сдутых с материнок рандомных чипов и не менее трёх гигабайт DDR1 мелкими плашками. Не то чтобы это был необходимый запас для студента, но, если начал упарываться спиртоканифолью, бывает трудно остановиться. Единственное, что вызывало у меня опасение — это фигурки пони. Кхм. Кстати, о птичках.
Сегодня у меня на столе валяется вот такой пациент (банан для масштаба):
Самый лучший модуль с матрицей тепловизора, на который у меня хватило денег. Он же самый дешёвый, который вообще существует. Разрешение - 8х8 точек, с нелинейно меняющимся от центра к краям направлением обзора и чувствительностью каждого. Просто мечта фотографа. Интерфейс подключения - I²C. Почему не UART, который можно к чему угодно прицепить? Потому что.
Где можно найти I²C в современном мире, кроме специализированных одноплатников и блевотных игрушек для гиков? Правильно, нигде где угодно.
Приступим!
Вытаскиваем плашку оперативной памяти кабель из монитора. Если кто не знает, это VGA. Да, оно ещё существует.
Спойлер: HDMI/DVI для наших целей тоже сойдёт.
Итак, пошла жара! Аккуратным движением рук расхренячиваем штекер на куски и утюгом припаиваем к нему кусок телефонного кабеля :D
(кабель четырёхжильный: +5, GND, SCL, SDA. Распиновка есть на Википедии, например.)
В итоге получается что-то вроде этого:
Для усложнения задачи замотаем сверху не православной синей изолентой, а узким канцелярским скотчем из ашана.
На другой стороне телефонного вульгарно приляпываем термоусадкой неподходящего диаметра четыре разноцветных соединительных проводка. Внимание! Опасайтесь термоусадки неподходящего диаметра!
Остаток провода аккуратно свернём и завяжем резинкой от пачки баксов, шоб чего не вышло, и подключаем позор всего рода тепловизоров. В итоге имеем нечто такое:
Банан держит провод, чтоб не убёг.
Временно вытыкаем модуль и подключаем шайтан-конструкцию к компьютеру. Убеждаемся, что основные функции кабеля (а именно внесение помех в изображение и запутывание в ногах) присутствуют. Довольно фырчим.
И теперь
.
.
.
.
Хех, ну почти. Теперь ставим на компьютер линукс.
Впрочем, дочитавшие до этого момента, вероятно, настолько не в себе, что уже имели с ним дело и особых проблем при выполнении дальнейших инструкций не испытают.
Шобы понять не зря ли мы колупались:
- устанавливаем и загружаем модуль i2c-dev
- устанавливаем i2c-tools
- сканируем шины и находим соответствующую нашему разъёму. Убеждаемся в правильности, отключая монитор.
Например, у меня это шина i2c-1:
Первый запуск i2cdetect - монитор отключен, шина пуста. Второй - после втыркновения провода обратно.
Подключаем модуль и сканируем шину снова. Если в списке появилось новое устройство, идём дальше. Иначе вы, вероятно, не слишком преуспели. Убедитесь, что ваш компьютер не дымится.
Внимание! Опасайтесь ошибки выжившего! Согласно моим наблюдениям, 85% упоминаний об ошибке выжившего делаются в ситуациях, совершенно с ней не связанных. Не совершайте эту ошибку!
По хорошему, надо написать драйвер, но у меня лапки. Поэтому вооружаемся упрт-ссылкой вида https://learn.adafruit.com/adafruit-amg8833-8x8-thermal-came... и бездумно выполняем описанные там действия, а потом переустанавливаем систему и выполняем их здумно.
Пара хаков, упрощающих бытие:
Неплохо бы дать права на работу с этим вашим i2c простым юзерам. Вряд ли страшный вирус захочет взломать ваш монитор, лул.
Нужно пропатчить файл I2C.py в /usr/local/lib/python2.7/dist-packages/Adafruit_GPIO-1.0.3-py2.7.egg, чтобы возвращал номер нужной шины, коз он заточен под богомерзкую распберри. Ну или можно не патчить, а как-то параметр передать, я вообще не вникал, лол.
В файлике thermal_cam.py эти аутисты захардкодили значения температуры, соответственно, если у вас в комнате слишком жарко/холодно, картинки вы не увидите. Надо отредактировать.
Добро пожаловать на дно, господа.
Розовых поней вам и кошачьих жоп. И помните: белая обезьяна никогда не спит.
Отдельное спасибо фырным флудерам за помощь в поиске яйца.
Материал опубликован под лицензией WTFPL v2.