Mục lục:

TfCD - Plus: 7 bước
TfCD - Plus: 7 bước

Video: TfCD - Plus: 7 bước

Video: TfCD - Plus: 7 bước
Video: TFCD Arduino face tracking device 2024, Tháng mười một
Anonim
Image
Image
Thành phần
Thành phần

Điểm cộng là đèn thông minh tối thiểu, không chỉ thông báo cho mọi người về tình trạng thời tiết mà còn tạo ra trải nghiệm thú vị cho người dùng bởi những thay đổi về màu sắc của ánh sáng bằng cách xoay dấu cộng. Hình dạng của nó mang lại cho người dùng cơ hội kết hợp một số mô-đun cộng hoặc tạo ra một chiếc đèn khổng lồ với nhiều mảnh cộng do bạn bè đặt. Dự án chiếu sáng này là một phần của khóa học Thiết kế Ý tưởng Nâng cao (ACD) tại trường đại học TU Delft, và công nghệ được thực hiện bằng cách sử dụng TfCD thực tế làm nguồn cảm hứng.

Bước 1: Thành phần

Thành phần
Thành phần
Thành phần
Thành phần

1 Raspberry pi zero w

1 Groove Adxl345 gia tốc kế

4 đèn LED Ws2812b

1 bảng tạo mẫu

Thùng loa in 3D và cắt laser

Bước 2: Phần cứng

Phần cứng
Phần cứng
Phần cứng
Phần cứng
Phần cứng
Phần cứng
Phần cứng
Phần cứng

Đèn LED

Đèn LED Neopixel có 4 chân có tên: + 5V, GND, Data In và Data out.

  1. Chân 4 của pi raspberry được kết nối với + 5V của tất cả các đèn LED
  2. Chân 6 của pi raspberry được kết nối với GND của tất cả các LEDS
  3. Dữ liệu Chân trong của đèn LED đầu tiên được kết nối với chân 12 trên pi mâm xôi.
  4. Chân ra Dữ liệu của đèn LED đầu tiên được kết nối với Dữ liệu của đèn LED thứ hai, v.v.

Vui lòng xem sơ đồ đấu dây để hiểu rõ hơn.

Gia tốc kế

Gia tốc kế có 4 chân có tên: VCC, GND, SDA và SCL.

  1. Chân 1 của pi raspberry được kết nối với VCC.
  2. Chân 3 của pi raspberry được kết nối với SCL.
  3. Chân 5 của pi raspberry được kết nối với SDA.
  4. Chân 9 của pi raspberry được kết nối với GND.

Xây dựng

  1. Để thuận tiện, các đèn LED có thể được hàn vào bảng tạo mẫu. Chúng tôi đã quyết định cắt bảng thành hình dấu cộng để nó vừa vặn với vỏ được thiết kế 3D.
  2. Khi chúng tôi đã hàn các đèn LED trên bo mạch, chúng tôi hàn dây jumper để tạo kết nối giữa đầu cắm 0,1 "và các đèn LED. Đầu nối tiêu đề được sử dụng để báo cho raspberry pi bị ngắt kết nối và sử dụng lại cho dự án trong tương lai.

Bước 3: Phần mềm

Phần mềm
Phần mềm

Hình ảnh hệ điều hành Raspberry Pi

Trước tiên, chúng ta cần thiết lập và chạy Raspberry Pi. Để làm điều này, chúng tôi làm theo các bước sau:

  1. Tải xuống phiên bản Raspbian mới nhất từ đây. Bạn có thể tải xuống trực tiếp hoặc thông qua torrent. Bạn sẽ cần một trình ghi hình ảnh để ghi hệ điều hành đã tải xuống vào thẻ SD (thẻ micro SD trong trường hợp của mô hình Raspberry Pi B + và Raspberry Pi Zero).
  2. Vì vậy, tải xuống "win32 disk imageer" từ đây. Cắm thẻ SD vào máy tính xách tay / máy tính và chạy trình ghi hình ảnh. Sau khi mở, hãy duyệt và chọn tệp hình ảnh Raspbian đã tải xuống. Chọn thiết bị chính xác, đó là ổ đĩa đại diện cho thẻ SD. Nếu ổ đĩa (hoặc thiết bị) được chọn khác với thẻ SD thì ổ đĩa đã chọn khác sẽ bị hỏng. Vì vậy, hãy cẩn thận.
  3. Sau đó, nhấp vào nút "Viết" ở phía dưới. Ví dụ, hãy xem hình ảnh bên dưới, nơi ổ đĩa thẻ SD (hoặc micro SD) được biểu thị bằng ký tự "G: \" Hệ điều hành hiện đã sẵn sàng để sử dụng bình thường. Tuy nhiên, trong hướng dẫn này, chúng tôi sẽ sử dụng Raspberry Pi ở chế độ không đầu. Điều này có nghĩa là không có màn hình vật lý và bàn phím gắn liền với nó!
  4. Sau khi ghi thẻ SD, đừng đẩy thẻ ra khỏi máy tính của bạn! Sử dụng trình soạn thảo văn bản để mở tệp config.txt trong thẻ SD. Chuyển xuống dưới cùng và thêm dtoverlay = dwc2 vào dòng cuối cùng:
  5. Lưu tệp config.txt dưới dạng văn bản thuần túy và sau đó mở cmdline.txt Sau rootwait (từ cuối cùng trên dòng đầu tiên), hãy thêm một khoảng trắng và sau đó modules-load = dwc2, g_ether.
  6. Bây giờ, hãy tháo thẻ SD khỏi PC của bạn và lắp nó vào Raspberry Pi và kết nối nó với PC của bạn bằng cáp USB. Sau khi hệ điều hành khởi động, bạn sẽ thấy một thiết bị Ethernet Gadget mới được phát hiện.
  7. Bạn có thể sử dụng ssh [email protected] để kết nối với bo mạch và điều khiển nó từ xa.

Thư viện rpi_ws281x là chìa khóa giúp bạn có thể sử dụng NeoPixels với Raspberry Pi.

Đầu tiên chúng ta cần cài đặt các công cụ cần thiết để biên dịch thư viện. Trong lần chạy Raspberry Pi của bạn: sudo apt-get update && sudo apt-get install build-essential python-dev git scons swig Bây giờ hãy chạy các lệnh sau để tải xuống và biên dịch thư viện:

git clone https://github.com/jgarff/rpi_ws281x.git && cd rpi_ws281x && scons Cuối cùng, sau khi thư viện được biên dịch thành công, chúng ta có thể cài đặt nó cho python bằng cách sử dụng:

cd python && sudo python setup.py install Bây giờ có mã python điều khiển đèn LED. Mã này khá đơn giản với một số nhận xét để giúp bạn. từ nhập neopixel * # Cấu hình NeoPixel LED_PIN = 18 # Chân GPIO của Raspberry Pi được kết nối với các pixel LED_BRIGHTNESS = 255 # Đặt thành 0 cho vùng tối nhất và 255 cho LED sáng nhất_COUNT = 4 # Số dải điểm ảnh LED = Adafruit_NeoPixel (LED_COUNT, LED_PIN, 800000, 5, Sai, LED_BRIGHTNESS, 0, ws. WS2811_STRIP_GRB) # Khởi tạo thư viện dải.begin () dải.setPixelColor (0, Màu (255, 255, 255)) dải.show ()

Trình điều khiển ADXL345

Cảm biến gia tốc mà chúng tôi đã chọn có I2C interfae để giao tiếp với thế giới bên ngoài. May mắn thay cho chúng tôi, Raspberry Pi cũng có giao diện I2C. Chúng tôi chỉ cần kích hoạt nó để sử dụng nó trong mã của riêng chúng tôi.

Gọi công cụ cấu hình Raspbian bằng sudo raspi-config. Sau khi chạy, hãy chuyển đến Tùy chọn giao diện, Tùy chọn nâng cao và sau đó kích hoạt I2C. Cài đặt các mô-đun python liên quan để chúng tôi có thể sử dụng giao diện I2C trong python:

sudo apt-get install python-smbus i2c-tools Đoạn mã python sau cho phép chúng tôi giao tiếp với cảm biến gia tốc kế và đọc các giá trị đăng ký của nó cho các mục đích riêng của chúng tôi. nhập smbus import struct # Cấu hình gia tốc kế bus = smbus. SMBus (1) address = 0x53 gain = 3.9e-3 bus.write_byte_data (address, 45, 0x00) # Go to standby mode bus.write_byte_data (address, 44, 0x06) # Băng thông 6,5Hz bus.write_byte_data (address, 45, 0x08) # Chuyển đến chế độ đo # Đọc dữ liệu từ cảm biến buf = bus.read_i2c_block_data (address, 50, 6) # Giải nén dữ liệu từ int16_t sang python integer data = struct.unpack_from ("> hhh", bộ đệm (bytearray (buf)), 0)

x = float (data [0]) * gain

y = float (data [1]) * gain

z = float (data [2]) * gain

Máy dò chuyển động

Một trong những tính năng của ánh sáng mà chúng tôi đang tạo ra, là nó có thể phát hiện chuyển động (hoặc thiếu) để vào chế độ tương tác (nơi ánh sáng thay đổi dựa trên chuyển động quay) và chế độ dự báo thời tiết (nơi ánh sáng thay đổi tùy thuộc vào dự báo thời tiết cho hôm nay). Đoạn mã sau sử dụng chức năng trước đó để đọc các giá trị gia tốc cho 3 trục và cảnh báo cho chúng tôi khi có chuyển động.

accel = getAcceleration ()

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

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

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

if dx> moveThreshold hoặc dy Tới> moveThreshold hoặc dz> moveThreshold:

in 'đã di chuyển'

đã chuyển = Đúng

khác:

đã chuyển = Sai

API thời tiết

Để nhận dự báo thời tiết, chúng ta có thể sử dụng Yahoo Weather. Điều này liên quan đến việc nói chuyện với Yahoo Weather Rest API có thể khá phức tạp. May mắn thay cho chúng tôi, phần khó đã được xử lý dưới dạng mô-đun Weather-api cho python.

  1. Trước tiên, chúng ta cần cài đặt mô-đun này bằng cách sử dụng: sudo apt install python-pip && sudo pip install weather-api
  2. Vui lòng truy cập trang web của tác giả để biết thêm thông tin về mô-đun này.

Sau khi cài đặt mã sau sẽ nhận được điều kiện thời tiết cho thời điểm này

từ nhập thời tiết Weatherweather = Weather ()

location = weather.lookup_by_location ('dublin')

điều kiện = location.condition ()

print (condition.text ())

Để tất cả chúng cùng nhau

Toàn bộ mã cho dự án kết nối tất cả các phần trên có thể được tìm thấy tại đây.

Tự động khởi động tập lệnh python tại thời điểm khởi động

Để có thể đặt pi raspberry vào một hộp và để nó chạy mã của chúng tôi mỗi khi chúng tôi kết nối với nguồn điện, chúng tôi phải đảm bảo rằng mã được khởi động tự động trong khi khởi động. Để làm điều này, chúng tôi sử dụng một công cụ có tên là cron.

  1. Đầu tiên hãy gọi công cụ cron bằng cách sử dụng: sudo crontab -e
  2. Các bước trước đó sẽ mở ra một tệp cấu hình, trong đó chúng tôi thêm dòng sau:

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

Bước 4: Tạo mô hình và in 3D

Tạo mô hình và in 3D
Tạo mô hình và in 3D
Tạo mô hình và in 3D
Tạo mô hình và in 3D

Mô hình 3D của Plus đã được tạo trong Solidworks và được lưu dưới định dạng. Stl. Sau đó, để in 3D mô hình, tệp. Stl đã được nhập vào phần mềm Cura. Mỗi bên cộng mất 2:30 giờ để sản xuất; vì vậy mỗi Plus đầy đủ mất khoảng 5 giờ để in. Và đối với các mặt trong suốt, plexiglass được cắt bằng laser.

Bước 5: Lắp ráp

cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp

Với phần in 3D, thiết bị điện tử và phần mềm trong tay, cuối cùng chúng tôi cũng có thể lắp ráp thành phẩm cuối cùng.

  1. Các tấm trên và dưới được in 3D, chúng tôi thấy trong suốt hơn dự đoán. Một lớp lá nhôm đã giải quyết được vấn đề rò rỉ ánh sáng.
  2. Tuy nhiên, các tấm này dẫn điện và có thể gây chập trong mạch điện không được bảo vệ của chúng ta. Vì vậy, một lớp bảng thẻ trắng khác được dán lên trên.
  3. Các phân đoạn Plexiglas khuếch tán được dán vào một trong các tấm bên.
  4. Một lỗ được khoan trên một trong các tấm được in 3D bên cạnh. Điều này để chúng ta có thể đi qua dây nguồn.
  5. Sau khi, dây nguồn được lắp qua lỗ, chúng tôi hàn nó vào bảng tạo mẫu của chúng tôi.
  6. Chúng tôi gắn cảm biến vào pi raspberry và sau đó cắm nó vào đầu nối.
  7. Chúng tôi gắn 2 mảnh lại với nhau để có được sản phẩm cuối cùng.
  8. Tùy ý bạn có thể dán 2 mảnh để tạo kết nối lâu dài hơn. Tuy nhiên, hãy lưu ý rằng có thể khó vào hộp sau khi nó được dán lại nếu bạn muốn thay đổi mã sau này.

Đề xuất: