LỜI MỞ ĐẦUHiện nay các vi xử lí, hay điều khiển đang được sử dụng rộng rãi trong nhiều lĩnh vực: điều khiển, tự động hóa, đo đạc, truyền thông,…so với các phương pháp điều khiển đo đạc, truyền thống thì việc sử dụng vi xử lí có những ưu điểm như: nhỏ gọn, ít tốn năng lượng, thời gian đáp ứng nhanh có thể lập trình được…Ý thức được tầm quan trọng của Lập Trình Nhúng trong ứng dụng cho lập trình vi điều khiển là cơ sở để chúng em chọn đề tài Lập Trình Nhúng “ Đèn Led dạng khối lập phương 3x3x3”.Với sự hướng dẫn tận tình của thầy TS.Nguyễn Thanh Bình mà chúng em hoàn thành đề tài này. Mặc dù vậy, do trình độ còn hạn chế và thời gian có hạn nên chúng em chắc chắn rằng đề tài này không thể tránh khỏi những thiếu sót. Chúng em rất mong nhận được sự thông cảm và góp ý của quý thầy cô trong khoa.Chúng em xin chân thành cảm ơn.MỤC LỤCCHƯƠNG 1: GIỚI THIỆU81.1 Giới thiệu đề tài81.2 Nội dung đề tài81.3 Giới hạn đề tài81.4 Cấu trúc báo cáo8CHƯƠNG 2: CƠ SỞ LÝ THUYẾT92.1 Lý thuyết lập trình nhúng92.1.1 Lập trình nhúng là gì?92.1.2 Lịch sử92.1.3 Đặc điểm102.1.4 Giao diện112.1.5 Thiết bị ngoại vi122.1.6 Công cụ phát triển122.1.7 Độ tin cậy132.2 Các kiến trúc phần mềm hệ thống nhúng132.2.1 Vòng lặp kiểm soát đơn giản132.2.2 Hệ thống ngắt điều khiển132.3 Tìm hiểu về Mega 2560152.3.1 Arduino Mega 2560172.3.2 Thông số kĩ thuật192.3.3 Chi tiết sản phẩm202.3.4 Ứng dụng thực tế212.4 Công cụ ngôn ngữ thực hiện22CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG233.1 Mô tả bài toán233.1.1 Diễn tả mạch233.1.2 Chức năng của mạch233.1.3 Ý nghĩa233.2 Yêu cầu bài toán233.2.1 Thiết kế mạch cần gì?233.2.2 Ứng dụng như thế nào?23CHƯƠNG 4: HIỆN THỰC ỨNG DỤNG244.1 Đoạn code nhấp nháy đèn24CHƯƠNG 5: KẾT LUẬN275.1 Các công việc đã thực hiện275.2 Ưu điểm, nhược điểm275.3 Hướng mở rộng tương lai27 CHƯƠNG 1: GIỚI THIỆU1.1 Giới thiệu đề tàiCác biển quảng cáo led , hay các màn hình LED 2D, LED MATRIX được nhìn thấy ở khắp mọi nơi, nó sử dụng để hiển thị các hình ảnh, chữ cái …..Chúng phục vụ vào các mục đích khác nhau chẳng hạn như quảng cáo, trang trí nhà hàng, quán cafe, hay là hiển thị những thông tin, hình ảnh ở các siêu thị, công ty. Tuy nhiên các hình ảnh, hiệu ứng hiển thị vẫn còn hạn chế, thiếu trực quan và ít hấp dẫn.Để giái quyết vấn đề đó giải pháp là khối LED 3D CUBE có khả năng hiển thị chữ, hình ảnh theo dạng 2 và 3 chiều sinh động khác biệt và ưu thế hơn so với LED 2D thông thường, chúng tạo ra hình ảnh trong không gian 3 chiều hiển thị các hiệu ứng từ đơn giản đến phức tạp với nhiều kiểu phong phú, đẹp mắt….. không bị gò bó và giới hạn bởi không gian phẳng, mang lại tính trực quan hơn.
LỜI MỞ ĐẦU Hiện vi xử lí, hay điều khiển sử dụng rộng rãi nhiều lĩnh vực: điều khiển, tự động hóa, đo đạc, truyền thông,…so với phương pháp điều khiển đo đạc, truyền thống việc sử dụng vi xử lí có ưu điểm như: nhỏ gọn, tốn lượng, thời gian đáp ứng nhanh lập trình được… Ý thức tầm quan trọng Lập Trình Nhúng ứng dụng cho lập trình vi điều khiển sở để chúng em chọn đề tài Lập Trình Nhúng “ Đèn Led dạng khối lập phương 3x3x3” Với hướng dẫn tận tình thầy TS.Nguyễn Thanh Bình mà chúng em hoàn thành đề tài Mặc dù vậy, trình độ hạn chế thời gian có hạn nên chúng em chắn đề tài khơng thể tránh khỏi thiếu sót Chúng em mong nhận thơng cảm góp ý quý thầy cô khoa Chúng em xin chân thành cảm ơn Long An, ngày tháng năm 2017 LỜI CẢM ƠN Những năm tháng giảng đường đại học năm tháng vơ q báu quan trọng em Thầy cô tận tâm giảng dạy, trang bị hành trang kiến thức để em có đủ tự tin bước vào đời Báo cáo bước đường đại học em, để có bước em chân thành biết ơn q thầy trường Đại học Kinh Tế Cơng Nghiệp Long An hết lòng truyền đạt kiến thức kinh nghiệm quí báo cho em thời gian học tập tạitrường Em xin chân thành cảm ơn sâu sắc đến Ban Giám Hiệu nhà tạo môi trường, điều kiện học tập sinh hoạt tốt cho sinh viên chúng em Thông qua môi trường này, chúng em học tập, trao đổi kiến thức, rèn luyện thân đạo đức lẫn lực chuyên môn Đồng thời, em xin chân thành cảm ơn đến Thầy Nguyễn Thanh Bình tận tình dạy, hướng dẫn em trình nghiên cứu, thực giúp em hoàn thành tốt báo cáo Một lần em xin chân thành cảm ơn gia đình, q thầy Ban Giám Hiệu nhà trường Xin nhận nơi em lời chúc sức khoẻ, thành công hạnh phúc! NHẬN XÉT Long An, ngày tháng năm 2017 Kí tên TS.NGUYỄN THANH BÌNH DANH MỤC CÁC HÌNH MỤC LỤC 1- GIỚI THIỆU 1.1 Giới thiệu đề tài Các biển quảng cáo led , hay hình LED 2D, LED MATRIX nhìn thấy khắp nơi, sử dụng để hiển thị hình ảnh, chữ … Chúng phục vụ vào mục đích khác chẳng hạn quảng cáo, trang trí nhà hàng, quán cafe, hiển thị thơng tin, hình ảnh siêu thị, cơng ty Tuy nhiên hình ảnh, hiệu ứng hiển thị hạn chế, thiếu trực quan hấp dẫn Để giái vấn đề giải pháp khối LED 3D CUBE có khả hiển thị chữ, hình ảnh theo dạng chiều sinh động khác biệt ưu so với LED 2D thông thường, chúng tạo hình ảnh khơng gian chiều hiển thị hiệu ứng từ đơn giản đến phức tạp với nhiều kiểu phong phú, đẹp mắt… khơng bị gò bó giới hạn khơng gian phẳng, mang lại tính trực quan Hình 1: Mơ đèn led dạng khối lập phương Nguồn: s3.amazonaws.com Khối LED nhiều điểm ảnh việc hiển thị hình ảnh sắc nét đẹp mắt hơn, nhiên kéo theo nhiều vấn đề phức tạp phần cứng, chương trình Và để thuận tiện cho việc thiết kế phần cứng lập trình , phù hợp với loại vi điều khiển thơng dụng đồ án này, kích thước khối đèn LED chúng em thiết kế 3x3x3 đơn sắc Với kích thước khơng nhỏ hay lớn phù hợp hiển thị hiệu ứng đẹp mắt Mà hình ảnh hài lòng cho người dùng 1.2 Nội dung đề tài Làm đèn LED dạng khối lập phương 1.3 Giới hạn đề tài Mạch đèn dạng khối lập phương 3x3x3 1.4 Cấu trúc báo cáo Báo cáo chia làm chương sau: • Chương 1: Giới thiệu 1.1 Giới thiệu đề tài 1.2 Nội dung đề tài 1.3 Giới hạn đề tài 1.4 Cấu trúc báo cáo • Chương 2: Cơ sở lý thuyết 2.1 Lý thuyết lập trình nhúng 2.1.1 Lập trình nhúng 2.1.2 Lịch sử 2.1.3 Đặc điểm 2.1.4 Giao diện 2.1.5 Thiết bị ngoại vi 2.1.6 Công cụ phát triển 2.1.7 Độ tin cậy 2.2 Các kiến trúc phần mềm hệ thống nhúng 2.2.1 Vòng lặp kiểm soát đơn giản 2.2.2 Hệ thống ngắt điều khiển 2.3 Tìm hiều Mega 2560 2.3.1 Arduino Mega 2560 2.3.2 Thông số kĩ thuật 2.3.3 Chi tiết sản phẩm 2.3.4 Ứng dụng thực tế 2.4 Công cụ ngôn ngữ thực • Chương 3: Xây dựng ứng dụng 3.1 Mơ tả tốn 3.1.1 Diễn tả mạch 3.1.2 Chức mạch 3.1.3 Ý nghĩa 3.2 yêu cầu tốn 3.2.1 Thiết kế mạch cần 3.2.2 Ứng dụng • Chương 4: Hiện thực ứng dụng 4.1 Đoạn code nhấp nháy đèn Ví dụ Ví dụ Ví dụ Ví dụ Ví dụ • Chương 5: Kết luận 5.1 Các công việc thực 5.2 Ưu điểm, nhược điểm 5.3 Hướng mở rộng tương lai 2- CƠ SỞ LÝ THUYẾT 2.1 Lý thuyết lập trình nhúng 2.1.1- Lập trình nhúng gì? Hệ thống nhúng (tiếng Anh: embedded system) thuật ngữ để hệ thống có khả tự trị nhúng vào môi trường hay hệ thống mẹ Đó hệ thống tích hợp phần cứng phần mềm phục vụ toán chuyên dụng nhiều lĩnh vực cơng nghiệp, tự động hố điều khiển, quan trắc truyền tin.Đặc điểm hệ thống nhúng hoạt động ổn định có tính tự động hố cao Hệ thống nhúng thường thiết kế để thực chức chuyên biệt Khác với máy tính đa chức năng, chẳng hạn máy tính cá nhân, hệ thống nhúng thực một vài chức định, thường kèm với yêu cầu cụ thể bao gồm số thiết bị máy móc phần cứng chun dụng mà ta khơng tìm thấy máy tính đa nói chung Vì hệ thống xây dựng cho số nhiệm vụ định nên nhà thiết kế tối ưu hóa nhằm giảm thiểu kích thước chi phí sản xuất.Các hệ thống nhúng thường sản xuất hàng loạt với số lượng lớn.Hệ thống nhúng đa dạng, phong phú chủng loại Đó thiết bị cầm tay nhỏ gọn đồng hồ kĩ thuật số máy chơi nhạc MP3, sản phẩm lớn đèn giao thông, kiểm soát nhà máy hệ thống kiểm soát máy lượng hạt nhân Xét độ phức tạp, hệ thống nhúng đơn giản với vi điều khiển phức tạp với nhiều đơn vị, thiết bị ngoại vi mạng lưới nằm gọn lớp vỏ máy lớn Các thiết bị PDA máy tính cầm tay có số đặc điểm tương tự với hệ thống nhúng hệ điều hành vi xử lý điều khiển chúng thiết bị hệ thống nhúng thật chúng thiết bị đa năng, cho phép sử dụng nhiều ứng dụng kết nối đến nhiều thiết bị ngoại vi 2.1.2- Lịch sử Hệ thống nhúng Apollo Guidance Computer (Máy tính Dẫn đường Apollo) phát triển Charles Stark Draper phòng thí nghiệm trường đại học MIT.Hệ thống nhúng sản xuất hàng loạt máy hướng dẫn cho tên lửa quân vào năm 1961.Nó máy hướng dẫn Autonetics D-17, xây dựng sử dụng bóng bán dẫn đĩa cứng để trì nhớ.Khi Minuteman II đưa vào sản xuất năm 1996, D-17 thay với máy tính sử dụng mạch tích hợp Tính thiết kế chủ yếu máy tính Minuteman đưa thuật tốn lập trình lại sau để làm cho tên lửa xác hơn, máy tính kiểm tra tên lửa, giảm trọng lượng cáp điện đầu nối điện Từ ứng dụng vào năm 1960, hệ thống nhúng giảm giá phát triển mạnh mẽ khả xử lý Bộ vi xử lý hướng đến người tiêu dùng Intel 4004, phát minh phục vụ máy tính điện tử hệ thống nhỏ khác Tuy nhiên cần chip nhớ hỗ trợ khác Vào năm cuối 1970, xử lý bit sản xuất, nhìn chung chúng cần đến chip nhớ bên Vào thập niên 80, kỹ thuật mạch tích hợp đạt trình độ cao dẫn đến nhiều thành phần đưa vào chip xử lý Các vi xử lý gọi vi điều khiển chấp nhận rộng rãi Với giá thấp, vi điều khiển trở nên hấp dẫn để xây dựng hệ thống chuyên dụng Đã có bùng nổ số lượng hệ thống nhúng tất lĩnh vực thị trường số nhà đầu tư sản xuất theo hướng Ví dụ, nhiều chip xử lý đặc biệt xuất với nhiều giao diện lập trình kiểu song song truyền thống để kết nối vi xử lý.Vào cuối năm 80, hệ thống nhúng trở nên phổ biến hầu hết thiết bị điện tử khuynh hướng tiếp tục Cho đến nay, khái niệm hệ thống nhúng nhiều người chấp nhận là: hệ thống thực số chức đặc biệt có sử dụng vi xử lý[cần dẫn nguồn] Khơng có hệ thống nhúng có phần mềm 2.1.3- Đặc điểm Hệ thống nhúng thường có số đặc điểm chung sau: • Các hệ thống nhúng thiết kế để thực số nhiệm vụ chun dụng khơng phải đóng vai trò hệ thống máy tính đa chức Một số hệ thống đòi hỏi ràng buộc tính hoạt động thời gian thực để đảm bảo độ an tồn tính ứng dụng; số hệ thống khơng đòi hỏi ràng buộc chặt chẽ, cho phép đơn giản hóa hệ thống phần cứng để giảm thiểu chi phí sản xuất 10 • Test Board hàn mặt: Board mạch lớp đục lỗ sẵn làm từ sợi thủy tinh tráng thiết mặt dễ hàn, dễ sử dụng Phíp với độ dày 1.6mm, lỗ cách 2.54mm/0.1in • Dây cắm Test Board: dây lõi đồng nhiều sợi có độ dẫn điện cao, mối tiếp xúc chắn, có nhiều màu sắc khác dùng để dẫn điện • Mạch Arduino Uno R3: có 14 chân digital dùng để đọc xuất tín hiệu Chúng có mức điện áp 0v 5v với dòng vào – tối đa chân 40mA Ở chân có điện trở pull-up từ cài đặt vi điều khiển Atmega328( mặc định điện trở khơng kết nối) • Điện trở 220 ơm: Tùy vào nguồn cấp loại led mà ta dùng để chọn loại điện trở cho phù hợp để led sáng tốt mà không nguy hại đến linh kiện khác Trong em sử dụng dụng điện trờ 220 ôm ( bao gồm trở ứng với cột led) • Dây dẫn: dẫn điện 3.1.3- Ý nghĩa Ý nghĩa mạch quà tặng lưu niệm dịp lễ, ngày kỉ niệm dùng làm vật trưng bày, trang trí , quảng cáo cho quán cà phê, nhà hàng, … Tạo cảm giác lạ, sinh động, bắt mắt cho không gian xung quanh, với cấu trúc dạng khối chiều với nhiều kích thước khác giúp bạn truyền tải nội dung vô phong phú 3.2 Yêu cầu tốn • • Đẹp, gọn gàng, an tồn Hiển thị hiệu ứng từ đơn giản đến phức tạp với nhiều kiểu phong phú, đẹp • mắt Hổ trợ giao tiếp thay đổi nội dung từ máy vi tính trực tiếp thơng qua cổng • • USB Có khả thay đổi nội dung, tạo ý tưởng hiệu ứng theo yêu cầu Hiển thị hiệu ứng khác theo thay đổi âm xung quanh ( nhạc, giọng nói ) 3.3 Thiết kế ứng dụng 3.3.1 Các bước làm • Bước 22 Đầu tiên, cần phải kiểm tra đèn LED, khối lập phương thực có đèn LED bị lỗi khối lập phương khó thay thế, đó, trước tiên cần phải kiểm tra đèn LED Điều thực tế bào nút SR2032, pin lithium ion có điện áp đầu cuối 3V, hồn hảo để kiểm tra LED sử dụng MULTIMETER để kiểm tra đèn LED ( hình 3) Hình 3: Kiểm tra đèn led Nguồn: circuitdigest.com Sau xác nhận tất 27 đèn led hoạt động tốt, để gọn vào bên đến bước • Bước Bây lấy dây breadboard vỏ lớp dây dẫn, sử dụng dây breadboard nối dây làm việc lớn Sau lột có sợi dây dẫn, cắt dây dây dẫn với chiều dài 7cm tiếp tục trình có sáu dây dẫn 7cm (hình 4) Những dây sử dụng để nối lớp LED Hình 4: Chuẩn bị dây dẫn Nguồn: circuitdigest.com • Bước Bây cần lấy hộp giấy dán tờ giấy trắng lên trên, thể hình Sử dụng băng keo keo dán góc để giữ giấy vị trí đánh dấu khoan lỗ ( hình ) 23 HÌnh 5: Chuẩn bị hộp giấy dán tờ giấy trắng Nguồn: circuitdigest.com Sau lấy bút chì thước đo, đánh dấu chín điểm giấy, điểm cách 2cm tạo thành cấu trúc khối thể hình ( Hình 6) Ở chúng tơi sử dụng 2cm vì: đầu cuối tiêu cực đèn LED có chiều dài 2.5cm Vì vậy, với 2cm ngồi, chúng tơi có 5mm để hàn đèn LED khác Với chiều dài lớn hơn, thiết bị đầu cuối LED việc hàn trở nên khó khăn.Vì 2cm thích hợp Sau lấy vật thể nhọn bút chì bút đánh lỗ điểm, chắn bạn đâm lỗ phù hợp với kích thước đèn LED cụ thể đèn LED khơng rơi qua lỗ, không chặt để không vừa với đèn led Trong hàn chân đèn LED lắp lỗ chặt, khơng thể lung lay cách dễ dàng, bạn đâm lỗ, kiểm tra đèn LED 24 Hình 6: Đo đánh dấu điểm sau tiến hành đâm lỗ Nguồn: circuitdigest.com • Bước Sau đó, đặt đèn LED lỗ uốn cong thiết bị đầu cuối hình ( Hình 7) Hình 7: đặt đèn led lỗ uốn cong phần chân Nguồn: circuitdigest.com Sau đó, chân cực dương uốn cong để tạo thành hình chữ 'L' Nhìn gần, thấy vết nhỏ gần đầu đèn LED , nơi bạn nên uốn cong để có hình dạng chữ L Điều thể hình ( hình 8) Hình 8: Uốn cong chân cực dương đề có hình chữ L Nguồn: circuitdigest.com • Bước Cũng giống vậy, uốn cong tiếp đèn LED xếp chúng theo hàng hình ( Hình ), mẫu sử dụng suốt thiết kế khơng có 25 thay đổi Để thuận tiện bạn uốn cong tất 27 đèn LED tương tự làm Hình 9: Uốn cong tiếp đèn led Nguồn: circuitdigest.com • Bước Sau hàn tất khớp âm, kết ba thiết bị đầu cuối tiêu cực, đại diện cho hàng Điều thể ( Hình 10 ) Hình 10: Hàn tất khớp âm lại, đại diện cho hàng Nguồn: circuitdigest.com Sau lấy hai dây dây dẫn mà tước đặt chúng thể hình hàn sáu khớp dây dẫn lại tạo thành ma trận hồn chỉnh ( Hình 11) 26 Hình 11: Hàn khớp với dây dẫn để ma trận hoàn chỉnh Nguồn: circuitdigest.com Bây tất đầu cuối âm chín đèn LED kết nối với có thiết bị đầu cuối tích cực (CP1-CP9) tiêu cực thiết bị đầu cuối (CN1) Sau cẩn thận lướt qua lớp một, có thiết lập hình Cắt thêm đầu cuối có lớp LED khối lập phương ( Hình 12) Hình 12: Một lớp led khối lập phương Nguồn: circuitdigest.com 27 • Bước Bây có ba lớp hình khối, cần tạo thêm hai lớp cách thực Lớp thứ hai thứ ba hiển thị ( Hình 13) Hình 13: Lớp thứ thứ sau hồn thành Nguồn: circuitdigest.com • Bước Bây ta có tất ba lớp cần thiết, xếp chồng lên để tạo thành khối lập phương Đầu tiên lấy lớp lớp 2, lắp chúng lên lớp Hàn tất thiết bị đầu cuối đại diện cực chung Điều thể hình (Hình 14) Ví dụ CP1 lớp hàn với CP1 lớp thứ hai; CP2 lớp hàn với CP2 lớp thứ hai v.v Ở trượt lớp khoảng 5mm Sau đó, cẩn thận hàn thiết bị đầu cuối lại ta có ( Hình 14) 28 Hình 14: Sau hàn lớp lớp lại với Nguồn: circuitdigest.com Bây xếp chồng lên tầng thứ ba tầng cuối khối lập phương Việc hàn lớp thứ ba gặp chút khó khăn, thiết bị đầu cuối hình khối nhạy cảm, đầu cuối bị lắc nhiều, khớp bị phá vỡ bên Vì nên kiểm tra, hàn cẩn thận tỉ mỉ ( Hình 15) 29 Hình 15: Hàn tầng cuối để tạo thành khối lập phương hoàn chỉnh Nguồn: circuitdigest.com Trong hàn, nhiệt độ LED nên ghi nhớ, sắt hàn nóng, đèn LED cháy Do ta nên ý • Bước Với khối lập phương hồn chỉnh, có tổng cộng 12 chân Ở nơi mà chín phổ biến tích cực ba tiêu cực chung Vì vậy, có chín cột đại diện cho chín thiết bị đầu cuối tích cực (CP1-CP9) ba lớp đại diện cho ba cực tiêu cực (CN1CN3) PIN2 CP1 (Thường Tích cực) PIN3 CP2 (Thường Tích cực) PIN4 CP3 (Thường Tích cực) PIN5 CP4 (Thường Tích cực) PIN6 CP5 (Thường Tích cực) PIN7 CP6 (Thường Tích cực) PIN8 CP7 (Thường Tích cực) PIN9 CP8 (Thường Tích cực) PIN10 CP9 (Thường Tích cực) 30 PIN A0 CN1 (Phủ định chung) PIN A1 CN2 (Phủ định chung) PIN A2 CN3 (Phủ định chung) Bây giờ, kết nối 12 chân với UNO cách hợp lý thể sơ đồ mạch cho khối led LED Arduino ( Hình 16 ) Sau tiến hành gắn điện trở nối dây • Bước 10 Hình 16: Sơ đồ đèn LED cube 3x3x3 Nguồn: circuitdigest.com Kiểm tra lại đèn, viết code chạy thử 31 Hình 17: Sản phẩm sau hồn thành Nguồn: tự chụp 32 4- HIỆN THỰC ỨNG DỤNG 4.1 Đoạn code nhấp nháy đèn Ví dụ 1: void setup() { for (int i=0;i