Оглавление:

TfCD - Plus: 7 шагов
TfCD - Plus: 7 шагов

Видео: TfCD - Plus: 7 шагов

Видео: TfCD - Plus: 7 шагов
Видео: Вебинар "SMM для фотографов" 2024, Июль
Anonim
Image
Image
Ингредиенты
Ингредиенты

Плюс - это минимальный интеллектуальный свет, который не только уведомляет людей о погодных условиях, но и создает приятные впечатления для пользователей, изменяя цвет света путем поворота плюса. Его форма дает пользователю возможность объединить несколько дополнительных модулей или создать огромную лампу с множеством дополнительных элементов, размещенных друзьями. Этот световой проект является частью курса Advanced Concept Design (ACD) в Делфтском техническом университете, а также технологии, реализованной с использованием практического опыта TfCD в качестве источника вдохновения.

Шаг 1: ингредиенты

Ингредиенты
Ингредиенты
Ингредиенты
Ингредиенты

1 малина пи ноль ш

1 акселерометр Groove Adxl345

4 светодиода Ws2812b

1 макетная доска

Корпуса с 3D-печатью и лазерной резкой

Шаг 2: Оборудование

Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение

Светодиоды

Светодиоды Neopixel имеют 4 контакта с именами: + 5V, GND, Data In и Data Out.

  1. Контакт 4 raspberry pi подключен к + 5V всех светодиодов.
  2. Контакт 6 Raspberry Pi подключен к GND всех светодиодов.
  3. Вывод Data In первого светодиода подключен к выводу 12 на Raspberry Pi.
  4. Вывод Data out первого светодиода подключен к Data in второго и так далее.

Пожалуйста, взгляните на электрическую схему для лучшего понимания.

Акселерометр

Акселерометр имеет 4 контакта с именами: VCC, GND, SDA и SCL.

  1. Контакт 1 raspberry pi подключен к VCC.
  2. Контакт 3 raspberry pi подключен к SCL.
  3. Контакт 5 raspberry pi подключен к SDA.
  4. Контакт 9 Raspberry Pi подключен к GND.

Строить

  1. Для удобства светодиоды можно припаять к макетной плате. Мы решили вырезать плату в форме плюса, чтобы она хорошо вписывалась в трехмерный корпус.
  2. После того, как мы припаяли светодиоды к плате, мы припаиваем перемычки, чтобы установить соединение между 0,1-дюймовым разъемом и светодиодами. Разъем заголовка используется для отключения Raspberry Pi и его повторного использования в будущем проекте.

Шаг 3: Программное обеспечение

Программное обеспечение
Программное обеспечение

Образ операционной системы Raspberry Pi

Сначала нам нужно запустить Raspberry Pi. Для этого мы выполняем следующие шаги:

  1. Загрузите последнюю версию Raspbian отсюда. Вы можете скачать его напрямую или через торренты. Для записи загруженной ОС на SD-карту (микро SD-карта в случае модели Raspberry Pi B + и Raspberry Pi Zero) вам понадобится средство записи изображений.
  2. Так что скачайте отсюда "win32 disk imager". Вставьте SD-карту в ноутбук / компьютер и запустите программу записи изображений. После открытия найдите и выберите загруженный файл изображения Raspbian. Выберите правильное устройство, то есть диск, представляющий SD-карту. Если выбранный диск (или устройство) отличается от SD-карты, другой выбранный диск будет поврежден. Так что будь осторожен.
  3. После этого нажмите внизу кнопку «Написать». В качестве примера см. Изображение ниже, где SD-карта (или micro SD) диск обозначена буквой «G: \». Теперь ОС готова к нормальному использованию. Однако в этом уроке мы собираемся использовать Raspberry Pi в безголовом режиме. Это означает, что к нему не подключены физический монитор и клавиатура!
  4. После записи SD-карты не вынимайте ее из компьютера! Используйте текстовый редактор, чтобы открыть файл config.txt, который находится на SD-карте. В самом низу добавьте dtoverlay = dwc2 в качестве последней строки:
  5. Сохраните файл config.txt как обычный текст, а затем откройте cmdline.txt. После rootwait (последнее слово в первой строке) добавьте пробел и затем modules-load = dwc2, g_ether.
  6. Теперь извлеките SD-карту из вашего ПК, вставьте ее в Raspberry Pi и подключите к компьютеру с помощью USB-кабеля. После загрузки ОС вы должны увидеть новое устройство Ethernet Gadget.
  7. Вы можете использовать ssh [email protected] для подключения к плате и удаленного управления ею. Для получения более подробных инструкций по автономной работе перейдите сюда. Драйвер Neopixel

Библиотека rpi_ws281x - это ключ, который делает возможным использование NeoPixels с Raspberry Pi.

Сначала нам нужно установить инструменты, необходимые для компиляции библиотеки. В вашем Raspberry Pi запустите: sudo apt-get update && sudo apt-get install build-essential python-dev git scons swig Теперь запустите эти команды, чтобы загрузить и скомпилировать библиотеку:

git clone https://github.com/jgarff/rpi_ws281x.git && cd rpi_ws281x && scons Наконец, после успешной компиляции библиотеки, мы можем установить ее для Python, используя:

cd python && sudo python setup.py install Теперь идет код python, который управляет светодиодами. Код довольно прост с некоторыми комментариями, которые могут вам помочь. из импорта neopixel * # Конфигурации NeoPixel LED_PIN = 18 # Вывод GPIO Raspberry Pi, подключенный к пикселям LED_BRIGHTNESS = 255 # Установите 0 для самых темных и 255 для самых ярких LED_COUNT = 4 # Количество полос светодиодных пикселей = Adafruit_NeoPixel (LED_COUNT, LED_PIN, 800000, 5, False, LED_BRIGHTNESS, 0, ws. WS2811_STRIP_GRB) # Инициализировать библиотеку strip.begin () strip.setPixelColor (0, Color (255, 255, 255)) strip.show ()

Драйвер ADXL345

Выбранный нами датчик акселерометра имеет интерфейс I2C для связи с внешним миром. К счастью для нас, Raspberry Pi также имеет интерфейс I2C. Нам просто нужно включить его, чтобы использовать его в нашем собственном коде.

Вызовите инструмент настройки Raspbian с помощью sudo raspi-config. После запуска перейдите в Параметры интерфейса, Дополнительные параметры и затем включите I2C. Установите соответствующие модули Python, чтобы мы могли использовать интерфейс I2C в Python:

sudo apt-get install python-smbus i2c-tools Следующий код Python позволяет нам связываться с датчиком акселерометра и считывать значения его регистров для наших собственных целей. import smbus import struct # Конфигурации акселерометра bus = smbus. SMBus (1) address = 0x53 gain = 3.9e-3 bus.write_byte_data (address, 45, 0x00) # Перейти в режим ожидания bus.write_byte_data (address, 44, 0x06) # Полоса пропускания 6.5Hz bus.write_byte_data (address, 45, 0x08) # Перейти в режим измерения # Считать данные с датчика buf = bus.read_i2c_block_data (address, 50, 6) # Распаковать данные из int16_t в python integer data = struct.unpack_from ("> ччч", буфер (массив байтов (buf)), 0)

x = float (данные [0]) * усиление

y = float (данные [1]) * усиление

z = float (данные [2]) * усиление

Детектор движения

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

Accel = getAcceleration ()

dx = abs (prevAccel [0] - Accel [0])

dy = abs (prevAccel [1] - Accel [1])

dz = abs (prevAccel [2] - Accel [2])

если dx> moveThreshold или dy To> moveThreshold или dz> moveThreshold:

печать "перемещено"

перемещено = True

еще:

перемещено = Ложь

Погода API

Чтобы получать прогноз погоды, мы можем использовать Yahoo Weather. Это включает в себя обращение к Yahoo Weather Rest API, что может быть довольно сложным. К счастью для нас, самая сложная часть уже решена в виде модуля weather-api для python.

  1. Сначала нам нужно установить этот модуль, используя: sudo apt install python-pip && sudo pip install weather-api
  2. Посетите веб-сайт автора для получения дополнительной информации об этом модуле.

После установки следующий код получает погодные условия на данный момент

из импорта погоды Weatherweather = Погода ()

location = weather.lookup_by_location ('дублин')

condition = location.condition ()

печать (condition.text ())

Собираем все вместе

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

Автоматический запуск скрипта Python во время загрузки

Чтобы иметь возможность поместить raspberry pi в коробку и заставить его запускать наш код каждый раз, когда мы подключаем его к источнику питания, мы должны убедиться, что код запускается автоматически во время загрузки. Для этого мы используем инструмент под названием cron.

  1. Сначала вызовите инструмент cron, используя: sudo crontab -e
  2. Предыдущие шаги откроют файл конфигурации, в который мы добавим следующую строку:

    @reboot python /home/pi/light.py &

Шаг 4: Моделирование и 3D-печать

Моделирование и 3D-печать
Моделирование и 3D-печать
Моделирование и 3D-печать
Моделирование и 3D-печать

3D-модель Plus была создана в Solidworks и сохранена в формате. Stl. Затем для 3D-печати модели в программу Cura были импортированы файлы. Stl. На создание каждой стороны плюса ушло 2:30 часа; поэтому печать каждого полного Plus занимает около 5 часов. А прозрачные стороны были вырезаны лазером из оргстекла.

Шаг 5: Сборка

сборка
сборка
сборка
сборка
сборка
сборка
сборка
сборка

Имея под рукой деталь, напечатанную на 3D-принтере, электронику и программное обеспечение, мы, наконец, можем собрать конечный продукт.

  1. Верхняя и нижняя пластины, напечатанные на 3D-принтере, оказались более прозрачными, чем предполагалось. Слой алюминиевой фольги решил проблему утечки света.
  2. Однако эти листы являются токопроводящими и могут вызвать короткое замыкание в незащищенной цепи. Так что сверху наклеивается еще один слой белой картонной доски.
  3. Сегменты диффузного оргстекла приклеены к одной из боковых пластин.
  4. В одной из боковых панелей, напечатанных на 3D-принтере, просверливается отверстие. Это для того, чтобы мы могли пропустить через шнур питания.
  5. Как только шнур питания пропущен через отверстие, мы припаиваем его к макетной плате.
  6. Присоединяем датчик к raspberry pi и затем подключаем его к разъему.
  7. Мы соединяем две части вместе, чтобы получить конечный продукт.
  8. По желанию вы можете склеить 2 части, чтобы сделать соединение более прочным. Однако имейте в виду, что может быть трудно попасть в коробку после того, как она заклеена, если вы хотите изменить код позже.

Рекомендуемые: