Mündəricat:

TfCD - Plus: 7 addım
TfCD - Plus: 7 addım

Video: TfCD - Plus: 7 addım

Video: TfCD - Plus: 7 addım
Video: Build and Deploy a LeetCode Clone with React: Next JS, TypeScript, Tailwind CSS, Firebase | Part 2 2024, Iyul
Anonim
Image
Image
Tərkibi
Tərkibi

Plus, insanlara hava şəraiti haqqında məlumat verməklə yanaşı, üstəgəl fırladaraq işığın rəngində edilən dəyişikliklərlə istifadəçilər üçün xoş bir təcrübə yaradan minimal ağıllı işıqdır. Onun forması istifadəçiyə bir neçə artı modulu birləşdirmək və ya dostları tərəfindən yerləşdirilmiş çoxlu ədədləri olan böyük bir lampa yaratmaq imkanı verir. Bu işıqlandırma layihəsi, TU Delft universitetindəki Advanced Concept Design (ACD) kursunun bir hissəsidir və ilham mənbəyi olaraq TfCD praktik istifadə edərək tətbiq olunan texnologiyadır.

Addım 1: Tərkibi

Tərkibi
Tərkibi
Tərkibi
Tərkibi

1 Moruq pi sıfır w

1 Groove Adxl345 sürətləndirici

4 Ws2812b LED

1 Prototip lövhəsi

3D çaplı və lazerlə kəsilmiş korpuslar

Addım 2: Avadanlıq

Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq

LEDlər

Neopixel LED -lərində 4 pin adlanır: +5V, GND, Data Giriş və Məlumat çıxışı.

  1. Moruq pi -nin 4 -cü pimi bütün LED -lərin +5V -ə bağlıdır
  2. Moruq pi 6 -cı pin bütün LED -lərin GND -nə bağlıdır
  3. İlk LED -in pin girişi moruq pi -nin 12 -ci pininə bağlıdır.
  4. Birinci LED -in Məlumat çıxışı, ikincisinin Məlumatına və s.

Daha yaxşı başa düşmək üçün zəhmət olmasa tel sxeminə baxın.

Akselerometr

Akselerometrdə 4 pin adlanır: VCC, GND, SDA və SCL.

  1. Moruq pi -nin 1 -ci pin VCC -yə bağlıdır.
  2. Moruq pi -nin 3 -cü pin SCL -ə bağlıdır.
  3. Moruq pi pi 5 -ci pin SDA -ya bağlıdır.
  4. Moruq pi -nin pin 9 -u GND -yə bağlıdır.

Qurmaq

  1. Rahatlıq üçün LEDlər prototip lövhəsinə lehimlənə bilər. Lövhəni bir artı şəklində kəsmək qərarına gəldik ki, 3D dizaynlı qutuya yaxşı uyğun olsun.
  2. LEDləri lövhəyə lehimlədikdən sonra, 0.1 düymlük başlıq ilə LED-lər arasında əlaqə qurmaq üçün tullanan telləri lehimləyirik. Başlıq konnektoru, kəsilmiş moruq pi-nin gələcək layihə üçün yenidən istifadə edilməsi üçün istifadə olunur.

Addım 3: Proqram təminatı

Proqram təminatı
Proqram təminatı

Raspberry Pi Əməliyyat Sistemi Şəkili

Əvvəlcə Raspberry Pi -ni işə salmalıyıq. Bunu etmək üçün aşağıdakı adımları yerinə yetiririk:

  1. Raspbian -ın son versiyasını buradan yükləyin. Yüklədiyiniz OS -ni SD karta (Raspberry Pi B+ modeli və Raspberry Pi Zero halda mikro SD kart) yazmaq üçün bir şəkil yazarına ehtiyacınız olacaq.
  2. Beləliklə, "win32 disk görüntüləyicisini" buradan yükləyin. SD kartı dizüstü kompüterə daxil edin və görüntü yazıcısını işə salın. Açıldıqdan sonra yüklənmiş Raspbian görüntü faylına göz atın və seçin. Doğru cihazı seçin, yəni SD kartı təmsil edən sürücü. Seçilən sürücü (və ya cihaz) SD kartdan fərqlidirsə, digər seçilmiş sürücü xarab olacaq. SO ehtiyatlı olun.
  3. Bundan sonra, altındakı "Yaz" düyməsini basın. Nümunə olaraq, aşağıdakı şəkilə baxın, burada SD kart (və ya micro SD) sürücüsü "G: \" hərfi ilə təmsil olunur, OS artıq normal istifadəyə hazırdır. Ancaq bu dərsdə Raspberry Pi -ni başsız rejimdə istifadə edəcəyik. Bu, fiziki monitor və klaviatura əlavə etmədən deməkdir!
  4. SD kartı yandırdıqdan sonra onu kompüterdən çıxarmayın! SD kartdakı config.txt faylını açmaq üçün mətn redaktorundan istifadə edin. Aşağıya gedin və son sətir olaraq dtoverlay = dwc2 əlavə edin:
  5. Config.txt faylını düz mətn olaraq qeyd edin və sonra cmdline.txt açın Kök gözlədikdən sonra (ilk sətirdəki son söz) bir boşluq və sonra modullar-load = dwc2, g_ether əlavə edin.
  6. İndi SD kartı PC -dən çıxarın və Raspberry Pi -yə daxil edin və USB kabelindən istifadə edərək PC -yə qoşun. Əməliyyat sistemi işə salındıqdan sonra yeni bir Ethernet Gadget cihazının aşkarlandığını görməlisiniz.
  7. Lövhəyə qoşulmaq və uzaqdan idarə etmək üçün ssh [email protected] istifadə edə bilərsiniz. Başsız işlə bağlı daha ətraflı təlimatlar üçün bura daxil olun.

Rpi_ws281x kitabxanası, Raspberry Pi ilə NeoPixels istifadə etməyi mümkün edən əsasdır.

Əvvəlcə kitabxananı tərtib etmək üçün lazım olan alətləri quraşdırmalıyıq. Raspberry Pi işində: sudo apt-get update && sudo apt-get install build-essential python-dev git scons swig İndi kitabxananı yükləmək və tərtib etmək üçün bu əmrləri işlədin:

git clone https://github.com/jgarff/rpi_ws281x.git && cd rpi_ws281x && scons Nəhayət, kitabxana uğurla tərtib edildikdən sonra onu python üçün quraşdıra bilərik:

cd python && sudo python setup.py install İndi LEDləri idarə edən python kodu gəlir. Kod sizə kömək etmək üçün bəzi şərhlərlə olduqca sadədir. neopixel idxalından * # NeoPixel konfiqurasiyaları LED_PIN = 18 # Raspberry Pi -nin GPIO pininə bağlı LED_BRIGHTNESS = 255 # Ən qaranlıq üçün 0 -a, ən parlaq LED üçün 255 -ə ayarlayın = 4 # LED piksel şeridi sayı = Adafruit_NeoPixel (LED_COUNT, LED_PIN, 800000, 5, Yanlış, LED_BRIGHTNESS, 0, wSW2811_STRIP_GRB) # Kitabxana zolağını başladın.begin () strip.setPixelColor (0, Rəng (255, 255, 255)) strip.show ()

ADXL345 sürücü

Seçdiyimiz akselerometr sensoru xarici dünya ilə ünsiyyət qurmaq üçün I2C interfeysinə malikdir. Xoşbəxtlikdən bizim üçün Raspberry Pi də I2C interfeysinə malikdir. Yalnız öz kodumuzda istifadə etməsini təmin etməliyik.

Sudo raspi-config istifadə edərək Raspbian konfiqurasiya alətinə zəng edin. İşlədikdən sonra İnterfeys Seçimlərinə, Qabaqcıl Seçimlərə gedin və sonra I2C -ni aktivləşdirin.

sudo apt-get install python-smbus i2c-tools Aşağıdakı python kodu, akselerometr sensoru ilə əlaqə saxlamağımıza və öz məqsədlərimiz üçün onun qeyd dəyərlərini oxumağımıza imkan verir. smbus idxal strukturu # Accelerometer konfiqurasiyaları bus = smbus. SMBus (1) ünvan = 0x53 mənfəət = 3.9e-3 bus.write_byte_data (ünvan, 45, 0x00) # Gözləmə rejiminə keç bus.write_byte_data (ünvan, 44, 0x06) # Bant genişliyi 6.5Hz bus.write_byte_data (ünvan, 45, 0x08) # Ölçmə rejiminə keç # Sensordan verilənləri oxu buf = bus.read_i2c_block_data (ünvan, 50, 6) ("> hhh", tampon (bytearray (buf)), 0)

x = float (data [0]) * qazanc

y = float (data [1]) * qazanc

z = float (data [2]) * qazanc

Hərəkət Detektoru

Etdiyimiz işığın xüsusiyyətlərindən biri, interaktiv rejimə (işığın fırlanmaya görə dəyişdiyi yerdə) və hava proqnozu rejiminə (hava proqnozundan asılı olaraq işığın dəyişdiyi) hərəkəti (və ya olmaması) aşkar edə bilməsidir. bu gün üçün). Aşağıdakı kod, 3 ox üçün sürətləndirmə dəyərlərini oxumaq və hərəkət olduqda bizi xəbərdar etmək üçün əvvəlki funksiyanı istifadə edir.

sürət = getAcceleration ()

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

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

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

əgər dx> moveThreshold və ya dy To> moveThreshold və ya dz> moveThreshold:

çap "köçürüldü"

köçürüldü = Doğru

başqa:

köçürüldü = Yanlış

Hava API

Hava proqnozunu almaq üçün Yahoo Weather -dən istifadə edə bilərik. Bu, olduqca mürəkkəb ola biləcək Yahoo Weather Rest API ilə danışmağı əhatə edir. Xoşbəxtlikdən, bizim çətin hissəmiz artıq piton üçün hava-api modulu şəklində həll olunur.

  1. Əvvəlcə bu modulu quraşdırmalıyıq: sudo apt install python-pip && sudo pip install weather-api
  2. Bu modul haqqında daha ətraflı məlumat üçün müəllifin veb saytına daxil olun.

Aşağıdakı kodu yüklədikdən sonra bu an üçün hava şəraiti əldə edilir

hava idxalından Weatherweather = Hava ()

yer = weather.lookup_by_location ('dublin')

şərt = yer.şərt ()

çap et (şərt. mətn ())

Hamısını bir araya gətirmək

Yuxarıda göstərilənlərin hamısını birləşdirən layihənin bütün kodunu burada tapa bilərsiniz.

Python skriptinin açılış vaxtında avtomatik işə salınması

Moruq pi -ni bir qutuya sala bilmək və hər dəfə gücə qoşduqda kodumuzu işə salmaq üçün, açılış zamanı kodun avtomatik olaraq başladığından əmin olmalıyıq. Bunu etmək üçün cron adlı bir alətdən istifadə edirik.

  1. Əvvəlcə cron alətinə zəng edin: sudo crontab -e
  2. Əvvəlki addımlar aşağıdakı sətri əlavə etdiyimiz bir konfiqurasiya faylını açacaq:

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

Addım 4: Modelləşdirmə və 3D Çap

Modelləşdirmə və 3D çap
Modelləşdirmə və 3D çap
Modelləşdirmə və 3D çap
Modelləşdirmə və 3D çap

Plus -ın 3D modeli Solidworks -da hazırlanmış və. Stl formatında saxlanılmışdır. Sonra 3D çap üçün model,. Stl faylı Cura proqramına idxal edildi. Plyusun hər tərəfi istehsal etmək üçün 2:30 saat çəkdi; buna görə hər bir tam Plus çap etmək üçün təxminən 5 saat çəkdi. Şəffaf tərəflər üçün pleksiglas lazerlə kəsilmişdir.

Addım 5: Montaj

Məclis
Məclis
Məclis
Məclis
Məclis
Məclis
Məclis
Məclis

3D çaplı hissə, elektronika və proqram təminatı ilə nəhayət son məhsulu yığa bilərik.

  1. 3D çaplı üst və alt lövhələr, gözlənildiyindən daha şəffaf oldu. Alüminium folqa təbəqəsi işıq sızıntısı problemini həll etdi.
  2. Bununla birlikdə, bu təbəqələr keçiricidir və qorunmayan dövrəmizdə şortlara səbəb ola bilər. Bunun üzərinə başqa bir ağ kart lövhəsi yapışdırılır.
  3. Diffuz Pleksiglas seqmentləri yan lövhələrdən birinə yapışdırılır.
  4. Yan tərəfdəki 3D çaplı panellərdən birində bir çuxur qazılır. Bu, elektrik kabelindən keçə bilməyimiz üçündür.
  5. Elektrik kabeli çuxurdan quraşdırıldıqdan sonra prototip lövhəmizə lehimləyirik.
  6. Sensoru moruq pi -yə bağlayırıq və sonra bağlayıcıya bağlayırıq.
  7. Son məhsulu əldə etmək üçün 2 parçanı bir -birinə bağlayırıq.
  8. İsteğe bağlı olaraq, daha daimi bir əlaqə yaratmaq üçün 2 parçanı yapışdıra bilərsiniz. Ancaq unutmayın ki, daha sonra kodu dəyişdirmək istəyirsinizsə, yapışdırıldıqdan sonra qutuya girmək çətin ola bilər.

Tövsiyə: