Kĩ thuật lập trình phần cứng ngày nay có sự phát triển mạnh mẽ, nó được ứngdụng vào hầu hết các lĩnh vực như sản xuất công nghiệp, tự động hóa và còn rất nhiềulĩnh vực khác nữa. So với kĩ thuật lập trình phần mềm thì kĩ thuật lập trình phần cứngcó những ứng dụng riêng và được lập trình để điều khiển khiển các hệ thống mang lạilợi ích đáng kể cho người sử dụng. Với tính ưu việt của kỹ thuật lập trình phần cứngthì nó hứa hẹn mang lại hiệu quả công việc rất cao. Chúng ta biết rằng lập trình phầncứng thực hiện lập trình trên các dòng vi xử lý khác nhau. Trong quá trình này, ta sửdụng ngôn ngữ lập trình phần cứng để thực hiện các thao tác liên kết điều khiển giữavi xử lý với các thành phần trong bo mạch và các thiết bị ngoại vi.Arduino đã và đang được sử dụng rất rộng rãi trên thế giới, và ngày càng chứngtỏ được sức mạnh của chúng thông qua vô số ứng dụng độc đáo của người dùng trongcộng đồng nguồn mở (opensource). Tuy nhiên tại Việt Nam Arduino vẫn còn chưađược biết đến nhiều.
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN ********** Thực tập kĩ thuật Đề tài: Tìm hiểu bo mạch Arduino MKR FOX 1200 Học kì 20192 Giáo viên hướng dẫn : TS Nguyễn Hoàng Nam Sinh viên thực : Hồ Minh Trọng MSSV : 20174282 Hà Nội, 9-2020 NHẬN XÉT CỦA GIẢNG VIÊN …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… KÝ TÊN MỤC LỤC CHƯƠNG TỔNG QUAN VỀ BO MẠCH ARDUINO 1.1 Giới thiệu chung bo mạch Arduino Arduino gì? Lịch sử đời Một số ứng dụng bật bo mạch 1.2 Khả bo mạch Arduino CHƯƠNG TÌM HIỂU VỀ ARDUINO MKR FOX 1200 2.1 Thông tin 2.2 Cấu hình phần cứng 10 2.3 Sơ đồ chân 11 2.4 Phân tích sơ đồ nguyên lý 12 Khối USB 12 Khối Anten 13 Khối thạch anh cấp xung clock 13 Khối RESET SWD 14 Khối chân cắm cho I/O 15 Khối sạc pin Li-Po 15 Các khối khác 16 CHƯƠNG MÔ PHỎNG ARDUINO UNO BẰNG PHẦN MỀM ALTIUM 17 3.1 Cài đặt phần mềm Altium thư viện linh kiện cần thiết 17 3.2 Thiết kế mạch Schematic 21 3.3 Sắp xếp linh kiện 26 3.4 Thiết lập luật dây 28 TỔNG KẾT 32 TÀI LIỆU THAM KHẢO 33 DANH MỤC HÌNH VẼ Hình 1.1 Mạch lập trình Arduino Serial Hình 1.2 Ivrea, Italy Hình 1.3 Robot sử dụng Arduino Hình 1.4 Cảm biến màu sắc TCS3200 vào nhiều máy móc Hình 1.5Máy in 3D Hình 1.6 Một thiết bị UAV Hình 1.7 Giao diện IDE Arduino Hình 2.1 Mặt Arduino MKR FOX 1200 10 Hình 2.2 Mặt Arduino MKR FOX 1200 10 Hình 2.3 Sơ đồ chân Arduino MRK FOX 1200 11 Hình 2.4 Khối USB 12 Hình 2.5 Khối Anten 13 Hình 2.6 Khối thạch anh 13 Hình 2.7 Khối RESET SWD 14 Hình 2.8 Khối chân cắm cho I/O 15 Hình 2.9 Khối sạc pin Li-Po 15 Hình 2.10 Các khối có chức khác 16 Hình 3.1 File sau tải Altium 17 Hình 3.2 Schematic mạch Arduino MRK FOX 1200 18 Hình 3.3 Tra tên linh kiện 19 Hình 3.4 Thư viện ATA8520E-GHQW sau tải 19 Hình 3.5 Load file library vào Altium 20 Hình 3.6 File Library ATMEGA16U2-MU 20 Hình 3.7 Mơ hình 3D ATMEGA16U2-MU 21 Hình 3.8 Install file Library 21 Hình 3.9 New Schematic tạo 22 Hình 3.10 Mạch Schematic P1 nối xong dây 22 Hình 3.11 Mạch Schematic P2 23 Hình 3.12 Mạch Schematic P3 23 Hình 3.13 Mạch Schematic P4 24 Hình 3.14 Mạch Schematic P5 24 Hình 3.15 Mạch Schematic P6 25 Hình 3.16 Compile thành công mạch Schematic 25 Hình 3.17 Chuyển linh kiện sang mạch PCB 26 Hình 3.18 Chia đơi hình để chọn linh kiện tương ứng mạch Schematic 27 Hình 3.19 Linh kiện sau xếp 27 Hình 3.20 Định dạng kích thước mạch in 28 Hình 3.21 Tạo mạch lớp cho bo mạch 28 Hình 3.22 Đặt khoảng cách tối thiểu linh kiện 29 Hình 3.23 Đặt kích thước dây 29 Hình 3.24 Mạch sau xong 30 Hình 3.25 Mặt trước mạch adruino MRK FOX 1200 30 Hình 3.26 Mặt sau mạch adruino MRK FOX 1200 30 Hình 3.27 Bảng chọn View Configuration 31 Hình 3.28 Bo mạch adruino MRK FOX 1200 31 MỞ ĐẦU Kĩ thuật lập trình phần cứng ngày có phát triển mạnh mẽ, ứng dụng vào hầu hết lĩnh vực sản xuất cơng nghiệp, tự động hóa cịn nhiều lĩnh vực khác So với kĩ thuật lập trình phần mềm kĩ thuật lập trình phần cứng có ứng dụng riêng lập trình để điều khiển khiển hệ thống mang lại lợi ích đáng kể cho người sử dụng Với tính ưu việt kỹ thuật lập trình phần cứng hứa hẹn mang lại hiệu công việc cao Chúng ta biết lập trình phần cứng thực lập trình dịng vi xử lý khác Trong q trình này, ta sử dụng ngơn ngữ lập trình phần cứng để thực thao tác liên kết điều khiển vi xử lý với thành phần bo mạch thiết bị ngoại vi Arduino sử dụng rộng rãi giới, ngày chứng tỏ sức mạnh chúng thông qua vô số ứng dụng độc đáo người dùng cộng đồng nguồn mở (open-source) Tuy nhiên Việt Nam Arduino chưa biết đến nhiều Em xin chân thành cảm ơn thầy Nguyễn Hồng Nam – Giảng viên hướng dẫn mơn “Thực tập kĩ thuật” cung cấp kiến thức hữu ích định hướng nghiên cứu để giúp em hoàn thành tốt đề tài Trong trình thực khơng thể tránh khỏi thiếu sót Vì vậy, em mong nhận đóng góp ý kiến từ Thầy bạn, để hồn thiện Em xin chân thành cảm ơn! CHƯƠNG TỔNG QUAN VỀ BO MẠCH ARDUINO 1.1 Giới thiệu chung bo mạch Arduino Arduino gì? Arduino tảng mã nguồn mở phần cứng phần mềm Phần cứng Arduino (các board mạch vi xử lý) sinh thị trấn Ivrea Ý, nhằm xây dựng ứng dụng tương tác với với môi trường thuận lợi Phần cứng bao gồm board mạch nguồn mở thiết kế tảng vi xử lý AVR Atmel 8bit, ARM Atmel 32-bit Những Model trang bị gồm cổng giao tiếp USB, chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác [1] Được giới thiệu vào năm 2005, Những nhà thiết kế Arduino cố gắng mang đến phương thức dễ dàng, không tốn cho người yêu thích, sinh viên giới chuyên nghiệp để tạo thiết bị có khả tương tác với môi trường thông qua cảm biến cấu chấp hành Những ví dụ phổ biến cho người yêu thích bắt đầu bao gồm robot đơn giản, điều khiển nhiệt độ phát chuyển động Đi với mơi trường phát triển tích hợp (IDE) chạy máy tính cá nhân thông thường cho phép người dùng viết chương trình cho Aduino ngơn ngữ C C++.[1] Hình 1.1 Mạch lập trình Arduino Serial Lịch sử đời Arduino khởi động vào năm 2005 dự án dành cho sinh viên trại Interaction Design Institute Ivrea (Viện thiết kế tương tác Ivrea) Ivrea, Italy Vào thời điểm sinh viên sử dụng "BASIC Stamp" (con tem Cơ Bản) có giá khoảng $100, xem giá dành cho sinh viên Massimo Banzi, người sáng lập, giảng dạy Ivrea Cái tên "Arduino" đến từ quán bar Ivrea, nơi vài nhà sáng lập dự án thường xuyên gặp mặt Bản thân quán bar có lấy tên Arduino, Bá tước Ivrea, vua Italy từ năm 1002 đến 1014 [1] Lý thuyết phần cứng đóng góp sinh viên người Colombia tên Hernando Barragan Sau tảng Wiring hoàn thành, nhà nghiên cứu làm việc với để giúp nhẹ hơn, rẻ hơn, khả dụng cộng đồng mã nguồn mở Trường cuối bị đóng cửa, nhà nghiên cứu, số David Cuarlielles, phổ biến ý tưởng [1] Hình 1.2 Ivrea, Italy Một số ứng dụng bật bo mạch Arduino chọn làm não xử lý nhiều thiết bị từ đơn giản đến phức tạp Trong số có vài ứng dụng thực chứng tỏ khả vượt trội Arduino chúng có khả thực nhiều nhiệm vụ phức tạp Sau danh sách số ứng dụng bật Arduino Robot: Arduino ứng dụng thiết kế Robot, cụ thể điều khiển motor, nhận biết xử lý thông qua cảm biến Máy CNC mini sử dụng cho điêu khắc sử dụng laser spindle tốc độ cao Máy in 3D, sử dụng in chi tiết sản phẩm 3D Máy bay không người lái Điều khiển thiết bị thông qua internet (IoT) Nhận biết xử lý cảnh báo vấn đề nguy hiểm báo cháy, Nồng độ hóa chất, Khí ga độc hại, thơng qua cảm biến Điều khiển thiết bị tắt bật đơn giản, Cảm biến âm thanh, ánh sáng Thiết bị bay không người lái UAV UAV ứng dụng đặc biệt thíchhợp với Arduino chúng có khả xử lý nhiều loại cảm biến Gyro, accelerometer, GPS…; điều khiển động servo khả truyền tín hiệu từ xa Hình 1.3 Robot sử dụng Arduino Hình 1.4 Cảm biến màu sắc TCS3200 vào nhiều máy móc Hình 1.5Máy in 3D Hình 1.6 Một thiết bị UAV 1.2 Khả bo mạch Arduino Môi trường lập trình bo mạch Arduino Thiết kế bo mạch nhỏ gọn, trang bị nhiều tính thơng dụng mang lại nhiều lợi cho Arduino, nhiên sức mạnh thực Arduino nằm phần mềm Mơi trường lập trình đơn giản dễ sử dụng, ngơn ngữ lập trình Wiring dễ hiểu dựa tảng C/C++ quen thuộc với người làm kỹ thuật Và quan trọng số lượng thư viện code viết sẵn chia sẻ cộng đồng nguồn mở lớn Hình 3.3 Tra tên linh kiện Sau tải giải nén có file Hình 3.4 Thư viện ATA8520E-GHQW sau tải Tương tự với tất linh kiện lại Bước phải cài đặt thư viện Altium làm sau: B1: Vào File chọn Import Wizard B2: Chọn Next B3: Chọn dòng PADS ASCII Design and Library Files B4: Chọn Next 19 B5: Chọn Add vào thư mục vừa tải vào mục Altium chọn file c, d, p Hình 3.5 Load file library vào Altium B6: Chọn Next cài Sau chạy xong ta có file Imported.PrjPcb Altium Chúng ta phải đặt mơ hình 3D cho linh kiện B1: Trong mục Project chọn file.Pcblib hình Hình 3.6 File Library ATMEGA16U2-MU B2: Vào mục Place chọn 3D Body, chọn mục Generic 3D Model chọn Load from file B3: Vào thư mục 3D thư viện linh kiện tải load file.stp B4: Sau load xong ta đặt mơ hình 3D vào vị trí nhấn phím để chuyển sang chế độ mơ 3D kiểm tra 20 Hình 3.7 Mơ hình 3D ATMEGA16U2-MU B5: Save lại làm tương tự cho linh kiện lại Tiếp theo ta cài thư viện vào Altium để lấy linh kiện cách: B1: Chọn mục Libraries, chọn Libraries, chọn Install from file B2: Mở file Imported có bước mà chọn file.Pcblib Schlib Hình 3.8 Install file Library Tương tự linh kiện lại kết hoàn thành Vậy hoàn thành việc cài đặt linh kiện cần thiết vào Altium bắt đầu xây dựng mạch Schematic 3.2 Thiết kế mạch Schematic Chia nhỏ mạch thành phần mạch Schematic mạch gồm nhiều linh kiện nên ta chia làm tương ứng với phần Sau ta tạo Project phần mềm Altium: B1: Chọn Add New Project phần PCB Project 21 B2: Nhấn chuột phải vào Project tạo add New Schematic B3: Add new PCB, đổi tên Save Hình 3.9 New Schematic tạo Bây ta bắt đầu vẽ mạch Schematic cho phần B1: Vào mục Libraries, ấn vào hình mũi tên xuống chọn linh kiện cần dùng kéo thả B2: Kích đúp vào linh kiện, đặt tên theo Data Sheet comment B3: Chọn Place Wire nối vào chân linh kiện Dựa vào mạch Schematic ta nối chân lại với (nếu thuận tiện) sang bước B4: Với mạch nhiều linh kiện ta sử dụng Place Net Label để đặt phía cho Wire nối Các Wire có Label giống Altium tự động nối với Hình 3.10 Mạch Schematic P1 nối xong dây 22 Tương tự bước phía cho P2 P3 P4 P5 P6 ta sau: Hình 3.11 Mạch Schematic P2 Hình 3.12 Mạch Schematic P3 23 Hình 3.13 Mạch Schematic P4 Hình 3.14 Mạch Schematic P5 24 Hình 3.15 Mạch Schematic P6 Sau nối xong dây linh kiện phần, ta chon design/ update schmatic Chọn execute changes để kiểm tra lỗi Hình 3.16 Compile thành cơng mạch Schematic 25 Lưu ý: Khi có lỗi Altium thông báo zoom rõ lỗi chân Các lỗi thường gặp vẽ Schematic đặt Label chưa phía Wire Label tên chưa giống Label chưa có đủ đầu 3.3 Sắp xếp linh kiện Ta kéo linh kiện vẽ mạch Schematic sang B1: Vào mục Desgin, chọn Import Changes B2: Chọn tất phần Add trừ phần Add Rooms sau chọn Execute Changes Hình 3.17 Chuyển linh kiện sang mạch PCB Tiếp đến ta xếp linh kiện vào Bảng mạch, linh kiện gần mạch Schematic nên xếp gần để dễ đấu dây, để chọn linh kiện ta thực bước sau: B1: Ấn chuột phải vào mục PcbDoc chọn Split Vertical B2: Vào mục Tools chọn Cross Select Mode Sau ta thấy ấn vào linh kiện phần Schematic, ta thấy linh kiện file PCB chọn 26 Hình 3.18 Chia đơi hình để chọn linh kiện tương ứng mạch Schematic Sau xếp linh kiện xong, ta hình sau : Hình 3.19 Linh kiện sau xếp Định dạng lại kích thước mạch in Muốn định dạng lại kích thước mạch in nhấn P,L vào lớp Keep Out Layer vẽ đường viền sau bơi đen tồn mạch nhấn D,S,D Kết thu phần mạch nằm bên đường Keep Out Layer theo hình dạng vẽ 27 Hình 3.20 Định dạng kích thước mạch in Thiết lập Layer Vì Arduino MRK FOX 1200 mạch PCB lớp nên ta phải tạo thêm Layer cho mạch B1: Ấn chuột phải chọn Options chọn Layer Stack Manager B2: Chọn chế độ 3D, Chọn Add Layer lần để Add thêm Layer nữa, đổi tên Layer để dễ nhận biết B3: Chọn OK Hình 3.21 Tạo mạch lớp cho bo mạch 3.4 Thiết lập luật dây Đầu tiên ta đặt khoảng cách tối thiểu linh kiện cách thay đổi thông số Cleareance cho PCB cách chọn Design/Rule/Cleareance, đặt thơng số cần thiết hình : 28 Hình 3.22 Đặt khoảng cách tối thiểu linh kiện Tiếp theo kích thước dây, ta chọn mục Width chỉnh hình : Hình 3.23 Đặt kích thước dây Đi dây cho linh kiện Để đấu dây, ta cần biết vị trí chân cần nối với Ấn Ctrl+Chuột trái vào chân bất kỳ, chân phải nối với sáng lên Tăng giảm độ sáng cách ấn nút “[“ “]” Kết sau: 29 Hình 3.24 Mạch sau xong Nhấm phím để chuyển sang dạng 3D sản phẩm Hình 3.25 Mặt trước mạch adruino MRK FOX 1200 Hình 3.26 Mặt sau mạch adruino MRK FOX 1200 Để hiển thị dây nối chân mạch 3D nhấn L điều chỉnh độ tương phản 30 Hình 3.27 Bảng chọn View Configuration Hình 3.28 Bo mạch adruino MRK FOX 1200 31 TỔNG KẾT Trong trình thực đề tài này, em chăm cố gắng hếtsức Sau hồn thành đề tài em thực hiểu vấn đề việc thiết kế lập trình số loại bo mạch Arduino Ngoài cung cấp kiến thức phần mềm ứng dụng thiết kế mạch phần cứng Nhưng điều quan trọng không nói đến tạo cho em kỹ mềm thân, khả tư làm việc độc lập 32 TÀI LIỆU THAM KHẢO [1] https://vi.wikipedia.org/wiki/Arduino [2] https://store.arduino.cc/usa/arduino-mkrfox1200 [3] Nguyễn Tăng Cường, Phan Quốc Thắng, Cấu trúc lập trình họ vi điều khiển 8051, Hà Nội, 2004 [4] Hồng Minh Sơn, Mạng truyền thơng cơng nghiệp, 2017 33 ... Hình 1.7 Giao diện IDE Arduino Hình 2.1 Mặt Arduino MKR FOX 1200 10 Hình 2.2 Mặt Arduino MKR FOX 1200 10 Hình 2.3 Sơ đồ chân Arduino MRK FOX 1200 11 Hình 2.4 Khối... *********************************** CHƯƠNG TÌM HIỂU VỀ ARDUINO MKR FOX 1200 2.1 Thông tin 2.1.1 Mô tả sản phẩm MKR FOX 1200 bo mạch mạnh mẽ kết hợp chức kết nối Zero SigFox Đây giải pháp lý tưởng cho nhà... VỀ BO MẠCH ARDUINO 1.1 Giới thiệu chung bo mạch Arduino Arduino gì? Lịch sử đời Một số ứng dụng bật bo mạch 1.2 Khả bo mạch Arduino CHƯƠNG TÌM HIỂU VỀ