Daftar Isi:

TfCD - Plus: 7 Langkah
TfCD - Plus: 7 Langkah

Video: TfCD - Plus: 7 Langkah

Video: TfCD - Plus: 7 Langkah
Video: Про риски работы на условиях TFP #макияж #макияжмосква #tfp 2024, Juli
Anonim
Image
Image
Bahan-bahan
Bahan-bahan

Plus adalah lampu pintar minimal, yang tidak hanya memberi tahu orang tentang kondisi cuaca, tetapi juga menciptakan pengalaman yang menyenangkan bagi pengguna dengan mengubah warna cahaya dengan memutar plus. Bentuknya memberi pengguna kesempatan untuk menggabungkan beberapa modul plus atau membuat lampu besar dengan banyak potongan plus yang ditempatkan oleh teman. Proyek pencahayaan ini merupakan bagian dari mata kuliah Advanced Concept Design (ACD) di universitas TU Delft, dan teknologinya diimplementasikan dengan menggunakan praktik TfCD sebagai sumber inspirasi.

Langkah 1: Bahan

Bahan-bahan
Bahan-bahan
Bahan-bahan
Bahan-bahan

1 Raspberry pi nol w

1 Groove Adxl345 akselerometer

4 Ws2812b LED

1 papan prototipe

Penutup cetak 3D dan potong laser

Langkah 2: Perangkat Keras

Perangkat keras
Perangkat keras
Perangkat keras
Perangkat keras
Perangkat keras
Perangkat keras
Perangkat keras
Perangkat keras

LED

LED Neopixel memiliki 4 pin bernama: +5V, GND, Data In dan Data out.

  1. Pin 4 dari raspberry pi terhubung ke +5V dari semua LED
  2. Pin 6 dari raspberry pi terhubung ke GND semua LED
  3. Data Dalam pin LED pertama terhubung ke pin 12 pada raspberry pi.
  4. Pin Data keluar dari LED pertama terhubung ke Data masuk kedua dan seterusnya.

Silakan lihat diagram pengkabelan untuk pemahaman yang lebih baik.

Akselerometer

Akselerometer memiliki 4 pin bernama: VCC, GND, SDA dan SCL.

  1. Pin 1 dari raspberry pi terhubung ke VCC.
  2. Pin 3 dari raspberry pi terhubung ke SCL.
  3. Pin 5 dari raspberry pi terhubung ke SDA.
  4. Pin 9 dari raspberry pi terhubung ke GND.

Membangun

  1. Untuk kenyamanan, LED dapat disolder ke papan prototipe. Kami telah memutuskan untuk memotong papan menjadi bentuk plus sehingga cocok dengan kasing yang dirancang 3D.
  2. Setelah kami menyolder LED di papan, kami menyolder kabel jumper untuk membuat koneksi antara konektor 0,1" dan LED. Konektor header digunakan untuk memungkinkan raspberry pi terputus dan digunakan kembali untuk proyek mendatang.

Langkah 3: Perangkat Lunak

Perangkat lunak
Perangkat lunak

Gambar Sistem Operasi Raspberry Pi

Pertama-tama kita harus mengaktifkan dan menjalankan Raspberry Pi. Untuk melakukan ini, kami mengikuti langkah-langkah ini:

  1. Unduh versi terbaru Raspbian dari sini. Anda dapat mengunduhnya secara langsung atau melalui torrent. Anda akan memerlukan penulis gambar untuk menulis OS yang diunduh ke dalam kartu SD (kartu micro SD untuk model Raspberry Pi B+ dan Raspberry Pi Zero).
  2. Jadi unduh "win32 disk imager" dari sini. Masukkan kartu SD ke dalam laptop/pc dan jalankan image writer. Setelah terbuka, telusuri dan pilih file gambar Raspbian yang diunduh. Pilih perangkat yang benar, yaitu drive yang mewakili kartu SD. Jika drive (atau perangkat) yang dipilih berbeda dari kartu SD, maka drive lain yang dipilih akan rusak. JADI hati-hati.
  3. Setelah itu, klik tombol "Tulis" di bagian bawah. Sebagai contoh, lihat gambar di bawah, di mana drive kartu SD (atau micro SD) diwakili oleh huruf "G:\" OS sekarang siap untuk penggunaan normal. Namun dalam tutorial ini kita akan menggunakan Raspberry Pi dalam mode headless. Ini berarti tanpa monitor fisik dan keyboard yang terpasang padanya!
  4. Setelah membakar kartu SD, jangan keluarkan dari komputer Anda! Gunakan editor teks untuk membuka file config.txt yang ada di kartu SD. Pergi ke bawah dan tambahkan dtoverlay=dwc2sebagai baris terakhir:
  5. Simpan file config.txt sebagai teks biasa dan kemudian buka cmdline.txt Setelah rootwait (kata terakhir pada baris pertama) tambahkan spasi dan kemudian modules-load=dwc2, g_ether.
  6. Sekarang lepaskan kartu SD dari PC Anda dan masukkan ke dalam Raspberry Pi dan hubungkan ke PC Anda menggunakan kabel USB. Setelah OS boot, Anda akan melihat perangkat Ethernet Gadget baru ditemukan.
  7. Anda dapat menggunakan ssh [email protected] untuk menyambungkan ke board dan mengontrolnya dari jarak jauh. Untuk petunjuk lebih detail mengenai operasi tanpa kepala, buka di sini. Neopixel Driver

Pustaka rpi_ws281x adalah kunci yang memungkinkan penggunaan NeoPixels dengan Raspberry Pi.

Pertama kita perlu menginstal alat yang diperlukan untuk mengkompilasi perpustakaan. Dalam menjalankan Raspberry Pi Anda: Sudo apt-get update && Sudo apt-get install build-essential python-dev git scons swig Sekarang jalankan perintah ini untuk mengunduh dan mengkompilasi perpustakaan:

git clone https://github.com/jgarff/rpi_ws281x.git && cd rpi_ws281x && scons Akhirnya, setelah perpustakaan berhasil dikompilasi, kita dapat menginstalnya untuk python menggunakan:

cd python && sudo python setup.py install Sekarang hadir kode python yang menggerakkan LED. Kode ini cukup sederhana dengan beberapa komentar untuk membantu Anda. from neopixel import * # Konfigurasi NeoPixel LED_PIN = 18 # Pin GPIO Raspberry Pi terhubung ke piksel LED_BRIGHTNESS = 255 # Atur ke 0 untuk paling gelap dan 255 untuk paling terang LED_COUNT = 4 # Jumlah strip piksel LED = Adafruit_NeoPixel(LED_COUNT, LED_PIN, 800000, 5, Salah, LED_BRIGHTNESS, 0, ws. WS2811_STRIP_GRB) # Inisialisasi strip perpustakaan.begin() strip.setPixelColor(0, Color(255, 255, 255)) strip.show()

Driver ADXL345

Sensor akselerometer yang kami pilih memiliki antarmuka I2C untuk berkomunikasi dengan dunia luar. Untungnya bagi kami, Raspberry Pi juga memiliki antarmuka I2C. Kita hanya perlu mengaktifkannya untuk menggunakannya dalam kode kita sendiri.

Panggil alat konfigurasi Raspbian menggunakan Sudo raspi-config. Setelah berjalan, buka Opsi Interfacing, Opsi Lanjutan, lalu aktifkan I2C. Instal modul python yang relevan sehingga kita dapat menggunakan antarmuka I2C dengan python:

sudo apt-get install python-smbus i2c-tools Kode python berikut memungkinkan kita untuk berkomunikasi dengan sensor akselerometer dan membaca nilai registernya untuk tujuan kita sendiri. import smbus import struct # Konfigurasi akselerometer bus = smbus. SMBus(1) address = 0x53 gain = 3.9e-3 bus.write_byte_data(address, 45, 0x00) # Masuk ke mode standby bus.write_byte_data(address, 44, 0x06) # Bandwidth 6.5Hz bus.write_byte_data(address, 45, 0x08) # Masuk ke mode pengukuran # Baca data dari sensor buf = bus.read_i2c_block_data(address, 50, 6) # Buka paket data dari int16_t ke python integer data = struct.unpack_from (">hhh", buffer(bytearray(buf)), 0)

x = float(data[0]) * keuntungan

y = float(data[1]) * keuntungan

z = float(data[2]) * keuntungan

Detektor Gerakan

Salah satu fitur dari lampu yang kami buat, adalah dapat mendeteksi pergerakan (atau kekurangannya) untuk masuk ke mode interaktif (di mana cahaya berubah berdasarkan rotasi) dan mode prakiraan cuaca (di mana cahaya berubah tergantung pada ramalan cuaca. untuk hari ini). Kode berikut menggunakan fungsi sebelumnya untuk membaca nilai percepatan untuk 3-sumbu dan mengingatkan kita ketika ada gerakan.

akselerasi = getAkselerasi()

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

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

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

if dx > moveThreshold atau dy To > moveThreshold atau dz > moveThreshold:

cetak 'pindah'

pindah = Benar

lain:

pindah = Salah

API Cuaca

Untuk menerima ramalan cuaca kita bisa menggunakan Yahoo Weather. Ini melibatkan berbicara dengan Yahoo Weather Rest API yang bisa jadi agak rumit. Untungnya bagi kami, bagian yang sulit sudah diurus dalam bentuk modul cuaca-api untuk python.

  1. Pertama kita perlu menginstal modul ini menggunakan: Sudo apt install python-pip && Sudo pip install weather-api
  2. Silakan kunjungi situs web penulis untuk informasi lebih lanjut tentang modul ini.

Setelah menginstal kode berikut dapatkan kondisi cuaca untuk saat ini

dari cuaca impor Weatherweather = Weather()

lokasi = cuaca.lookup_by_location('dublin')

kondisi = lokasi.kondisi()

cetak(kondisi.teks())

Menyatukan semuanya

Seluruh kode untuk proyek yang menghubungkan semua bagian di atas dapat ditemukan di sini.

Otomatis memulai skrip python saat boot

Untuk dapat memasukkan raspberry pi ke dalam kotak dan menjalankan kode kita setiap kali kita menghubungkannya ke listrik, kita harus memastikan bahwa kode secara otomatis dimulai saat boot. Untuk melakukan ini, kami menggunakan alat yang disebut cron.

  1. Pertama-tama panggil alat cron menggunakan: sudo crontab -e
  2. Langkah sebelumnya akan membuka file konfigurasi, di mana kita menambahkan baris berikut:

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

Langkah 4: Pemodelan dan Cetak 3D

Pemodelan dan Cetak 3D
Pemodelan dan Cetak 3D
Pemodelan dan Cetak 3D
Pemodelan dan Cetak 3D

Model 3D Plus telah dibuat di Solidworks, dan disimpan sebagai format. Stl. Kemudian untuk model pencetakan 3D, file. Stl diimpor ke dalam perangkat lunak Cura. Setiap sisi plus membutuhkan waktu 2:30 jam untuk diproduksi; jadi setiap Plus penuh membutuhkan waktu sekitar 5 jam untuk dicetak. Dan untuk sisi transparan, kaca plexiglass dipotong dengan laser.

Langkah 5: Perakitan

perakitan
perakitan
perakitan
perakitan
perakitan
perakitan
perakitan
perakitan

Dengan bagian cetakan 3D, elektronik dan perangkat lunak di tangan, kami akhirnya dapat merakit produk akhir.

  1. Pelat atas dan bawah yang dicetak 3D, kami temukan lebih transparan daripada yang diperkirakan. Lapisan aluminium foil memecahkan masalah kebocoran cahaya.
  2. Namun, lembaran ini bersifat konduktif dan dapat menyebabkan korsleting di dalam sirkuit kami yang tidak terlindungi. Jadi lapisan lain dari papan kartu putih direkatkan di atasnya.
  3. Segmen Plexiglas yang menyebar direkatkan ke salah satu pelat samping.
  4. Sebuah lubang dibor di salah satu panel cetak 3D samping. Ini agar kita bisa melewati kabel listrik.
  5. Setelah kabel daya dipasang melalui lubang, kami menyoldernya ke papan prototipe kami.
  6. Kami memasang sensor ke raspberry pi dan kemudian pasang ke konektor.
  7. Kami melampirkan 2 bagian bersama-sama untuk mendapatkan produk akhir kami.
  8. Secara opsional, Anda dapat merekatkan 2 bagian untuk membuat sambungan yang lebih permanen. Namun perlu diketahui bahwa mungkin sulit untuk masuk ke dalam kotak setelah direkatkan jika Anda ingin mengubah kode nanti.

Direkomendasikan: