- Vật liệu thiết yếu:
- Sơ đồ mạch:
- Tạo Ứng dụng Android bằng Xử lý:
- Tìm hiểu Quy tắc xử lý:
- Lập trình Arduino của bạn:
- Thiết kế mạch và PCB sử dụng EasyEDA:
- Tính toán và đặt hàng mẫu trực tuyến:
- Hoạt động của màn hình bảng ký hiệu Bluetooth:
Có thể là đường cao tốc kéo dài hoặc trước cửa nhà bác sĩ của bạn, chúng tôi có bảng chỉ dẫn được đặt ở khắp mọi nơi để cung cấp thông tin cho chúng tôi. Nhưng những bảng chỉ dẫn này thường nhàm chán và không thể được cấu hình theo sở thích của chúng tôi theo thời gian. Vì vậy, trong dự án này, chúng tôi sẽ xây dựng một Bảng hiệu điều khiển bằng Bluetooth sử dụng màn hình Ma trận 8 * 8. Một tính năng độc đáo của dự án này là ứng dụng Android của nó cho phép người dùng điều khiển tất cả 64 đèn LED riêng lẻ từ điện thoại di động. Điều này cho phép người dùng dễ dàng tạo các thiết kế tùy chỉnh và hiển thị trên màn hình LED, nghe thật thú vị phải không? !! Vậy hãy bắt đầu…
Vật liệu thiết yếu:
- Arduino Pro mini
- MAX7219
- Mô-đun Bluetooth HC-05
- Màn hình ma trận LED 8 * 8
- Điện trở 20k
- Jack thùng DC
Sơ đồ mạch:
Sơ đồ mạch Bảng đèn LED được điều khiển bằng Bluetooth này được xây dựng bằng ứng dụng EasyEDA. Chúng tôi sẽ sử dụng các sơ đồ tương tự để phát triển PCB từ nó và chế tạo nó bằng EasyEDA.
Mạch khá thẳng về phía trước. Toàn bộ dự án được cung cấp năng lượng bởi một bộ chuyển đổi 12V, được cấp trực tiếp cho chân Raw của Bảng Arduino. Điện áp Raw này sau đó được điều chỉnh thành + 5V được cung cấp cho mô-đun Bluetooth và IC MAX7219. Các chân Tx và Rx của mô-đun Bluetooth được kết nối với D11 và D10 của Arduino để cho phép kết nối nối tiếp.
Các chân kỹ thuật số D5 đến D7 được kết nối với IC MAX7219 để gửi và nhận dữ liệu thông qua giao tiếp SPI. Chân ISET của MAX7219 được kéo cao qua Điện trở 20k.
Đối với dự án này, tôi đã chế tạo PCB, bạn có thể lấy tệp thiết kế của PCB và sử dụng nó hoặc xây dựng mạch trên một breadboard. Tuy nhiên do độ phức tạp của nó, bạn nên mua mô-đun Màn hình 8x8 hoặc sử dụng PCB
Ma trận 8x8 là mô-đun hiển thị rất hữu ích và có thể được sử dụng trong nhiều dự án thú vị:
- Điều khiển Ma trận LED 8x8 với Raspberry Pi
- Hiển thị văn bản cuộn trên Ma trận LED 8x8 bằng Arduino
- Ma trận LED 8x8 sử dụng Arduino
- Giao diện ma trận LED 8x8 với Vi điều khiển AVR
Tạo Ứng dụng Android bằng Xử lý:
Trước khi có thể bắt đầu lập trình Arduino, chúng ta nên biết loại dữ liệu nào chúng ta sẽ nhận được từ điện thoại di động để phản hồi lại nó. Vì vậy, hãy cùng xem cách ứng dụng Android được tạo ra và cách bạn có thể sử dụng nó trên điện thoại thông minh để điều khiển ma trận LED 8x8.
Ứng dụng Android cho dự án này đã được tạo bằng phần mềm Xử lý. Nó là một ứng dụng phát triển Mã nguồn mở và có thể dễ dàng tải xuống và sử dụng để phát triển các dự án thú vị bằng Arduino hoặc các Vi điều khiển khác vì nó có thể phát triển các ứng dụng hệ thống và ứng dụng Android. Chúng tôi đã thực hiện một số dự án bằng Xử lý và bạn có thể kiểm tra chúng bằng cách nhấp vào các liên kết bên dưới.
- Tự làm đài FM bằng cách xử lý
- Thực tế ảo / Điều khiển cử chỉ bằng Arduino
- Phòng trò chuyện riêng sử dụng Arduino.
- Hệ thống rađa Arduino sử dụng ứng dụng xử lý và cảm biến siêu âm
- Theo dõi và phát hiện khuôn mặt thời gian thực bằng Arduino
- Tự làm đồng hồ tốc độ bằng Arduino và Xử lý
- Trò chơi Ping Pong sử dụng Arduino Accelerometer
- Robot Biped sử dụng Arduino
- Máy ảnh nhiệt Arduino DIY
Quay trở lại chủ đề, tôi không thể giải thích mã hoàn chỉnh của ứng dụng android nên bạn sẽ phải tự học cách xử lý và sau đó xem mã để hiểu cách hoạt động của nó. Do đó, đối với những người sẵn sàng bỏ qua quá trình học Xử lý có thể tải xuống ứng dụng Android từ liên kết bên dưới
- Tải xuống ứng dụng Android
Dưới đây là giao diện của Ứng dụng Android của chúng tôi:
Tệp APK có thể được cài đặt trực tiếp trên bất kỳ ứng dụng Android nào và khởi chạy giống như bất kỳ ứng dụng nào khác. Nhưng hãy đảm bảo rằng thiết bị Bluetooth HC-05 của bạn được đặt tên là “HC-05”, vì chỉ khi đó thiết bị mới hoạt động.
Tìm hiểu Quy tắc xử lý:
Những người muốn biết những gì xảy ra phía sau màn hình có thể đọc thêm, những người khác có thể bỏ qua tiêu đề tiếp theo. Về cơ bản, ứng dụng Android kết nối với thiết bị Bluetooth có tên “HC-05” trong quá trình khởi động và hiển thị một bộ 64 đèn LED dưới dạng hình tròn. Sau đó, khi người dùng nhấn vào vòng tròn, vòng tròn chuyển sang màu đỏ và số vòng tròn được gửi đến Arduino thông qua Bluetooth, khi nhận được số của vòng tròn, Arduino sẽ bật đèn LED. Chúng ta hãy xem xét các dòng quan trọng của chương trình Xử lý để hiểu rõ hơn. Bạn có thể tải xuống mã hoàn chỉnh của ứng dụng Android từ liên kết bên dưới.
- Mã xử lý cho ứng dụng Android
Chúng tôi sử dụng các lớp và đối tượng để hiển thị 64 đèn LED để chúng tôi có thể giải quyết từng đèn LED một cách dễ dàng. Như bạn có thể thấy trong đoạn mã dưới đây, chúng tôi sử dụng vòng lặp for để lặp lại từ 1 đến 64 bằng cách sử dụng một mảng. Đây là mỗi đèn LED sẽ có giá trị riêng của vị trí X, vị trí Y và màu sắc và chúng ta có thể thay đổi chúng dễ dàng.
// dipslay tất cả các led for (int i = 1; i <= 64; i ++) led_array.display (); // Tất cả các led hiển thị lớp Led { float X_Pos; float Y_Pos; màu sắc; // CONSTRUTOR Led (float tempx, float tempy, color tempc) { X_Pos = tempx; Y_Pos = tempy; màu = tempc; } void display () { fill (màu); hình elip (X_Pos, Y_Pos, led_dia, led_dia); } }
Đèn LED được tải trên màn hình theo cùng thứ tự của màn hình. Mỗi LED cách nhau một khoảng bằng đường kính của LED, bằng cách này chúng ta có thể dễ dàng phân biệt được LED nào đang được người dùng lựa chọn. Như được hiển thị trong chương trình dưới đây, chúng tôi tạo một mảng trong đó mỗi phần tử chứa thông tin về vị trí X, Y và màu sắc của đèn LED.
void load_leds () { led_array = new Led; int a = 1; for (int j = 0; j <= 7; j ++) { float y = height / 6 + j * (led_dia * 1.5); for (int i = 0; i <= 7; i ++) { float x = (width / 6) + i * (led_dia * 1.5); // điền (255); // hình elip (x, y, led_dia, led_dia); led_array = new Led (x, y, color (255,255,255)); a ++; } } }
Bước chính trong chương trình là kiểm tra xem người dùng đã nhấn bất kỳ đèn LED nào chưa và nếu có, chúng tôi phải thay đổi màu của đèn LED và gửi số đèn LED qua Bluetooth. Vì bây giờ chúng ta có thể xác định vị trí và màu sắc của từng đèn LED một cách dễ dàng, chúng ta có thể thực hiện việc này bằng cách so sánh các giá trị X, Y của nơi người dùng đã nhấn với giá trị X, Y của các đèn LED. Nếu các giá trị hợp nhất với nhau thì chúng tôi thay đổi trạng thái của đèn LED và cũng gửi số thông qua Bluetooth như hình dưới đây.
// kiểm tra xem có phải di chuột qua led hay không // Nếu có, hãy gửi số led cho (int i = 1; i <= 64; i ++) { if ((mouseX <(led_array.X_Pos + led_dia / 2)) && (mouseX> (led_array.X_Pos - led_dia / 2))) && (mouseY <(led_array.Y_Pos + led_dia / 2)) && (mouseY> (led_array.Y_Pos - led_dia / 2))) {led_array = new Led (led_array.X_Pos, led_array. Y_Pos, led_color); dữ liệu byte = {byte (i)}; bt.broadcast (dữ liệu); } }
Ngoài ra, chương trình cũng có thể Đặt lại đèn LED hoàn chỉnh bằng cách tắt tất cả chúng và bạn cũng có thể làm cho đèn LED chuyển sang màu đỏ (BẬT) hoặc trắng (TẮT) để chúng tôi cũng có nút chuyển đổi cho điều đó. Nút bật tắt được hiển thị và chờ đầu vào. Nếu được nhấn, hành động tương ứng sẽ được thực hiện. Mã để làm điều tương tự được hiển thị bên dưới dưới dạng hàm được gọi bên trong vòng lặp vẽ.
void load_buttons () { directMode (CENTER); textAlign (TRUNG TÂM, TRUNG TÂM); noStroke (); điền vào (# 1BF2D4); trực tràng (chiều rộng / 2 chiều rộng / 4, chiều cao / 1,3, chiều rộng / 4, chiều cao / 12); điền (0); text ("Đặt lại", width / 2-width / 4, height / 1.3); // nút 1 if (red == true) {fill (# 080F89); trực tràng (chiều rộng / 2 + chiều rộng / 4, chiều cao / 1,3, chiều rộng / 4, chiều cao / 12); điền (255,0,0); text ("RED", width / 2 + width / 4, height / 1.3);} // nút 2 if (red == false) {fill (# 080F89); trực tràng (chiều rộng / 2 + chiều rộng / 4, chiều cao / 1.3, chiều rộng / 4, chiều cao / 12); điền (255); text ("WHITE", width / 2 + width / 4, height / 1.3);} // nút 2 } void read_buttons () { if (mousePressed && click_flag == true) { color_val = get (mouseX, mouseY); click_flag = false; if (color_val == - 14945580) { byte data = {0}; bt.broadcast (dữ liệu); println ("ĐẶT LẠI"); load_leds (); // nạp tất cả led vào vị trí và màu sắc } if (color_val == - 16248951) { byte data = {100}; bt.broadcast (dữ liệu); if (red == true) red = false; else if (red == false) red = true; println ("TOGGLE"); } color_val = 0; } }
Lập trình Arduino của bạn:
Các hoàn thành chương trình Arduino cho điều này Bluetooth kiểm soát dự án Ban không dây được đưa ra ở dưới cùng của màn hình này; bạn có thể sử dụng nó trực tiếp và tải nó lên bảng của bạn. Các dòng quan trọng trong chương trình được giải thích dưới đây.
Các mô-đun Bluetooth được kết nối với pin 10 và 11, do đó chúng ta phải sử dụng hàng loạt phần mềm để cho phép giao tiếp nối tiếp bằng các chân và sau đó chúng ta có thể lắng nghe các dữ liệu từ các chân này. Chúng tôi lấy dữ liệu nhận được từ mô-đun Bluetooth và lưu nó vào một biến được gọi là đến . Nếu giá trị đến là “0”, chúng tôi sẽ tắt tất cả đèn LED bằng cách sử dụng mã bên dưới
if (BT.available ()) { incoming = BT.read (); Serial.println (đến); if (đến == 0) m.clear (); // Xóa màn hình
Sử dụng các giá trị đến, chúng ta phải xác định đèn LED mà người dùng đã nhấn trên điện thoại di động và thời tiết để BẬT hoặc TẮT đèn LED đó. Vì vậy, chúng tôi kiểm tra xem giá trị có bằng 100 không. Nếu giá trị là 10, thì có nghĩa là người dùng đã yêu cầu chuyển đổi màu của đèn LED. Vì vậy, chúng tôi chuyển đổi biến màu đỏ để biết liệu đèn LED nên được bật hay tắt.
else if (incoming == 100) // Kiểm tra xem chúng ta nên bật hay tắt đèn LED { if (red == true) red = false; else if (red == false) red = true; Serial.print ("RED:"); Serial.println (màu đỏ); }
Cuối cùng nếu giá trị lớn hơn 65 có nghĩa là người dùng đã nhấn vào đèn LED. Dựa trên số từ 1 đến 64 chúng ta phải xác định xem người dùng đã nhấn LED nào. Để bật tắt đèn LED đó, chúng ta sẽ cần giá trị của Hàng và Cột của đèn LED đó được tính toán và lưu trữ trên biến X và Y tương ứng và được hiển thị trên mã bên dưới. Cuối cùng, dựa trên giá trị của biến màu đỏ, chúng tôi bật hoặc tắt đèn LED theo yêu cầu của người dùng
else if (incoming <= 64) {// Tính toán vị trí BẬT ro TẮT đèn LED toggle = true; Y = đến / 8; X = đến - (Y * 8); if (đến% 8 == 0) {X = 8; Y - = 1;} Serial.println (X - 1); Serial.println (Y); if (red == true) m.setDot ((X - 1), (Y), true); // LED ON else if (red == false) m.setDot ((X - 1), (Y), false); // LED TẮT }
Thiết kế mạch và PCB sử dụng EasyEDA:
Để thiết kế màn hình Ma trận được điều khiển bằng Bluetooth này, chúng tôi đã chọn công cụ EDA trực tuyến có tên EasyEDA. Trước đây tôi đã sử dụng EasyEDA nhiều lần và thấy nó rất thuận tiện khi sử dụng vì nó có một bộ sưu tập dấu chân tốt và nó là mã nguồn mở. Sau khi thiết kế PCB, chúng tôi có thể đặt hàng các mẫu PCB bằng dịch vụ chế tạo PCB chi phí thấp của họ. Họ cũng cung cấp dịch vụ tìm nguồn cung ứng linh kiện, nơi họ có một lượng lớn linh kiện điện tử và người dùng có thể đặt hàng các thành phần cần thiết của họ cùng với đơn đặt hàng PCB.
Trong khi thiết kế mạch và PCB của bạn, bạn cũng có thể công khai thiết kế mạch và PCB của mình để người dùng khác có thể sao chép hoặc chỉnh sửa chúng và có thể hưởng lợi từ công việc của bạn, chúng tôi cũng đã công khai toàn bộ bố cục Mạch và PCB cho mạch này, hãy kiểm tra liên kết dưới đây:
easyeda.com/circuitdigest/8x8-led-matrix-display-control-with-bl Bluetooth
Bạn có thể xem bất kỳ Layer nào (Top, Bottom, Topsilk, bottomsilk, v.v.) của PCB bằng cách chọn lớp tạo thành Cửa sổ 'Lớp'.
Bạn cũng có thể xem PCB, nó sẽ trông như thế nào sau khi chế tạo bằng cách sử dụng nút Photo View trong EasyEDA:
Tính toán và đặt hàng mẫu trực tuyến:
Sau khi hoàn thành thiết kế PCB ma trận điều khiển Bluetooth này, bạn có thể đặt mua PCB thông qua JLCPCB.com. Để đặt mua PCB từ JLCPCB, bạn cần có Tệp Gerber. Để tải xuống các tệp Gerber của PCB của bạn, chỉ cần nhấp vào nút Đầu ra Chế tạo trong trang trình chỉnh sửa EasyEDA, sau đó tải xuống từ trang đặt hàng PCB của EasyEDA.
Bây giờ, hãy truy cập JLCPCB.com và nhấp vào nút Quote Now hoặc nút, sau đó bạn có thể chọn số lượng PCB bạn muốn đặt hàng, bao nhiêu lớp đồng bạn cần, độ dày PCB, trọng lượng đồng và thậm chí cả màu PCB, như ảnh chụp nhanh hiển thị bên dưới:
Sau khi bạn đã chọn tất cả các tùy chọn, hãy nhấp vào “Lưu vào giỏ hàng” và sau đó bạn sẽ được đưa đến trang nơi bạn có thể tải lên Tệp Gerber mà chúng tôi đã tải xuống từ EasyEDA. Tải lên tệp Gerber của bạn và nhấp vào “Lưu vào giỏ hàng”. Và cuối cùng nhấp vào Kiểm tra Bảo mật để hoàn tất đơn đặt hàng của bạn, sau đó bạn sẽ nhận được PCB của mình vài ngày sau đó. Họ đang chế tạo PCB với tỷ lệ rất thấp là $ 2. Thời gian xây dựng của họ cũng rất ít, là 48 giờ với thời gian giao hàng của DHL trong 3-5 ngày, về cơ bản bạn sẽ nhận được PCB của mình trong vòng một tuần kể từ khi đặt hàng.
Sau vài ngày đặt hàng PCB, tôi đã nhận được các mẫu PCB trong bao bì đẹp như trong hình dưới đây.
Và sau khi nhận được những mảnh này, tôi đã hàn tất cả các thành phần cần thiết trên PCB.
Trong PCB của tôi, tôi đã mắc phải một sai lầm do chọn sai dấu chân cho mô-đun Màn hình 8 * 8, do đó tôi phải sử dụng bảng Perf để gắn màn hình như trong hình. Nhưng bây giờ dấu chân là các bản cập nhật trong PCB và bạn có thể đặt mua PCB đã sửa và lắp mô-đun hiển thị một cách dễ dàng.
Hoạt động của màn hình bảng ký hiệu Bluetooth:
Khi bạn đã sẵn sàng với Phần cứng thông qua việc nhận PCB hoặc tạo kết nối trên breadboard, hãy sử dụng chương trình Arduino được cung cấp ở cuối trang và tải nó lên Bảng Arduino của bạn. Các android Tệp APK ứng dụng cũng được cung cấp ở trên, sử dụng nó và cài đặt ứng dụng trên thiết bị Android ưa thích của bạn.
Bật nguồn cho phần cứng và tìm kiếm tên thiết bị HC-05 trên điện thoại của bạn để ghép nối với nó. Mã khóa sẽ là 1234 theo mặc định. Sau đó, mở ứng dụng mà chúng ta vừa cài đặt. Ứng dụng sẽ hiển thị “đã kết nối với HC-05 ” ở đầu màn hình, sau đó bạn sẽ có thể chạm vào đèn LED trên màn hình và nhận thấy rằng cùng một đèn LED cũng đang được bật trong bảng.
Bạn cũng có thể tắt tất cả đèn LED bằng cách nhấn nút Đặt lại và quyết định bật hoặc tắt một đèn LED cụ thể bằng cách nhấn vào nút Chuyển đổi. Theo mặc định, đèn LED nào bạn nhấn sẽ được bật. Toàn bộ hoạt động của dự án có thể được tìm thấy trong video dưới đây. Nếu bạn có bất kỳ vấn đề nào trong việc làm cho nó hoạt động, hãy sử dụng hộp nhận xét bên dưới hoặc viết trên diễn đàn của chúng tôi để được trợ giúp kỹ thuật hơn. Hy vọng bạn đã hiểu hướng dẫn và thích xây dựng nó.