Съдържание:

TfCD - Плюс: 7 стъпки
TfCD - Плюс: 7 стъпки

Видео: TfCD - Плюс: 7 стъпки

Видео: TfCD - Плюс: 7 стъпки
Видео: TFCD Photographic Session 2024, Ноември
Anonim
Image
Image
Съставки
Съставки

Плюс е минимална интелигентна светлина, която не само уведомява хората за метеорологичните условия, но също така създава приятно изживяване за потребителите чрез промените, направени в цвета на светлината чрез завъртане на плюс. Формата му дава възможност на потребителя да комбинира няколко плюс модула или да създаде огромна лампа с много плюс парчета, поставени от приятели. Този проект за осветление е част от курса Advanced Concept Design (ACD) в университета TU Delft и технологията, внедрена чрез използване на практиката на TfCD като източник на вдъхновение.

Стъпка 1: Съставки

Съставки
Съставки
Съставки
Съставки

1 Малина pi нула w

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

4 Ws2812b LED

1 Прототипна дъска

3D отпечатани и лазерно изрязани корпуси

Стъпка 2: Хардуер

Хардуер
Хардуер
Хардуер
Хардуер
Хардуер
Хардуер
Хардуер
Хардуер

Светодиоди

Светодиодите Neopixel имат 4 пина, наречени: +5V, GND, Data In и Data out.

  1. Пин 4 на малиновото пи е свързан към +5V на всички светодиоди
  2. Пин 6 на малиновото пи е свързан към GND на всички светодиоди
  3. Данни В пин на първия светодиод е свързан към щифт 12 на малиновото пи.
  4. Изходният извод за данни на първия светодиод е свързан към данните на втория и т.н.

Моля, разгледайте електрическата схема за по -добро разбиране.

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

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

  1. Пин 1 на малиновото пи е свързан към VCC.
  2. Пин 3 на малиновото пи е свързан към SCL.
  3. Пин 5 на малиновото пи е свързан към SDA.
  4. Пин 9 на малиновото пи е свързан към GND.

Изграждане

  1. За удобство светодиодите могат да бъдат запоени върху прототипна платка. Решихме да изрежем дъската под формата на плюс, така че да се вписва добре в 3D проектирания калъф.
  2. След като запояваме светодиодите на платката, запояваме джъмперните проводници, за да осъществим връзките между 0.1 "заглавката на заглавката и светодиодите. Конекторът на заглавката се използва за разрешаване на малиновото пи да бъде изключено и повторно използвано за бъдещ проект.

Стъпка 3: Софтуер

Софтуер
Софтуер

Изображение на операционната система Raspberry Pi

Първо трябва да стартираме Raspberry Pi. За да направим това, следваме следните стъпки:

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

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

Първо трябва да инсталираме инструментите, необходими за компилиране на библиотеката. Във вашия Run на 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 LED_PIN = 18 # GPIO щифтът на Raspberry Pi, свързан към пикселите LED_BRIGHTNESS = 255 # Задайте 0 за най -тъмните и 255 за най -ярките LED_COUNT = 4 # Брой ленти с LED пиксели = 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. След като стартирате, отидете на Interfacing Options, Advanced Options и след това активирайте I2C, Инсталирайте съответните модули на python, за да можем да използваме интерфейса I2C в python:

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

x = плаващ (данни [0]) * печалба

y = плаващ (данни [1]) * печалба

z = плаващ (данни [2]) * печалба

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

Една от характеристиките на светлината, която правим, е, че тя може да открие движение (или липса на такава), за да влезе в интерактивен режим (където светлината се променя в зависимост от въртенето) и режим на прогноза за времето (където светлината се променя в зависимост от прогнозата за времето за днес). Следният код използва предишната функция, за да прочете стойностите на ускорението за 3-осите и да ни предупреди, когато има движение.

accel = getAcceleration ()

dx = abs (prevAccel [0] - ускорение [0])

dy = abs (prevAccel [1] - ускорение [1])

dz = abs (prevAccel [2] - ускорение [2])

ако dx> moveThreshold или dy To> moveThreshold или dz> moveThreshold:

отпечатване „преместено“

преместено = Вярно

иначе:

move = False

API за времето

За да получавате прогноза за времето, можем да използваме Yahoo Weather. Това включва разговор с API на Yahoo Weather Rest, който може да бъде доста сложен. За наше щастие, за трудната част вече се погрижи под формата на weather-api модул за python.

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

След като инсталирате следния код получава метеорологичните условия за този момент

from weather import Weatherweather = Weather ()

location = weather.lookup_by_location ('dublin')

условие = местоположение. условие ()

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

Събирайки всичко заедно

Целият код за проекта, който свързва всички горепосочени части, може да бъде намерен тук.

Автоматично стартиране на скрипта на python по време на зареждане

За да можем да поставим малиновото пи в кутия и той да изпълнява нашия код всеки път, когато го свързваме към захранването, трябва да се уверим, че кодът се стартира автоматично по време на зареждане. За да направим това, използваме инструмент, наречен cron.

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

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

Стъпка 4: Моделиране и 3D печат

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

3D моделът на Plus е направен в Solidworks и е запазен като. Stl формат. След това за 3D печат моделът. Stl файл беше импортиран в софтуера Cura. Всяка страна на плюса отне 2:30 часа за производство; така че всеки пълен плюс отне около 5 часа за отпечатване. А за прозрачните страни плексигласът беше изрязан с лазер.

Стъпка 5: Монтаж

Монтаж
Монтаж
Монтаж
Монтаж
Монтаж
Монтаж
Монтаж
Монтаж

С 3D отпечатаната част, електрониката и софтуера под ръка, най -накрая можем да сглобим крайния продукт.

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

Препоръчано: