Мазмұны:

TfCD - Plus: 7 қадам
TfCD - Plus: 7 қадам

Бейне: TfCD - Plus: 7 қадам

Бейне: TfCD - Plus: 7 қадам
Бейне: TFCD Arduino face tracking device 2024, Шілде
Anonim
Image
Image
Құрамы
Құрамы

Плюс - бұл минималды ақылды жарық, ол адамдарға ауа райы жағдайы туралы хабарлап қана қоймайды, сонымен қатар плюс қосу арқылы жарық түсінің өзгеруі арқылы пайдаланушыларға жағымды әсер береді. Оның пішіні пайдаланушыға бірнеше плюс модульдерді біріктіруге немесе достарының плюс бөлшектері бар үлкен шам жасауға мүмкіндік береді. Бұл жарықтандыру жобасы TU Delft университетіндегі Advanced Concept Design (ACD) курсының бөлігі болып табылады және шабыт көзі ретінде TfCD тәжірибесін қолдану арқылы енгізілген технология.

1 -қадам: ингредиенттер

Құрамы
Құрамы
Құрамы
Құрамы

1 таңқурай pi нөл w

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

4 Ws2812b жарық диоды

1 прототиптеу тақтасы

3D басып шығарылған және лазермен кесілген корпустар

2 -қадам: Жабдық

Аппараттық құрал
Аппараттық құрал
Аппараттық құрал
Аппараттық құрал
Аппараттық құрал
Аппараттық құрал
Аппараттық құрал
Аппараттық құрал

Жарық диодтары

Neopixel светодиодтарында 4 түйреуіш бар: +5V, GND, Data In and Data out.

  1. Таңқурай пи 4 түйреуіші барлық светодиодтардың +5В қосылады
  2. Таңқурай пи 6 түйреуіші барлық светодиодтардың GND қосылған
  3. Деректер Бірінші светодиодтың түйреуіші таңқурайдағы pi 12 -ге қосылады.
  4. Бірінші светодиодтың шығыс түйрегіші екіншісіндегі Деректерге және т.б.

Жақсырақ түсіну үшін электр схемасын қараңыз.

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

Акселерометрде VCC, GND, SDA және SCL деп аталатын 4 түйреуіш бар.

  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 картасына жазу үшін сізге суретші қажет болады (Raspberry Pi B+ үлгісінде және Raspberry Pi Zero жағдайында микро SD картасы).
  2. Сондықтан «win32 дискілік бейнематериалды» осы жерден жүктеп алыңыз. SD картасын ноутбукке/компьютерге салыңыз және сурет жазушыны іске қосыңыз. Ашылғаннан кейін жүктелген Raspbian кескін файлын шолыңыз және таңдаңыз. Дұрыс құрылғыны таңдаңыз, яғни SD картасын көрсететін диск. Егер таңдалған диск (немесе құрылғы) SD картасынан өзгеше болса, онда басқа таңдалған диск бүлінеді. Сондықтан абай болыңыз.
  3. Осыдан кейін төменгі жағындағы «Жазу» түймесін басыңыз. Мысал ретінде, төмендегі суретті қараңыз, онда SD картасы (немесе micro SD) дискісі «G: \» әрпімен берілген, енді ОЖ қалыпты пайдалануға дайын. Бірақ бұл оқулықта біз Raspberry Pi -ді бассыз режимде қолданамыз. Бұл оған физикалық монитор мен пернетақта қосылмағанын білдіреді!
  4. SD картасын күйдіргеннен кейін оны компьютерден шығармаңыз! SD картасындағы config.txt файлын ашу үшін мәтіндік редакторды пайдаланыңыз. Төменге өтіңіз және dtoverlay = dwc2 соңғы жол ретінде қосыңыз:
  5. Config.txt файлын кәдімгі мәтін ретінде сақтаңыз, содан кейін cmdline.txt ашыңыз Рут күтуден кейін (бірінші жолдағы соңғы сөз) бос орын қосыңыз, содан кейін load-dwc2, g_ether модульдерін қосыңыз.
  6. Енді SD картасын компьютерден шығарып, оны Raspberry Pi -ге салыңыз және компьютерге USB кабелі арқылы қосыңыз. ОЖ жүктелгеннен кейін сіз жаңа Ethernet гаджетінің табылғанын көресіз.
  7. Сіз тақтаға қосылуға және оны қашықтан басқаруға ssh [email protected] пайдалана аласыз.

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 Ақырында, кітапхана сәтті құрастырылғаннан кейін, біз оны питонға орната аламыз:

cd python && sudo python setup.py install Енді светодиодты басқаратын питон коды келеді. Код сізге көмектесу үшін кейбір түсініктемелермен өте қарапайым. неопиксель импортынан * # NeoPixel конфигурациясы LED_PIN = 18 # Raspberry Pi's GPIO түйрегіші LED_BRIGHTNESS = 255 # ең қараңғыда 0 -ге, ал ең жарықта 255 -ке орнатылған LED_COUNT = 4 # Жарықдиодты пикселдердің саны = Adafruit_NeoPixel (LED_COUNT, LED_PIN, 800000, 5, False, LED_BRIGHTNESS, 0, ws. WS2811_STRIP_GRB) # Кітапхана жолағын баптаңыз.begin () strip.setPixelColor (0, Түс (255, 255, 255)) жолағын көрсету.)

ADXL345 драйвері

Біз таңдаған акселерометр сенсорында сыртқы әлеммен байланысқа арналған I2C интерфейсі бар. Бақытымызға орай, Raspberry Pi -де I2C интерфейсі бар. Біз оны тек біздің кодта қолдануға мүмкіндік беруіміз керек.

Sudo raspi-config көмегімен Raspbian конфигурация құралына қоңырау шалыңыз. Іске қосылғаннан кейін Interfacing Options, Advanced Options тармағына өтіңіз, содан кейін I2C қосыңыз. Python -да I2C интерфейсін пайдалану үшін тиісті python модульдерін орнатыңыз:

sudo apt-get install python-smbus i2c-tools Келесі питон коды акселерометр сенсорымен байланысуға және өз мақсатымыз үшін оның регистр мәндерін оқуға мүмкіндік береді. smbus импорттау құрылымы # Акселерометр конфигурациялары шинасы = smbus. SMBus (1) адрес = 0x53 пайда = 3.9e-3 bus.write_byte_data (мекенжай, 45, 0x00) # Күту режиміне өту bus.write_byte_data (мекенжай, 44, 0x06) # 6,5 Гц өткізу қабілеттілігі bus.write_byte_data (мекенжай, 45, 0x08) # Өлшеу режиміне өтіңіз («> hhh», буфер (bytearray (buf)), 0)

x = float (data [0]) * пайда

y = float (деректер [1]) * пайда

z = float (деректер [2]) * пайда

Қозғалыс детекторы

Біз жасап жатқан жарықтың бір ерекшелігі - ол интерактивті режимге (жарық айналуға байланысты өзгереді) және ауа райын болжау режиміне (ауа райы болжамына байланысты жарық өзгеретін) өту үшін қозғалысты (немесе жетіспеушілікті) анықтай алады. бүгінге). Келесі код 3-осьтің үдеу мәндерін оқу және қозғалыс болған кезде бізге ескерту үшін алдыңғы функцияны қолданады.

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:

басып шығару «жылжытылды»

жылжытылды = Рас

басқа:

жылжытылды = Жалған

Ауа райы API

Ауа райы болжамын алу үшін біз Yahoo Weather -ды қолдана аламыз. Бұл өте күрделі болуы мүмкін Yahoo Weather Rest API -мен сөйлесуді қамтиды. Бақытымызға орай, біз үшін қиын бөлігі python үшін ауа райы-api модулі түрінде қарастырылған.

  1. Алдымен бізге бұл модульді орнату қажет: sudo apt install python-pip && sudo pip install weather-api
  2. Бұл модуль туралы қосымша ақпарат алу үшін автордың веб -сайтына кіріңіз.

Келесі кодты орнатқаннан кейін ауа райы жағдайы осы сәтте шығады

ауа райы импортынан Weatherweather = Ауа райы ()

орналасуы = ауа райы.lookup_by_location ('dublin')

шарт = орналасу.шарт ()

басып шығару (шарт.текст ())

Бәрін біріктіру

Жоғарыда аталған барлық бөліктерді байланыстыратын жобаның толық кодын мына жерден табуға болады.

Python сценарийін жүктеу кезінде автоматты түрде іске қосу

Таңқурай пиін қорапқа салып, оны қуат көзіне қосқан сайын біздің кодты іске қосу үшін біз жүктеу кезінде кодтың автоматты түрде іске қосылғанына көз жеткізуіміз керек. Ол үшін cron деп аталатын құралды қолданамыз.

  1. Алдымен cron құралына қоңырау шалыңыз: sudo crontab -e
  2. Алдыңғы қадамдар конфигурация файлын ашады, оған келесі жолды қосамыз:

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

4 -қадам: Модельдеу және 3D басып шығару

Модельдеу және 3D басып шығару
Модельдеу және 3D басып шығару
Модельдеу және 3D басып шығару
Модельдеу және 3D басып шығару

Plus 3D моделі Solidworks -те жасалған,. Stl форматында сақталған. Содан кейін 3D басып шығару үшін. Stl файлы Cura бағдарламалық жасақтамасында импортталды. Плюстың әр жағын өндіруге 2:30 сағ қажет болды; сондықтан әрбір толық плюс шамамен 5 сағатты басып шығарды. Ал мөлдір жақтар үшін плексигласс лазермен кесілген.

5 -қадам: құрастыру

Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея

3D басып шығарылған бөліктің, электрониканың және бағдарламалық қамтамасыз етудің көмегімен біз түпкілікті өнімді жинай аламыз.

  1. 3D басып шығарылған үстіңгі және астыңғы тақтайшалар біз күткеннен гөрі мөлдір болып шықты. Алюминий фольга қабаты жарық ағу мәселесін шешті.
  2. Алайда, бұл парақтар өткізгіш болып табылады және біздің қорғалмаған тізбегімізде қысқа туғызуы мүмкін. Сонымен, ақ картаның тағы бір қабаты үстіне жабыстырылады.
  3. Диффузиялық плексиглас сегменттері бүйірлік тақталардың біріне жабыстырылады.
  4. 3D басып шығарылған бүйірлік панельдердің бірінде тесік бұрғыланады. Бұл электр сымынан өту үшін қажет.
  5. Қуат сымы тесік арқылы орнатылғаннан кейін біз оны прототиптік тақтаға дәнекерлейміз.
  6. Біз сенсорды таңқурай пиіне бекітеміз, содан кейін оны коннекторға қосамыз.
  7. Біз соңғы өнімді алу үшін 2 бөлікті біріктіреміз.
  8. Қажет болса, тұрақты қосылым жасау үшін 2 бөлікті желімдеуге болады. Есіңізде болсын, егер сіз кодты кейінірек өзгерткіңіз келсе, жабылғаннан кейін қорапқа кіру қиын болуы мүмкін.

Ұсынылған: