Mục lục:

Holi-Tie: 8 bước (có hình ảnh)
Holi-Tie: 8 bước (có hình ảnh)

Video: Holi-Tie: 8 bước (có hình ảnh)

Video: Holi-Tie: 8 bước (có hình ảnh)
Video: VỀ HỘI LÀNG ĐI EM 💕 BIÊN ĐẠO THEO YÊU CẦU // KHÁNH LINH 2024, Tháng mười một
Anonim
Image
Image

By gwfongMonkey PatchingFollow More của tác giả:

Illum Illumination Dog Ramp
Illum Illumination Dog Ramp
Trái tim thép và tác phẩm điêu khắc thủy tinh hợp nhất
Trái tim thép và tác phẩm điêu khắc thủy tinh hợp nhất
Trái tim thép và tác phẩm điêu khắc thủy tinh hợp nhất
Trái tim thép và tác phẩm điêu khắc thủy tinh hợp nhất
Dây đồng và bướm thủy tinh hợp nhất
Dây đồng và bướm thủy tinh hợp nhất
Dây đồng và bướm thủy tinh hợp nhất
Dây đồng và bướm thủy tinh hợp nhất

Giới thiệu: Chỉ là một chàng trai muốn tạo ra những điều thú vị Thông tin thêm về gwfong »

Đây là Holi-Tie, một loại cà vạt lễ hội được thiết kế để đeo trong những ngày lễ. Dựa trên Ampli-Tie của Becky Stern một cách lỏng lẻo, sử dụng bảng Flora, Holi-Tie sử dụng vi điều khiển Circuit Python Express (CPX) để điều khiển hoạt ảnh NeoPixel và âm nhạc. Một nút thay đổi giữa 2 hoạt ảnh NeoPixel khác nhau. Các miếng cảm ứng điện dung thay đổi màu NeoPixel và tốc độ hoạt ảnh. Nút khác thay đổi giữa hoạt ảnh LED và âm nhạc. Micrô trên bo mạch được sử dụng để đo tiếng ồn xung quanh cho hoạt ảnh của máy đo VU. Và loa CPX phát ra các giai điệu chip ngày lễ.

Mọi thứ đều được mã hóa bằng ngôn ngữ lập trình Python chạy trên hệ thống CircuitPython. Nó được cung cấp bởi pin LiPo 3.7V, 500mAH đã được sửa đổi để có công tắc bật / tắt.

Có hai video clip cho thấy Holi-Tie:

  • Holi-Tie đã hoàn thành
  • Inside the Holi-Tie

Bước 1: Các bộ phận và công cụ

Các bộ phận

  • Circuit Playground Express
  • 15x Flora Neopixels
  • Nam châm điện
  • Móc dính và băng vòng
  • Pin lipo 500mAH với đầu nối JST
  • Cà vạt Candy Cane
  • Công tắc trượt mini, SPDT
  • Ống co nhiệt

Khi tìm nguồn cung ứng các bộ phận, sẽ là khôn ngoan nếu bạn mua các phụ kiện bổ sung. Tôi đã có tổng cộng 20 NeoPixel, một trong số đó đã bị hỏng ngay từ đầu và một chiếc do tôi làm hỏng. Chiếc cà vạt Candy Cane quá rẻ nên tôi đã mua chiếc thứ hai đề phòng tôi làm hỏng chiếc đầu tiên.

Công cụ

  • Súng bắn keo nóng
  • Trạm hàn
  • Máy cắt dây
  • Dao nhỏ
  • Đồng hồ vạn năng
  • Máy vi tính
  • Nhẹ hơn hoặc súng nhiệt
  • Sợi và kim

Bước 2: Chuẩn bị ràng buộc

Sẵn sàng hòa
Sẵn sàng hòa
Sẵn sàng hòa
Sẵn sàng hòa
Sẵn sàng hòa
Sẵn sàng hòa

Mục tiêu chính là để truy cập vào lõi dây buộc bên trong và các đường phân giới chỉ ra vị trí của đèn LED.

Bước 1: Buộc cà vạt vào vị trí

Sẽ rất khó để thắt cà vạt khi các thiết bị điện tử đã ở đúng vị trí. Vì vậy, hãy thắt cà vạt sao cho nó trông đẹp và nút khá chắc chắn và không bị bung ra. Sau đó cẩn thận kéo đầu nhỏ của cà vạt để mở lỗ để lấy cà vạt qua đầu. Đây là vị trí mà cà vạt sẽ được làm việc.

Có tất cả các loại nút thắt cà vạt khác nhau. Tôi chỉ biết một thứ mà tôi đã học khi còn nhỏ, Windsor. Không quan trọng nút thắt nào được sử dụng.

Bước 2: Mở mặt sau của cà vạt

Rip mở các đường nối ở một bên của vòng cà vạt và logo, sau đó kéo xuống giữa cà vạt. Hãy cẩn thận vì nó phải được khâu lại ở cuối.

Bước 3: Vẽ đường thẳng nơi đặt đèn LED

Để đèn LED xuất hiện trong các phần sọc trắng của cà vạt, dễ dàng hơn để tìm đường trung tâm cho mỗi phần sọc trắng ở mặt sau của lõi cà vạt và sau đó ánh xạ nó với mặt trước của lõi cà vạt. Kiểm tra và kiểm tra kỹ để đảm bảo rằng đường trung tâm là 1) ở giữa và 2) song song với đường sọc. Bạn có thể tinh chỉnh các vị trí đèn LED nếu chúng bị lệch một chút. Nhưng tốt nhất là bạn nên lấy nó càng gần chính xác ngay bây giờ thay vì sau này.

Kiểm tra độ chính giữa của các đường bằng cách đặt đèn LED trên các đường và đặt vải sọc lên trên. Điều chỉnh khi cần thiết.

Bước 3: Gắn NeoPixels

Gắn NeoPixels
Gắn NeoPixels
Gắn NeoPixels
Gắn NeoPixels
Gắn NeoPixels
Gắn NeoPixels
Gắn NeoPixels
Gắn NeoPixels

Về cơ bản, chúng tôi đang tạo dải đèn LED của riêng mình. Chúng tôi chỉ cần gắn các đèn LED vào lõi dây buộc và sau đó kết nối chúng với nhau.

Bước 1: Gắn NeoPixels vào lõi dây buộc

Chấm một chút keo nóng lên mặt sau của NeoPixel, đặt nó lên các đường chính giữa. Đối với các phần có 3 NeoPixel, căn chỉnh theo chiều dọc NeoPixel ở giữa và dán chúng xuống trước. Điều này sẽ giúp định vị NeoPixel trái và phải dễ dàng hơn so với trung tâm, đặc biệt là khi chiều rộng của cà vạt tăng từ trên xuống dưới.

Đảm bảo định hướng tất cả các NeoPixel theo cùng một hướng, đi từ dưới cùng bên trái sang phía trên bên phải. Nếu điều này không chính xác, dải sẽ không hoạt động.

Một lưu ý về keo nóng. Nó sẽ đủ để có được dự án hoàn thành. Còn về việc liệu nó có tồn tại được trong nhiều năm tới hay không, người ta chỉ cần xem.

Bước 3: Hàn các NeoPixels với nhau

Bởi vì tôi quyết định hàn các NeoPixel lại với nhau thay vì sử dụng chỉ dẫn điện, lỗ trên miếng đệm NeoPixel sẽ hoạt động ngược lại với chúng tôi. Chỉ cần tìm một vị trí tốt trên miếng đệm để hàn dây vào. Đừng cố gắng lấp đầy lỗ bằng chất hàn, nhưng nếu nó xảy ra, nó sẽ không sao.

Dây nam châm có một lớp mỏng cách điện xung quanh một lõi đồng. Dùng dao cạo bỏ lớp cách điện ở đầu nơi chúng sẽ được hàn. Tốt nhất là cạo toàn bộ chu vi của dây.

Bước 4: Kiểm tra kết nối

Sử dụng đồng hồ vạn năng để kiểm tra khả năng kết nối của:

  1. Các kết nối tích cực. Cần có sự kết nối từ đầu đến đuôi. Đảm bảo kiểm tra kết nối trên miếng đệm chứ không phải dây.
  2. Các kết nối mặt đất. Thực hiện thử nghiệm tương tự nhưng với các tấm đệm tiếp đất.
  3. Mỗi dòng dữ liệu. Từ bảng dữ liệu này sang bảng dữ liệu tiếp theo, hãy xác minh rằng có kết nối.

Bước 4: Gắn Circuit Playground Express

Gắn Circuit Playground Express
Gắn Circuit Playground Express

Circuit Playground Express (CPX) là trung tâm của hệ thống. Adafruit có nhiều hướng dẫn cho bộ điều khiển này. Phần sau của hướng dẫn này, tôi sẽ nêu bật một vài tính năng của MCU.

Bước 1: Hàn CPX vào đầu cuối NeoPixel

Cắt các chiều dài thích hợp của dây điện từ cho nguồn điện, đất và dữ liệu. Đẩy chúng qua vải lõi của dây buộc để chúng chạm vào tấm đệm nguồn, mặt đất và dữ liệu NeoPixel. Hàn chúng xuống để đảm bảo rằng các dây hiện có trên miếng đệm vẫn đang kết nối tốt.

Tiếp theo lật ngược lõi cà vạt và đặt CPX vào vị trí mong muốn. Cắm dây nguồn vào đệm VOUT, dây nối đất vào bất kỳ đệm tiếp đất nào và dây dữ liệu vào bất kỳ đệm I / O nào khác ngoài A0. Đoạn mã tôi đã viết sử dụng A3.

Kiểm tra kết nối.

Bước 2: Ràng buộc CPX

Sử dụng chỉ và kim, chọn bốn miếng đệm cách đều nhau bất kỳ và khâu chúng xuống lõi cà vạt.

Bước 5: Cung cấp năng lượng cho CPX

Cung cấp năng lượng cho CPX
Cung cấp năng lượng cho CPX
Cung cấp năng lượng cho CPX
Cung cấp năng lượng cho CPX
Cung cấp năng lượng cho CPX
Cung cấp năng lượng cho CPX

CPX không có công tắc bật / tắt. Điều này có nghĩa là thời điểm pin được cắm vào, cà vạt sẽ bật. Điều này cũng có nghĩa là cách duy nhất để tắt nó là rút phích cắm của pin, đây là một rắc rối lớn. Một giải pháp đơn giản là đặt một công tắc tắt / mở trên pin.

Bước 1: Cắt chốt thứ 3 trên công tắc

Không cần một trong các chân không ở giữa. Cắt nó ra khỏi phần thân của công tắc.

Bước 2: Hàn công tắc vào dây dẫn pin

Cắt dây nối đất của pin ở đâu đó ở giữa. Trượt một đoạn ống co nhiệt trên mỗi dây nối đất. Hàn một dây nối đất vào một trong các chân và dây nối đất còn lại với chân kia. Đảm bảo rằng chúng không chạm vào nhau hoặc vật hàn chạm vào thân kim loại.

Xác minh rằng chúng không được kết nối bằng đồng hồ vạn năng. Trượt ống qua các kết nối đã hàn và thu nhỏ nó lại. Thêm một chút băng dính điện vào bất kỳ bộ phận nào có thể bị hỏng do mỏi khi uốn.

Bước 3: Xác minh pin hoạt động

Tại thời điểm này, pin có thể được cắm vào CPX. Nếu mọi việc suôn sẻ, công tắc sẽ có thể bật và tắt CPX.

Bước 4: Gắn pin

Đặt một chút móc dính và băng dính vòng vào mặt sau của pin và trên lõi dây buộc. Điều này sẽ giữ nguyên vị trí nếu cà vạt không được xử lý quá nhiều.

Bước 6: Thiết lập Circuit Playground Express

Tôi sẽ không đi vào chi tiết về cách thiết lập CPX. Adafruit làm điều đó và sau đó một số. Tôi sẽ cung cấp một vài mẹo cho các vấn đề mà tôi gặp khá thường xuyên.

CPX bị đóng băng

Có thể do các vấn đề về bộ nhớ thời gian chạy, CPX sẽ bị đóng băng khá thường xuyên. Cách khắc phục nhanh chóng là xóa và flash lại. Tìm kiếm "Old Way" trong các hướng dẫn này. Về cơ bản, nó là một vài lần nhấn nút, kéo và thả để xóa, sau đó kéo và thả để flash lại.

Cảnh báo: Điều này sẽ xóa mọi thứ. Tất cả mã trên CPX sẽ bị mất.

Lưu các thay đổi đối với CPX có thể gây ra vấn đề

Tôi phát hiện ra rằng đôi khi sau khi lưu tệp vào CPX, thời gian chạy python sẽ ở trạng thái xấu. Cách khắc phục là khởi động lại thời gian chạy python bằng cách nhấn nút đặt lại. Nhấn nó một lần duy nhất. Nhấn nó hai lần sẽ bắt đầu quá trình flash lại.

Tiết kiệm trực tiếp vào CPX có rủi ro

Do có khả năng CPX phải được kích hoạt lại, người ta có nguy cơ mất tất cả mã của họ. Sau khi bị mất mã hai lần, tôi đã nghĩ ra một quy trình làm việc đơn giản. Tôi sẽ lưu mã của mình vào đĩa cứng cục bộ. Khi nó đã sẵn sàng để được thử nghiệm trên CPX, tôi chỉ cần sao chép nó bằng cách chạy một tập lệnh triển khai đơn giản.

Bước 7: Mã hóa Circuit Playground Express

Tại thời điểm này, CPX và NeoPixels đã hoàn thiện khá nhiều. Không cần thực hiện công việc cơ hoặc điện nào khác với chúng. Phần còn lại là tất cả phần mềm.

Bạn có thể tìm thấy mã này tại tài khoản github của tôi. Mã python cốt lõi sẽ hoạt động mà không có bất kỳ thay đổi nào đối với tất cả các hệ điều hành. Không cài đặt các thư viện Adafruit CircuitPython bên ngoài. Chúng không được sử dụng.

Đây là bản tóm tắt cấp cao về những gì đang diễn ra trong mã.

Đầu vào là gì?

  • Nút A: Xoay vòng qua các hoạt ảnh LED
  • Nút B: Lướt qua các bài hát
  • Bàn di chuột điện dung A1: Thay đổi màu sắc cho hình ảnh động LED
  • Bàn di chuột điện dung A6: Thay đổi tốc độ của hình ảnh động LED

3 hoạt ảnh tồn tại nhưng chỉ có 2 hoạt động có hiệu lực

code.py

nhập pixelsoff

#import vumeter nhập cầu thang nhập lấp lánh… led_animations = [pixelsoff. PixelsOff (pixel), # vumeter. VuMeter (pixel, 100, 400) cầu thang. Stairs (pixel), twinkle. Twinkle (pixel)]

Tôi đã chuyển mã kiểu đồng hồ Ampli-Tie VU. Nó sử dụng micrô CPX để thu âm thanh và phát sáng NeoPixels dựa trên biên độ âm thanh. Tuy nhiên, tôi muốn có nhiều hình ảnh động hơn. Do hạn chế về bộ nhớ thời gian chạy, tôi phải chọn hoạt ảnh mà tôi muốn. Vì vậy, theo mặc định, hai phần còn lại, Stairs và Twinkle, sẽ chạy mà không cần phải thực hiện thay đổi mã. Để chạy hoạt ảnh đồng hồ VU, một hoặc cả hai hoạt ảnh khác phải được nhận xét và bỏ ghi chú máy đo VU.

Trình quản lý âm nhạc và mã hóa ngoại tuyến

frosty_the_snowman.py

nhập music_notes dưới dạng mn

# Frosty the Snowman # Walter E. Rollins song = [(mn. G4, mn. HLF), (mn. E4, mn. DTQ), (mn. F4, mn. ETH), (mn. G4, mn. QTR), (mn. C5, mn. HLF),…

convert_to_binary.py

bài hát = [(jingle_bells.song, "jingle_bells.bin"), (frosty_the_snowman.song, "frosty_the_snowman.bin")] cho bài hát trong các bài hát: data = song [0] file = song [1] khi mở (tệp, "wb") as bin_file: để nhập dữ liệu: print ("write:" + str (entry)) note = entry [0] dur = entry [1] bin_file.write (struct.pack ("<HH", note, dur))

Tôi muốn âm nhạc ngày lễ. CPX hỗ trợ cả WAV và âm báo. Các tệp WAV hóa ra quá lớn về kích thước tệp và bộ nhớ thời gian chạy. Sử dụng cấu trúc dữ liệu python để giữ âm và thời lượng của chúng cũng hóa ra sử dụng quá nhiều bộ nhớ thời gian chạy. Vì vậy, tôi đã sửa đổi mã Holi-Tie để đọc tệp nhị phân nén chỉ chứa dữ liệu bài hát cần thiết ở định dạng nhị phân nén. Tôi đã viết một tập lệnh đọc một bài hát được tổ chức trong cấu trúc dữ liệu python và viết nó ra định dạng nhị phân. Bài hát được mã hóa dưới dạng dữ liệu nhị phân trong một tệp làm cho bài hát vừa nhỏ vừa động. Khi bài hát được phát xong, bộ nhớ sẽ được giải phóng.

Nó là tầm thường để thêm nhiều bài hát. Để biết chi tiết, hãy xem README.md trong các bài hát.

Nút A Hoạt hình NeoPixels, B Phát nhạc nhưng không đồng thời

code.py

def button_a_pressed ():

if music.is_playing (): # Dừng nhạc nếu đang phát nhạc.stop () next_led_animation () def button_b_pressed (): if active_led_animation! = 0: # Run no-op animation next_led_animation (0) if music.is_playing (): # Toggle bật hoặc tắt nhạc music.stop () else: music.play ()

Ngay cả với hệ thống quản lý nhạc hiệu quả hơn về bộ nhớ, tôi cũng không thể giữ 2 hoạt ảnh trong bộ nhớ thời gian chạy, khi đang phát 1 trong số chúng và đồng thời phát một bài hát. Bởi vì tôi đã chọn không có đồng hồ VU trong bộ nhớ thời gian chạy, tôi không muốn giảm số lượng hoạt ảnh xuống chỉ còn 1. Vì vậy, tôi đã viết mã để hoạt ảnh đang phát hoặc nhạc đang phát nhưng không. cả hai. Một tùy chọn khác là giảm số lượng NeoPixels nhưng điều đó sẽ làm mất đi một số tính năng hoạt hình.

Sự nghiện mã Python

Mặc dù tôi là một nhà phát triển phần mềm kỳ cựu, nhưng tôi chưa bao giờ viết Python. Sau khi hiểu rõ về nó và áp dụng các phương pháp mã hóa tốt như đóng gói và mô-đun hóa, tôi nhanh chóng phát hiện ra mình đang sử dụng quá nhiều bộ nhớ thời gian chạy. Vì vậy, có một chút hợp lý của mã không KHÔ. Tôi cũng phải sử dụng một số kỹ thuật MicroPython như const () để giảm thêm các vấn đề về bộ nhớ thời gian chạy.

Mô-đun tổng hợp

biên dịch

#! / bin / bash

compiler = ~ / development / circuitpython / mpy-cross-3.x-windows.exe cd bài hát python3./convert_to_binary.py cd.. for f in *.py; thực hiện nếu

Đầu dự án, tôi làm theo lời khuyên của Adafruit và lưu trữ tất cả các thư viện Adafruit CircuitPython trên flash. Tuy nhiên, điều này đã để lại ít chỗ cho dự án của tôi. Để có thể đưa mã của mình lên CPX, tôi đã bắt đầu biên dịch các mô-đun và đặt chúng vào MCU. Hóa ra Holi-Tie không cần bất kỳ thư viện bên ngoài nào. Các thư viện hiện có trong UF2 là đủ cho dự án này. Chạy các tệp *.mpy hiệu quả hơn một chút vì vậy tôi đã giữ nguyên quá trình triển khai các mô-đun đã biên dịch.

Như rõ ràng trong tập lệnh biên dịch ở trên, tôi đang làm việc trên máy Windows nhưng sử dụng các tiện ích Unix như bash và python3. Tôi sử dụng Cygwin để thực hiện điều này. Tập lệnh này có thể dễ dàng được dịch sang hàng loạt DOS và triển khai Python3 bản địa của Windows.

Bước 8: Nâng cao cà vạt

Nâng cao dây buộc
Nâng cao dây buộc
Nâng cao dây buộc
Nâng cao dây buộc

Bước cuối cùng là đặt lõi cà vạt lại, ráp lại cà vạt và may lại. Đảm bảo có thể làm cho CPX có thể truy cập được. Bạn sẽ cần nó khi thay pin hoặc thay đổi mã.

Đề xuất: