Агуулгын хүснэгт:

TfCD - Plus: 7 алхам
TfCD - Plus: 7 алхам

Видео: TfCD - Plus: 7 алхам

Видео: TfCD - Plus: 7 алхам
Видео: TFCD Arduino face tracking device 2024, Арваннэгдүгээр
Anonim
Image
Image
Найрлага
Найрлага

Plus бол хамгийн бага ухаалаг гэрэл бөгөөд энэ нь цаг агаарын нөхцөл байдлын талаар хүмүүст мэдэгдэхээс гадна нэмэх дээр эргүүлэх замаар гэрлийн өнгөний өөрчлөлтөөр хэрэглэгчдэд таатай сэтгэгдэл төрүүлдэг. Түүний хэлбэр нь хэрэглэгчдэд хэд хэдэн нэмэх модулийг хослуулах эсвэл найз нөхдийнхөө байрлуулсан олон нэмэлт хэсгүүд бүхий асар том чийдэнг бүтээх боломжийг олгодог. Энэхүү гэрэлтүүлгийн төсөл нь 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 and Data out.

  1. Бөөрөлзгөнө pi -ийн 4 -р зүү нь бүх LED -ийн +5V -тэй холбогддог
  2. Бөөрөлзгөнө pi -ийн 6 -р зүү нь бүх LED -ийн GND -тэй холбогддог
  3. Эхний LED -ийн өгөгдлийн зүү нь бөөрөлзгөнө pi дээрх 12 -р зүүтэй холбогдсон байна.
  4. Эхний LED -ийн өгөгдөл гадагшлуулах зүү нь хоёр дахь болон бусад гэх мэт өгөгдөлтэй холбогддог.

Илүү сайн ойлгохын тулд утасны диаграмыг үзнэ үү.

Хурдасгуур

Акселерометр нь VCC, GND, SDA, SCL гэсэн 4 тээглүүртэй.

  1. Бөөрөлзгөнө pi -ийн 1 -р зүү нь VCC -тэй холбогдсон байна.
  2. Бөөрөлзгөнө pi -ийн 3 -р зүү нь SCL -тэй холбогдсон байна.
  3. Бөөрөлзгөнө pi -ийн 5 -р зүү нь SDA -тай холбогдсон байна.
  4. Бөөрөлзгөнө pi -ийн 9 -р зүү GND -тэй холбогдсон байна.

Бүтээх

  1. Тохиромжтой болгохын тулд LED -ийг прототип хийх самбар дээр гагнах боломжтой. Бид самбарыг 3 хэмжээст дизайнтай хайрцагт сайн нийцүүлэхийн тулд нэмэх хэлбэрийг нь хасахаар шийдсэн.
  2. Бид LED-ийг самбар дээр гагнаж дууссаны дараа 0.1 инч толгой ба LED-ийн хоорондох холболтыг хийхийн тулд холбогч утсыг гагнана. Толгой холбогч нь бөөрөлзгөнө pi-ийг салгаж, ирээдүйн төсөлд дахин ашиглахад ашигладаг.

Алхам 3: Програм хангамж

Програм хангамж
Програм хангамж

Raspberry Pi үйлдлийн системийн зураг

Бид эхлээд Raspberry Pi -ийг ажиллуулах хэрэгтэй. Үүнийг хийхийн тулд бид дараах алхмуудыг дагана уу.

  1. Raspbian -ийн хамгийн сүүлийн хувилбарыг эндээс татаж аваарай. Татаж авсан OS -ийг SD картанд (Raspberry Pi B+ загвар болон Raspberry Pi Zero тохиолдолд микро SD карт) бичихийн тулд танд зураг зохиогч хэрэгтэй болно.
  2. Тиймээс "win32 диск дүрслэгч" -ийг эндээс татаж аваарай. SD картыг зөөврийн компьютер/компьютерт оруулаад зураг бичигчийг ажиллуулна уу. Нээгдсэний дараа татаж авсан Raspbian зургийн файлыг үзэж, сонгоно уу. Зөв төхөөрөмжийг сонгоно уу, энэ нь SD картыг төлөөлдөг хөтөч юм. Хэрэв сонгосон драйвер (эсвэл төхөөрөмж) нь SD картнаас өөр байвал бусад сонгосон драйвер эвдэрнэ. Тиймээс болгоомжтой байгаарай.
  3. Үүний дараа доод хэсэгт байрлах "бичих" товчийг дарна уу. Жишээ болгон SD карт (эсвэл micro SD) хөтчийг "G: \" үсгээр дүрсэлсэн доорх зургийг үзнэ үү. OS одоо хэвийн хэрэглээнд бэлэн боллоо. Гэсэн хэдий ч энэ гарын авлагад бид Raspberry Pi -ийг толгойгүй горимд ашиглах гэж байна. Энэ нь физик дэлгэц, гар хавсаргаагүй гэсэн үг юм!
  4. SD картыг шатаасны дараа компьютераасаа бүү гаргаарай! Текст засварлагч ашиглан SD картанд байгаа config.txt файлыг нээнэ үү. Доод тал руу ороод dtoverlay = dwc2 -г сүүлчийн мөр болгон нэмнэ үү.
  5. Config.txt файлыг энгийн текст хэлбэрээр хадгалаад cmdline.txt-ийг нээнэ үү Rootwait-ийн дараа (эхний мөрөн дэх сүүлчийн үг) зай нэмж, дараа нь modules-load = dwc2, g_ether.
  6. Одоо SD картаа компьютерээсээ аваад Raspberry Pi -д оруулаад USB кабель ашиглан компьютерт холбоно уу. OS -ийг ачаалсны дараа та шинэ Ethernet Gadget төхөөрөмжийг олж илрүүлж байгааг харах хэрэгтэй.
  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 install Одоо LED -ийг удирддаг питон код ирдэг. Код нь танд туслахын тулд зарим тайлбарыг өгөхөд маш энгийн юм. neopixel импортоос * # NeoPixel тохиргоо LED_PIN = 18 # Raspberry Pi -ийн GPIO зүү нь пикселтэй холбогдсон байна LED_BRIGHTNESS = 255 # Хамгийн харанхуйд 0, хамгийн тод LED -д 255 -д тохируулсан = 4 # LED пикселийн зурвасын тоо = Adafruit_NeoPixel (LED_COUNT, LED_PIN, 800000, 5, Худал, 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 -ийг идэвхжүүлнэ үү.

sudo apt-get install python-smbus i2c-tools Дараахь питон код нь акселерометрийн мэдрэгчтэй харилцах, бүртгэлийн утгыг өөрийн зорилгоор унших боломжийг олгодог. smbus импортын бүтэц # Accelerometer-ийн тохиргоо bus = 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 (өгөгдөл [0]) * олз

y = хөвөх (өгөгдөл [1]) * олз

z = хөвөх (өгөгдөл [2]) * олз

Хөдөлгөөн илрүүлэгч

Бидний хийж буй гэрлийн нэг онцлог шинж чанар нь интерактив горимд (гэрэл нь эргэлтэнд үндэслэн өөрчлөгддөг), цаг агаарын урьдчилсан мэдээний горимд (цаг агаарын урьдчилсан мэдээнээс хамаарч гэрэл өөрчлөгддөг) хөдөлгөөнийг (эсвэл байхгүй байгааг) илрүүлж чаддаг явдал юм. Өнөөдрийн хувьд). Дараах код нь өмнөх функцийг ашиглан 3 тэнхлэгийн хурдатгалын утгыг уншиж, хөдөлгөөн байгаа үед бидэнд мэдэгдэнэ.

accel = getAcceleration ()

dx = abs (өмнөхAccel [0] - accel [0])

dy = abs (өмнөхAccel [1] - accel [1])

dz = abs (өмнөхAccel [2] - accel [2])

хэрэв dx> moveThreshold эсвэл dy To> moveThreshold эсвэл dz> moveThreshold бол:

хэвлэх "шилжсэн"

шилжсэн = Үнэн

өөр:

шилжсэн = Худал

Цаг агаарын API

Цаг агаарын урьдчилсан мэдээг авахын тулд бид Yahoo Weather -ийг ашиглаж болно. Энэ нь нэлээд төвөгтэй байж болох Yahoo Weather Rest API -тай ярилцах явдал юм. Аз болоход бидний хувьд хэцүү хэсгийг питоны цаг агаар-api модуль хэлбэрээр аль хэдийн шийдсэн болно.

  1. Эхлээд бид энэ модулийг суулгах хэрэгтэй: sudo apt install python-pip && sudo pip install weather-api
  2. Энэхүү модулийн талаар дэлгэрэнгүй мэдээлэл авахыг хүсвэл зохиогчийн вэбсайтад зочилно уу.

Дараах кодыг суулгасны дараа тухайн цаг агаарын нөхцөл байдлыг авна

цаг агаарын импортоос Weatherweather = Цаг агаар ()

байршил = цаг агаар

нөхцөл = байршил. нөхцөл ()

хэвлэх (нөхцөл.текст ())

Энэ бүгдийг нэгтгэж байна

Дээрх бүх хэсгүүдийг холбосон төслийн бүх кодыг эндээс олж болно.

Ачаалах үед python скриптийг автоматаар эхлүүлэх

Бөөрөлзгөнө pi -ийг хайрцагт хийж, хүчдэлд холбох тоолондоо кодоо ажиллуулахын тулд ачаалах явцад кодыг автоматаар эхлүүлсэн эсэхийг шалгах ёстой. Үүнийг хийхийн тулд бид cron хэмээх хэрэгслийг ашигладаг.

  1. Эхлээд cron хэрэгслийг дуудна уу: sudo crontab -e
  2. Өмнөх алхамууд нь тохиргооны файлыг нээх бөгөөд үүнд бид дараах мөрийг нэмнэ.

    @дахин ачаалах python /home/pi/light.py &

Алхам 4: Загварчлал ба 3D хэвлэх

Загварчлал ба 3D хэвлэх
Загварчлал ба 3D хэвлэх
Загварчлал ба 3D хэвлэх
Загварчлал ба 3D хэвлэх

Plus -ийн 3D загварыг Solidworks -д хийсэн бөгөөд. Stl форматаар хадгалсан болно. Дараа нь загварыг 3D хэвлэхийн тулд. Stl файлыг Cura програм дээр оруулж ирсэн. Нэмэлт тал бүрийг үйлдвэрлэхэд 2:30 цаг зарцуулсан; Тиймээс бүтэн Plus бүрийг хэвлэхэд ойролцоогоор 5 цаг зарцуулсан. Ил тод талуудын хувьд plexiglass нь лазераар зүсэгдсэн байв.

Алхам 5: Чуулган

Чуулган
Чуулган
Чуулган
Чуулган
Чуулган
Чуулган
Чуулган
Чуулган

3D хэвлэсэн хэсэг, электроник, програм хангамжийн тусламжтайгаар бид эцсийн бүтээгдэхүүнээ угсарч болно.

  1. 3D хэвлэсэн дээд ба доод хавтан нь бидний бодож байснаас илүү ил тод болсон. Хөнгөн цагаан тугалган цаас нь гэрэл алдагдах асуудлыг шийдсэн.
  2. Гэсэн хэдий ч эдгээр хуудас нь дамжуулагч бөгөөд хамгаалалтгүй хэлхээнд богино холболт үүсгэдэг. Тиймээс цагаан картны өөр нэг давхаргыг дээрээс нь наасан байна.
  3. Plexiglas -ийн сарнисан сегментүүдийг хажуугийн хавтангийн аль нэгэнд наасан байна.
  4. Хажуугийн 3D хэвлэмэл хавтангийн аль нэгэнд нүх гаргадаг. Энэ нь бид цахилгааны утсаар дамжих боломжтой юм.
  5. Цахилгааны утсыг нүхээр холбосны дараа бид түүнийг загварчлалын самбар дээр гагнана.
  6. Бид мэдрэгчийг бөөрөлзгөнө pi -д залгаад дараа нь холбогч руу залгана.
  7. Бид эцсийн бүтээгдэхүүнээ авахын тулд 2 ширхэгийг холбоно.
  8. Нэмэлт холболт хийхийн тулд та 2 хэсгийг нааж болно. Гэсэн хэдий ч хэрэв та кодыг дараа нь өөрчлөхийг хүсч байвал нааж дууссаны дараа хайрцагт орох нь хэцүү байж магадгүй гэдгийг анхаарна уу.

Зөвлөмж болгож буй: