Arduino là một nền tảng mã nguồn mở được sử dụng để xây dựng các dự án điện tử tương tác với nhau hoặc với môi trường được thuận lợi hơn.. Arduino giốngnhư một máy tính nhỏ để người dùng
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
BÁO CÁO THỰC TẬP TÌM HIỂU CƠ BẢN VỀ ARDUINO MICRO
NGUYỄN THỊ KHỞI
khoi.nt173988@sis.hust.edu.vn
Ngành KT Điều khiển & Tự động hóa
Giảng viên hướng dẫn: Nguyễn Hoàng Nam
Bộ môn: Kỹ thuật đo và tin học công nghiệp
HÀ NỘI, 12/2019
Chữ ký của GVHD
Trang 2BỘ GIÁO DỤC & ĐÀO TẠO
TRƯỜNG ĐH BÁCH KHOA HÀ NỘI
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do - Hạnh phúc
NHIỆM VỤ
THỰC TẬP KỸ THUẬT
Họ và tên sinh viên: Nguyễn Thị Khởi
Khóa: K62 Viện: Điện Ngành: CN ĐK &TĐH
1 Tên đề tài:
TÌM HIỂU CƠ BẢN VỀ ARDUINO MICRO
2 Nội dung đề tài:
Tìm hiểu về Arduino (nói chung), Arduino Micro ( nói riêng) Mô phỏng Arduino trên phần mềm Altium.
3 Cán bộ hướng dẫn: Nguyễn Hoàng Nam
4 Thời gian giao đề tài: 03/8/2020
5 Thời gian hoàn thành: 19/8/2020
Trang 3Lời mở đầu
Để hoàn thành báo cáo này, trước hết em xin gửi lời cảm ơn và biết ơn sâu sắc tớicác thầy giáo, cô giáo Viện điện trường Đại Học Bách Khoa Hà Nội, nhữngngười đã giảng dậy và tạo điều kiện cho em trong quá trình học tập và nghiêncứu tại trường Những kiến thức mà em đã nhận được sẽ là hành trang giúpchúng em vững bước trong tương lai
Em xin bày tỏ lòng biết ơn sâu sắc nhất tới thầy giáo Nguyễn Hoàng Nam, nguời
đã tận tình huớng dẫn, chỉ bảo, giúp đỡ em trong suốt thời gian em nghiên cứu vàhoàn thành đồ án này Em cũng xin cảm ơn gia đình và ban bè đã hết lòng huớngdẫn, chỉ bảo và luôn tạo mọi điều kiện tốt nhất cho em trong suốt thời gian vừaqua
Mặc dù em đã cố gắng hoàn thành đồ án này trong phạm vi khả năng có thể Tuynhiên không tránh khỏi những điều thiếu sót Em rất mong nhận đuợc sự cảmthông và tận tình chỉ bảo của quý thầy cô và toàn thể các bạn
Trang 4
MỤC LỤC
CHƯƠNG 1. : TÌM HIỂU CƠ BẢN VỀ ARDUINO 8
1.1 Arduino là gì? 8
1.2 Cấu tạo của Arduino 8
1.1.1 Nguồn (USB / Đầu cắm nguồn cái) 9
1.1.2 Chân (5V, 3.3V, GND, Analog, Kỹ thuật số, PWM, AREF) 1.1.3 Nút reset 10
1.1.4 Đèn LED báo nguồn 10
1.1.5 Đèn LED RX TX 10
1.1.6 Mạch tích hợp - IC 10
1.1.7 Điều chỉnh điện áp 10
1.3 Một số loại board được sử dụng hiện nay 11
1.4 Ứng dụng của Arduino trong đời sống 12
1.5 Khả năng kết nối 13
1.6 Tính linh hoạt và chi phí 14
CHƯƠNG 2 TÌM HIỂU CƠ BẢN VỀ ARDUINO MICRO 129 15
2.1 Giới thiệu vầ Arduino Micro 15
2.2 Tính năng của Arduino Micro 16
2.3 Sơ đồ chân vi mô của Arduino Micro 18
2.4 Mô tả chân micro Arduino 19
2.4.1 Đầu vào analog 20
2.4.2 Giao thức truyền thông 20
2.4.3 Đầu ra PWM 21
2.4.4 Nguồn năng lượng 21
2.4.5 Ngắt ngoài 22
2.4.6 ICSP Header Pins 22
2.5 Lập trình 23
2.6 Sự khác biệt giữa Arduino ProMini và Arduino Micro 23
2.7 Các dự án và ứng dụng vi mô của Arduino 24
Trang 5CHƯƠNG 3 MÔ PHỎNG ARDUINO MICRO TRÊN PHẦN MỀM ALTIUM 25
3.1Mạch nguyên lý mô phỏng trên Altium 25
3.1.1 Thiết kế nguồn 26
3.1.2 Thiết kế mạch dao động 27
3.1.3 Thiết kế mạch reset 27
3.1.4 Thiết kế mạch nạp và giao tiếp máy tính 28
3.2 Mô phỏng PCB trên Altium 29
3.3 Các thông số và linh kiện trong mạch 30
3.4 Sơ đồ đi dây 31
3.5 Hình ảnh 3D Arduino Micro mô phỏng trên Altium 31
TÀI LIỆU THAM KHẢO 33
Trang 6DANH MỤC HÌNH VẼ
Hình 1.1: Arduino 8
Hình 1.2: Các bo mạch thông dụng 11
Hình 1.3: Các bo mạch thông dụng 12
Hình 1.4: Các bo mạch thông dụng 12
Hình 1.5: Các bo mạch thông dụng 12
Hình 2.1: Arduino Micro 15
Hình 2.2: Bo mạch Arduino micro 16
Hình 2.3: Cấu tạo và cách sắp xếp linh kiện trên Arduino Micro 17
Hình 2.4 Sơ đồ chân vi mô của Arduino Microso 19
Hình 2.5: Đầu vào analog 20
Hình 2.6: Giao thức truyền thông 20
Hình 2.7: Đầu ra PWM 21
Hình 2.8 Nguồn năng lượng 21
Hình 2.9: ICSP Header Pins 22
Hình 3.1 Mạch nguyên lý mô phỏng trên Altium 26
Hình 3.2: Thiết kế nguồn 27
Hình 3.3: Thiết kế mạch dao động 28
Hình 3.4: Thiết kế mạch reset 29
Hình 3.5: Mô phỏng PCB trên Altium 30
Hình 3.6: Mô phỏng PCB trên Altium 30
Hình 3.7: Sơ đồ đi dây 32
Hình 3.8: Hình ảnh 3D Arduino Micro mô phỏng trên Altium 32
Trang 7DANH MỤC HÌNH VẼ
Bảng 2.1 thành phần trong Arduino Micro 17
Bảng 3.1 Các thông số và linh kiện trong mạch 30
Trang 8CHƯƠNG I: TÌM HIỂU CƠ BẢN VỀ ARDUINO
1.1 Arduino là gì ?
Arduino là một nền tảng mã nguồn mở được sử dụng để xây dựng các dự án điện
tử tương tác với nhau hoặc với môi trường được thuận lợi hơn Arduino giốngnhư một máy tính nhỏ để người dùng có thể lập trình và thực hiện các dự án điện
tử mà không cần phải có các công cụ chuyên biệt để phục vụ việc nạp code.Arduino tương tác với thế giới thông qua các cảm biến điện tử, đèn, và động cơ.Arduino bao gồm cả bảng mạch lập trình (thường được gọi là vi điều khiển) vàmột phần mềm hoặc IDE (Môi trường phát triển tích hợp) chạy trên máy tính,được sử dụng để viết và tải mã máy tính lên bo mạch
Nền tảng Arduino giờ đã khá phổ biến với những người mới bắt đầu với thiết bịđiện tử Không giống như hầu hết các bo mạch lập trình trước đây, Arduinokhông cần phần cứng riêng để tải mã mới lên bo mạch - bạn có thể chỉ cần sửdụng cáp USB Ngoài ra, Arduino IDE sử dụng phiên bản đơn giản của C++,giúp việc học lập trình dễ dàng hơn Arduino cung cấp một mẫu chuẩn giúp dễtiếp cận các chức năng của bộ vi điều khiển hơn
Trang 91.2.1 Nguồn (USB / Đầu cắm nguồn cái)
Mỗi bo mạch Arduino có một cách nối nguồn Arduino UNO được cấp nguồn từcáp USB hoặc đầu cắm nguồn cái Trong hình trên, cổng USB được đánh số (1)
và đầu cắm nguồn cái được đánh số (2)
Cổng USB cũng hỗ trợ tải mã lên bo mạch Arduino
LƯU Ý: KHÔNG sử dụng nguồn điện lớn hơn 20 Vôn sẽ làm hư Arduino Điện
áp thích hợp cho hầu hết các mô hình Arduino là từ 6 đến 12 Vôn
1.2.2 Chân (5V, 3.3V, GND, Analog, Kỹ thuật số, PWM, AREF)
Các chân trên Arduino là chỗ nối dây để xây dựng mạch (để liên kết bo mạch vớidây thường có các đầu cắm bằng nhựa đen để bạn có thể cắm ngay dây vào bomạch) Arduino có nhiều loại chân khác nhau, mỗi loại được ghi chú trên bomạch và được sử dụng cho các chức năng khác nhau
GND (3): Viết tắt của ‘Ground’ Có một số chân GND trên Arduino, cóthể sử dụng bất kỳ chân nào để nối đất cho mạch
5V (4) & 3.3V (5): Chân 5V cấp nguồn 5 vôn, và chân 3.3V cấp nguồn 3,3vôn Hầu hết các linh kiện đơn giản sử dụng với Arduino chạy ổn định ở 5hoặc 3,3 vôn
Analog (6): Khu vực các chân có ký hiệu 'Analog In' (A0 đến A5 trênUNO) là các chân nhận tín hiệu đầu vào Các chân này có thể đọc tín hiệu
từ một cảm biến tương tự (như cảm biến nhiệt độ) và chuyển đổi nó thànhmột giá trị số mà chúng ta có thể đọc
Digital (7): Qua khu vực các chân analog là tới các chân digital (0 đến 13trên UNO) Các chân này sử dụng cho cả đầu vào digital (ví dụ như chobiết nút nào được nhấn) và đầu ra digital (như cấp năng lượng cho đènLED)
PWM (8): Bạn có thể thấy dấu ngã (~) bên cạnh một số chân số (3, 5, 6, 9,
10 và 11 trên UNO) Các chân này hoạt động như các chân digital thôngthường, ngoài ra có thể sử dụng cho điều chế độ rộng xung (PWM)
AREF (9): Là viết tắt của tham chiếu analog Chân này thường ít được sửdụng Thỉnh thoảng nó được dùng để thiết lập điện áp tham chiếu bênngoài (giữa 0 và 5 Vôn) làm giới hạn trên cho các chân analog đầu vào
Trang 101.2.3 Nút reset
Cũng giống như Nintendo gốc, Arduino có nút reset (10) Nếu nhấn nút này sẽtạm thời kết nối chân reset với đất và khởi động lại bất kỳ mã nào được nạp trênArduino Nó rất hữu dụng nếu mã của bạn không lặp lại và bạn muốn kiểm tra nónhiều lần
1.2.4 Đèn LED báo nguồn
Ngay bên dưới và bên phải của từ “UNO” trên bảng mạch có một đèn LED nhỏbên cạnh chữ ‘ON’ (11) Đèn LED này sẽ sáng lên khi cắm Arduino vào nguồnđiện
1.2.5 Đèn LED RX TX
TX là viết tắt của truyền, RX là viết tắt của nhận Những ký hiệu này xuất hiệnkhá nhiều trong các thiết bị điện tử để chỉ ra các chân chịu trách nhiệm về giaotiếp nối tiếp Trong trường hợp bo mạch ở trên, có hai vị trí trên UNO Arduinonơi TX và RX xuất hiện - vị trí thứ nhất là chỗ các chân số 0 và 1, và vị trí thứhai bên cạnh đèn LED báo TX và RX (12) Những đèn LED này sẽ cung cấp chỉdẫn trực quan bất cứ khi nào Arduino nhận hoặc truyền dữ liệu
1.2.6 Mạch tích hợp - IC
IC hay mạch tích hợp (13) có màu đen với các chân kim loại Bạn có thể xem nónhư là bộ não của Arduino IC trên Arduino ở các bo mạch khác nhau có sự khácnhau, nhưng thường là dòng IC ATmega từ công ty ATMEL Điều này rất quantrọng, vì bạn cần phải biết loại IC (cùng với loại bo mạch) trước khi tải lên mộtchương trình Thông tin này thường được viết ở phía trên cùng của IC Nếu bạnmuốn biết thêm về sự khác biệt giữa các IC khác nhau thì có thể đọc datasheetcủa nó
1.2.7 Điều chỉnh điện áp
Bộ điều chỉnh điện áp (14) là thứ bạn không có tương tác với Arduino Nhưng nóđiều chỉnh lượng điện áp được đưa vào bo mạch Arduino Giống như người gáccổng, nó sẽ xử lý điện áp phụ có thể gây hại cho mạch Tất nhiên, nó có giới hạncủa nó, do đó, không cấp điện cho Arduino lớn hơn 20 vôn
Trang 111.3 Một số loại board được sử dụng hiện nay
Arduino Uno: Đây chính là loại board đơn giản nhất nên rất phù hợp với
những người mới bắt đầu tìm hiểu về lĩnh vực này Dữ liệu số bao gồm 14chân, đầu vào gồm 6 chân 5V, khả năng phân giải là 1024 mức, tốc độ16MHz, điện áp từ 7V đến 12V Kích thước của Board này là 5,5x7cm
Arduino Micro: Bao gồm có đến 20 chân, trong đó có 7 chân có thể phát
PWM Loại này có thiết kế khá nhỏ gọn, kích thước chỉ 5x2cm
Arduino Nano: Có thể nói đây chính là loại board có kích thước nhỏ nhất
chỉ 2x4cm, việc lắp đặt được thực hiện dễ dàng
Arduino Pro: Đây là một thiết kế mới mẻ khi chân số không có sẵn, tùy
vào số chân bạn sử dụng để gắn trực tiếp và giúp tiết kiệm được khoảngkhông lớn, ta thường thấy hai loại có nguồn 3.3V và 5V
Arduino Mega: Chân số lên đến 64, 14 chân có thể phát PWM, 4 cổng
truyền tiếp cùng kích thước khá lớn 5x10cm
Arduino Leonardo: Là board không có cổng nối USB dùng lập trình Được
thiết kế tại một chip nhỏ điều khiển Kết nối qua COM ảo và có thể kếtnối với chuột và bàn phím
Các bo mạch sử dụng vi điều khiển ATMEGA328
Trang 121.4 Ứng dụng của Arduino trong đời sống
Arduino có thể tương tác với các nút, đèn LED, động cơ, loa, đơn vị GPS, máyảnh, internet và thậm chí cả điện thoại thông minh hoặc TV Sự linh hoạt nàycộng với với phần mềm Arduino là miễn phí, các bo mạch phần cứng khá rẻ và
cả phần mềm, phần cứng đều dễ học, nên nó có một cộng đồng người dùng lớn
đã đóng góp mã và hướng dẫn cho một lượng lớn project dựa trên Arduino
Trang 13Đối với tất cả mọi thứ từ robot và miếng sưởi ấm tay đến các máy dự đoán tươnglai, Arduino có thể được sử dụng như bộ não đằng sau hầu hết các dự án điện tử.
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ấtnhiều loại robot
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êncá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
Nhận biết và xử lý và cảnh báo các vấn đề nguy hiểm như 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 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ườidùng
1.5 Khả năng kết nối
Arduino có thể hoạt động độc lập
Arduino có thể kết nối với một máy tính Máy tính của bạn được phéptruy cập dữ liệu cảm biến từ thế giới bên ngoài và cung cấp thông tinphản hồi
Các Arduino có thể kết nối với nhau
Arduino có thể kết nối với thiết bị điện tử khác
Arduino có thể kết nối với các chip điều khiển
1.6 Tính linh hoạt và chi phí
Trang 14Mức giá cho một thiết bị này vào khoảng $50 đô-la, thấp hơn nhiều so với các nềntảng vi điều khiển khác, mức giá này rất phù hợp với các bạn trẻ và các tổ chức
Ưu điểm lớn nhất của Arduino là có thể sử dụng ngay Vì Arduino là một bộ hoànchỉnh gồm bộ nguồn 5V, một ổ ghi, một bộ dao động, một vi điều khiển, truyềnthông nối tiếp, LED và các giắc cắm Bạn không cần phải suy nghĩ về các kết nốilập trình hoặc bất kỳ giao diện nào khác Chỉ cần cắm nó vào cổng USB của máytính
Ngôn ngữ lập trình mà bạn sử dụng với nó là khá đơn giản và quen thuộc với bất
cứ ai đã từng có kinh nghiệm với Java hoặc các ngôn ngữ tương tự (Nó thực sựdựa trên Processing)
Nó cũng là một công cụ học tập tuyệt vời, có thể thử nghiệm với các thiết bị điện
tử và tìm hiểu những kiến thức nền tảng Có rất nhiều diễn đàn trên internet nói
về Arduino Kỹ sư và các chuyên gia đang thực hiện dự án của họ thông quaArduino Có thể dễ dàng tìm thấy mọi thông tin về Arduino
Có rất nhiều dòng Vi Điều Khiển trên thị trường để chúng ta sử dụng cho dự
án của mình Nhưng để sử dụng và thực hiện được cần đòi hỏi người thực hiện
có kiến thức và kinh nghiệm Và hầu hết các dòng vi điều khiển được giới hạn
sử dụng trong windows là chủ yếu
Với Arduino, phần mềm hỗ trợ đa nền tảng, có thể chạy trên các hệ điều hànhWindows, Macintosh OSX và Linux
Chi phí Arduino không tốn kém
Phần mềm lập trình IDE dễ sử dụng, kể cả cho người mới bắt đầu.Phần mềm Arduino được xuất bản dưới dạng các công cụ mã nguồn mở, ngônngữ có thể được mở rộng thêm bởi các chuyên gia lập trình viên có kinh
Trang 15nghiệm thông qua các thư viện ngôn ngữ C++ Đối với những người nghiêncứu về kỹ thuật có thể tích hợp và nhúng ngôn ngữ AVR vào Arduino nếu cần.
Hỗ trợ kết nối các thiết bị ngoại vi đa dạng thông qua các modules
Có nhiều phiên bản Arduino chọn lựa, từ Phiên bản mini đến mở rộng
Sử dụng, biên dịch và nạp chương trình thông qua máy tính dễ dàng
CHƯƠNG II: TÌM HIỂU CƠ BẢN VỀ ARDUINO MICRO
Hình 2.1: Arduino Micro
2.1 Giới thiệu vầ Arduino Micro
Arduino Micro Nó là một bo mạch Micro, dựa trên vi điềukhiển ATmega32U4 và đi kèm với USB tích hợp , giúp nó dễ dàng thiết lập kếtnối nhanh chóng với với máy tính Arduino Micro , như tên cho thấy, là bomạch nhỏ nhất trong Cộng đồng Arduino Nó có thể so sánh với các đối tác của
nó như Arduino Nano và Arduino Promini
Đừng ảo tưởng về việc thực hiện các chức năng phức tạp đòi hỏi nhiềudung lượng bộ nhớ hơn, vì món đồ chơi nhỏ này đi kèm với bộ nhớ flash
Trang 16khoảng 32 KB trong khi EEPROM và SRAM lần lượt là 2,5 KB và 1 KB, vẫn
đủ để làm say mê kỹ thuật của bạn
Chiều dài và chiều rộng tối đa của Micro PCB lần lượt là 4,8cm và1,77cm, tuy nhiên, với cổng USB đi kèm , kích thước sẽ lớn hơn một chút sovới các thông số nhất định, vượt quá so với cạnh của bố cục PCB
Khả năng tương thích của bảng mạch chính giúp thiết bị này dễ sử dụng
để có trải nghiệm thực tế trước khi kết hợp nó vào dự án liên quan với tất cả cácđiều kiện tiên quyết
Nếu dòng điện leo thang từ giá trị yêu cầu đến cổng USB, cầu chì sẽ nhảyvào và hoạt động như một công tắc khẩn cấp , phá vỡ kết nối giữa bo mạch vàmáy tính Nên giữ dòng điện cho cổng USB dưới 500mA
2.2 Tính năng của Arduino Micro
Hình dưới đây cho thấy các tính năng chính của Arduino Micro
Trang 17
Hình 2.3: Cấu tạo và cách sắp xếp linh kiện trên Arduino Micro
Bảng 2.1 thành phần trong Arduino Micro
Vi điều khiển ATmega32U4
Arduino Micro- sử dụng MPU Atmega32U4 làm bộ xừ lý trung tâm Arduino
Micro có 20 kênh đầu vào và đầu ra chân (7 kết quả đầu ra PWM và 12 đầu vàoanalog) sử dụng thạch anh 16MHZ, Micro USB, Chân ICSP, và nút reset Board
có tất cả các chức năng của vi xử lý Arduino Micro gần giống như board Aruino
Trang 18Leonardo cùng sử dụng chip vi xử lý ATmega32u4 tích hợp chuẩn kết nối USB,không cần sử dụng đến chip USB khác Board có thể sử dụng các chức năng đặcbiệt như giả lập bàn phím, chuột vitual Serial/ COM port mà các board thôngdụng như Uno hay Mega không có Ngoài ra nó còn có thể chống cấp ngược điện
áp nên không dễ die Vì kích thước siêu nhỏ, Arduino Micro có thể được tích hợprất dễ dàng vào breadboard nhỏ Thiết kế sáng tạo này làm giảm chi phí.Atmega32u4 hỗ trợ sinh tính năng USB cũng cho phép Arduino Micro mô phỏngchuột và bàn phím, và giao tiếp máy tính.Giao tiếp nối tiếp cùng với giao tiếpSPI và I2C có sẵn trên bảng Nút khởi động lại vật lý được thêm vào để giúpdừng chức năng đang chạy và đặt bộ điều khiển về trạng thái ban đầu từ nơi nólấy và triển khai thông tin được lưu trữ từ đầu
2.3 Sơ đồ chân vi mô của Arduino Micro
Đối với mô-đun này Nó không là gì khác ngoài một thiết bị ngoại vi kỹthuật với một số tính năng được bố trí và đặt trong một gói
Tuy nhiên, như đã đề cập trước đó, nó hoạt động hoàn hảo nếu bạn địnhthiết kế một dự án đơn giản yêu cầu ít dung lượng bộ nhớ hơn ArduinoDue và Arduino Leonardo được ưu tiên để đáp ứng nhu cầu kỹ thuật nếuyêu cầu dự án phức tạp và cần nhiều không gian bộ nhớ hơn để thiết kế
và điều khiển tự động hóa trong dự án liên quan
Giao tiếp USB tích hợp trên bo mạch giúp loại bỏ sự cần thiết của bộ xử
lý thứ cấp và giúp nó xuất hiện với một máy tính được kết nối dưới dạngbàn phím và chuột, ngoài cổng COM / nối tiếp (CDC) ảo