Mục lục:

RPi 3 Starboard / Máy tạo hạt: 6 bước (có hình ảnh)
RPi 3 Starboard / Máy tạo hạt: 6 bước (có hình ảnh)

Video: RPi 3 Starboard / Máy tạo hạt: 6 bước (có hình ảnh)

Video: RPi 3 Starboard / Máy tạo hạt: 6 bước (có hình ảnh)
Video: Làm Máy Tính PC Với Raspberry Pi 3 như thế nào? Chạy UBUNTU | How to Make Mini PC - Computer mini 2024, Tháng bảy
Anonim
Image
Image
Lắp ráp bảng LED
Lắp ráp bảng LED

Bạn đang cảm thấy nhàm chán với Raspberry Pi của mình? Bạn đã sẵn sàng chỉ huy các lực lượng nguyên tố của vũ trụ, triệu hồi và loại bỏ các photon theo ý muốn? Bạn chỉ muốn một thứ gì đó thú vị để treo trong phòng khách của bạn, hoặc một dự án thú vị để đăng lên facebook để cho Denise thấy rằng bạn đang làm rất tốt trong những ngày này, cảm ơn bạn rất nhiều? Bạn có bị mắc kẹt trong một mô phỏng máy tính và quay cuồng hàng giờ cho đến khi bạn được giải phóng hoặc bị xóa? Nếu bất kỳ hoặc tất cả những điều này mô tả về bạn, thì [giọng nói của người thông báo] Chào mừng bạn!

Hướng dẫn này sẽ chỉ cho bạn cách lắp ráp và thiết lập màn hình máy phát hạt bằng Raspberry Pi 3 và một số bảng ma trận RGB. Bạn sẽ mất từ một đến hai giờ và thành phẩm sẽ có kích thước xấp xỉ 30 "x8" (không bao gồm Pi) và có thể treo tường. Nó là một vật trang trí khá tuyệt vời cho phòng khách, phòng làm việc, phòng trò chơi, hoặc bất cứ nơi nào khác mà bạn muốn đặt nó.

Trước khi bắt đầu, đây là những gì bạn cần và chi phí ước tính là gì:

  • Rpi 3 + Thẻ SD + Vỏ + Nguồn điện: 70 đô la (từ Canakit, nhưng bạn có thể có được các bộ phận rẻ hơn nếu mua riêng.)
  • Ma trận LED 4x 32x32 RGB (tốt nhất là p6 trong nhà với quét 1/16): $ 80- $ 100 được vận chuyển trên Alibaba hoặc Aliexpress; $ 160 trên Adafruit hoặc Sparkfun.
  • Mũ Adafruit RGB Matrix: $ 25
  • Nguồn cung cấp 5V 4A: $ 15
  • Clip in 3D: $ 1 treo nó lên tường. Tôi đã cố gắng tìm các tệp thiết kế hoặc tệp.stls cho những thứ này, nhưng chúng dường như đã được truyền từ trái đất. Tuy nhiên, các clip này khá dễ làm mẫu.)
  • 14x M4x10 bu lông: $ 5ish
  • Bốn cáp IDC 4x8 và ba cáp nguồn cho ma trận RGB (tôi không biết chúng được gọi là gì!). Chúng nên được bao gồm trong bảng LED của bạn.
  • Tổng cộng: Khoảng $ 200, cho hoặc nhận.

Dự án không yêu cầu bạn phải hàn hoặc có bất kỳ kiến thức lập trình cụ thể nào; nó giả sử bạn biết cách ghi hình ảnh vào thẻ nhớ microSD. Nếu bạn không chắc chắn về cách làm điều đó, nền tảng Raspberry Pi có một hướng dẫn tốt ở đây.

Nó cũng giả định rằng bạn có kiến thức cơ bản về cách thực hiện mọi thứ từ dòng lệnh trong Linux và hướng dẫn mã giả định rằng bạn biết các kiến thức cơ bản về Python (nhưng - bạn không cần phải làm theo hướng dẫn mã để có thể xây dựng và chạy trình tạo hạt.) Nếu bạn gặp khó khăn ở bất kỳ bước nào trong số các bước, vui lòng đặt câu hỏi hoặc đăng trong / r / raspberry_pi (tôi cũng cho rằng đây là đối tượng chính của hướng dẫn này)

Bước 1: Lắp ráp bảng LED

Lắp ráp bảng LED
Lắp ráp bảng LED

Đầu tiên, bạn sẽ lắp ráp các bảng LED 32x32 riêng lẻ thành một bảng 128x32 lớn. Bạn sẽ cần nhìn vào bảng của mình và tìm các mũi tên nhỏ chỉ ra thứ tự kết nối; của tôi, chúng ở ngay gần các đầu nối HUB75 / 2x8 IDC. Đảm bảo rằng bạn có các mũi tên trỏ từ nơi Rpi sẽ kết nối (lệch về bên phải trong ảnh trên) theo chiều dài của bảng.

Bạn cũng sẽ cần kết nối cáp nguồn. Hầu hết các loại cáp này đều có hai đầu nối cái gắn vào bảng và một bộ đầu cực hình thuôn gắn với nguồn điện. Các bảng mà tôi đang làm việc có các chỉ báo cho 5V và GND gần như được giấu hoàn toàn bên dưới các đầu nối, nhưng các dây cáp chỉ kết nối theo một hướng. Bạn sẽ muốn đảm bảo rằng bạn đang kết nối tất cả các 5V với nhau và tất cả các GND với nhau, bởi vì nếu bạn cấp nguồn ngược lại, bạn gần như chắc chắn sẽ làm hỏng chúng.

Bởi vì cáp nguồn đi kèm với bảng của tôi quá ngắn, tôi phải kéo dài một cái bằng cách chèn các ngạnh của thiết bị đầu cuối thuổng vào đầu nối của một đầu nối khác (Điều này khá đơn giản - bạn có thể phải uốn cong các đầu cực thuôn vào trong một chút, nhưng tôi ' đã bao gồm một hình ảnh chỉ trong trường hợp). Tôi đã kết thúc với hai bộ thiết bị đầu cuối thuổng và một đầu nối IDC 2x8 ở bên phải bảng LED hiện đã kéo dài của tôi.

Bạn cũng sẽ nhận thấy rằng tôi có hai bu lông không được gắn vào bất kỳ thứ gì ở hai đầu bảng; những thứ này sẽ ở trên cùng khi toàn bộ vật được lật lên, và sẽ được sử dụng để gắn nó vào tường.

Vì vậy - khi bạn đã kết nối tất cả các bảng với nhau bằng kẹp, cáp IDC 2x8 và cáp nguồn, bạn đã sẵn sàng chuyển sang bước tiếp theo!

Bước 2: Chuẩn bị Raspberry Pi

Tiếp theo, bạn sẽ đặt bảng LED sang một bên (hiện tại) và chuẩn bị sẵn sàng Pi 3 để chạy nó. Chúng tôi sẽ sử dụng thư viện ma trận RGB của Raspbian Stretch Lite và hzeller (chứ không phải thư viện ma trận của Adafruit, cũ hơn và không có gì thay đổi).

Đầu tiên, bạn sẽ muốn ghi hình ảnh Raspbian Lite vào thẻ SD; khi bạn đã hoàn thành việc này, hãy tiếp tục và kết nối màn hình và bàn phím với pi và khởi động nó. (Bạn cũng có thể thực hiện việc này không cần đầu, qua ssh hoặc kết nối nối tiếp, nhưng nếu đó là cách bạn đang làm, bạn có thể không cần tôi hướng dẫn bạn cách thực hiện.) Bạn sẽ cần kết nối internet cho việc này.; Nếu bạn có Wi-Fi, hãy kết nối Pi với mạng không dây của bạn bằng cách chỉnh sửa /etc/wpa_supplicant/wpa_supplicant.conf và chạy cấu hình lại wpa_cli -i wlan0. (Nếu bạn chưa bao giờ làm điều này, bạn có thể xem hướng dẫn tại đây).

Sau khi bạn kết nối với Internet, chúng tôi sẽ cập nhật cài đặt kho lưu trữ dpkg và tải xuống các thư viện chúng tôi cần bằng cách chạy các lệnh sau:

sudo apt-get cập nhật

sudo apt-get install git python-dev python-pil

git clone

Bây giờ chúng ta phải biên dịch và cài đặt mã ma trận. Vì vậy, bạn sẽ đi vào thư mục chứa thư viện:

cd rpi-rgb-led-ma trận

và biên dịch nó (quá trình này có thể mất một phút):

make && make build-python

và cài đặt các liên kết python:

sudo make install-python

Nếu bạn gặp bất kỳ lỗi nào khi biên dịch mã thư viện, hãy quay lại và đảm bảo rằng bạn đã cài đặt chính xác python-dev và python-pil! Các liên kết python sẽ không biên dịch mà không có cả hai gói đó được cài đặt.

Bạn cũng sẽ cần phải tắt đầu ra âm thanh của Pi (âm thanh trên bo mạch can thiệp vào mã ma trận) bằng cách chỉnh sửa /boot/config.txt. Tìm dòng có nội dung dtparam = audio = on và đổi thành dtparam = audio = off.

Nếu mọi thứ được biên dịch OK (bạn sẽ nhận được một vài cảnh báo về Wstrict-protoypes) pi của bạn đã sẵn sàng để chạy bảng ma trận. Hãy tiếp tục và tắt nó đi (sudo shutdown now), rút phích cắm và chúng ta sẽ kết nối bảng đèn với pi trong bước tiếp theo.

Bước 3: Kết nối Pi + Mũ ma trận + Bảng LED

Kết nối Pi + Mũ ma trận + Bảng LED
Kết nối Pi + Mũ ma trận + Bảng LED

Vì vậy, bây giờ Pi của bạn đã tắt và được rút phích cắm, hãy kết nối mũ ma trận với số pi và bảng LED với mũ ma trận. Nếu Pi của bạn chưa có trong trường hợp đó, bây giờ là thời điểm tốt để đặt nó vào đó.

Cài đặt mũ ma trận bằng cách xếp nó với các chân GPIO trên Pi và nhẹ nhàng đẩy nó xuống với lực đều ở cả hai bên. Đảm bảo rằng các ghim được xếp đúng hàng, sao cho mũ đội đầu nữ che chính xác các ghim GPIO trên pi. Nếu bạn điều chỉnh sai, nó không phải là một thảm họa; chỉ cần nhẹ nhàng kéo nó ra và duỗi thẳng bất kỳ ghim nào bị cong.

Khi bạn đã đội mũ vào, hãy đặt số Pi ở bên phải bảng LED đã lắp ráp (kiểm tra kỹ các kết nối nguồn một lần nữa và đảm bảo các mũi tên hướng từ Pi xuống theo chiều dài của bảng) và kết nối IDC cáp vào mũ ma trận.

Tiếp theo, bạn sẽ muốn kết nối các thiết bị đầu cuối thuổng cho nguồn điện vào khối thiết bị đầu cuối của mũ ma trận. Bạn có hai đầu nối hình chóp cho mỗi bên, nhưng cả hai đều phải vừa vặn với nhau. Trước tiên hãy nới lỏng các vít và - Điều này không cần phải nói - hãy đảm bảo rằng bạn đặt các đầu nối 5V ở phía có nhãn + (những đầu nối này phải có màu đỏ, nhưng - một lần nữa - hãy kiểm tra kỹ các đầu nối của bạn và đừng cho rằng chúng được sản xuất đúng cách) và các thiết bị đầu cuối GND (những đầu cuối này phải có màu đen) ở phía có nhãn -. Khi chúng ở trong đó, hãy siết chặt các vít trên đầu khối thiết bị đầu cuối và bạn sẽ có thứ gì đó giống như hình ảnh tiêu đề cho bước này.

Bây giờ - bạn có thể nhận thấy rằng cấu hình cụ thể này để lại một nửa của thiết bị đầu cuối thuổng ở hai bên, chỉ nằm lơ lửng trên milimet phía trên mũ ma trận (và không xa nhau lắm.) VÀ - các thiết bị đầu cuối thuổng sẽ rất sớm mang cả vài vôn và vài ampe của Nguồn thô. Đây có thực sự là Cách Làm Đúng Không? Có phải, (bạn nghiêng người lại gần và thì thầm), Một Ý tưởng Tốt?

Và câu trả lời là (tôi đáp lại, nhún vai) - không, không phải vậy. Cách thích hợp để làm điều đó sẽ là tách các đầu nối hình chóp ra khỏi cáp nguồn và cuộn chúng lại vào đầu nối chính xác cho khối đầu cuối đó (hoặc để chúng dưới dạng dây trần và kết nối chúng mà không có đầu nối vào khối). Nếu không, bạn có thể đặt một số ống co nhiệt xung quanh mặt tiếp xúc của đầu nối thuổng hoặc chỉ cần quấn nó trong băng dính điện. Nhưng thế giới đã sụp đổ và con người lười biếng và viển vông, vì vậy tôi đã không làm điều đó.

Nhưng - được bọc hoặc không được bọc - các thiết bị đầu cuối thuổng được kết nối với khối thiết bị đầu cuối và chúng tôi đã sẵn sàng chuyển sang bước tiếp theo.

Bước 4: Kiểm tra Ma trận RGB

Bây giờ Pi của bạn đã được kết nối với bảng đèn, hãy lật bảng lại và bật lại Pi. Bạn có thể cấp nguồn cho mũ ma trận sau khi Pi được cắm vào; Tuy nhiên, nếu bạn cấp nguồn cho mũ trước Pi, Pi sẽ cố gắng khởi động với dòng điện không đủ và sẽ phàn nàn một cách cay đắng (và có thể khiến bạn hoảng sợ và không khởi động được.)

Nếu bạn gặp sự cố khi khởi động Pi với mũ ma trận, hãy đảm bảo rằng bạn đang sử dụng nguồn điện đủ mạnh cho Pi (2A + phải tốt) và thử cắm cả nguồn điện cho mũ và cho Pii vào cùng một dải nguồn hoặc dây nối và cấp nguồn cho chúng cùng nhau.

Khi Pi đã khởi động, chúng tôi đã sẵn sàng để kiểm tra các ma trận. Đi tới nơi chứa các mẫu liên kết python (cd / rpi-rgb-led-matrix / bindings / python / samples) và thử trình tạo khối xoay bằng lệnh sau:

sudo./rotating-block-generator.py -m adafruit-hat --led-chain 4

Bạn phải chạy nó như sudo vì thư viện ma trận cần quyền truy cập cấp thấp vào phần cứng khi khởi tạo. -M chỉ định cách các tấm được kết nối với số pi (trong trường hợp này là một chiếc mũ quả táo) và --led-chain chỉ định - bạn đoán xem - có bao nhiêu tấm mà chúng ta đã liên kết với nhau. Cả hàng và cột trên mỗi bảng đều mặc định là 32, vì vậy chúng tôi ổn ở đó.

Bây giờ - khi bạn đã thực thi chương trình, một trong hai (hoặc thực sự là một trong ba) điều sẽ xảy ra:

  • Chẳng có gì xảy ra
  • Bạn sẽ có được một khối xoay đẹp mắt ở giữa bảng đèn của mình.
  • Bảng đèn hoạt động, uh, tôi nghĩ vậy, nhưng nó trông … kỳ lạ (một nửa của nó là màu xanh lá cây, một số hàng không sáng, v.v.)

Nếu không có gì xảy ra hoặc nếu bảng điều khiển trông kỳ lạ, hãy nhấn Ctrl + c để thoát khỏi chương trình mẫu, tắt pi và kiểm tra tất cả các kết nối của bạn (cáp IDC, nguồn, đảm bảo cả hai nguồn điện đều được cắm vào, v.v.) Cũng đảm bảo rằng chiếc mũ được kết nối chính xác; nếu điều đó không khắc phục được, hãy gỡ nó xuống một bảng điều khiển (đảm bảo sử dụng --led-chain 1 khi kiểm tra nó) và xem liệu một trong những bảng điều khiển có thể bị hỏng hay không. Nếu ĐÓ không hoạt động, hãy xem các mẹo khắc phục sự cố của hzeller. nếu ĐÓ VẪN không hoạt động, hãy thử đăng lên / r / raspberry_pi (hoặc diễn đàn Adafruit, nếu bạn nhận được bảng của mình từ Adafruit, hoặc trao đổi ngăn xếp, v.v.)

Nếu nó hoạt động nhưng vẫn trông kỳ lạ (có thể giống như hình ảnh tiêu đề cho phần này) sau khi bạn đã kiểm tra các kết nối, có thể bạn đã kết nối mọi thứ một cách chính xác, rằng các bảng đang hoạt động bình thường, nhưng Cái gì đó khác đang diễn ra trên. Điều này sẽ đưa chúng ta đến bước tiếp theo - một sự chuyển hướng hơn là một bước - về ghép kênh và tốc độ quét. (Nếu bảng led của bạn đang hoạt động tốt và bạn không quan tâm đến hoạt động bên trong của những bảng này, vui lòng bỏ qua bước tiếp theo.)

Bước 5: Ghép kênh và tỷ lệ quét (hoặc: Chuyển hướng nhất thời trên đường đến mộ)

Vì vậy, một trong những sai lầm tôi đã mắc phải khi đặt mua bộ tấm nền đầu tiên của mình từ Alibaba là tôi nhận được tấm nền ngoài trời (tại sao không, tôi nghĩ - chúng không thấm nước và sáng hơn!). Và, khi tôi nối chúng vào chiếc mũ ma trận của mình, mọi thứ trông có vẻ.. không ổn.

Để hiểu lý do tại sao lại như vậy, chúng ta sẽ dành một phút để xem xét Phil Burgess từ mô tả của Adafruit về cách hoạt động của các tấm này. Bạn sẽ lưu ý rằng Burgess chỉ ra rằng các bảng điều khiển không phát sáng tất cả các đèn LED của chúng cùng một lúc - chúng làm sáng các nhóm hàng. Mối quan hệ giữa chiều cao bảng tính bằng pixel và số hàng sáng lên cùng một lúc được gọi là tốc độ quét. Vì vậy, ví dụ - Trên bảng điều khiển 32x32 với quét 1/16, hai hàng (1 và 17, 2 và 18, 3 và 19, v.v.) sáng lên cùng một lúc, tất cả các chiều xuống bảng và sau đó bộ điều khiển lặp lại. Hầu hết các thư viện điều khiển ma trận RGB được xây dựng cho các bảng có tốc độ quét bằng 1/2 chiều cao tính bằng pixel - nghĩa là chúng điều khiển hai hàng đèn LED cùng một lúc.

Bảng điều khiển ngoài trời (và một số bảng điều khiển trong nhà - hãy đảm bảo bạn xem thông số kỹ thuật trước khi đặt hàng) có tốc độ quét bằng 1/4 chiều cao tính bằng pixel, có nghĩa là họ mong đợi bốn dòng được điều khiển cùng một lúc. Điều này làm cho chúng sáng hơn (tốt) nhưng làm cho nhiều mã tiêu chuẩn không hoạt động với chúng (xấu). Ngoài ra, chúng có xu hướng có các pixel không theo thứ tự bên trong, đòi hỏi phải chuyển đổi các giá trị x và y trong phần mềm để giải quyết các pixel phù hợp. Tại sao được làm theo cách này? Tôi không có ý kiến. Bạn có biết? Nếu vậy, xin vui lòng cho tôi biết. Nếu không, nó sẽ chỉ còn là một bí ẩn.

Vì vậy, nếu bạn có một trong những tấm ngoài trời kỳ lạ này, bạn (có thể) đang gặp may! hzeller gần đây đã thêm hỗ trợ cho các cấu hình phổ biến của các loại bảng này vào thư viện của mình. Bạn có thể đọc thêm về nó trên trang github cho dự án, nhưng bạn có thể chuyển --led-multiplexing = {0, 1, 2, 3} vào mã mẫu (bạn cũng có thể cần phải giả vờ như bạn đã có chuỗi các tấm có chiều dài gấp đôi chiều dài) và nó sẽ hoạt động.

Tuy nhiên, có một số mẫu chuyển đổi pixel không được hỗ trợ - và (đoán xem) bảng của tôi có một trong số chúng! Vì vậy, tôi phải viết mã chuyển đổi của riêng mình (vì bất cứ lý do gì - tôi cũng phải yêu cầu thư viện hoạt động như thể tôi có tám bảng 16x32 được xâu chuỗi với nhau). như sau:

def biến đổiPixels (j, k): effJ = j% 32

effK = k% 32

modY = k

modX = j

#modX và modY là X và Y đã được sửa đổi;

#effJ và effK đảm bảo chúng tôi biến đổi trong ma trận 32x32 trước khi đẩy

nếu ((effJ)> 15):

modX = modX + 16

nếu ((effK)> 7):

modY = modY - 8

modX = modX + 16

nếu ((effK)> 15):

modX = modX - 16

nếu ((effK)> 23):

modY = modY - 8

modX = modX + 16

# Sau đó, chúng tôi đẩy chúng đến vị trí chính xác (mỗi x + 32 di chuyển một bảng điều khiển)

nếu (j> 31):

modX + = 32

if (j> 63):

modX + = 32

nếu (j> 95):

modX + = 32

return (modX, modY)

Nếu bạn có một bảng điều khiển như của tôi, điều này có thể phù hợp với nó. Nếu không, bạn sẽ phải viết cho riêng mình - vì vậy, bạn biết đấy, chúc may mắn và thần tốc.

Bước 6: Chương trình Starboard (hoặc: Quay lại đường đi và Sẵn sàng cho Pixel)

Bây giờ bạn đã có ma trận của mình hoạt động và sẵn sàng hoạt động, tất cả những gì bạn phải làm là đặt chương trình mạn phải vào Pi và chuẩn bị sẵn sàng hoạt động. Đảm bảo rằng bạn đang ở trong thư mục chính của người dùng pi (cd / home / pi) và chạy lệnh sau:

git clone

bạn sẽ có một thư mục mới, starboard, chứa ba tệp: LICENSE.md, README.md và starboard_s16.py. Hãy thử chương trình mạn phải bằng cách chạy nó qua python:

sudo python./starboard_s16.py

và bạn sẽ nhận được một loạt các hạt chuyển động với tốc độ khác nhau và phân rã với tốc độ khác nhau. Cứ sau 10, 000 tích tắc (bạn có thể vào tập lệnh python để chỉnh sửa / thay đổi điều này), nó sẽ thay đổi chế độ (có bốn chế độ: RGB, HSV, Rainbow và Greyscale).

Vì vậy, bây giờ việc duy nhất cần làm là làm cho mã mạn phải chạy khi khởi động. Chúng tôi sẽ làm điều đó bằng cách chỉnh sửa (với sudo) /etc/rc.local. Những gì bạn muốn làm là thêm dòng sau ngay trước "exit 0" trong script:

python /home/pi/starboard/starboard_s16.py &

Sau khi bạn làm điều đó, hãy khởi động lại pi - khi nó chạy qua trình tự khởi động, tập lệnh starboard_s16.py sẽ bắt đầu ngay lập tức!

Nếu bạn muốn tham khảo kịch bản, hãy thoải mái làm như vậy - nó được cấp phép theo GNU GPL 3.0. Nếu tập lệnh không chạy cho bạn hoặc bạn gặp sự cố với nó, vui lòng cho tôi biết hoặc gửi lỗi trên github và tôi sẽ xem mình có thể làm gì để khắc phục lỗi đó!

Điều cuối cùng bạn có thể muốn làm là thiết lập SSH trên pi, để bạn có thể truy cập từ xa và tắt nó một cách an toàn. Bạn / chắc chắn / muốn thay đổi mật khẩu của mình (thông qua lệnh passwd) và bạn có thể tìm thấy hướng dẫn để bật ssh (cũng từ dòng lệnh) tại đây.

Đề xuất: