Show HN: я создал инсталляцию искусственного интеллекта дома, создавая новые произведения на лету

showhnясоздалинсталляциюискусственногоинтеллектадомасоздаваяновыепроизведенияналету

main_gif

В этом руководстве описаны все этапы создания вашей собственной художественной инсталляции AI, с использованием кнопки для изменения иллюстраций AI, отображаемых на экран. В этом руководстве используются следующие основные компоненты:

  • Nvidia Jetson Xavier NX (одноплатный компьютер с ускорением на GPU)
  • Экран с поддержкой HDMI
  • Кнопка для изменения обложки
  • Пассивный инфракрасный датчик для снижения риска выгорания экрана

Он включает в себя, как настроить компьютер для запуска художественного киоска (с кодом), как собрать и собрать блок управления, как интегрировать кнопку и датчик PIR и т. Д.

Если у вас есть какие-либо вопросы, не стесняйтесь обращаться ко мне в LinkedIn: https: //www.linkedin. com / in / max-fischer – final_1/

или

contact

final_gif_1

  1. Подготовьте компьютер (Nvidia Jetson Xavier NX Dev Kit)
    1. Установить операционную систему
    2. Требования к установке
    3. Установите Jetson GPIO
    4. Установите xscreensaver (необязательно)
    5. Установите Jetson stats (необязательно)
  2. Установите арт-киоск
  3. Добавьте свой генеративный код
    1. kiosk / arteventhandler.py
    2. main.py
  4. Постройте блок управления
    1. Детали ручной резки
    2. Вырезать деревянные отверстия для печенья
    3. Склейте детали вместе
    4. Убрать видимые зазоры
    5. Добавьте петли
    6. Добавьте магнитный замок
    7. Фрезерование кромок
    8. Просверлить отверстие датчика PIR
    9. Вырезать разъемы для кабеля
    10. Вентиляционные отверстия
    11. Шпатлевка и шлифовка
    12. Картина
  5. Создайте блок кнопок
  6. Собрать искусство монтаж
    1. Экран
    2. Блок кнопок
    3. Блок управления
    4. Электронные компоненты
      1. Главный силовой кабель и распределительная коробка
      2. Блок Samsung One Connect
      3. Адаптер питания Nvidia Jetson
      4. Nvidia Jetson
      5. Подключите кабели
      6. Кнопка
      7. Датчик PIR
  7. Финальная инсталляция искусственного интеллекта

Комплект разработчика Nvidia Jetson Xavier NX ( https://www.nvidia.com/en-us/autonomous-machines/embedded- systems / jetson-xavier-nx / ) – одноплатный компьютер со встроенным модулем Nvidia Jetson Xavier NX ( https: / /developer.nvidia.com/embedded/jetson-xavier-nx). Он разработан Nvidia для выполнения ресурсоемких задач на периферии. Подобно Raspberry Pi, он имеет 57 Контакты GPIO, с которыми вы можете взаимодействовать.

Комплект разработчика ( версия US / JP / TW) включает:

  • x1 Nvidia Jetson Xavier NX
  • x1 35. 0 В / 2. 54 Адаптер питания
  • x2 Силовые кабели:
    • Тип вилки I -> C5
    • Тип штекера B -> C5
  • Краткое руководство / руководство по поддержке

xavier_2

В качестве Raspberry Pi Jetson Xavier использует карту micro-SD в качестве жесткого диска. привод. Насколько мне известно, Nvidia предоставляет только один поддерживаемый образ ОС (Ubuntu).

Для установки ОС вам понадобится второй компьютер.

Начало с загрузки образа ОС: https://developer.nvidia.com/jetson-nx-developer-kit-sd-card-image . Чтобы иметь возможность скачать его, вам необходимо подписаться на Участие в программе для разработчиков NVIDIA . Это бесплатно и весьма полезно, так как вы получите доступ к форуму разработчиков Nvidia.

После загрузки распакуйте его.

Чтобы прошить образ ОС на карту micro-SD, начните с того, что вставьте карту micro-SD во второй компьютер и перечислите доступные диски. Найдите имя диска только что вставленной карты micro-SD. В моем случае это / dev / disk2 :

Когда вы найдете имя карты micro-SD, отключите ее.

xavier_4

Теперь измените текущий каталог на то, где вы загрузили и распаковали образ ОС.

xavier_4

Чтобы прошить м icro-SD с образом ОС, выполните команду ниже. Заменять / dev / disk2 именем диска вашей карты micro-SD и замените sd-blob.img с именем загруженного распакованного изображения. Я ускорил анимацию, прошивка карты обычно занимает довольно много времени (это заняло ~ 275 мин @ ~ 4,6 МБ / с для меня).

xavier_6

Когда вы закончите прошивать карту micro-SD с изображением, вы готовы к загрузке Jetson! Выньте SD-карту из второго компьютера и вставьте ее в компьютер Jetson. Слот SD находится под модулем Xavier NX.

Нет кнопки питания, она загрузится, когда вы подключите кабель питания. После загрузки и заполнения начальной конфигурации системы вы должны увидеть рабочий стол Ubuntu.

xavier_8

Если вы застряли во время загрузки с выводом, как показано ниже, попробуйте перезагрузить компьютер.

(1 из 2) Начальное задание выполняется для конфигурации конечного пользователя после первоначальной установки OEM … “> xavier_9 [ ] (1 из 2) Выполняется начальное задание

для Конфигурация конечного пользователя после первоначальной установки OEM …

Полное руководство по установке от Nvidia можно найти здесь: https://developer.nvidia.com/embedded/learn/get-started-jetson-xavier-nx-devkit

xavier_2

Требования к установке

Обновление и апгрейд apt-get

xavier_9

sudo apt-get update sudo apt-get upgrade

Если будет предложено выбрать между gdm3 и

lightdm , выбирать

gdm3 .

Перезагрузитесь перед продолжением:

После перезагрузки установите pip3:

~ / venvs с именем арткиоск :

xavier_9 python3 -m venv xavier_9 ~

 / venvs / artkiosk 
  

Активируйте виртуальную среду:

xavier_9
источник
 
~
 / venvs / artkiosk / bin / activate   

Установите колесо Python:

Установите Jetson GPIO

Jetson.GPIO - это пакет Python, разработанный Nvidia, который работает так же, как RPi.GPIO, но для компьютеров семейства Jetson. Он позволяет пользователю через код Python взаимодействовать с распиновкой GPIO на компьютере Jetson.

Сначала установите пакет Jetson.GPIO в виртуальный компьютер. environment:

Затем настройте права пользователя для доступа к GPIO. Создайте новую группу пользователей GPIO (замените ваш логин):

xavier_9 sudo groupadd -f -r gpio sudo usermod -a -G gpio your_user_name
  

Скопируйте пользовательские правила GPIO (замените pythonNN с вашей версией Python):

xavier_9 sudo cp venvs / artkiosk / lib / pythonNN / site-packages / Jetson / GPIO / final_6 - gpio. правила /etc/udev/rules.d/
  

Полное руководство по установке можно найти здесь:

https://github.com/NVIDIA/jetson-gpio#installation

xavier_2
Установите xscreensaver (необязательно)

Чтобы снизить риск выгорания при отображении статического изображения на экране, был интегрирован датчик PIR (пассивный инфракрасный). Когда вокруг арт-инсталляции не было зарегистрировано никакого движения, запускалась заставка.

Заставка по умолчанию в Ubuntu - гном-скринсейвер . Это не заставка в «традиционном понимании». Вместо того, чтобы показывать движущиеся изображения, он закрывает экран, в основном отключая сигналы HDMI на экран, позволяя экрану перейти в режим низкого энергопотребления.

В этом проекте я использовал экран Samsung The Frame 48 "(). Когда экран был установлен на HDMI (1/2) и сигнал HDMI не подавался, он показывал статическое изображение, сообщающее пользователю, что сигнал HDMI не обнаружен. Это нежелательное поведение в данной настройке, поскольку мы либо хотим, чтобы экран погас, либо отображалось какое-то движущееся изображение, чтобы снизить риск выгорания. Мы не хотим видеть новый статический экран, сообщающий нам, что сигнал hdmi не обнаружен.

Чтобы решить эту проблему, xscreensaver . Это альтернативная заставка с поддержкой движущихся изображений. Кроме того, похоже, что xscreensaver's режим пустого экрана работает иначе, чем gnome-screensaver . Когда xscreensaver's запускается пустой экран, кажется, что он не отключает сигнал HDMI, а скорее делает экран черным. Это то поведение, которое мы хотим в этой установке.

Если вы столкнулись с той же проблемой, что и я, с экранной заставкой, выполните следующие действия, чтобы удалить gnome-screensaver и установите xscreensaver :

xavier_9 sudo apt-get remove gnome-screensaver sudo apt-get install xscreensaver xscreensaver-data-extra xscreensaver-gl-extra
  

После удаления gnome-screensaver и установка xscreensaver , он был добавлен в Приложения для запуска :

Полное руководство по установке: screen_saver_installation_1 https://askubuntu.com/questions/ / configure-screensaver -in-ubuntu / #

xavier_2 Установите Jetson stats (необязательно)

Jetson stats - действительно полезный пакет с открытым исходным кодом для мониторинга и управления Jetson. Он позволяет отслеживать использование ЦП / ГП / памяти, проверять температуру, увеличивать объем памяти подкачки и т. Д.

Чтобы установить статистику Jetson:

xavier_9 sudo -H pip install -U jetson-stats
  

Перезагрузите компьютер:

Снова активируйте виртуальную среду после перезагрузки:

источник
~
 / venvs / artkiosk / bin / activate   

Чтобы проверить использование ЦП / ГП / памяти и т. Д .:

Полный список команд можно найти здесь: screen_saver_installation_2 https://github.com/rbonghi/jetson_stats

Теперь мы готовы установить арт-киоск на компьютер!

Начните с клонирования этого репозитория:

 
компакт диск
 Arthur pip3 install -r requirements.txt  

Арт-киоск запускается следующим образом:

ПРИМЕЧАНИЕ. Художественный киоск будет

НЕТ

работают правильно, если не прикрепить кнопку и датчик PIR. Продолжайте следовать инструкциям.

Программа, запускающая арт-киоск, написана на Python и выполняется как 4 параллельных процесса, каждый из которых реализован как собственный учебный класс: Киоск ,

ArtButton ,

PIRSensorScreensaver и GANEventHandler . Точка входа main.py и все используемые параметры определены в config.yaml (например, путь к каталогу изображений, используемые распиновки GPIO и т. д.).

Процесс / класс

Файл

kiosk / kiosk.py

Киоск процесс обрабатывает все GUI: переключение (

) и окончание (

) полноэкранный режим, отслеживает изменение активной иллюстрации, которая будет отображаться, и т. д.

screen_saver_installation_1
ArtButton

киоск / artbutt on.py

ArtButton процесс прослушивает распиновку GPIO, подключенную к кнопке. Когда кнопка нажата и GPIO запускается, он заменяет активный файл обложки случайным изображением, взятым из каталога изображений.

PIRSensorScreensaver

киоск / пирсенсорскринсейвер

PIRSensorScreensaver процесс прослушивает распиновку GPIO, подключенную к датчику PIR. Если в течение заданного порогового значения секунд не сработало никакое движение, активируется экранная заставка компьютера. При обнаружении движения заставка отключается.

screen_saver_installation_1

kiosk / art_event_handler.py

ArtEventHandler процесс прослушивает удаленные элементы в каталоге изображений. Когда нажимается кнопка и изображение удаляется (т. Е. Перемещается для замены активного файла обложки, active_artwork.jpg), этот процесс проверяет, сколько изображений осталось в каталоге изображений. Если количество изображений падает ниже предопределенного порога, запускается новый процесс (функция), генерирующий новый набор изображений. Вам необходимо обновить этот класс для создания изображений.

ArtEventHandler

Ты необходимо добавить свой собственный генерирующий код (GAN-сеть или другие), обновив два файла:

  • kiosk / arteventhandler.py
  • main.py

xavier_2 kiosk / arteventhandler.py

Класс ArtEventHandler найденный в файле kiosk / arteventhandler.py - это обработчик событий, который запускается для создания новых изображений, которые будут сохранены в каталоге изображений. Когда изображение удаляется из каталога изображений (т. Е. Перемещается для замены активной иллюстрации),

ArtEventHandler's функция класса

on_deleted выполняется. Он проверяет, находится ли количество изображений в каталоге изображений выше или ниже предварительно определенного порогового значения. Если количество изображений падает ниже порогового значения, ArtEventHandler's функция класса generate_images выполняется. Именно в эту функцию вам нужно добавить свой генеративный код, который будет добавлять новые изображения в каталог изображений.

main.py

Если вы обновили

ArtEventHandler's конструктора с новыми аргументами, необходимо обновить инициализацию ArtEventHandler

в функции start_art_generator найти в

main.py .

Чтобы установка выглядела красиво и с минимальным количеством видимых кабелей, был построен блок управления для инкапсуляции компьютера Nvidia, адаптеров питания, блока Samsung One Connect и т. Д.

xavier_2

Детали ручной резки

Блок управления был построен с использованием 27 мм (0. ") МДФ. Вертикальная панельная пила использовалась для разрезания МДФ на более мелкие части. Для вырезания последних деталей использовалась настольная пила.

raw_mdf

raw_mdf

vertical_panel_saw

xavier_2 Вырезать дырочки от деревянного печенья

Сделать Блок управления прочный, для склеивания частей использовалось деревянное печенье. При использовании древесного печенья не потребовались шурупы, что обеспечивало красивую отделку без видимых головок шурупов. Это также помогает выровнять детали при склеивании.

При использовании резака для печенья по дереву важно, чтобы отверстия заканчивались в правильном месте при совмещении. панели. Один из простых способов решить эту проблему - выровнять панели, а затем провести линию на обеих панелях в центре того места, где вы хотите, чтобы печенье было. Если вы сделаете это, отверстия окажутся в нужном месте.

raw_pieces

wood_biscuit_align wood_biscuit_machine_1

Перед тем, как склеить кусочки, убедитесь, что соединительные отверстия правильно совмещены и все древесное печенье хорошо ложится (они могут кое-что немного отличаются по размеру).

wood_biscuit_machine_1

Склейте части вместе

Склеивая части вместе, вам нужно быть довольно быстрым и структурированным. Подготовьте, поместив выравнивающие панели рядом друг с другом и приготовив все древесное печенье.

wood_biscuit_asseble

Начните с добавления клея в отверстия для печенья.

Затем, вдавите древесное печенье в отверстия и нанесите столярный клей на все соединяющиеся части.

Теперь соберите все соединительные детали и приложите усилие с помощью зажимов. Вы должны увидеть, как клей просачивается между панелями.

gluing_3

Используйте квадрат инженера, чтобы проверить каждый угол.

gluing_3 gluing_4

Наконец, удалите весь видимый лишний клей влажной бумажной салфеткой.

gluing_4

gluing_5

xavier_2 gluing_6 Убрать видимые зазоры

После снятия зажимов есть были некоторые видимые зазоры и трещины, которые необходимо было заполнить.

gluing_7

Я использовал пластиковую прокладку (двухкомпонентную пластиковую шпаклевочную пасту), чтобы закрыть зазоры. и трещины. Будьте осторожны с количеством добавляемого отвердителя, так как если добавить слишком много, он очень быстро высохнет.

spackling_1 spackling_1

spackling_2

spackling_3 spackling_4

spackling_4

Когда все высохло, с помощью электрической шлифовальной машины удалили лишнюю пластиковую прокладку. Внутренняя часть коробки была зачищена ручной шлифовкой. Как правило, если вы чувствуете кромку или трещину, они будут видны при покраске.

spackling_7 Добавьте петли

Петли сначала были добавлены к крышке. Позже это упростило выравнивание крышки на верхней части коробки.

Пазы для петель были измерены и очерчены. Затем с помощью электрического мультируза вырезали сетку на ту же глубину, что и петли. Затем материал был удален с помощью долота и молотка. Затем пазы были зачищены ручным шлифованием.

spackling_7

spackling_8

spackling_9

hinge_2 hinge_3

Петли были выровнены, и центр отверстий был помечен трафаретом. МДФ - очень плотный материал, поэтому перед установкой петель важно предварительно просверлить отверстия. Если вы этого не сделаете, высока вероятность того, что материал треснет.

hinge_3

hinge_5 hinge_6

Глубина закручивания винтов была измерена, и клейкая лента использовалась для отметки глубины на сверлильной головке.

hinge_7

hinge_7

Перед тем, как совместить петли на коробке, убедитесь, что добавили опору под крышку, она должна находиться на том же уровне, что и блок управления. Затем к каждому шарниру прикрепили липкую ленту с двойным покрытием, и крышку выровняли по верхней части коробки. Когда крышка была выровнена правильно, было приложено давление, чтобы клейкая лента приклеилась.

hinge_8 hinge_9

Отверстия для петель и пазы были просверлены и вырезаны так же, как и на крышке.

hinge_12

hinge_14

hinge_15

hinge_16

hinge_18

hinge_19

hinge_20

xavier_2 Добавить магнитный замок

Для удержания крышки на месте использовался магнитный замок.

hinge_21

hinge_23

magnetic_lock_2

magnetic_lock_3

magnetic_lock_4 magnetic_lock_4

magnetic_lock_5

magnetic_lock_5

Фрезерование кромок

Все края были скруглены с помощью ручного фрезерного станка.

magnetic_lock_6 magnetic_lock_7

xavier_2

Просверлить отверстие датчика PIR

Для установки датчика PIR был разобран блок управления. Затем было измерено, выровнено и просверлено отверстие на всем протяжении крышки, чтобы отражатель PIR выступал наружу. Затем использовалось сверло большего размера с тем же диаметром, что и у сенсорного чипа, чтобы осторожно выдвинуть щель изнутри крышки. Расширенное отверстие просверлено не полностью, оставалось примерно 2 мм для размещения чипа датчика. Наконец, наждачная бумага использовалась, чтобы вручную отшлифовать края до идеального прилегания.

milling_1 milling_1

pir_sensor_2

xavier_2 Вырезать разъемы для кабеля

Чтобы кабели могли входить и выходить из коробки, были вырезаны два разъема для кабелей:

  1. Один разъем для кабеля на верхней боковой панели для кабеля One Connect и кабелей кнопок.
  2. Один разъем для электрического кабеля на нижней боковой панели.

Изначально разъемы для кабелей были прорезаны только наполовину через верхнюю и нижнюю панели. Но затем я понял (после того, как я собрал и покрасил все ¯ (ツ) / ¯), что будет намного лучше, если я прорежу кабельные прорези насквозь, а затем приклею кусок МДФ в отверстие, чтобы закрыть избыточное пространство. Вот почему блок управления изображен на изображениях ниже.

Для измерения диаметра кабелей использовался штангенциркуль. Затем в прорези были добавлены дополнительные ~ 1 мм для удобного размещения кабелей. Но оглядываясь назад, я бы увеличил прорезь на 2-3 мм.

pir_sensor_3

Слоты затем были очерчены в центре верхней и нижней панелей. Контуры также были расширены примерно 35 мм в заднюю панель. Для вырезания пазов использовалась японская ручная пила / пила Dozuki. Небольшое долото и молоток использовались для удаления вырезанных кусков.

pir_sensor_4

pir_sensor_6

Кольцевой пилой был использован для извлечения большего отверстия в верхней части задней панели, соединенного в прорезь для кабеля на верхней панели. Это позволило вставить кабель One Connect.

cable_slot_4

Были вырезаны куски МДФ той же ширины и высоты, что и прорези для кабелей. Наждачная бумага использовалась для небольших корректировок. Затем кабели были вставлены в пазы, а части МДФ были выровнены и обрезаны, чтобы оставить достаточно места для размещения кабелей.

caliper cable_slot_4

cable_slot_5

cable_slot_7

Столярный клей был нанесен и размазан на соединительных деталях. Затем части МДФ вдавливались в пазы.

cable_slot_8

cable_slot_8

xavier_2 Вентиляционные отверстия

Вентиляционные отверстия были просверлены светодиоды в нижней и верхней панели, чтобы позволить теплу выходить из блока управления.

cable_slot_9

xavier_2 cable_slot_11

Пластиковая прокладка была использована для закрытия трещин между гнездами кабелей и приклеенными Куски МДФ. Затем блок управления был вручную отшлифован, чтобы удалить лишнюю пластиковую прокладку и скруглить края вокруг вентиляционных отверстий и т. Д.

vent_holes_1 vent_holes_2

xavier_2

Картина

Блок управления был окрашен в тот же цвет, что и стена, к которой он был прикреплен. Совет: вместо полной банки покупайте образец цвета. Вам не понадобится полная банка, а образцы банок обычно дешевле за литр.

На плоских участках использовался малярный валик и небольшая кисть. использовалась для рисования мелких деталей.

spackling_12 spackling_11

spackling_13

После высыхания краски все было собрано заново.

В качестве блока кнопок использовался модифицированный черный пластиковый корпус. Чтобы интегрировать кнопку, сначала были измерены и просверлены вертикальный и горизонтальный центр. Затем просверливали отверстие диаметром пуговицы.

painting_1 painting_2

painting_4

painting_5

painting_5

Поскольку блок кнопок будет расположен между блоком управления и экраном, два кнопочных кабеля и кабель One Connect (подводящий электричество и HDMI к экрану) войдут в поле кнопок внизу. Кабель One Connect также выйдет из блока кнопок вверху (продолжая к телевизору). Поэтому два паза для кабеля были извлечены сверху и снизу с помощью японской ручной пилы / пилы Dozuki. Затем пазы шлифовали вручную.

painting_6 button_box_1

button_box_2

button_box_2

Винты, удерживающие коробку корпуса вместе, были окрашены в черный цвет с помощью аэрозольного лака. краска. Совет при покраске шурупов - воткнуть их в кусок пенополистирола.

button_box_3

Теперь арт-инсталляция готова к сборке и установке. к стене. Лазер с перекрестными линиями использовался для вертикального выравнивания экрана, блока кнопок и блока управления.

xavier_2 button_box_5 Экран

Экран (Samsung The Frame 48 ") был установлен на стене в соответствии с инструкциями, прилагаемыми к покупке экрана.

button_box_5 button_box_7

Блок кнопок

Два отверстия для винтов были просверлены в нижней пластине блока кнопок. К обратной стороне нижней пластины также прикрепляли липкую ленту с двойным покрытием для дополнительной поддержки. Затем блок кнопок был выровнен с помощью лазера и прикреплен к стене с помощью двух дюбелей, двух винтов и липкой ленты с двойным покрытием.

button_box_8

button_box_9 button_box_8

button_box_8 button_box_9

assembly_3

xavier_2 Блок управления

Блок управления был прикреплен к стене с помощью дюбеля и двух винтов. Чтобы обозначить отверстия для винтов, вся электроника была временно помещена в блок управления, а два отверстия для винтов были намечены и просверлены. Затем кабель HDMI / One Connect был вставлен в разъем для кабеля, и блок управления был прикреплен к стене.

assembly_5

assembly_7

assembly_7

xavier_2 Электронные компоненты

ПРИМЕЧАНИЕ: ДАННАЯ ЧАСТЬ ВКЛЮЧАЕТ ПРОВОД ВЫСОКОГО НАПРЯЖЕНИЯ, КОТОРЫЙ МОЖЕТ БЫТЬ СМЕРТЕЛЬНЫМ, ЕСЛИ НЕ ИСПОЛЬЗУЕТСЯ НАДЛЕЖАЩИМ. ЦВЕТ КАБЕЛЕЙ МОЖЕТ РАЗЛИЧАТЬСЯ В ЗАВИСИМОСТИ ОТ РЕГИОНА / СТРАНЫ. ПЕРЕД ПОДКЛЮЧЕНИЕМ СЕТЕВОГО ШНУРА К РОЗЕТКЕ ПРОКОНСУЛЬТИРУЙТЕСЬ С ЛИЦЕНЗИОННЫМ ЭЛЕКТРИКОМ, ЧТОБЫ УБЕДИТЬСЯ, ЧТО ВСЕ ПРОВОДИТСЯ НАДЛЕЖАЩИМ ПОДКЛЮЧЕНИЕМ И СООТВЕТСТВУЕТ ВАШИМ МЕСТНЫМ ЗАКОНОДАТЕЛЬСТВАМ.

assembly_7

Главный силовой кабель и распределительная коробка

Гнездовая сторона главного шнура питания была удалена, и кабель был вставлен в блок управления. Затем в правом нижнем углу была прикреплена соединительная коробка с помощью липкой ленты. Перед тем, как прикрепить липкую ленту, задняя сторона распределительной коробки была очищена денатурированным спиртом. В боковой части распределительной коробки были сделаны три отверстия для входа трех кабелей.

assembly_10

assembly_13

Инструмент для зачистки проводов использовался для снятия оболочки / изоляции шнура питания, а также проводов внутри. Разъем для сращивания (Wago , 3-проводной) был затем присоединен к каждому проводу, обеспечивая подачу электричества от единую розетку питания, которую нужно разделить на One Connect Box и на Nvidia Jetson Xavier NX без использования удлинителя.

assembly_18

assembly_16

assembly_9 assembly_18 Блок Samsung One Connect assembly_9

Затем слева был прикреплен блок Samsung One Connect. нижний угол на липучке. Некоторый запас был оставлен внизу и слева от блока One Connect для кабеля питания и кабелей датчика PIR. Кроме того, задняя сторона блока One Connect Box была очищена денатурированным спиртом перед прикреплением липкой ленты.

assembly_18 assembly_18

assembly_19

Шнур питания экрана (переходник IEC C7) был вставлен в блок One Connect Box. Затем его выровняли, измерили и отрезали до нужной длины, чтобы попасть внутрь распределительной коробки. Инструмент для зачистки проводов использовался для удаления оболочки / изоляции шнура питания, а также проводов внутри. Затем кабель C7 вставлялся в распределительную коробку и подсоединялся к соединительным разъемам. Заземление было отключено, поскольку соединитель C7 не заземлен.

assembly_19

assembly_19 assembly_21

assembly_9 assembly_22 Адаптер питания Nvidia Jetson assembly_10

Адаптер питания к Nvidia Jetson Xavier NX был прикреплен в верхнем левом углу с помощью липкой ленты. Шнур питания (переходник IEC C5) был вставлен в адаптер питания. Затем его выровняли, измерили и отрезали до нужной длины, чтобы попасть внутрь распределительной коробки. Инструмент для зачистки проводов использовался для удаления оболочки / изоляции шнура питания, а также проводов внутри. Затем кабель C5 вставлялся в распределительную коробку и подсоединялся к соединительным разъемам.

assembly_22

assembly_23 assembly_26

Перед закрытием соединительной коробки кабельные стяжки были затянуты вокруг каждого кабеля, идущего в распределительную коробку, в качестве разгрузки от натяжения.

assembly_25 assembly_25

assembly_25

Nvidia Jetson assembly_9

Для крепления Nvidia Jetson были вырезаны два куска оцинкованной ленты и обернуты изолентой. Затем компьютер был прикреплен в правом верхнем углу с помощью 4 маленьких винтов и шайб.

assembly_29

assembly_30 assembly_29

assembly_32

Подключите кабели assembly_10

HDMI, кабель One Connect Cable и Xavier NX силовой кабель был подключен. Кабельные стяжки использовались для структурирования кабелей.

assembly_55

Кнопка

Реализована кнопка изменения обложки как подтягивающий резистор. Когда кнопка выключена (т.е. не нажата), небольшой ток будет течь от положительного 3,3 В, через резистор на вывод GPIO, что приведет к тому, что вывод GPIO станет ВЫСОКИМ (1). С другой стороны, когда кнопка нажата, ток будет течь от плюса 3,3 В, через резистор, через кнопку и на землю (GND). Это приведет к тому, что вывод GPIO станет LOW (0). Этот сдвиг HIGH / LOW на выводе GPIO регистрируется в коде и используется для изменения изображения на экране. Схема подтягивающего резистора приведена ниже.

assembly_57 assembly_57

Замерил два кабеля и припаял к кнопке. Затем кабели были вставлены в блок управления через то же гнездо для кабеля, что и кабель One Connect. Убедитесь, что у вас достаточно кабеля для подключения к компьютеру Nvidia Jetson.

assembly_58

Конец перемычки с внутренней резьбой был затем припаян к конец кабеля, соединяющийся с землей (чтобы можно было легко отсоединить кабель). Перед тем, как спаять два кабеля вместе, один из кабелей пропустили через термоусадочную трубку. После того, как кабели были спаяны, была использована паяльная лампа для усадки трубки вокруг места пайки.

assembly_34

К другому кабелю кнопки были припаяны резистор 1 кОм и перемычка с гнездом. Наконец, к другой стороне резистора был припаян еще один соединительный переходной кабель.

assembly_34

Перемычки были затем подключены к следующим GPIO Nvidia Jetson:

  • Синий: Грун d (булавка 32)
  • Красный: 3,3 В (контакт 35)
  • Зеленый: GPIO (контакт 36)

assembly_37 assembly_37

Наконец, кабель Samsung One Connect был вставлен через блок кнопок и была прикреплена верхняя пластина блока кнопок.

assembly_37

assembly_38

Кабельный канал был прикреплен к стене между блоком кнопок и блок управления, используя липкую ленту с двойным покрытием, закрепив кабели кнопок и кабель One Connect. Перед покраской кабельный канал был вручную отшлифован, чтобы цвет лучше держался. Затем был добавлен грунт, а затем два слоя краски для стен.

button_pinout

assembly_41 assembly_42

assembly_43

assembly_60 Датчик PIR

Три Были измерены и вырезаны кабели одинаковой длины (я бы предпочел использовать три разных цвета, но у меня был только черный и красный кабель).

Три суки / суки Затем перемычки были разрезаны посередине и припаяны к трем кабелям, по одному набору перемычек на каждый кабель. Чтобы компенсировать плохую окраску основных кабелей, для перемычек были выбраны три разных цвета.

Несколько больших термоусадочных трубок были использованы для сохранения трех кабели вместе.

assembly_61

Датчик PIR, который я использовал, был SR final_4. Он имеет три распиновки, которые были подключены к Nvidia Jetson:

Когда датчик PIR регистрирует проходящего мимо человека,

вне

буду под кайфом. Когда нет обнаружения,

вне

будет НИЗКИЙ.

Затем ИК-датчик был вставлен в соответствующий слот в крышке блока управления.

assembly_46 assembly_46

assembly_48

final_gif_1

assembly_48 assembly_48

pir_pinout

assembly_49 assembly_51

assembly_50

assembly_52

final_1 final_2

final_1

Leave a comment

Your email address will not be published. Required fields are marked *

nineteen − two =