MỤC LỤC
LỜI NÓI ĐẦU 6
CHƯƠNG 1 GIỚI THIỆU
1.1 Tổng Quan Về Robot
1.1.1. Lịch sử phát triển
1.1.2. Các ứng dụng của Robot.
1.2. Lý Do Chọn Đề Tài, Mục Đích, Đối Tượng Nghiên Cứu
1.2.1. Lý do chọn đề tài
1.2.2. Mục đích của đề tài
1.2.3. Đối tượng phạm vi nghiên cứu
1.3 Gới Thiệu Về Arduino
1.4 Giới Thiệu Chung Về Android
1.4 Giới Thiệu Chung Về Bluetooth
CHƯƠNG 2 TỔNG QUAN VỀ ĐỒ ÁN
2.1. Ý Tưởng Thiết Kế
2.1.1. Thiết bị điều khiển
2.1.2. Thiết bị ngoại vi
2.2.Mô hìn
77 trang |
Chia sẻ: huong20 | Ngày: 08/01/2022 | Lượt xem: 409 | Lượt tải: 0
Tóm tắt tài liệu Đề tài Thiết kế và thi công mạch xe điều khiển từ xa thông qua smartphone, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
h hệ thống
2.3. Nội dung đồ án
CHƯƠNG 3 TỔNG QUAN VỀ ARDUINO, HỆ ĐIỀU HÀNH VÀ BLUETOOTH
3.1.Tổng Quan Về Arduino
3.1.1. Khái niệm về Arduino
3.1.2. Các loại Arduino
3.1.3 Arduino Nano
3.2.Tổng Quan Về Hệ Điều Hành Android
3.2.1 Giới thiệu về android
3.2.3 Chương trình giao diện Android
3.3.Tổng Quan Về Công Nghệ Không Dây Bluetooth
3.3.1 Khái niệm
3.3.2 Đặc điểm của công nghệ Bluetooth
3.3.3 Hoạt động
3.3.4 Các thế hệ Bluetooth
3.3.5 Vấn đề bảo mật trong công nghệ Bluetooth
3.3.6 Trạng thái của thiết bị Bluetooth:
3.3.7 Các chế độ kết nối - Active mode
3.3.8 Kỹ thuật trải phổ nhảy tần số trong công nghệ Bluetooth
3.3.9 Module Bluetooth HC - 06
CHƯƠNG 4 THIẾT KẾ VÀ THI CÔNG
4.1 Chương Trình Android
4.1.1 Giao diện điều khiển Android trên Smartphone
4.1.2 Chương trình Anderoid
4.1.2 Mạch kết nối Bluetooth với Arduino
4.1.3 Sơ Đồ Mạch Điều Khiển Và Động Lực
4.1.4 Mạch Tổng
4.1.5 Chức Năng Linh Kiện Trong Mạch
4.2 Chương Trình Arduino
CHƯƠNG 5 KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI
5.1 Đánh giá kết quả thực hiện đề tài
5.2 Hướng phát triển
PHỤ LỤC HÌNH VẼ
1.1.1: Robot Shakey 7
1.1.2: Robot hàn điểm 8
1.1.3: Robot phẫu thuật 8
1.1.4: Mobile Robot kỹ thuật sử lý hình ảnh 9
1.1.5: Robot song song 6 bậc tự do Merlet 10
1.1.6: Nguyên Bản của Robot Hexapod TU Munich 10
1.1.7: Robot hàn trong công nghiệp sản xuất cơ khí 11
1.1.8: Ứng Dụng Robot trong các hệ thống sản xuất linh hoạt 11
1.1.9: Robot được sử dụng trong công đoạn cấp vật liệu và lắp ráp 13
1.1.10: Các ứng dụng Robot trong các lĩnh vực thám hiểm, quân sự, vệ tinh 13
1.3.1: Arduino Mega 15
1.4.1: Logo Android 16
1.5.1: Logo Bluetooth 17
1.5.2: Bluetooth và kết nối với thiết bị 17
2.1.1: Giao diện điều khiển trên smartphone 18
2.1.2: Arduino nano 19
3.1.1: : Arduino UNO 22
3.1.2: Arduino Leonado 22
3.1.3: Arduino Due 22
3.1.4: Arduino Yún 22
3.1.5: Arduino Tre 22
3.1.6: Arduino Micro 22
3.1.7: Arduino Robot 23
3.1.8: Arduino Esplora 23
3.1.9: Arduino Mega 23
3.1.10: Arduino Ethernet 23
3.1.11: Arduino Mini 23
3.1.12: Lilypad Arduino 23
3.1.13: : Lilypad Arduino USB 24
3.1.14: Lilypad Arduino Simplesnap 24
3.1.15: Arduino Nano 24
3.1.16: Arduino Pro Mini 24
3.1.17: Sơ đồ chân Arduino Nano 24
3.2.1: Biểu tượng Android phiên bản 5.0 Lollipop 33
3.2.2: Giao diện của phần mềm tạo giao diện trên wed 36
3.2.3: Giao diện viết chương trình trên wed 36
3.3.1: Bluetooth phiên bản 4.0 38
3.3.2: Một số thiết bị sử dụng công nghệ Bluetooth 41
3.3.3: Kỹ thuật trải phổ nhảy tần số 44
3.3.4: Các packer truyền trên các tần số khác nhau 44
3.3.5: Cấu tạo của packet 45
3.3.6: Module Bluetooth HC-06 46
3.3.7: Sơ đồ chân HC-06 48
4.1.1: Giao diện điều khiển android trên Smartphone 53
4.1.2: Cho Phép bật Bluetooth trước khi kết nối với Arduino 54
4.1.3: Chế độ điều khiển 1 55
4.1.4: Chế độ điều khiển 2 55
4.1.5: Sơ đồ mạch kết nối Bluetooth với Arduino 60
4.1.6: Sơ đồ mạch động lực 60
4.1.7: Mạch in 62
4.1.8: Mạch sau khi hoàn thành 63
4.1.9: Rơle 63
4.1.10: PC817 64
4.1.11: Transistor A1013 66
4.1.12: Transistor công suất TIP41C 68
LỜI NÓI ĐẦU
Đất nước ta đang trong giai đoạn công nghiệp hoá hiện đại hoá, nên khoa học – kỹ thuật luôn là mối quan tâm hàng đầu. Cùng với sự phát triển nhanh chóng về khoa học - kỹ thuật, nghành điện tự động có những bước phát triển nhảy vọt với linh kiện bán dẫn, các hệ thống nhúng ra đời và kèm theo đó là nhiều ứng dụng mới xuất hiện phụ vụ cho sinh hoạt và sản xuất con người.
Hiện nay việc các ứng dụng ngày càng trở nên phổ biến, từ những cái đơn giản như điều khiển cột đèn giao thông định thời, đếm sản phẩm dây chuyền sản xuất, điều khiển động cơ điện một chiều Đến những ứng dụng phức tập như điều khiển Robot, hệ thống kiểm soát Một trong những ứng dụng không kém phần quan trọng trong công nghiệp điều khiển từ xa. Nó đã góp phần rất lớn trong việc điều khiển các thiết bị từ xa hay những thiết bị mà con người không thể trực tiếp chạm vào để điều khiển.
Xuất phát từ ứng dụng quan trọng trên, em đã thiết kế và thi công mạch “Xe Điều Khiển Từ Xa Thông Qua Smartphone”
Qua đây em xin chân thành cảm ơn các thầy cô trong khoa Điện, trường Đại học Đông Á Đà Nẵng, đã giúp đỡ tạo điều kiện và cung cấp tài liệu để em hoàn thành đề tài tốt nghiệp này. Đồng thời, em muốn gửi lời cảm ơn sâu sắc tới cô giáo hướng dẫn Đỗ Hoàng Ngân Mi, cô đã tận tình hướng dẫn và tạo điều kiện thuận lợi để nhóm chúng em hoàn thành được đề tài tốt nghiệp này!
Trong quá trình thực hiện đề tài chắc chắn sẽ còn nhiều thiếu sót nhất định. Vậy chúng em mong sự giúp đỡ của Thầy cô và sự góp ý của bạn bè.
Chúng em xin chân thành cảm ơn!
Đà nẵng, ngày tháng năm 2015
CHƯƠNG 1
GIỚITHIỆU
Tổng Quan Về Robot
1.1.2 Lịch sử phát triển
Khái niệm Robot ra đời đầu tiên vào ngày 09/10/1922 tại NewYork, khi nhà soạn kịch người Tiệp Kh Karen Kapek đã tưởng tượng ra một cổ máy hoạt động một cách tự động, nó là niềm mơ ước của con người lúc đó. Từ đó ý tưởng thiết kế, chế tạo Robot đã luôn thôi thúc con người. Đến năm 1948, tại phòng thí nghiệm quốc gia Argonne, Goertz đã chế tạo thành công tay máy đôi (master-slave manipulator). Đến năm 1954, Goertz đã chế tạo tay máy đôi sử dụng động cơ servo và có thể nhận biết được lực tác động lên khâu cuối. Năm 1956 hãng Generall Mills đã chế tạo tay máy hoạt động trong việc thám hiểm dại dương. Năm 1968 R.S. Mosher, của General Electric đã chế tạo một cỗ máy biết đi bằng 4 chân. Hệ thống vận hành bởi động cơ đốt trong và mỗi chân vận hành bởi một hệ thống servo thủy lực.
Năm 1969, Đại học stanford đã thiết kế robot tự hành nhờ nhận dạng hình ảnh
Hình 1.1.1: Robot Shakey
Năm 1970 con người đã chế tạo được Robot tự hành Lunokohod, thám hiểm bề mặt của mặt trăng.
Trong giai đoạn này, ở nhiều nước khác cũng tiến hành công tác nghiên cứu tương tự, tạo ra các Robot điều khiển bằng máy tính có lắp đặt các loại cảm biến và thiết bị giao tiếp người và máy.
Hình 1.1.2. : Robot hàn điểm
Hình 1.1.3 : Robot phẫu thuật
Theo sự tiến bộ của khoa học kỹ thuật, các Robot ngày càng được chế tạo nhỏ gọn hơn, thực được nhiều chức năng hơn, thông minh hơn. Một lĩnh vực được nhiều nước quan tâm là các Robot tự hành, các chuyển động của chúng ngày càng đa dạng, bắt chước các chuyển động của chân người hay các loài động vật như : bò sát, động vật 4 chân, Và các loại xe Robot (robocar) nhanh chóng được ứng dụng rộng rãi trong các hệ thống sản xuất tự động linh hoạt (FMS).
Hình 1.1.4. : Mobile Robot kỹ thuật sử lý hình ảnh
Từ đó trở đi con người liên tục nghiên cứu phát triển Robot để ứng dụng trong quát trình tự động hoá sản xuất để tăng hiệu quả kinh doanh. Ngoài ra Robot còn được sử dụng thay cho con người trong các công việc ở môi trường độc hại, khắc nghiệt, Chuyên ngành khoa học về robot “robotics” đã trở thành một lĩnh vực rộng trong khoa học, bao gồm các vấn đề cấu trúc cơ cấu động học, động lực học, quĩ đạo chuyển động, chất lượng điều khiển Tuỳ thuộc vào mục đích và phương thức tiếp cận, chúng ta có thể tìm hiểu lĩnh vực này ở nhiều khía cạnh khác nhau. Hiện nay, có thể phân biệt các loại Robot ở hai mảng chính : Các loại robot công nghiệp (cánh tay máy) và các loại robot di động (mobile robot). Mỗi loại có các ứng dụng cũng như đặc tính khác nhau. Ngoài ra, trong các loại robot công nghiệp còn được phân chia dựa vào cấu tạo động học của nó : Robot nối tiếp (series robot) và robot song song (parallel robot).
Hình 1.1.5 : Robot song song 6 bậc tự do Merlet
Chính công nghệ tiên tiến ở tất cả các lĩnh vực : cơ khí, vi mạch, điều khiển, công nghệ thông tin đã tạo ra nền tảng cũng như những thách thức lớn đối với khoa học nghiên cứu robot. Chính vì vậy, con người đã và đang tiếp tục phát triển và nâng cao mức độ hoàn thiện trong lĩnh vực đầy hấp dẫn này.
Hình 1.1.6 : Nguyên Bản của Robot Hexapod TU Munich
1.1.2. Các ứng dụng của Robot.
1.1.2.1. Các ưu điểm khi sử dụng Robot.
Các loại Robot tham gia vào qui trình sản xuất cũng như trong đời sống sinh hoạt của con người, nhằm nâng cao năng suất lao động của dây chuyền công nghệ, giảm giá thành sản phẩm, năng cao chất lượng cũng như khả năng cạnh tranh của sản phẩm tạo ra. Robot có thể thay thế con người làm việc ổn định bằng các thao tác đơn giản và hợp lý, đồng thời có khả năng thay đổi công việc để thích nghi với sự thay đổi của qui trình công nghệ. Sự thay thế hợp lý của robot còn góp phần giảm giá thành sản phẩm, tiết kiệm nhân công ở những nước mà nguồn nhân công là rất ít hoặc chi phí cao như : Nhật Bản, các nước Tây Âu, Hoa Kỳ Tất nhiên nguồn năng lượng từ robot là rất lớn, chính vì vậy nếu có nhu cầu tăng năng suất thì cần có sự hỗ trợ của chúng mới thay thế được sức lao động của con người. Chúng có thể làm những công việc đơn giản nhưng dễ nhầm lẫn, nhàm chán. Robot có khả năng nghe được siêu âm, cảm nhận được từ trường Bên cạnh đó, một ưu điểm nổi bậc của robot là môi trường làm việc. Chúng có thể thay con người làm việc ở những môi trường độc hại, ẩm ướt, bụi bặm hay nguy hiểm. Ở những nơi như các nhà máy hoá chất, các nhà máy phóng xạ, trong lòng đại dương, hay các hành tinh khác thì việc ứng dụng robot để cải thiện điều kiện làm việc là rất hữu dụng
1.1.2.2. Mộ số lĩnh vực ứng dụng.
- Ứng dụng trong các lĩnh vực sản xuất cơ khí. Trong lĩnh vực cơ khí, robot được ứng dụng khá phổ biến nhờ khả năng hạot động chính xác và tính linh hoạt cao. Các loại robot hàn là một ứng dụng quan trọng trong các nhà máy sản xuất ôtô, sản xuất các loại vỏ bọc cơ khí
Hình 1.1.7 : Robot hàn trong công nghiệp sản xuất cơ khí
Ngoài ra người ta còn sử dụng robot phục vụ cho công nghệ đúc, một môi trường nóng bức, bụi bặm và các thao tác luôn đồi hỏi độ tin cậy.
Đặc biệt trong các hệ thống sản xuất linh hoạt (FMS), Robot đóng vai trò
rất quan trọng trong việc vân chuyển và kết nối các công đoạn sản xuất với
nhau
Hình 1.1.8. : Ứng Dụng Robot trong các hệ thống sản xuất linh hoạt
Ứng dụng trong lĩnh vực gia công lắp ráp. Các thao tác này thường được tự động hoá bởi các robot được gia công chính xác và mức độ tin cậy cao
Hình 1.1.9. : Robot được sử dụng trong công đoạn cấp vật liệu và lắp ráp
Ứng dụng trong các hệ thống y học, quân sự, khảo sát địa chất.
Ngày nay, việc sử dụng các tiện ích từ Robot đến các lĩnh vực quân sự, y tế, rất được quan tâm. Nhờ khả năng hoạt động ổn định và chính xác, Robot đặc biệt là tay máy được dùng trong kĩ thuật dò tìm, bệ phóng, và trong các ca phẫu thuật y khoa với độ tin cậy cao.
Hình 1.1.10: Các ứng dụng Robot trong các lĩnh vực thám hiểm, quân sự,
vệ tinh
Ngoài ra, tuỳ thuộc vào các ứng dụng cụ thể khác mà Robot được thiết kế đểphục vụ cho các mục đích khác nhau, tận dụng được các ưu điểm lớn của chúng đồng thời thể hiện khả năng công nghệ trong quá trình làm việc.
1.2 Lý Do Chọn Đề Tài, Mục Đích, Đối Tượng Nghiên Cứu
1.2.1. Lý do chọn đề tài
Trong thời qua, khoa học máy tính và xử lý thông tin có những bước tiến vượt bậc và ngày càng có những đóng góp to lớn vào cuộc cách mạng khoa học kỹ thuật hiện đại, Đặc biệt sự ra đời và phát triển nhanh chóng của kỹ thuật số làm cho nghành kỹ thuật điện tử trở nên phong phú và đa dạng hơn. Nó góp phần rất lớn trong việc đưa kỹ thuật hiện đại thâm nhập rộng rãi vào mọi lĩnh vực của hoạt động sản xuất, kinh tế và đời sống xã hội. Từ những hệ thống máy tính đến các thiết bị cá nhân cầm tay điện thoại Smartphone, để điều khiển các máy công nghiệp đến các thiết bị phụ vụ cho đời sống hằng ngày của con người.
Với mong muốn tìm hiểu nguyên lý, kỹ thuật trong các hệ thống điều khiển. Được hướng dẫn của cô Đỗ Hoàng Ngân Mi nhóm đã chọn đề tài “Xe Điều Khiển Từ Xa Thông Qua Smartphone”
1.2.2 Mục đích của đề tài
Mục đích nghiên cứu của đề tài này là nghiên cứu về Arduino cụ thể hơn là Arduino nano, phương pháp lập trình cho Arduino bằng ngôn ngữ Arduino (được xây dựng trên ngôn ngữ C), để biên dịch chương trình và up chương trình lên board là phần mềm Arduino IDE. Lập trình ứng dụng Android dùng SDK, giao tiếp thông qua Bluetooth
1.2.3 Đối tượng phạm vi nghiên cứu
Board Arduino nano : Nắm được cấu trúc phần cứng, lập trình phần mềm và ứng dụng vào mô hình thực tế.
Động cơ DC.
Phần mền điều khiển Android.
Modul Bluetooth HC – 06.
Hướng nghiên cứu và phát triển
Nghiên cứu nắm bắt phần cứng của Arduino nano, sơ đồ khối, bố trí chân, tập lệnh điều khiển cho Arduino nano.
Tìm hiểu cách điều khiển động cơ DC.
Tìm hiểu về lập trình phần mềm Android giao tiếp Bluetooth. Kết quả cuối cùng là xe hoạt động ổn định, điều khiển bằng phần mềm diện thoại.
1.3 Gới Thiệu Về Arduino
Là một nền tảng mã nguồn mở được sử dụng để xây dựng các ứng dụng điện tử. Arduino gồm có board mạch có thể lập trình được (thường gọi là vi điều khiển) và các phần mềm hổ trợ phát triển tích hợp IDE (lntegrated Development Environment) dung để soạn thảo, biên dịch code và nộp chương trình cho board.
Arduino ngày nay rất phổ biến cho những người mới bắt đầu tìm hiểu về điện tử vì nó đơn giản, hiệu quả và dể tiếp cận. không giống như các loại vi điều khiển khác. Arduino không cần phải có các công cụ chuyên biệt để phục vụ việc nộp code cho PLC cần phải có Pic kit. Đối với Arduino rất đơn giản, ta có thể kết nối với máy tính bằng cáp USB. Thêm vào đó việc lập trình Arduino rất dể dàng, trình biên dịch Arduino IDE sử dụng phiên bản đơn giản hóa cưa ngôn ngữ C++.
Hình 1.3.1 : Arduino Mega
1.4 Giới Thiệu Chung Về Android
Android là một nền tảng dành cho các thiết bị di động, trong đó phần lớn là điện thoại (smartphone), Tablet, và hiện nay còn được phát triển cho nhiều thiết bị khác nhau như ti vi HD player Car controller,.. Andriod được phát triển dữa trên nền tản Linnux do Google phát hành . Các ứng dụng được phát triển chủ yếu bằng ngôn ngữ java, đồng thời cũng hổ trợ Native-C.
Hình 1.4.1. : Logo Android
1.5 Giới Thiệu Chung Về Bluetooth
Công nghệ Bluetooth là một công nghệ dựa trên tần số vô tuyến và bất cứ một thiết bị nào có tích hợp bên trong công nghệ này đều có thể truyền thong với các thiết bị khác với một khoảng cách nhất địnhvề cự ly để đảm bảo công suất cho việc phát và nhận sóng. Công nghệ này thường được sử dụng để truyền thông giữa hai loại thiết bị khác với nhau.
Hình 1.5.1 : Logo Bluetooth
Hoạt động
Bluetooth là chuẩn kết nối không dây tầm ngắn, thiết kế cho các thiết bị cá nhân hay mạng cục bộ nhỏ trong phạm vi băng tầng từ 2.4GHz đến 2.485GHz. Bluetooth được thiết kế hoạt động trên 79 tần số đơn lẻ. khi kết nối, nó sẽ tự động tìm ra tần số tương thích để di chuyển đến thiết bị cần kết nối trong khu vực nhằm đảm bảo sự liên kết.
Hình 1.5.2 : Bluetooth và kết nối với thiết bị
CHƯƠNG 2
TỔNG QUAN VỀ ĐỒ ÁN
2.1. Ý Tưởng Thiết Kế
2.1.1. Thiết bị điều khiển
Việc xây dựng ứng dụng trên hệ điều hành Android tương đối thuận lợi, dễ dàng bởi đây là hệ điều hành mã nguồn mở với cộng đồng sử dụng đông đảo. Việc phát triển ứng dụng được thực hiện dễ dàng bất cứ khi nào mà không bị gò bó bởi bộ điều khiển riêng biệt. Qua đó nhóm đã thực hiện tạo một ứng dụng trên chiếc Smartphone chạy hệ điều hành Android, ứng dụng này có nhiệm vụ điều khiển thiết bị ngoại vi thông qua sóng Blutooch.
Hình 2.1.1. Giao diện điều khiển trên smartphone
2.1.2. Thiết bị ngoại vi
Nhóm sử dụng một modul Bluetooth (HC – 06) để truyền tải dữ liệu với Mobile và được điều khiển bởi 1 vi điều khiển. Vi điều khiển có nhiệm vụ chính là xử lí tín hiệu nhận được từ modul Bluetooth và điều khiển 4 động cơ của xe.
Để đơn giản trong lập trình nhóm đã chọn Arduino, cụ thể hơn là chúng em dùng Arduino nano, một loại board mạch vi điều khiển ra đời chưa lâu nhưng tạo sự thu hút rất lớn từ phía các nhà lập trình vi điều khiển cũng như sinh viên đang theo học tại các trường. Việc lập trình cho Arduino cũng khá dễ dàng như các loại vi điều khiển khác, phần mềm viết chương trình cho Arduino là Arduino Intergated Development Environment (IDE).
Hình 2.1.2. Arduino nano
2.2. Mô Hình Hệ Thống
2.3. Nội Dung Đồ Án
Tổng quan về đồ án
Tổng quan về Arduino, hệ điều hành Android và Bluetooth
Thiết kế và thi công
Nhận xét và hướng phát triển đề tài
CHƯƠNG 3
TỔNG QUAN VỀ ARDUINO, HỆ ĐIỀU HÀNH VÀ BLUETOOTH
3.1. Tổng Quan Về Arduino
3.1.1. Khái niệm về Arduino
3.1.1.1 Khái niệm
Arduino là một board mạch vi xử lý được dùng để lập trình tương tác với các thiết bị phần cứng như động cơ, cảm biến
Đăc điểm nổi bậc của Arduino là môi trường phát triển ứng dụng dễ sử dụng, với một ngôn ngữ lập trình có thể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử, lập trình.
3.1.1.2.Lịch sử hình thành
Arduino được ra đời tại thị trấn Ivrea, nước Ý và được đặt theo tên của một vị vua và thế kỷ thứ 9 là King Arduin.
Nó chính thức được giới thiệu vào năm 2005 như là một công cụ cho sinh viên học tập của giáo sư Massimo Banzi, một trong những người phát triển arduino tại trường Interaction Design Instisture Ivrea (IDII).
3.1.2. Các loại Arduino
Hình 3.1.1: Arduino UNO Hình 3.1.2: Arduino Leonado
Hình 3.1.3: Arduino Due Hình 3.1.4:Arduino Yún
Hình 3.1.5: Arduino Tre Hình 3.1.6: Arduino Micro
Hình 3.1.7: Arduino Robot Hình 3.1.8: Arduino Esplora
Hình 3.1.9: Arduino Mega Hình 3.1.10: Arduino Ethernet
Hình 3.1.11: Arduino Mini Hình 3.1.12: Lilypad Arduino
Hình 3.1.13: Lilypad Arduino USB Hình 3.1.14: Lilypad Arduino Simplesnap
Hình 3.1.15: Arduino Nano Hình 3.1.16: Arduino Pro Mini
3.1.3 Arduino Nano
3.1.3.1. Cấu trúc phần cứng
Hình 3.1.17: Sơ đồ chân Arduino Nano
Vi điều khiển
Atmega328(16 bit) hoặc Atmega168(8bit)
Điện áp hoạt động
5V – DC
Tần số hoạt động
16MHz
Dòng tiêu thụ
30Ma
Điên áp và khuyên dung
7 – 12V – DC
Điện áp vào giới hạn
6 – 20V – DC
Số chân Digital I/O
14 (6 chân PWM)
Số chân Analog
8 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân
40 mA
Dòng ra tối đa (5V)
500 mA
Dòng ra tối đa (3,5V)
50 mA
Bộ nhớ flash
16 KB (Atmega168) hoặc 32 KB (Atmega328) với 2 KB dùng bởi bootloader
SRAM
1 KB (Atmega168) hoặc 2 KB (Atmega328)
EEPROM
512 bytes (Atmega168) hoặc 1 KB (Atmega328)
Kích thước
1.85 cm x 4.3 cm
Các cổng vào ra của Arduino Nano
Chân Digital : gồm có 14 chân (chân số 1,2,4,5 đến chân 13)
Chân Serial : 2 chân (chân số 1 và 2) dùng để gửi và nhận dữ liệu TTL Serial
Chân PWM : 6 chân (chân số 3, 5, 6, 9, 10 và 11) cho phép xuất ra xung PWM với độ phân giải 8bit.
Chân giao tiếp SPI: 4 chân (chân số 10, 11, 12 và 13) các chân này cho phép truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác.
Chân Led: 1 Chân (chân số 13) trên Arduino có Led mà cam (kí hiệu L), báo hiệu khi bấm nút Reset.
Chân Analog : gồm có 8 chân (chân số 16 đến chân 23)
I2C :chân số 4 (SDA) và chân số 5 (SCL) hỗ trợ I2C bằng cách sử dụng Wire library.
3.1.3.2.Phần Mềm Arduino
3.1.3.2.1.Phần mềm viết chương trình và biên dịch chương trình
Arduino Nano sử dụng phần mềm Arduino IDE để lập chương trình, ngôn ngữ lập trình cho Arduino cũng có tên là Arduino (được xây dựng trên ngôn ngữ C). Ngoài viết chương trình phần mềm Arduino IDE còn biên dịch và tải chương trình lên board.
3.1.3.2.2.Cấu trúc chương trình
Một chương trình Arduino cần có tối thiểu Void setup, Void loop.
Void setup()
{
// Toàn bộ đoạn code nằm trong hàm này chỉ được chạy duy nhất một lần khi chạy chương trình
}
Void loop()
{
// Lặp lại mãi mãi sau khi chạy xong setup()
}
Cấu Trúc
Cấu trúc điều khiển
if
if...else
switch / case
for
while
break
continue
return
goto
Cú pháp mở rộng
; (dấu chấm phẩy)
{} (dấu ngoặc nhọn)
// (single line comment)
/* */ (multi-line comment)
#define
#include
Toán tử số học
= (phép gán)
+ (phép cộng)
- (phép trừ)
* (phép nhân)
/ (phép chia)
% (phép chia lấy dư)
Toán tử so sánh
== (so sánh bằng)
!= (khác bằng)
> (lớn hơn)
< (bé hơn)
>= (lớn hơn hoặc bằng)
<= (bé hơn hoặc bằng)
Toán tử logic
&& (và)
|| (hoặc)
! (phủ định)
^ (loại trừ)
Phép toán hợp nhất
++ (cộng thêm 1 đơn vị)
-- (trừ đi 1 đơn vị)
+= (phép rút gọn của phép cộng)
-= (phép rút gọn của phép trừ)
*= (phép rút gọn của phép nhân)
/= (phép rút gọn của phép chia)
Giá Trị
Hắng số
HIGH | LOW
INPUT | INPUT_PULLUP | OUTPUT
LED_BUILTIN
true | false
Hằng số nguyên (integer constants)
Hằng số thực (floating point constants)
Kiểu dữ liệu
void ("void" là một từ khóa chỉ dùng trong việc khai báo một function. Những function được khai báo với "void" sẽ không trả về bất kì dữ liệu nào khi được gọi)
boolean (boolean sẽ chỉ nhận một trong hai giá trị: true hoặc false)
char (kiểu dữ liệu này là kiểu dữ liệu biểu diễn cho 1 ký tự vd:char myChar = 'A';)
unsigned char (biểu hiệu một số nguyên byte không âm (giá trị từ 0 - 255))
byte (Là một kiểu dữ liệu biểu diễn số nguyên nằm trong khoảng từ 0 đến 255)
int (khai báo biến và giá trị vd: int x x = 255)
unsigned int (là kiểu số nguyên nằm trong khoảng từ 0 đến 65535 (0 đến 216 - 1)
word (giống như kiểu unsigned int, kiểu dữ liệu này là kiểu số nguyên 16 bit không âm )
long (là một kiểu dữ liệu mở rộng của int. Những biến có kiểu long có thể mang giá trị 32bit từ -2,147,483,648 đến -2,147,483,647. unsigned long là kiểu số nguyên nằm trong khoảng từ 0 đến 4,294,967,295 (0 đến 232 - 1))
short (Giống hệt kiể int, tuy nhiên có điều trên mọi mạch Arduino nó đều chiếm 4 byte bộ nhớ và biểu thị giá trị trong khoảnf -32,768 đến 32,767 (-215 đến 215-1) (16 bit))
float (Một biến dùng kiểu dữ liệu này có thể đặt một giá trị nằm trong khoảng -3.4028235E+38 đến 3.4028235E+38)
double (Giống hết như kiểu float. Nhưng trên mạch Arduino Due thì kiểu double lại chiếm đến 8 byte bộ nhớ (64 bit))
array ( là mảng (tập hợp các giá trị có liên quan và được đánh dấu bằng những chỉ số))
string ((chuỗi kí tự biểu diễn bằng array) là chuỗi, trong một chương trình Arduino có 2 cách để định nghĩa chuỗi, cách thứ nhất là sử dụng mảng ký tự để biểu diễn chuỗi)
String (object)
Chuyển đổi kiểu dữ liệu
char() (Hàm char() có nhiệm vụ chuyển kiểu dữ liệu của một giá trị về kiểu char)
byte() (Hàm byte() có nhiệm vụ chuyển kiểu dữ liệu của một giá trị về kiểu byte.)
int() (Hàm int() có nhiệm vụ chuyển kiểu dữ liệu của một giá trị về kiểu int.)
word() (Hàm word() có nhiệm vụ chuyển kiểu dữ liệu của một giá trị về kiểu word. Hoặc ghép 2 giá trị thuộc kiểu byte thành 1 giá trị kiểu word)
long() (Hàm long() có nhiệm vụ chuyển kiểu dữ liệu của một giá trị về kiểu long.)
float() (Hàm float() có nhiệm vụ chuyển kiểu dữ liệu của một giá trị về kiểu float.)
Phạm vi của biến và phân loại
Phạm vi hiệu lực của biến
static - biến tĩnh (là biến sẽ được tạo ra duy nhất một lần khi gọi hàm lần đầu tiên và nó sẽ không bị xóa đi để tạo lại khi gọi lại hàm ấy)
const - biến hằng (để khai báo một biến hằng)
volatile (là giá trị của biến thay đổi một cách không xác định)
Hàm hỗ trợ
sizeof() (có nhiệm vụ trả về số byte bộ nhớ của một biến, hoặc là trả về tổng số byte bộ nhớ của một mảng array)
Hàm Và Thủ Tục
Nhập xuất Digital (Digital I/O)
pinMode() (hoạt động như là một đầu vào (INPUT) hoặc đầu ra (OUTPUT))
digitalWrite() (Xuất tín hiệu ra các chân digital, có 2 giá trị là HIGH hoặc là LOW)
digitalRead() (Đọc tín hiệu điện từ một chân digital (được thiết đặt là INPUT). Trả về 2 giá trị HIGH hoặc LOW)
Nhập xuất Analog (Analog I/O)
analogReference() (có nhiệm vụ đặt lại mức (điện áp) tối đa khi đọc tín hiệu analogRead)
analogRead() (là đọc giá trị điện áp từ một chân Analog (ADC))
analogWrite() - PWM - PPM (là lệnh xuất ra từ một chân trên mạch Arduino một mức tín hiệu analog (phát xung PWM))
Hàm thời gian
millis() (có nhiệm vụ trả về một số - là thời gian (tính theo mili giây) kể từ lúc mạch Arduino bắt đầu chương trình)
micros() (có nhiệm vụ trả về một số - là thời gian (tính theo micro giây) kể từ lúc mạch Arduino bắt đầu chương trình)
delay() (có nhiệm vụ dừng chương trình trong thời gian mili giây. Và cữ mỗi 1000 mili giây = 1 giây)
delayMicroseconds() (có nhiệm vụ dừng chương trình trong thời gian micro giây. Và cứ mỗi 1000000 micro giây = 1 giây)
Hàm toán học
min() (có nhiệm vụ trả về giá trị nhỏ nhất giữa hai biến.)
max() (có nhiệm vụ trả về giá trị lớn nhất giữa hai biến.)
abs() (có nhiệm vụ trả về giá trị tuyệt đối của một số.)
map() (là hàm dùng để chuyển một giá trị từ thang đo này sang một giá trị ở thang đo khác. Gía trị trả về của hàm map() luôn là một số nguyên)
pow() (pow() là hàm dùng để tính lũy thừa của một số bất kì (có thể là số nguyên hoặc số thực tùy ý). pow() trả về kết quả tính toán này.)
sqrt() (là hàm dùng để tính căn bậc 2 của một số bất kì (có thể là số nguyên hoặc số thực tùy ý) và trả về kết quả này)
sq() (được dùng để tính bình phường của một số bất kì, số này có thể thuộc bất kì kiểu dữ liệu biển diễn số nào. sq() trả về giá trị mà nó tính được với kiểu dữ liệu giống như kiểu dữ liệu của tham số ta đưa vào.)
isnan() (isnan sẽ trả về là true nếu giá trị cần kiểm tra không phải là một biểu thức toán học đúng đắn. Chữ nan có nghĩa là Not-A-Number)
constrain() (Bắt buộc giá trị nằm trong một khoảng cho trước)
Hàm lượng giác
cos() (Hàm này có nhiệm vụ tính cos một một góc (đơn vị radian). Giá trị chạy trong đoạn [-1,1].)
sin() (Hàm này có nhiệm vụ tính sin một một góc (đơn vị radian). Giá trị chạy trong đoạn [-1,1].)
tan() (Hàm này có nhiệm vụ tính tan một một góc (đơn vị radian). Giá trị chạy trong khoảng từ âm vô cùng đến dương vô cùng.)
Sinh số ngẫu nhiên
randomSeed() (Hàm random() luôn trả về một số ngẫu nhiên trong phạm vi cho trước. Giả sử mình gọi hàm này 10 lần, nó sẽ trả về 10 giá trị số nguyên ngẫu nhiên. Nếu gọi nó n lần, random() sẽ trả về n số. Tuy nhiên những giá trị mà nó trả về luôn được biết trước (cố định).)
random()Trả về một giá trị nguyên ngẫu nhiên trong khoảng giá trị cho trước
Nhập xuất nâng cao (Advanced I/O)
tone() (Hàm này sẽ tạo ra một sóng vuông ở tần số được định trước (chỉ nửa chu kỳ) tại một pin digital bất kỳ (analog vẫn được))
noTone() (Hàm này có nhiệm vụ kết thúc một sự kiện tone() trên một pin nào đó (đang chạy lệnh tone()))
shiftOut() (có nhiệm vụ chuyển 1 byte (gồm 8 bit) ra ngoài từng bit một.)
shiftIn() (Bắt đầu từ một trong hai nhất ( tức là tận cùng bên trái ) hoặc ít nhất ( ngoài cùng bên phải ) bit quan trọng)
pulseIn() (Đọc một xung tín hiệu digital (HIGH/LOW) và trả về chu kì của xung tín hiệu, tức là thời gian tín hiệu chuyển từ mức HIGH xuống LOW hoặc ngược lại (LOW -> HIGH))
Bits và Bytes
lowByte() (là hàm trả về byte cuối cùng (8 bit cuối cùng) của một chuỗi các bit. Một số nguyên bất kì cũng được xem như là một chuỗi các bit, vì bất kì số nguyên nào cũng có thể biểu diễn ở hệ nhị phân dưới dạng các bit "0" và "1".)
highByte() (là hàm trả về một chuỗi 8 bit kề với 8 bit cuối cùng của một chuỗi các bit. Như vậy, nếu dữ liệu đưa vào một chuỗi 16bit thìhighByte() sẽ trả về 8 bit đầu tiên, nếu dữ liệu đưa vào là một chuỗi 8bit hoặc nhỏ hơn, highByte() sẽ trả về giá trị 0. Một số nguyên bất kì cũng được xem như là một chuỗi các bit, vì bất kì số nguyên nào cũng có thể biểu diễn ở hệ nhị phân dưới dạng các bit "0" và "1".)
bitRead() (sẽ trả về giá trị tại một bit nào đó được xác định bởi người lập trình của một số nguyên.)
bitWrite() (sẽ ghi đè bit tại một vị trí xác định của số nguyên.)
bitSet() (sẽ thay giá trị tại một bit xác định của một số nguyên thành 1.)
bitClear() (sẽ thay giá trị tại một bit xác định của một số nguyên thành 0)
bit() (Trả về một số nguyên dạng 2n (2 mũ n).)
Ngắt (interrupt)
attachInterrupt() (Ngắt (interrupt) là những lời gọi hàm tự động khi hệ thống sinh ra một sự kiện)
detachInterrupt() (Hàm detachInterrupt() sẽ tắt các ngắt đã được kích hoạt tương ứng với thông số truyển vào)
interrupts() (Hàm interrupts() sẽ bật toàn bộ các ngắt đã được cài đặt.)
noInterrupts() (Khi cần chạy các đoạn chương trình yêu cầu chính xác về thời gian, bạn cần tắt các ngắt để Arduino chỉ tập trung vào xử lý các tác vụ cần thiết và chỉ duy nhất các tác vụ này. Các ngắt chạy nền sẽ không được thực thi sau khi gọi hàm noInterrupts().)
Giao tiếp
Serial (Giao tiếp Serial được thực hiện qua 2 cổng digital 0 (RX) và 1 (TX) hoặc qua cổng USB tới máy tính)
3.2. Tổng Quan Về Hệ Điều Hành Android
3.2.1 Giới thiệu về android
Hệ điều hành Android là hệ điều hành mở, hoàn thiện, cho phép người dùng tùy biến nó. Tương thích với hầu hết các nhà sản xuất phần cứng
Lịch sử hình thành
Ban đầu, Android là hệ điều hành cho các thiết bị cầm tay dựa trên lõi Linux do công ty Android Inc (California, Mỹ) thiết kế. Công ty này sau đó được Google mua lại vào năm 2005 và bắt đầu xây dựng Android Platform. Các thành viên chủ chốt tại ở Android Inc. gồm có: Andy Rubin, Rich Miner, Nick Sears, and Chris White.
Hình 3.2.1 : Biểu tượng Android phiên bản 5.0 Lollipop
Và sau tiếp, vào cuối năm 2007, thuộc về Liên minh thiết bị cầm tay mã nguồn mở (Open Handset Alliance) gồm các thành viên nổi bật trong ngành viễn thông và thiết bị cầm tay như:
Texas Instruments, Broadcom Corporation, Google, HTC, Intel, LG, Marvell
Technology Group, Motorola, Nvidia,Qualcomm, Samsung Electronics, Sprint
Nextel, T-Mobile, ARM Holdings, Atheros Communications, Asustek Computer Inc,
Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, and Vodafone Group,
Mục tiêu của Liên minh này là nhanh chóng đổi mới để đáp ứng tốt hơn cho nhu cầu người tiêu dùng và kết quả đầu tiên của nó chính là nền tảng Android. Android được thiết kế để phục vụ nhu cầu của các nhà sản xuất thiết, các nhà khai thác và các lập trình viên thiết bị cầm tay.
Khi Android được phát hành thì một trong số các mục tiêu trong kiến trúc của nó là cho phép các ứng dụng có thể tương tác được với nhau và có thể sử dụng lại các thành phần từ những ứng dụng khác. Việc tái sử dụng không chỉ được áp dụng cho các dịch vụ mà nó còn được áp dụng cho cả các thành phần dữ liệu và giao diện người dùng.
Vào cuối năm 2008, Google cho phát hành một thiết bị cầm tay được gọi là Android Dev Phone 1 có thể chạy được các ứng dụng Android mà không bị ràng buộc vào các nhà cung cấp mạng điện thoại di động. Mục tiêu của thiết bị này là cho phép các nhà phát triển thực hiện các cuộc thí nghiệm trên một thiết bị thực có thể chạy hệ điều hành Android mà không phải ký một
Các file đính kèm theo tài liệu này:
- de_tai_thiet_ke_va_thi_cong_mach_xe_dieu_khien_tu_xa_thong_q.docx