Мазмуну:

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

Video: TfCD - Plus: 7 кадам

Video: TfCD - Plus: 7 кадам
Video: TFCD Arduino face tracking device 2024, Июль
Anonim
Image
Image
Курамы
Курамы

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

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

Курамы
Курамы
Курамы
Курамы

1 Raspberry pi zero w

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

4 Ws2812b LED

1 Прототип тактасы

3D басылган жана лазер менен кесилген корпустар

2 -кадам: Аппараттык

Аппараттык
Аппараттык
Аппараттык
Аппараттык
Аппараттык
Аппараттык
Аппараттык
Аппараттык

LED

Neopixel LEDдеринде 4 пин бар: +5V, GND, Data In жана Data out.

  1. Малина пи 4 -пин бардык светодиоддордун +5V туташкан
  2. Малина пи 6 -пин бардык LEDs GND менен туташкан
  3. Биринчи LEDдин пин -коду малина пи боюнча 12 -пинге туташтырылган.
  4. Биринчи светодиоддун маалымат чыккычы экинчисиндеги маалыматтар менен байланышкан жана башкалар.

Сураныч, жакшыраак түшүнүү үчүн зымдардын схемасын карап көрүңүз.

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

Акселерометрдин 4 казыгы бар: VCC, GND, SDA жана SCL.

  1. Малина пинин 1 пини VCCге туташкан.
  2. Малина пинин 3 -пини SCLге туташкан.
  3. Малина пинин 5 -пини SDAга туташкан.
  4. Малина пинин 9 -пини GND менен туташкан.

Build

  1. Ыңгайлуулук үчүн, LEDлерди прототипдөө тактасына ширетүүгө болот. Биз плитаны плюс формасында кесүүнү чечтик, ал 3D иштелип чыккан корпустун ичине туура келет.
  2. LEDди бортто ширеткенден кийин, 0.1 дюймдук баштык менен светодиоддордун ортосундагы байланышты түзүү үчүн биз секирүүчү зымдарды ширетебиз. Баштын туташтыргычы малина пинин ажыратылышы үчүн жана келечектеги долбоор үчүн кайра колдонулушу үчүн колдонулат.

3 -кадам: Программалык камсыздоо

Программалык камсыздоо
Программалык камсыздоо

Raspberry Pi иштетүү тутумунун сүрөтү

Биз адегенде Raspberry Pi'ни ишке киргизишибиз керек. Бул үчүн биз төмөнкү кадамдарды аткарабыз:

  1. Бул жерден Raspbianдин акыркы версиясын жүктөп алыңыз. Түздөн -түз же torrents аркылуу жүктөп алсаңыз болот. Жүктөлгөн ОСти SD картага жазуу үчүн сүрөт жазуучу керек болот (Raspberry Pi B+ модели жана Raspberry Pi Zero болгон учурда микро SD карта).
  2. Андыктан бул жерден "win32 дискти көрүүчү" жүктөп алыңыз. SD картаны ноутбукка/компьютерге салыңыз жана сүрөт жазуучуну иштетиңиз. Ачкандан кийин, карап чыгып, жүктөлүп алынган Raspbian сүрөт файлын тандаңыз. Туура түзүлүштү тандаңыз, башкача айтканда SD картаны көрсөтүүчү диск. Эгерде тандалган диск (же түзмөк) SD картадан башка болсо, анда башка тандалган диск бузулат. СОБО этият болуңуз.
  3. Андан кийин, астындагы "Жазуу" баскычын чыкылдатыңыз. Мисал катары, төмөндөгү сүрөттү караңыз, анда SD карт (же микро SD) диск "G: \" тамгасы менен көрсөтүлгөн, OS азыр кадимки колдонууга даяр. Бирок бул үйрөткүчтө биз Raspberry Pi'ни башсыз режимде колдонобуз. Бул физикалык монитор жана клавиатура тиркелбегенин билдирет!
  4. SD картаны күйгүзгөндөн кийин, аны компьютериңизден чыгарбаңыз! SD картадагы config.txt файлын ачуу үчүн текст редакторун колдонуңуз. Төмөнгө барып, dtoverlay = dwc2 катары акыркы сапты кошуңуз:
  5. Config.txt файлын жөнөкөй текст катары сактап, андан кийин cmdline.txt ачыңыз Rootwait кийин (биринчи саптагы акыркы сөз) боштукту кошуп, анан модулдарды жүктөңүз = dwc2, g_ether.
  6. Эми компьютериңизден SD картаны алып салыңыз жана аны Raspberry Piге салып, USB кабели аркылуу компьютериңизге туташтырыңыз. OS жүктөлгөндөн кийин, сиз жаңы Ethernet гаджетинин ачылып жатканын көрүшүңүз керек.
  7. Сиз ssh [email protected] тактага туташуу жана аны алыстан башкаруу үчүн колдонсоңуз болот.

Rpi_ws281x китепканасы - Raspberry Pi менен NeoPixels колдонууну мүмкүн кылган ачкыч.

Адегенде биз китепкананы түзүүгө керектүү шаймандарды орнотушубуз керек. 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 орнотуу Эми LEDди айдаган python коду келет. Код сизге жардам берүү үчүн кээ бир комментарийлер менен абдан жөнөкөй. neopixel импортунан * # NeoPixel конфигурациялары LED_PIN = 18 # Raspberry Piнин GPIO пин пикселине туташкан 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) # Китепкана тилкесин баштоо.begin () strip.setPixelColor (0, Түс (255, 255, 255)) strip.show ()

ADXL345 айдоочу

Биз тандаган акселерометрдин сенсорунда тышкы дүйнө менен байланышуу үчүн I2C интерфейси бар. Бактыга жараша, Raspberry Pi I2C интерфейсине ээ. Биз аны өзүбүздүн коддо колдонууга мүмкүнчүлүк беришибиз керек.

Sudo raspi-config аркылуу Raspbian конфигурация куралын чакырыңыз. Иштегенден кийин, Interfacing Options, Advanced Options бөлүмүнө өтүп, I2Cди иштетиңиз. 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.5Hz bus.write_byte_data (дарек, 45, 0x08) # Өлчөө режимине өтүү # Сенсордон маалыматтарды окуу buf = bus.read_i2c_block_data (дарек, 50, 6) ("> hhh", буфер (bytearray (buf)), 0)

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

y = калкып чыгуу (маалымат [1]) * пайда

z = калкып чыгуу (маалымат [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 менен сүйлөшүүнү камтыйт. Бактыга жараша, биз үчүн оор бөлүгү питон үчүн аба-ырайы модели түрүндө кам көрүлөт.

  1. Адегенде биз бул модулду орнотушубуз керек: sudo apt install python-pip && sudo pip install weather-api
  2. Сураныч, бул модуль жөнүндө көбүрөөк маалымат алуу үчүн автордун вебсайтына баш багыңыз.

Төмөнкү кодду орноткондон кийин, ушул учурдагы аба ырайынын абалын алат

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

жайгашуу = weather.lookup_by_location ('dublin')

шарты = жайгашуусу.шарт ()

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

Баарын бириктирүү

Жогорудагы бөлүктөрдүн бардыгын бириктирген долбоордун бүт кодун бул жерден тапса болот.

Python скриптин жүктөө учурунда автоматтык түрдө баштоо

Малинаны пи кутусуна салып, аны кубатка туташтырган сайын кодубузду иштетип туруу үчүн, код жүктөө учурунда автоматтык түрдө башталганына ынануубуз керек. Бул үчүн биз cron деп аталган куралды колдонобуз.

  1. Адегенде cron куралын чакырыңыз: sudo crontab -e
  2. Мурунку кадамдар конфигурация файлын ачат, анда биз төмөнкү сапты кошобуз:

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

4 -кадам: Моделдөө жана 3D Басып чыгаруу

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

Плюстун 3D модели Solidworksто жасалган жана. Stl форматында сакталган. Андан кийин моделди 3D басып чыгаруу үчүн. Stl файлы Cura программасына импорттолгон. Плюстун ар бир тарабын өндүрүү үчүн 2:30 саат талап кылынган; Ошентип, ар бир толук плюс 5 сааттай басып чыгарылды. Ал эми тунук жактары үчүн плексигласс лазер менен кесилген.

5 -кадам: Ассамблея

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

3D басып чыгарылган бөлүк, электроника жана программалык камсыздоо менен биз акыры акыркы продуктту чогулта алабыз.

  1. 3D басып чыгарылган үстүнкү жана астындагы плиталар биз күткөндөн да тунук болуп чыкты. Алюминий фольгасынын катмары жарык агуу маселесин чечти.
  2. Бирок, бул барактар өткөргүч болуп саналат жана биздин корголбогон схеманын ичинде шорт пайда болушу мүмкүн. Ошентип, үстүнө ак карточканын дагы бир катмары жабыштырылган.
  3. Диффуздуу Плексиглас сегменттери каптал плиталардын бирине жабыштырылган.
  4. 3D басылган панелдердин биринде тешик бургуланган. Бул биз электр зымынан өтүшүбүз үчүн.
  5. Бир жолу, электр шнуру тешик аркылуу орнотулганда, биз аны прототипдөө тактабызга кошобуз.
  6. Биз сенсорду малина пи -ге тиркеп, анан туташтыргычка туташтырабыз.
  7. Биз акыркы продукт алуу үчүн 2 бөлүгүн бириктиребиз.
  8. Кааласаңыз, туруктуу туташуу үчүн 2 бөлүктү жабыштырсаңыз болот. Бирок, кийинчерээк кодду өзгөрткүңүз келсе, жабышкандан кийин кутуга кирүү кыйын болушу мүмкүн экенин билиңиз.

Сунушталууда: