Mục lục:

Magic Answers Ball với Arduino Pro Mini và Màn hình TFT: 7 bước
Magic Answers Ball với Arduino Pro Mini và Màn hình TFT: 7 bước

Video: Magic Answers Ball với Arduino Pro Mini và Màn hình TFT: 7 bước

Video: Magic Answers Ball với Arduino Pro Mini và Màn hình TFT: 7 bước
Video: Ông nào tự tin bắn vào pha này ? #shorts 2024, Tháng mười một
Anonim
Magic Answers Ball với Arduino Pro Mini và màn hình TFT
Magic Answers Ball với Arduino Pro Mini và màn hình TFT
Magic Answers Ball với Arduino Pro Mini và màn hình TFT
Magic Answers Ball với Arduino Pro Mini và màn hình TFT
Magic Answers Ball với Arduino Pro Mini và màn hình TFT
Magic Answers Ball với Arduino Pro Mini và màn hình TFT

Một thời gian trước, con gái tôi và tôi đã tách một quả bóng Magic 8 ra để con bé có thể thay thế hai mươi câu trả lời bằng những quả bóng do cô ấy chọn. Đây là một món quà cho một người bạn của cô ấy. Điều đó khiến tôi nghĩ cách làm điều đó trên quy mô lớn hơn. Chúng ta có thể có nhiều hơn 20 câu trả lời không? Với một phiên bản điện tử, chúng tôi có thể!

Vì vậy, điều này sẽ mô tả cách tôi tháo rời Mattel Magic 8 Ball (xin lỗi, Mattel) và sử dụng màn hình TFT tròn để hiển thị số lượng phản hồi bổ sung đáng kinh ngạc (thẻ micro-SD nhỏ nhất mà tôi có thể tìm thấy là 8GB, vì vậy nó thực sự quá mức cần thiết nó đang được sử dụng để làm gì). Quả bóng sử dụng bảng điều khiển Sparkfun Wake-on-lắc để kích hoạt phản ứng và tắt quả bóng sau đó để tiết kiệm pin. Bo mạch sạc được sử dụng để cho phép sạc lại pin từ kết nối USB.

Quân nhu

Các bộ phận:

Arduino Pro Mini 328 - 3,3V / 8MHz

SparkFun Wake on Shake

Pin Lithium Ion - 400mAh

Bộ tổ chức 12 cái TP4056 Mô-đun sạc 5V Micro USB 1A 18650 Bảng sạc pin Lithium có Mô-đun sạc bảo vệ (bạn chỉ cần một trong số những cái này, nhưng gói 12 chiếc ít hơn $ 9)

Bo mạch lưu trữ Micro SD DAOKI 5 cái (một lần nữa, bạn chỉ cần một cái, nhưng gói 5 cái vẫn chưa đến $ 9)

Mô-đun màn hình LCD TFT 2.2 inch DFRobot

Thẻ nhớ microSD 8 GB của Kingston (bạn có thể có một cái cũ trong số này nằm xung quanh nhà bạn)

Perma-Proto Breadboard PCB kích thước 1/4 (bạn cũng có thể chỉ cần sử dụng bất kỳ PCB nào bạn thích)

Magic 8 Ball

FTDI Basic breakout 3.3V (bạn có thể đã có một trong số này nếu bạn đã thực hiện một dự án tương tự với Arduino Pro Mini hoặc bảng tương tự)

Vỏ 4 pin với Bộ kết nối dây Dupont đầu dây JST XH 2,54mm JST XH (tùy chọn, nhưng được khuyến nghị để kết nối pin)

Các nguồn cung cấp cơ bản khác:

Keo dán khuôn Sugru (có thể sử dụng băng keo và keo nóng, nhưng tôi thích loại này hơn)

Băng keo

Băng keo hai mặt xốp

Dây điện

Công cụ:

Hàn sắt

Công cụ quay do bạn lựa chọn (tức là Dremel)

Kẹp đồ đạc

Bước 1: Cắt Magic 8 Ball làm đôi

Cắt đôi Magic 8 Ball
Cắt đôi Magic 8 Ball
Cắt đôi Magic 8 Ball
Cắt đôi Magic 8 Ball

Đầu tiên, bạn sẽ cần phải chia Magic 8 Ball ra làm đôi. Tôi cố định mình vào một chiếc bàn làm việc với mặt phẳng xuống dưới bằng một chiếc kẹp đồ nội thất. Sử dụng một Dremel có gắn đĩa cắt cơ bản, cắt dọc theo đường nối của quả bóng. Bạn sẽ cần phải cắt sâu, chừng mực mà đĩa cắt cho phép. Chậm lại đi. Ngay cả sau khi bạn đã cắt hết xung quanh, bạn có thể cần sử dụng tuốc nơ vít đầu phẳng hoặc đục để thực hiện việc tách cuối cùng. Có một hình trụ chứa chất lỏng "ma thuật" và hình tứ diện (hình hai mươi mặt - vâng, tôi đã phải nhìn lên) bên trong. Chỉ cần vứt nó đi hoặc sử dụng nó trong một số dự án khác. Nếu bạn sử dụng nó trong một dự án khác, hãy cho tôi biết bạn đã làm gì để tôi biết phải làm gì với của tôi.

Bạn sẽ được để lại với hai nửa như trong hình. Tôi đã làm điều này ba lần bây giờ và lần gần đây nhất, môi trắng mịn chứ không có gờ, vì vậy bóng của bạn có thể trông hơi khác so với môi trong hình.

Sẽ vẫn còn một ít xỉ nhựa xung quanh mép ngoài (nhựa nóng chảy và đóng rắn lại). Hãy phanh tay ra, nếu bạn có thể; sử dụng một công cụ có nguy cơ làm hỏng kết thúc bóng và xỉ ra khá dễ dàng.

Bước 2: Chuẩn bị bóng

Chuẩn bị bóng
Chuẩn bị bóng
Chuẩn bị bóng
Chuẩn bị bóng
Chuẩn bị bóng
Chuẩn bị bóng

Có hai sửa đổi mà chúng ta sẽ cần thực hiện đối với các nửa nhựa của quả bóng.

Đầu tiên, ở nửa mở, phần có sơn số "8", chúng tôi sẽ cần phải cạo một khu vực đủ lớn để bảng sạc USB của chúng tôi đặt với cổng USB thò ra ngoài. Tôi đã sử dụng Dremel của mình với một trống chà nhám thô đi kèm. Bạn muốn cái này mỏng nhất có thể mà không cần làm sạch. Sau đó, cắt một lỗ nhỏ vừa đủ lớn để cho phép cổng USB chọc qua bên ngoài. Tôi đã sử dụng thước cặp để đo cổng USB, nhưng bạn có thể để ý đến điều này nếu cần. Một lần nữa, tôi sử dụng Dremel với một phần đính kèm cắt nhỏ để làm phần mở. Hai hình ảnh đầu tiên cho thấy cách mở và những gì trông như thế nào với bảng USB đằng sau nó.

Thứ hai, ở nửa còn lại, một nửa có lỗ ở CẢ HAI bên và nắp nhựa trắng, hãy chuẩn bị một vị trí để đặt màn hình. Ngay bên trong lỗ, nơi màn hình sẽ đặt, có các đường gờ bằng nhựa và một mặt bích cao su (?) Ở bên trong lỗ. Lấy mặt bích ra và đặt nó sang một bên. Chúng tôi sẽ đặt nó trở lại sau, nhưng chúng tôi muốn điều đó không có lợi cho bước này. Màn hình có một hình chữ nhật đùn ở một bên sẽ không cho phép nó nằm phẳng khi mở nếu một số đường gờ này không được loại bỏ. Sử dụng trống chà nhám thô trên Dremel một lần nữa, cạo chúng càng nhiều càng tốt. Đi vào từ lỗ nơi màn hình sẽ có góc tốt nhất. Nó sẽ giống như hình ảnh khi hoàn thành. Lưu ý, các hình ảnh hiển thị hiển thị tại chỗ, nhưng KHÔNG ĐƯỢC ĐÍNH KÈM.

Bước 3: Chuẩn bị phản hồi trên thẻ Micro-SD

Bước này hơi phức tạp hơn bạn nghĩ. Nếu bạn không muốn tạo danh sách phản hồi của riêng mình, hãy chuyển đến đoạn cuối cùng của bước này.

Mục đích là chúng ta có thể cung cấp cho quả bóng bất kỳ danh sách các chuỗi nào được sử dụng làm phản hồi có thể và chúng sẽ được căn giữa trên màn hình mà không có bất kỳ dấu ngắt nào ở giữa các từ. Chúng tôi không muốn thực hiện quá trình xử lý này trên bộ vi điều khiển và chúng tôi muốn một tệp có kích thước bản ghi tĩnh để có thể tìm thấy bất kỳ dòng cụ thể nào một cách nhanh chóng.

Mặc dù màn hình là hình tròn, nhưng về mặt chức năng, nó vẫn là một màn hình hình chữ nhật ảo chỉ có các pixel trong vòng tròn có thể nhìn thấy được. Màn hình có thể hiển thị văn bản nhiều kích thước, nhưng chúng tôi chỉ sử dụng phiên bản nhỏ nhất là 6 x 8 pixel. Sử dụng kích thước này, có 315 ký tự hiển thị có thể hiển thị trên màn hình (21 ký tự trên mỗi dòng nhân với 15 dòng), nhưng chỉ có 221 ký tự được hiển thị và mỗi dòng có một số ký tự hiển thị khác nhau. Thấy vấn đề?

Tôi đã viết một chương trình Java để lấy một tệp các phản hồi chưa được định dạng và chuyển đổi chúng thành các bản ghi được căn giữa đầy đủ để có thể dễ dàng hiển thị trên TFT tròn. (liên kết để tải xuống tệp "FormatToPicksFileFullyCentered.java").

Không đi sâu vào giải thích toàn bộ mã, ý tưởng chung là chúng ta làm việc ngược lại từ trung tâm (ish) và chèn khoảng trắng để đảm bảo rằng chúng ta không ngắt các từ trên các dòng có thể nhìn thấy, sau đó làm điều tương tự từ Trung tâm về phía trước. Cuối cùng, chúng tôi lặp lại tất cả các dòng và căn giữa mỗi dòng bên trong 21 dòng ký tự đầy đủ để tạo bản ghi có chính xác 316 byte (315 ký tự chữ và số cộng với một ký tự dòng mới). Mã thực sự hoạt động thông qua ba phông chữ, x 3, x 2 và x 1 để xem đâu là phông chữ lớn nhất có thể được sử dụng mà vẫn phù hợp với văn bản. Căn giữa hơi bị lệch đối với phông chữ x 2 và x 3, xin lỗi. Hãy cẩn thận với các ký tự chiếm nhiều hơn một byte, những ký tự này có thể làm hỏng tệp được xuất ra.

Sao chép tệp "pick.txt" vào thẻ micro-SD.

Nếu bạn không muốn gặp rắc rối khi tạo danh sách các lựa chọn của riêng mình, tôi đã đưa vào danh sách các lựa chọn của mình mà bạn có thể sao chép vào thẻ SD và sử dụng. Tôi không thể tải lên tệp.txt cho các tệp hướng dẫn tại thời điểm này, vì vậy đây là liên kết đến nơi bạn có thể tải xuống tệp pick.txt.

Bước 4: Tải mã lên Arduino Mini

Tải mã lên Arduino Mini
Tải mã lên Arduino Mini
Tải mã lên Arduino Mini
Tải mã lên Arduino Mini
Tải mã lên Arduino Mini
Tải mã lên Arduino Mini

Trước hết, nếu bạn chưa bao giờ sử dụng Arduino Pro Mini trước đây, bạn không thể chỉ cắm cáp USB và tải xuống; bạn phải sử dụng bảng FTDI và kết nối dây với các chân thích hợp trên mini. Tôi sẽ không đưa ra hướng dẫn về điều đó ở đây, có rất nhiều thứ trên web. Đối với tôi, tôi không muốn hàn một đầu nối cố định vào bảng vi điều khiển chỉ được sử dụng một lần để tải xuống mã, vì vậy tôi đã tạo một đoạn clip nhỏ có thể được sử dụng để lập trình mini mà không cần hàn (xem hình ảnh). Điều này được lấy cảm hứng từ các sản phẩm như Fiddy, nhưng tôi không có khả năng tiếp cận dễ dàng với máy in 3D, vì vậy tôi đã tự làm từ một chiếc kẹp khoai tây chiên. Nếu mọi người quan tâm, tôi sẽ chỉ dẫn cho điều đó.

Trên mã. Có một vài phần thú vị trong mã này, nhưng nó chủ yếu là thẳng về phía trước.

Trong chức năng thiết lập, có một lượng mã phù hợp để xử lý việc nhận được một hạt giống ngẫu nhiên tốt. Theo kinh nghiệm của tôi, phương pháp điển hình của việc sử dụng phép đọc tương tự từ một chân không được kết nối không cung cấp phản hồi đủ đa dạng. Tôi nhận được một số từ 477 đến 482. Vì hàm ngẫu nhiên Arduino có một và chỉ một chuỗi và hạt giống xác định vị trí bắt đầu trong chuỗi đó, nên cuối cùng một phạm vi hẹp như vậy sẽ không tạo ra đủ phản hồi có thể. Hãy nhớ rằng mã này về cơ bản bắt đầu lại mỗi khi bảng Wake-on-lắc tắt và bật lại nguồn, vì vậy vị trí trình tự ban đầu được xác định bởi hạt giống là rất quan trọng. Để giải quyết vấn đề này, tôi ghi một tệp rất nhỏ vào thẻ SD để theo dõi hạt giống cuối cùng và thêm nó vào một giá trị mới đến từ chân không được kết nối.

Khi một lựa chọn được chọn trong hàm vòng lặp và đọc thành một mảng ký tự, chúng ta không thể chỉ in ra toàn bộ chuỗi. Màn hình có giới hạn về độ dài của chuỗi mà nó có thể xử lý tại một thời điểm. Vì lý do đó, chúng ta phải lặp qua từng dòng trong số mười lăm dòng và gửi chúng đến màn hình một lúc.

Thư viện bên ngoài bắt buộc:

Thư viện ST7687S

Thư viện hiển thị DFRobot

Bước 5: Lên dây cho các thành phần

Lên dây các thành phần
Lên dây các thành phần
Lên dây các thành phần
Lên dây các thành phần

Thời gian để thực hiện tất cả các mối hàn của dây. Tôi có xu hướng mắc lỗi ở phía bên của dây dài hơn một chút so với mức tôi thực sự cần, nhưng điều đó cuối cùng vẫn hoạt động tốt.

Trong sơ đồ đính kèm, màn hình TFT được thể hiện bằng một đầu nối chứ không phải là hình ảnh của toàn bộ màn hình (mà tôi không thể tìm thấy phần Fritzing cho). Tôi đã gắn nhãn các dây / chân dựa trên cách chúng được dán nhãn trên bộ phận. Tương tự, thẻ SD không phải là thẻ chính xác mà tôi đã sử dụng, nhưng tôi đã gắn nhãn các dây / chân cho phần được liệt kê.

Có một thành phần mà tôi đã không hàn lại với nhau ở bước này: pin. Thay vào đó, tôi đã sử dụng đầu nối bốn chân với hai chân ở giữa bị loại bỏ (hình thứ hai). Điều này cho phép tôi kiểm tra tất cả các thành phần có dây với nhau và sau đó ngắt kết nối pin trong khi tôi gắn mọi thứ vào quả bóng.

Cuối cùng, tôi đã sử dụng một PCB breadboard cố định có kích thước một phần tư để làm cho nguồn điện và các kết nối được chia sẻ dễ dàng hơn. Bạn sẽ thấy điều đó trong các hình ảnh lắp ráp.

Kiểm tra xem mọi thứ đang hoạt động

Bước 6: Gắn các thành phần vào bóng

Gắn các thành phần vào bóng
Gắn các thành phần vào bóng
Gắn các thành phần vào bóng
Gắn các thành phần vào bóng
Gắn các thành phần vào bóng
Gắn các thành phần vào bóng
Gắn các thành phần vào bóng
Gắn các thành phần vào bóng

Đầu tiên hãy đặt màn hình vào vị trí và sử dụng một số Sugru để bảo vệ nó (hai hình ảnh đầu tiên). Đừng quên về mặt bích mà bạn đã tháo ra trước đó, bạn nên đặt lại mặt bích đó trước khi cố định màn hình vào đúng vị trí.

Tiếp theo, tôi dán bảng proto-board vào dưới cùng của một nửa trống của quả bóng. Tôi giữ tất cả các vật hàn của mình ở một mặt của bảng, vì vậy tôi vẫn còn một nửa bảng mà tôi có thể dán lên. Sau đó, tôi dán pin lên trên cùng một nửa của bo mạch chủ (hình ảnh thứ ba).

Cả hai nửa bây giờ được kết nối bằng dây. Tìm ra vị trí lỗ USB sẽ kết thúc khi bạn đặt hai nửa lại với nhau. Nếu môi trắng có gai nhô lên, hãy lưu ý rằng nó cần hướng xuống trung tâm vào một trong các rãnh của môi trắng vì chúng ta sẽ cố định bảng sạc USB giữa hai trong số các gờ nhựa trên môi.

Sử dụng một miếng băng dính xốp hai mặt nhỏ, gắn bảng sạc USB. Băng keo hai mặt không nên che hết phần dưới của bảng sạc vì phần cuối có gắn dây sẽ treo qua mép giữa của môi trắng. Vì vậy, băng nên bao phủ khoảng 3/4 bề mặt dưới cùng của bảng. Trước tiên, hãy đặt băng dính xuống dưới cùng của bảng, sau đó ấn nó vào vị trí bạn đã quyết định. Đầu nối USB phải ở cạnh quả bóng, dính vào vùng đen của miếng nhựa mà không đi ra ngoài quả bóng. Cuối cùng, sử dụng thêm một số Sugru trên đầu bảng và cố định ở cả hai bên. Điều này chỉ tăng thêm sức mạnh khi cáp được đẩy vào cổng USB.

Đặt thẻ micro-SD vào mô-đun thẻ SD ngay bây giờ

Bạn có thể cố định các thành phần khác vào môi trắng nếu muốn. Tôi chỉ nhét các thành phần còn lại vào phía sau màn hình.

Bước 7: Đặt hai nửa lại với nhau

Đặt hai nửa lại với nhau
Đặt hai nửa lại với nhau
Đặt hai nửa lại với nhau
Đặt hai nửa lại với nhau

Kiểm tra kỹ xem bạn đã lắp thẻ SD chưa và bạn đã kiểm tra tất cả các thành phần với nhau chưa.

Được rồi, nếu bạn đã sẵn sàng, hãy tạo một con rắn dài bằng một ít keo Sugru và chạy nó quanh mép của nửa quả bóng với môi trắng (hình đầu tiên). Keo nên được đặt ngay trên phần tiếp giáp nơi các phần đen và trắng của nhựa với nhau. Đặt keo ở đây đảm bảo bạn có một liên kết chắc chắn đồng thời giảm thiểu lượng keo ép ra khỏi vết nứt sau khi hai nửa được ghép lại.

Nhấn hai nửa lại với nhau để đảm bảo rằng cổng USB cắm qua lỗ đã cắt trước đó cho nó. Sử dụng kẹp đồ đạc, kẹp hai nửa lại với nhau vừa đủ để giữ hai nửa với nhau, không cần kẹp chặt. Keo Sugru sẽ đông cứng trong khoảng 24 giờ.

Nếu keo dính ra khỏi mối nối, bạn có thể dùng ngón tay hoặc một miếng vải mịn / khăn giấy để cạo sạch.

Đề xuất: