Vào thời điểm hiện tại và trước đó (2012 - 2014) trên thế giới có một phong trào chế tạo các sản phẩm tự động phục vụ gia đình và công việc hàng ngày. Điều đáng nói ở đây những người sáng tạo ra các sản phẩm đó lại không phải là những người được đào tạo bài bản về điện tử và công nghệ. Họ có thể là học sinh, sinh viên, họa sĩ, kiến trúc sư, người chơi mô hình... Họ không chuyên về điện tử và tin học nhưng có đam mê tìm muốn và mong muốn sáng chế. Và yếu tố không thể thiếu để tạo nên phong trào mạnh mẽ đó chính là 1 sản phẩm điện tử dễ sử dụng có tên là Arduino. Arduino thực sự đã gây sóng gió trên thị trường người dùng DIY (là những người tự chế ra sản phẩm của mình) trên toàn thế giới trong vài năm gần đây, gần giống với những gì Apple đã làm được trên thị trường thiết bị di động. Số lượng người dùng cực lớn và đa dạng với trình độ trải rộng từ bậc phổ thông lên đến đại học đã làm cho ngay cả những người tạo ra chúng phải ngạc nhiên về mức độ phổ biến. Và điều làm nên hiện tượng Arduino chính là mức giá rất thấp và tính chất nguồn mở từ phần cứng tới phần mềm. Chỉ với khoảng $30, người dùng đã có thể sở hữu một bo Arduino có 20 ngõ I/O có thể tương tác và điều khiển chừng ấy thiết bị
Trang 1Đề tài : Tìm hiểu về bo mạch Arduino MKR GSM 1400
Nội dung
LỜI MỞ ĐẦU 4
CHƯƠNG 1: TỔNG QUAN VỀ NỀN TẢNG ARDUINO 5
1.1 Giới thiệu chung 5
1.1.1 Lịch sử hình thành và phát triển 5
1.1.2 Giới thiệu chung 5
1.2 Các phiên bản của bo mạch Arduino 7
1.3 Các bảng mạch Shield cho Arduino 8
1.4 Ứng dụng của Arduino 10
1.5 Môi trường lập trình Arudino IDE 12
CHƯƠNG 2 TÌM HIỂU VỀ BO MẠCH ARDUINO MKR GSM 1400 14
2.1 Tổng quan về bo mạch Arduino Mkr Gsm 1400 14
2.1.1 Đặc điểm 14
2.1.2 Các thông số cơ bản 15
2.1.3 Cấu hình phần cứng 16
2.2 Cài đặt và lập trình Arudino MKR GSM với Arduino IDE 20
2.2.1 Cài đặt Arduino IDE 20
CHƯƠNG 3 : MÔ PHỎNG VÀ VẼ LẠI MẠCH ARDUINO MKR GSM 1400 SỬ DỤNG PHẦN MỀM ALTIUM DESIGNER 23
3.1 Cài đặt phần mềm Altium Designer 23
3.2 Phân tích sơ đồ nguyên lý 24
3.3 Mô phỏng lại mạch trên phần mềm Altium Designer 32
3.3.1 Cài đặt thư viện các linh kiện cần thiết 32
3.3.2 Vẽ mạch nguyên lý 36
3.3.3 Mô phỏng mạch PCB 39
KẾT LUẬN 49
DANH MỤC TÀI LIỆU THAM KHẢO 50
Trang 2DANH MỤC HÌNH VẼ
Hình 1 Hình ảnh một Arduino 5
Hình 2 Arduino Ethernet Shield 9
Hình 3 Arduino GSM Shield 9
Hình 4 Arduino Wireless Proto Shield 10
Hình 5 Arduino LCD Module 10
Hình 6 Các Shield xếp chồng lên nhau 10
Hình 7 Máy in 3D 11
Hình 8 Xe dò line 11
Hình 9 Khoá vân tay 12
Hình 10 Quadcopter 12
Hình 11 Giao diện IDE của Arduino 12
Hình 12 Mặt trên của bo mạch Arduino MKR GSM 1400 16
Hình 13 Mặt dưới của bo mạch Arduino MKR GSM 1400 16
Hình 14 Sơ đồ chân của Arduino MKR GSM 1400 18
Hình 15 Mục chọn phiên bản Arduino để tải xuống 20
Hình 16 Biểu tượng của chương trình Arduino IDE 20
Hình 17 Thêm nguồn tải thư viện bo mạch Arduino 21
Hình 18 Cài đặt thư viện bo mạch Arduino MKR 21
Hình 19 Chọn bo mạch Arduino MKR GSM 1400 để nạp chương trình 22
Hình 20 Sơ đồ nguyên lý của bo mạch Arduino MKR GSM 1400 23
Hình 21 Chia khối cho sơ đồ nguyên lý của Arduino MKR GSM 1400 24
Hình 22 Khối giao tiếp 25
Hình 23 Bảng chức năng của IC SN74AVC4T774 25
Hình 24 Khối USB 26
Hình 25 Khối thạch anh 26
Hình 26 Khối SWD và RESET 27
Hình 27 Khối chân cắm và I/O 28
Hình 28 Khối sạc pin Li-Po 28
Hình 29 Sơ đồ đấu nối IC BQ24195L 29
Hình 30 Khối cắm thẻ SIM 30
Hình 31 Khối Anten 31
Hình 32 Các khối chức năng khác 31
Hình 33 Trang web tải linh kiện 33
Hình 34 Các file cài đặt thư viện của từng linh kiện 33
Hình 35 Cách cài đặt đối với dạng file epw ( ECAD Library) 34
Trang 3Hình 36 Tạo mới file Schematic 37
Hình 37 Lôi linh kiện vào Schematic 37
Hình 38 Sơ đồ nguyên lý Arduino MKR GSM 1400 (vẽ lại) 38
Hình 39 Tạo hình dáng cho PCB 39
Hình 40 Nạp linh kiện vào file PcbDoc 39
Hình 41 File PcbDoc sau khi đã sắp xếp linh kiện 40
Hình 42 Tạo thêm 2 layer cho mạch 41
Hình 43 Tạo mục xem nhanh các layer 41
Hình 44 Đặt luật khoảng cách giữa các linh kiện 42
Hình 45 Đặt kích cỡ dây 42
Hình 46 Đặt kích cỡ dây riêng cho các dây nguồn 43
Hình 47 Các luật khoảng cách khác 43
Hình 48 Tăng giảm độ sáng Highlights khi đi dây 44
Hình 49 File PcbDoc sau khi đã đi dây xong 44
Hình 50 Cách mở Design Rule Check 45
Hình 51 Kiểm tra lại lỗi trước khi sang bước tiếp theo 45
Hình 52 Phủ đồng cho Top Layer 46
Hình 53 Phủ đồng cho 2 Layers ở giữa 46
Hình 54 Phủ đồng cho Bottom Layer 47
Hình 55 File PCB 2D hoàn chỉnh 47
Hình 56 Mặt trước mô hình 3D Arduino MKR GSM 1400 hoàn chỉnh 48
Hình 57 Mặt sau mô hình 3D Arduino MKR GSM 1400 hoàn chỉnh 48
Trang 4LỜI MỞ ĐẦU
Vào thời điểm hiện tại và trước đó (2012 - 2014) trên thế giới có một phong trào chế tạo các sản phẩm tự động phục vụ gia đình và công việc hàng ngày Điều đáng nói ở đây những người sáng tạo ra các sản phẩm đó lại không phải là những người được đào tạo bài bản về điện tử và công nghệ Họ có thể là học sinh, sinh viên, họa sĩ, kiến trúc sư, người chơi mô hình Họ không chuyên về điện tử và tin học nhưng có đam mê tìm muốn và mong muốn sáng chế Và yếu tố không thể thiếu để tạo nên phong trào mạnh mẽ đó chính là 1 sản phẩm điện tử dễ sử dụng có tên là Arduino
Arduino thực sự đã gây sóng gió trên thị trường người dùng DIY (là những người tự chế ra sản phẩm của mình) trên toàn thế giới trong vài năm gần đây, gần giống với những gì Apple đã làm được trên thị trường thiết bị di động Số lượng người dùng cực lớn và đa dạng với trình độ trải rộng từ bậc phổ thông lên đến đại học đã làm cho ngay cả những người tạo ra chúng phải ngạc nhiên về mức độ phổ biến Và điều làm nên hiện tượng Arduino chính là mức giá rất thấp và tính chất nguồn mở từ phần cứng tới phần mềm Chỉ với khoảng $30, người dùng đã có thể
sở hữu một bo Arduino có 20 ngõ I/O có thể tương tác và điều khiển chừng ấy thiết
bị
Trang 5CHƯƠNG 1:TỔNG QUAN VỀ NỀN TẢNG ARDUINO
1.1 Giới thiệu chung
1.1.2 Giới thiệu chung
Arduino đã và đang được sử dụng rất rộng rãi trên thế giới, và ngày càng chứng tỏ đượ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 trong cộng đồng nguồn mở (open-source) Tuy nhiên tại Việt Nam Arduino vẫn còn chưa được biết đến nhiều
Arduino cơ bản là một nền tảng tạo mẫu mở về điện tử (open-source electronics prototyping platform) được tạo thành từ phần cứng lẫn phần mềm
Về mặt kĩ thuật có thể coi Arduino là 1 bộ điều khiển logic có thể lập trình được Đơn giản hơn, Arduino là một thiết bị có thể tương tác với ngoại cảnh thông qua các cảm biến và hành vi được lập trình sẵn Với thiết bị này, việc lắp ráp và điều khiển các thiết bị điện tử sẽ dễ dàng hơn bao giờ hết Một điều không hề dễ dàng cho những ai đam mê công nghệ và điều khiển học nhưng là người ngoại đạo và không có nhiều thời gian để tìm hiểu sâu hơn về về kĩ thuật lập trình và cơ điện tử
Hiện tại có rất nhiều loại vi điều khiển và đa số được lập trình bằng ngôn ngữ C/C++ hoặc Assembly nên rất khó khăn cho những người có ít kiến thức sâu về điện
tử và lập trình Nó là trở ngại cho mọi người muốn tạo riêng cho mình một món đồ
Hình 1.1 Hình ảnh một Arduino Hình 1 Hình ảnh một Arduino
Trang 6có thể tiếp cận dễ dàng hơn với thiết bị điện tử mà không cần nhiều về kiến thức điện
tử và thời gian Sau đây là nhưng thế mạnh của Arduino so với các nền tảng vi điều khiển khác:
- Chạy trên đa nền tảng:
Việc lập trình Arduino có thể thể thực hiện trên các hệ điều hành khác nhau như Windows, Mac Os, Linux trên Desktop, Android trên di động Ngôn ngữ lập trình đơn giản dễ hiểu
Arduino có rất nhiều module, mỗi module được phát triển cho một ứng dụng
Về mặt chức năng, các bo mạch Arduino được chia thành hai loại: loại bo mạch chính có chip Atmega và loại mở rộng thêm chức năng cho bo mạch chính Các bo mạch chính về cơ bản là giống nhau về chức năng, tuy nhiên về mặt cấu hình như số lượng I/O, dung lượng bộ nhớ, hay kích thước có sự khác nhau Một số bo có trang
bị thêm các tính năng kết nối như Ethernet và Bluetooth Các bo mở rộng chủ yếu
mở rộng thêm một số tính năng cho bo mạch chính Ví dụ như tính năng kết nối Ethernet, Wireless, điều khiển động cơ
Arduino được chọn làm bộ não xử lý của rất nhiều thiết bị từ đơn giản đến phức tạp Trong số đó có một vài ứng dụng thực sự chứng tỏ khả năng vượt trội của Arduino do chúng có khả năng thực hiện nhiều nhiệm vụ rất phức tạp Sau đây là danh sách một số ứng dụng nổi bật của Arduino như trong công nghệ in 3D, robot
dò đường theo hướng có nguồn nhiệt, tạo một thiết bị nhấp nháy theo âm thanh và đèn laser hay là một thiết bị báo cho khách hàng biết khi nào bánh mì ra lò
Trang 71.2 Các phiên bản của bo mạch Arduino
Để đáp ứng nhu cầu và mục đích của nhiều dự án khác nhau, rất nhiều phiên bản của bo mạch Arduino được ra đời, trong đó các phiên bản chính thức bao gồm:
Arduino Diecimila in Stoicheia
Arduino Duemilanove (rev 2009b)
Arduino Due (nền tảng ARM)
LilyPad Arduino (rev 2007)
Bảng 1 Một số phiên bản Arduino chính thức
Trang 8Thông
số kỹ thuật
Trong đó thông dụng nhất có thể kể đến đó là Arduino Uno R3, Arduino Nano, Arduino MEGA Các bo mạch này được sử dụng rộng rãi và phù hợp với những người mới bắt đầu làm quen với Arduino Dựa theo yêu cầu của dự án, các bo mạch này có thể được phát triển thêm bằng cách tích hợp các module khác lên nó, kể đến như Kit Arduino Uno GSM Sim800A, v.v…
Ngoài ra còn một số phiên bản như Arduino Pro mini, Arduino Zero, Arduino Mkr GSM 1400, v.v
Cho đến nay, các phiên bản của Arduino ngày càng được phát triển và ra đời, có thể nói các sản phẩm Arduino trên thị trường là vô cùng đa dạng về chức năng và giá cả, phù hợp cho người sử dụng từ nhu cầu học tập đến các dự án chuyên nghiệp
Sau đây là bảng so sánh đặc điểm của một số phiên bản bo mạch Arduino thông dụng:
Loại Arduino
Uno
Arduino Ethernet
Arduino Yun
Arduino Nano Arduino
20 (7 đầu ra PWM)
14 (6 đầu ra PWM)
54 (15 đầu ra PWM)
32 KB (0.5 KB bootloader)
32 KB (4 KB bootloader)
16 KB (2 KB bootloader)
256 KB (8 KB bootloader)
Bảng 2 So sánh thông số của một số Arduino phổ biến
1.3 Các bảng mạch Shield cho Arduino
Các board Arduino và Arduino-compatible sử dụng các shield— các board
mạch in mở rộng được dùng bằng cách cắm vào các chân header của Arduino Các
Trang 9shield có thể là module điều khiển cho động cơ, GPS, ethernet, LCD, hoặc cũng có thể là breadboard Một số lượng lớn các shield cũng có thể được chế tạo bởi DIY (những người thích tự làm lấy các ứng dụng cho riêng họ)
Sau đây là các Shield Arduino điển hình :
- Arduino Ethernet Shield :
Sử dụng chip W5100 cho tốc độ và khả năng kết nối ổn định Bộ thư viện đi kèm và phần cứng với kết nối dễ dàng, cho phép Arduino board kết nối internet đơn giản hơn
Hình 2 Arduino Ethernet Shield
- Arduino GSM Shield :
Cho phép Arduino kết nối internet, gửi/nhận cuộc gọi, gửi/ nhận tin nhắn SMS
Hình 3 Arduino GSM Shield
- Arduino Wireless Proto Shield:
Cho phép Arduino board giao tiếp không dây, sử dụng module Xbee
Trang 10Hình 4 Arduino Wireless Proto Shield
Arduino là một công cụ tuyệt vời dành cho những người yêu thích sáng tạo,
và tự mình làm ra các sản phẩm DIY, bởi tính phổ biến và dễ làm quen, sử dụng cùng với giá thành hợp lý Một số ứng dụng nổi bật có thể kể đến như:
• Làm Robot Arduino có khả năng đọc các thiết bị cảm biến, điều khiển động cơ,… nên nó thường được dùng để làm bộ xử lý trung tâm của rất nhiều loại robot
Hình 6 Các Shield xếp chồng lên nhau
Trang 11• Game tương tác: Arduino có thể được sử dụng để tương tác với Joystick, màn hình,… khi chơi các game như Tetrix, phá gach, Mario…
• Máy bay không người lái
• Điều khiển đèn tín hiệu giao thông, làm hiệu ứng đèn Led nhấp nháy trên các biển quảng cáo…
• Điều khiển các thiết bị cảm biến ánh sáng, âm thanh
• Làm máy in 3D
• Làm đàn bằng ánh sáng
• Làm lò nướng bánh biết tweet để báo cho bạn khi bánh chín
Arduino còn rất nhiều ứng dụng hữu ích khác tùy vào sự sáng tạo của người dùng, ví dụ như thiết bị iot, cảm biến không dây, các thiết bị smart home, v.v… Một số hình ảnh về ứng dụng của Arduino
Hình 7 Máy in 3D
Hình 8 Xe dò line
Trang 12Hình 9 Khoá vân tay
Hình 10 Quadcopter
1.5 Môi trường lập trình Arudino IDE
Thiết kế bo mạch nhỏ gọn, trang bị nhiều tính năng thông dụng mang lại nhiều lợi thế cho Arduino, tuy nhiên sức mạnh thực sự của 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 và dựa trên nền tảng C/C++ rất quen thuộc với người làm kỹ thuật Và quan trọng là số lượng thư viện code được viết sẵn và chia sẻ bởi cộng đồng nguồn mở là cực kỳ lớn
Trang 13
Môi trường lập trình Arduino IDE có thể chạy trên ba nền tảng phổ biến nhất hiện nay là Windows, Macintosh OSX và Linux Do có tính chất nguồn mở nên môi trường lập trình này hoàn toàn miễn phí và có thể mở rộng thêm bởi người dùng có kinh nghiệm Ngôn ngữ lập trình có thể được mở rộng thông qua các thư viện C++ Và do ngôn ngữ lập trình này dựa trên nền tảng ngôn ngữ C của AVR nên người dùng hoàn toàn có thể nhúng thêm code viết bằng AVR C vào chương trình nếu muốn
Trang 14CHƯƠNG 2 TÌM HIỂU VỀ BO MẠCH ARDUINO MKR GSM 1400 2.1 Tổng quan về bo mạch Arduino Mkr Gsm 1400
2.1.1 Đặc điểm
Arduino MKR GSM 1400 là một bo mạch được thiết kế dựa trên vi xử lý ATMEL ATSAMD21, phục vụ cho cả việc học tập và nghiên cứu phát triển Nó được tích hợp các nhân tiêu thụ năng lượng thấp và hiệu năng cao cùng với môi trường Arduino thân thiện và dễ sử dụng MKR GSM 1400 mang các chứng năng của một chiếc Arduino Zero vào một bo mạch có kích thước nhỏ gọn giống như MKR1000 và được thêm vào kết nối GSM (2G và 3G)
Arduino MKR GSM 1400 có được những ưu điểm của việc giao tiếp qua mạng dữ liệu di động Tín hiệu GSM/3G hiện nay gần như đã phủ sóng trên toàn bộ
bề mặt Trái Đất, giúp cho việc kết nối trở nên hiệu quả trong khi các loại kết nối khác như wifi, bluetooth, zigbee, v.v là không khả dụng Nếu thứ ta cần là xây dựng một cổng giao tiếp đến các thiết bị trong mạng cảm biến, hoặc một thiết bị độc lập
có khả năng gửi tin nhắn về điện thoại mỗi khi có sự kiện nào đó xảy ra, thì MKR GSM 1400 là một giải pháp phù hợp để có thể cân nhắc
Với MKR GSM 1400, việc kết nối tới mạng dữ liệu di động là vô cùng đơn giản Ta có thể cài đặt hoặc nhận cuộc gọi, gửi hoặc nhận tin nhắn sms, hoặc truy cập mạng để trao đổi dữ liệu với các máy chủ khác nhau Thậm chí ta có thể tự tạo
ra một máy chủ riêng vận hành thông qua dữ liệu GPRS
Arduino MKR GSM 1400 cũng tương thích tốt với :
- Arduino’s IoT Cloud
- Blynk
- Google IoT Cloud
- SORACOM Air IoT
- GSM Location + Google Maps
- Google Spreadsheets (thông qua Arduino IoT Cloud)
Ta có thể sử dụng bất kì thẻ sim nào với MKR GSM 1400, hoặc chọn mua thẻ sim của Arduino để có thể truy cập Arduino IoT Cloud Với thẻ sim này, dữ liệu sẽ chỉ được gửi tới Arduino IoT Cloud, họ sẽ cung cấp cho ta các kênh giao tiếp được bảo mật để có thể truy cập thông qua Webhooks hoặc Arduino IoT API
Ngoài cổng USB sử dụng để nạp chương trình và cấp nguồn ( 5V ) cho mạch, Arduino MKR GSM 1400 còn hỗ trợ mạch sạc Li-Po cho phép ta sử dụng mạch với nguồn pin Li-Po 3.7V rời, hoặc vừa sạc pin trong khi sử dụng nguồn 5V Việc chuyển đổi các nguồn là hoàn toàn tự động
Trang 152.1.2 Các thông số cơ bản
MCU
Bảng 3 Các thông số cơ bản của Arduino MKR GSM 1400
Từ bảng trên ta có thể thấy được Arduino MKR GSM 1400 cũng có các thông
số cơ bản của các bo mạch Arduino khác như tổng cộng 22 đầu vào/ra số, trong đó
có 7 đầu vào tương tự, 1 đầu ra tương tự, 13 chân hỗ trợ xuất tín hiệu PWM cho phép người sử dụng kiểm soát và điều khiển các thiết bị mạch điện tử ngoại vi một cách trực quan Mạch hỗ trợ các giao tiếp UART, SPI và I2C, xung nhịp 48MHz, tích hợp cổng USB để cấp nguồn và nạp chương trình, mạch sạc để cắm pin rời, 1 đèn LED tích hợp và khe cắm thẻ sim Ngoài ra mạch còn có jack cắm anten ngoài
để tăng khả năng thu phát sóng.
Arduino MKR GSM 1400 được kết nối trực tiếp với máy tính thông qua USB
Ta có thể sử dụng các ngôn ngữ lập trình C/C++ thông qua Arduino IDE để giao tiếp với phần mềm lập trình IDE, tương thích với Windows, MAC hoặc Linux
Trang 162.1.3 Cấu hình phần cứng
Hình 12 Mặt trên của bo mạch Arduino MKR GSM 1400
Hình 13 Mặt dưới của bo mạch Arduino MKR GSM 1400
• Vi xử lý:
Bộ não chính của bo mạch Arduino MKR GSM 1400 là vi xử lý tiêu thụ năng lượng thấp Arm® Cortex®-M0 32-bit SAMD21, giống như các bo mạch khác trong gia đình Arduino MKR Vi điều khiển 32-bit cho phép xử lý 4 bytes dữ liệu trong một xung nhịp Nó cũng bao gồm 256KB bộ nhớ trong và 32KB SRAM, hoạt động với xung nhịp tối đa 48MHz Vi xử lý ATSAMD21 với bộ nhớ flash có thể lập trình được, 12 kênh điều khiển truy cập trực tiếp bộ nhớ (DMA), 12 kênh ngắt, 52 I/O lập trình được, bộ đếm thời gian thực 32-bit, 5 bộ đếm Timer/Counter 16-bit và 3 bộ
Trang 17đếm Timer/Counter 24-bit Các bộ Timer/Counter cũng có thể xếp chồng để tạo nên bộ đếm 32-bit
Kết nối GSM/3G xử lý thông qua module SARA-U201 đến từ nhà sản xuất u-blox Đây là 1 chipset có mức tiêu thụ năng lượng thấp, có thể hoạt động tại nhiều dải dữ liệu di động khác nhau như GSM 850MHz, E-GSM 1900MHz, DCS 1800MHz, PCS 1900 MHz) Tất cả các kết nối giao tiếp được bảo mật bằng con chip crypto ATECC508
• Khối nguồn:
Giao tiếp thông qua mạng dữ liệu di động yêu cầu dòng cấp khá cao Trong khi các cổng USB từ máy tính thường chỉ đạt từ 500-600mA, một tín hiệu handshake điển hình ( khi bo mạch đã kết nối với mạng dữ liệu ) yêu cầu dòng điện lên tới 2A
Do đó nếu cấp nguồn bằng cổng USB, ta bắt buộc luôn luôn phải sử dụng thêm một viên pin Li-Po có dung lượng tối thiểu 1500mAh đi kèm, hoặc cấp cho mạch nguồn 5V-2A ( trở lên ) nếu sử dụng chân Vin
Dãy chân Power của bo mạch bao gồm
- Chân +5V : Dùng để cấp điện áp đầu ra 5V cho các thiết bị khác (khi bo mạch được cấp nguồn từ cổng USB hoặc Vin) Điện áp tại chân này được lấy trực tiếp từ USB
- Chân Vin: Dùng để cấp nguồn cho bo mạch hoạt động, khuyến nghị sử dụng nguồn 5V-2A Nếu sử dụng chân này, nguồn USB sẽ
bị ngắt Dải điện áp cho phép là 5V-6V Chú ý đây là chân INPUT
- Chân VCC: Dùng để cấp điện áp đầu ra 3V3 cho các thiết bị khác như cảm biến, vi xử lý Điện áp 5V hoặc Vin được hạ xuống 3V3 qua 1 IC
ổn áp Bộ ổn áp này cũng sẽ cấp nguồn cho vi điều khiển SAMD21
- Chân GND: Chân mass chung cho toàn mạch Arduino
- Chân RESET: kéo chân này xuống GND để reset mạch
• Các chân vào/ra:
Cần chú ý 1 điều đó là không giống với hầu hết các bo mạch Arduino khác, MKR GSM 1400 hoạt động tại mức điện áp 3.3V, tức là điện áp lớn nhất mà các chân I/O của bo mạch có thể chịu được là 3.3V Mức điện áp cao hơn có thể khiến cho bo mạch bị hư hỏng Do đó, để giao tiếp với các bo mạch khác ( theo 2 chiều ),
ta cần sử dụng bộ chuyển đổi mức logic từ 5V xuống 3.3V và ngược lại Dòng điện tối đa mà mỗi chân có thể cung cấp là 7mA
Trên bo mạch MKR GSM 1400 có tổng cộng 41 chân cắm Trong đó 2 chân dành cho pin Li-Po rời, 5 chân dành cho cổng giao tiếp I2C, 6 chân dành cho giao thức SWD (Serial Wire Debug), 5 chân POWER, 1 chân điện áp tham chiếu AREF,
8 chân vào/ra số và 14 chân vào/ra đa chức năng ( số, tương tự, truyền thông ), cụ thể như sau :
Trang 18Hình 14 Sơ đồ chân của Arduino MKR GSM 1400
- Chân Digital:
Bao gồm 22 chân vào/ra số, gồm các chân từ 0~14 và A0~A6 Các I/O này đều có thể được cấu hình là INPUT hoặc OUTPUT thông qua hàm pinMode() và điều khiển thông qua các hàm digitalWrite(), digitalRead() Điện áp hoạt động tại mỗi chân là 3.3V và dòng điện hoạt động tại mỗi chân
là 7mA
- Chân Analog:
Gồm 7 chân vào tương tự từ A0~A6, mỗi chân có độ phân giải 8/10/12 bit và có thể được thiết lập bằng hàm analogReadResolution() Mặc định độ phân giải của ADC là 10 bit Chân vào tương tự của MKR GSM 1400 có thể nhận từ 0V tới 3.3V Đặt vào chân này điện áp lớn hơn 3.3V sẽ gây hỏng vi điều khiển
Trang 19Chân A0 vừa là chân vào, vừa là chân ra tương tự DAC có độ phân giải
10 bit
Với chân AREF trên board, bạn có thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog Tức là nếu bạn cấp điện áp 2.5V vào chân này thì bạn có thể dùng các chân analog để đo điện áp trong khoảng từ 0V → 2.5V
- Truyền thông UART:
Truyền thông nối tiếp TTL với 2 chân RX và TX tương ứng với chân
số 13 và 14 trên bo mạch Điện áp hoạt động yêu cầu là 3.3V Nếu thực hiện giao tiếp với các mạch có mức điện áp cao hơn, ta cần sử dụng đến một bộ chuyển đổi mức logic
- Truyền thông I2C:
Bo mạch sở hữu 1 cổng truyền thông I2C được đặt riêng biệt gồm 5 chân là GND, SDA, SCL, 5V và 1 chân được nối với D7 để dùng cho các mục đích mở rộng Ngoài ra có thể sử dụng các chân SDA, SCL tương ứng với chân 11 và 12 trên bo mạch
- Truyền thông SPI
Arduino MKR GSM 1400 hỗ trợ truyền thông theo chuẩn SPI với các chân MOSI, SCK, MISO tương ứng với các chân 8, 9, 10 Ta có thể lựa chọn
1 trong các chân digital còn lại để làm chân SS Ta có thể sử dụng dạng truyền thông này để giao tiếp giữa MKR GSM 1400 với các thiết bị ngoại vi khác hoặc với 1 arduino khác
- Cổng SWD (Serial Wire Debug) :
Cổng này gồm 6 chân trong đó có 2 chân SWDIO và SWCLK nối với
vi xử lý SAMD21, 1 chân RESET, 1 chân 3V3, 1 chân GND và 1 chân để trống Giao thức SWD sử dụng 2 chân SWDIO và SWCLK để kiểm tra chương trình và gỡ lỗi cho các bo mạch sử dụng vi xử lý ARM
Trang 202.2 Cài đặt và lập trình Arudino MKR GSM với Arduino IDE
2.2.1 Cài đặt Arduino IDE
Truy cập đường dẫn https://www.arduino.cc/en/Main/Software và kéo xuống phần HOURLY BUILDS để tải về phiên bản mới nhất của Arduino IDE :
Hình 15 Mục chọn phiên bản Arduino để tải xuống
Lựa chọn phiên bản phù hợp với hệ điều hành của máy tính đang sử dụng MacOS/Windows/Linux và bấm Lưu Sau đó tiến hành tải về và giải nén file :
Ta được thư mục, mở ra và nháy đúp vào file có biểu tượng arduino như hình :
Hình 16 Biểu tượng của chương trình Arduino IDE
Lúc này cửa sổ Arduino IDE hiện lên, ta chọn File/Preferences Tại cửa sổ hiện ra, ta tìm đến Additional Boards Manager URLs và dán đường dẫn http://downloads.arduino.cc/packages/package_staging_index.json vào như hình, sau đó bấm “OK” :
Trang 21
Hình 17 Thêm nguồn tải thư viện bo mạch Arduino
Tiếp đến ta chọn Tools/Board/Boards Manager trên thanh công cụ:
Cửa sổ Boards Manager hiện lên, ta nhập “MKR GSM” vào ô tìm kiếm và ấn Enter, sau đó chọn và bấm “Install” :
Hình 18 Cài đặt thư viện bo mạch Arduino MKR
Đợi 1 lát cho tới khi quá trình tải cấu hình các bo mạch MKR về thành công Chọn Tools/Board/Arduino SAMD/Arduino MKR GSM 1400 :
Trang 22Hình 19 Chọn bo mạch Arduino MKR GSM 1400 để nạp chương trình
Đến đây ta đã có thể cắm bo mạch Arduino MKR GSM 1400 vào máy tính thông qua cổng USB và bắt đầu lập trình
Trang 23CHƯƠNG 3 : MÔ PHỎNG VÀ VẼ LẠI MẠCH ARDUINO MKR GSM 1400
SỬ DỤNG PHẦN MỀM ALTIUM DESIGNER
3.1 Cài đặt phần mềm Altium Designer
Altium designer là một phần mềm chuyên nghành được sử dụng trong thiết
kế mạch điện tử phát triển bởi hãng Altium Limited Ta có thể tải về Altium Designer phiên bản mới nhất tại trang chủ https://www.altium.com/altium-designer/
Ở đây em sử dụng phiên bản Atlium Designer 19.1.1 ( bản Crack ) Tiếp đến
ta tải về file sơ đồ nguyên lý được công bố chính thức bởi trang chủ Arduino tại địa
trang như sau :
Trang 243.2 Phân tích sơ đồ nguyên lý
Em xin được chia sơ đồ nguyên lý trên thành các phần như sau :
Hình 21 Chia khối cho sơ đồ nguyên lý của Arduino MKR GSM 1400
Trang 25Cụ thể như sau:
- Khối giao tiếp giữa U1 và U3 :
Hình 22 Khối giao tiếp
Để có thể giao tiếp giữa vi xử lý ATSAMD21 (nguồn cấp 3.3V) với module GSM/3G SARA-U201 (nguồn cấp 1.8V), arduino sử dụng mạch SN74AVC4T774 là IC cho phép giao tiếp theo 2 chiều (bidirectional), 4 kênh điều khiển riêng biệt Đặc biệt, IC này cho phép cấp 2 nguồn điện áp ở mỗi bên khác nhau, ở đây là 3.3V phía vi xử lý và 1.8V phía khối module GSM/3G
Ta thấy ở đây mạch sử dụng tới 2 IC SN74AVC4T774 cho việc giao tiếp theo
2 chuẩn là UART và I2S
Mỗi IC có 12 chân trong đó gồm 4 kênh đầu vào A1 - A4, 4 kênh đầu
ra B1 - B4, 4 chân điều khiển hướng độc lập DIR1 – DIR4 cho phép tín hiệu
đi từ A->B hoặc ngược lại, cụ thể được mô tả ở bảng dưới đây :
Hình 23 Bảng chức năng của IC SN74AVC4T774
Chân OE̅̅̅̅ kích mức thấp cho phép IC này hoạt động Các chân VCCA
và VCCB để dùng để cấp nguồn độc lập cho mỗi bên, ở đây là 3.3V với VCCA
và 1.8V với VCCB Mỗi chân này đều được nối với 1 tụ lọc “Decoupling Capacitor” trị số 100nF có tác dụng chống nhiễu do sóng hài cao tần Các chân GND được nối với nhau và chung với đường Mass của bo mạch