1. Trang chủ
  2. » Cao đẳng - Đại học

THIẾT KẾ HỆ THỐNG RA ĐA SIÊU ÂM TỰ ĐỘNG PHÁT HIỆN VẬT CẢN DỰA TRÊN NỀN TẢNG ARDUINO

60 2,1K 21

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 60
Dung lượng 14,07 MB
File đính kèm Code Arduino và Processing.rar (670 KB)

Nội dung

Liên Hệ: fb.com/acmasiva Với sự phát triển mạnh mẽ của khoa học công nghệ ngày nay, các loại vi điều khiển (VĐK) như AVR (Advanced Virtual RISC) hay PIC (Programable Intelligent Computer) ngày càng được sử dụng rộng rãi trong công nghiệp cũng như trong nghiên cứu cơ bản. Vi điều khiển họ Arduino xuất hiện vào năm 2005 đã mở ra một hướng đi mới cho vi điều khiển trong rất nhiều lĩnh vực. Trong lĩnh vực điều khiển tự động, đối tượng được điều khiển hoàn toàn tự động thông qua các thiết kế phần cứng gồm mạch điện điều khiển được lập trình theo một ý đồ xác định từ trước. Trong quá trình xây dựng hệ thống, bài toán thiết kế mạch điều khiển là một bài toán nan giải cần có lời giải phù hợp. Trong thời gian gần đây, họ vi điều khiển Arduino nổi lên như một giải pháp cho vấn đề này. Họ vi điều khiển này có mạch điện nhỏ gọn, rất dễ sử dụng và rất đa năng có phần cứng đã được tính hợp nhiều chức năng cơ bản và là mã nguồn mở. Ngoài ra, họ vi điều khiển này sử dụng ngôn ngữ lập trình đơn giản, dễ sử dụng dựa trên nền Java và tương thích với ngôn ngữ C với thư viện rất phong phú. Với những lý do trên, Arduino đã và đang được sử dụng rất rộng rãi, phổ biến hiện nay và hứa hẹn còn phát triển mạnh mẽ trong tương lai. Trong các hệ thống điều khiển tự động, cảm biến là thành phần không thể thiếu đóng vai trò hết sức quan trọng vì nó là thiết bị cung cấp thông tin phản hồi từ bên ngoài cho bộ phận điều khiển trung tâm để đưa ra quyết định phù hợp nhằm nâng cao chất lượng của quá trình điều khiển. Phạm vi ứng dụng của cảm biến ngày càng được mở rộng: từ các hệ thống tự động phức tạp, người máy, kiểm tra chất lượng sản phẩm, tiết kiệm năng lượng, chống ô nhiễm môi trường đến lĩnh vực giao thông vận tải, bảo quản thực phẩm, ô tô, trò chơi điện tử…Một trong các ứng dụng rất rộng rãi và phổ biến đó là cảm biến xác định vị trí và phát hiện dịch chuyển đóng vai trò rất quan trọng đối với hoạt động của nhiều máy móc và công cụ. Cảm biến siêu âm được sử dụng trong quá trình phát hiện và đo khoảng cách đến vật cản bằng sóng siêu âm. Nguyên lý hoạt động dựa trên nguyên lý thu và phát sóng siêu âm: khoảng cách từ cảm biến đến vật cản được xác định căn cứ vào khoảng thời gian giữa hai thời điểm phát và thu sóng siêu âm phản xạ. Đây là nền tảng cho các ứng dụng như phát hiện vị trí, đo vận tốc chuyển động, đo chiều dài vật hay cảnh báo va chạm….Trên cơ sở kiến thức đã được học cùng với sự hiểu biết về cảm biến siêu âm, em đã thực hiện đồ án: “thiết kế hệ thống ra đa siêu âm tự động phát hiện vật cản dựa trên nền tảng arduino” sử dụng họ vi điều khiển Arduino Uno R3 và cảm biến siêu âm SRF04 kết hợp với phần mềm processing để hiển thị vị trí của vật cản lên màn hình máy tính, báo động và lưu thông tin thu thập được lại để xử lý về sau. Nội dung đồ án tập trung vào việc tìm hiểu Arduino Uno R3, Processing, servo, cảm biến siêu âm, xác định khoảng cách và góc định hướng từ cảm biến đến vật cản rồi hiển thị trên màn hình ra đa. Đồ án gồm có bốn chương như sau:Chương 1: Giới thiệu về nền tảng ArduinoChương 2: Giới thiệu về phần mềm ProcessingChương 3: Thiết kế hệ thống ra đa đo khoảng cách bằng sóng siêu âmChương 4: Kết quả thực nghiệm và đánh giá

Trang 1

TRƯỜNG ĐẠI HỌC KHOA HỌC KHOA ĐIỆN TỬ - VIỄN THÔNG

Trang 2

TRƯỜNG ĐẠI HỌC KHOA HỌC KHOA ĐIỆN TỬ - VIỄN THÔNG

Ngành: Công nghệ Kỹ thuật Điện tử, Truyền thông

NGƯỜI HƯỚNG DẪN: Th.S PHAN HẢI PHONG

Trang 4

LỜI CẢM ƠN

Trước tiên em xin gửi lời cám ơn chân thành sâu sắc tới các thầy cô giáo trong trường Đại học Khoa Học nói chung và các thầy cô giáo trong khoa Điện Tử - Viễn Thông nói riêng đã tận tình giảng dạy, truyền đạt cho em những kiến thức, kinh nghiệm quý báu trong suốt thời gian qua

Đặc biệt em xin gửi lời cảm ơn đến thầy Phan Hải Phong, thầy đã tận tình giúp

đỡ, trực tiếp chỉ bảo, hướng dẫn em trong suốt quá trình làm đồ án tốt nghiệp Trong thời gian làm việc với thầy, em không ngừng tiếp thu thêm nhiều kiến thức bổ ích mà còn học tập được tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu quả, đây là những điều rất cần thiết cho em trong quá trình học tập và công tác sau này

Sau cùng xin gửi lời cảm ơn chân thành tới gia đình, bạn bè đã động viên, đóng góp ý kiến và giúp đỡ trong quá trình học tập, nghiên cứu và hoàn thành đồ án tốt nghiệp

Huế, Ngày 1 Tháng 5 Năm 2016

Sinh viên thực hiện

(ký và ghi rõ họ tên)

Hồ Đức Nhật Trường

Trang 5

MỤC LỤC

Trang 6

DANH SÁCH CÁC HÌNH VẼ

Trang 7

DANH SÁCH CÁC BẢNG

Trang 8

DANH MỤC CÁC TỪ VIẾT TẮT

AVR Advanced Virtual RISC Một họ vi điều khiển do hãng Atmel sản xuất

PIC Programable Intelligent Computer Chip vi xử lý của hãng Microchip Technology

ARM Advanced RISC Machine Một loại cấu trúc vi xử lý 32 bit và 64 bit

Receiver Transmitter

Bộ thu phát vạn năng không

đồng bộ

USB Universal Serial Bus Một chuẩn kết nối tuần tự đa dụng trong máy tính

EEPROM Programmable Read-Only Electrically Erasable

Memory

Chip nhớ không bay hơi

IDE Intergrated Development Environment Môi trường thiết kế hợp nhất

SPI Serial Peripheral Interface Giao diện Ngoại vi nối tiếp

Trang 9

MỞ ĐẦU

Với sự phát triển mạnh mẽ của khoa học công nghệ ngày nay, các loại vi điều khiển (VĐK) như AVR (Advanced Virtual RISC) hay PIC (Programable Intelligent Computer) ngày càng được sử dụng rộng rãi trong công nghiệp cũng như trong nghiên cứu cơ bản Vi điều khiển họ Arduino xuất hiện vào năm 2005 đã mở ra một hướng đi mới cho vi điều khiển trong rất nhiều lĩnh vực Trong lĩnh vực điều khiển tự động, đối tượng được điều khiển hoàn toàn tự động thông qua các thiết kế phần cứng gồm mạch điện điều khiển được lập trình theo một ý đồ xác định từ trước Trong quá trình xây dựng hệ thống, bài toán thiết kế mạch điều khiển là một bài toán nan giải cần có lời giải phù hợp Trong thời gian gần đây, họ vi điều khiển Arduino nổi lên như một giải pháp cho vấn đề này Họ vi điều khiển này có mạch điện nhỏ gọn, rất dễ sử dụng và rất

đa năng có phần cứng đã được tính hợp nhiều chức năng cơ bản và là mã nguồn mở Ngoài ra, họ vi điều khiển này sử dụng ngôn ngữ lập trình đơn giản, dễ sử dụng dựa trên nền Java và tương thích với ngôn ngữ C với thư viện rất phong phú Với những lý

do trên, Arduino đã và đang được sử dụng rất rộng rãi, phổ biến hiện nay và hứa hẹn còn phát triển mạnh mẽ trong tương lai

Trong các hệ thống điều khiển tự động, cảm biến là thành phần không thể thiếu đóng vai trò hết sức quan trọng vì nó là thiết bị cung cấp thông tin phản hồi từ bên ngoài cho bộ phận điều khiển trung tâm để đưa ra quyết định phù hợp nhằm nâng cao chất lượng của quá trình điều khiển Phạm vi ứng dụng của cảm biến ngày càng được

mở rộng: từ các hệ thống tự động phức tạp, người máy, kiểm tra chất lượng sản phẩm, tiết kiệm năng lượng, chống ô nhiễm môi trường đến lĩnh vực giao thông vận tải, bảo quản thực phẩm, ô tô, trò chơi điện tử…Một trong các ứng dụng rất rộng rãi và phổ biến đó là cảm biến xác định vị trí và phát hiện dịch chuyển đóng vai trò rất quan trọng đối với hoạt động của nhiều máy móc và công cụ

Cảm biến siêu âm được sử dụng trong quá trình phát hiện và đo khoảng cách đến vật cản bằng sóng siêu âm Nguyên lý hoạt động dựa trên nguyên lý thu và phát sóng siêu âm: khoảng cách từ cảm biến đến vật cản được xác định căn cứ vào khoảng thời gian giữa hai thời điểm phát và thu sóng siêu âm phản xạ Đây là nền tảng cho các ứng dụng như phát hiện vị trí, đo vận tốc chuyển động, đo chiều dài vật hay cảnh báo va chạm…

Trên cơ sở kiến thức đã được học cùng với sự hiểu biết về cảm biến siêu âm, em

đã thực hiện đồ án: “thiết kế hệ thống ra đa siêu âm tự động phát hiện vật cản dựa trên nền tảng arduino” sử dụng họ vi điều khiển Arduino Uno R3 và cảm biến siêu âm SRF04 kết hợp với phần mềm processing để hiển thị vị trí của vật cản lên màn hình

Trang 10

máy tính, báo động và lưu thông tin thu thập được lại để xử lý về sau Nội dung đồ án tập trung vào việc tìm hiểu Arduino Uno R3, Processing, servo, cảm biến siêu âm, xác định khoảng cách và góc định hướng từ cảm biến đến vật cản rồi hiển thị trên màn hình ra đa Đồ án gồm có bốn chương như sau:

Chương 1: Giới thiệu về nền tảng Arduino

Chương 2: Giới thiệu về phần mềm Processing

Chương 3: Thiết kế hệ thống ra đa đo khoảng cách bằng sóng siêu âm

Chương 4: Kết quả thực nghiệm và đánh giá

Trang 11

CHƯƠNG 1

GIỚI THIỆU VỀ NỀN TẢNG ARDUINO

1.1 Giới thiệu về nền tảng Arduino

Hiện tại ở Việt Nam và trên thế giới cũng có nhiều board mạch vi điều khiển khác nhau Tuy nhiên Arduino có một số ưu điểm mà khiến nó trở nên nổi tiếng và hiện đang được sử dụng rộng rãi trên thế giới Những ưu điểm đó là: giá rẻ, tương thích được với nhiều hệ điều hành, chương trình lập trình đơn giản, rõ ràng, dễ sử dụng, sử dụng mã nguồn mở và có thể kết hợp với nhiều bo mạch mở rộng (shield) khác nhau

Arduino là một board mạch vi điều khiển do một nhóm giáo sư và sinh viên Ý thiết kế và đưa ra đầu tiên vào năm 2005 Mạch Arduino được sử dụng để cảm nhận và điều khiển nhiều đối tượng khác nhau Nó có thể thực hiện nhiều nhiệm vụ từ lấy tín hiệu từ cảm biến đến điều khiển đèn, động cơ, và nhiều đối tượng khác Ngoài ra mạch còn có khả năng liên kết với nhiều module khác nhau như module đọc thẻ từ, ethernet shield, sim900A, … để tăng khả ứng dụng của mạch

Trang 12

Hình 1 Một số loại Arduino

Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử

lý AVR Atmel 8bit, hoặc ARM, Atmel 32-bit… Hiện phần cứng của Arduino có tất cả

6 phiên bản, tuy nhiên phiên bản thường được sử dụng nhiều nhất là Arduino Uno và Arduino Mega

1.2 Arduino UNO R3

Arduino board có rất nhiều phiên bản với hiệu năng và mục đích sử dụng khác nhau như: Arduino Mega, Arduino LilyPad Trong số đó, Arduino Uno R3 là một trong những phiên bản được sử dụng rộng rãi nhất bởi chi phí và tính linh động của nó

Do Arduino có tính mở về phần cứng, chính vì vậy bản thân Arduino Uno R3 cũng có những biến thể để phù hợp cho nhiều đối tượng khác nhau Đầu tiên ta có phiên bản Arduino Uno R3 tiêu chuẩn:

Trang 13

Hình 1 Arduino UNO R3 (bản chân cắm PDIP)

Dựa vào thiết kế này, để giảm giá thành sản xuất nên một số thành phần của board này được thay đổi lại với chức năng tương đương Ví dụ như thay vi điều khiển mặc định của Arduino là ATmega328P với kiểu chân là DIP thành ATmega328

có kiểu chân SMD Phiên bản này có tên gọi Arduino Uno SMD R3

Trang 14

Hình 1 Arduino UNO SMD R3

Arduino Uno SMD R3 hoàn toàn giống với Arduino Uno R3 bản chân cắm (PDIP) Điểm khác biệt nằm ở Chip nạp chương trình: Arduino Uno R3 (PDIP) dùng chip nạp Atmega16U2, còn Arduino Uno SMD R3 dùng chip nạp CH340 nên tiết kiệm chi phí hơn nhiều

Trang 15

1.2.1 Mô tả phần cứng của Arduino UNO

Hình 1 Mạch Arduino UNO

a) Cáp USBĐây là dây cáp thường được bán kèm theo board, dây cáp dùng để cắm vào máy tính để nạp chương trình cho board và dây đồng thời cũng lấy nguồn từ nguồn usb của máy tính để cho board hoạt động Ngoài ra cáp USB còn được dùng để truyền dữ liệu

từ board Arduino lên máy tính Dây cáp có 2 đầu, một đầu được dùng để cắm vào cổng USB trên board Arduino, đầu còn lại dùng để cắm vào cổng USB trên máy tính

b) IC Atmega 16U2

IC này được lập trình như một bộ chuyển đổi USB - to - Serial dùng để giao tiếp với máy tính thông qua giao thức Serial (dùng cổng COM)

c) Cổng nguồn ngoàiCổng nguồn ngoài nhằm sử dụng nguồn điện bên ngoài như pin, bình acquy hay các adapter cho board Arduino hoạt động Nguồn điện cấp vào cổng này là nguồn DC

có hiệu điện thế từ 6V đến 20V, tuy nhiên hiệu điện thế tốt nhất mà nhà sản xuất khuyên dùng là từ 7 đến 12V

d) Cổng USBCổng USB trên board Arduino dùng để kết nối với cáp USB

Trang 16

e) Nút resetNút reset được sử dụng để reset lại chương trình đang chạy Đôi khi chương trình chạy gặp lỗi, người dùng có thể reset lại chương trình.

f) ICSP của ATmega 16U2ICSP là chữ viết tắt của In-Circuit Serial Programming Đây là các chân giao tiếp SPI của chip Atmega 16U2 Các chân này thường ít được sử dụng trong các dự án về Arduino

g) Chân xuất tín hiệu ra

Có tất cả 14 chân xuất tín hiệu ra trong Arduino Uno, những chân có dấu ~ là những chân có thể điều chế xung (PWM)

j) Chân lấy tín hiệu AnalogCác chân này lấy tín hiệu Analog (tín hiệu tương tự) từ cảm biến để IC Atmega

328 xử lý Có tất cả 6 chân lấy tín hiệu Analog, từ A0 đến A5

k) Chân cấp nguồnCác chân này dùng để cấp nguồn cho các thiết bị bên ngoài như role, cảm biến,

RC servo… trên khu vực này có sẵn các chân GND (chân nối đất, chân âm), chân 5V, chân 3.3V như được thể hiện ở hình 1.5 Nhờ những chân này mà người sử dụng không cần thiết bị biến đổi điện khi cấp nguồn cho cảm biến, role, rc servo… Ngoài ra trên khu vực này còn có chân Vin và chân Reset, chân IOREF Tuy nhiên các chân này thường ít được sử dụng

Ngoài những phần cơ bản trên arduino còn một số thành phần cũng như chân cắm khác được thể hiện trên hình 1.5 và hình 1.6

Trang 17

Hình 1 Một số chức năng của các chân trên Arduino UNO

Hình 1 Arduino UNO Pinout

Trang 18

Khi làm việc với Arduino board, một số thuật ngữ sau cần được lưu ý:

 Flash Memory: bộ nhớ có thể ghi được, dữ liệu không bị mất ngay cả khi tắt điện Về vai trò, ta có thể hình dung bộ nhớ này như ổ cứng để chứa dữ liệu trên board Chương trình được viết cho Arduino sẽ được lưu ở đây Kích thước của vùng nhớ này thông thường dựa vào vi điều khiển được sử dụng, ví dụ như ATmega8 có 8KB flash memory Loại bộ nhớ này có thể chịu được khoảng 10,000 lần ghi/xoá

 RAM: giống như RAM của máy tính, sẽ bị mất dữ liệu khi ngắt điện nhưng bù lại tốc độ đọc ghi xoá rất nhanh Kích thước nhỏ hơn Flash Memory nhiều lần

 EEPROM: một dạng bộ nhớ tương tự như Flash Memory nhưng có chu kì ghi/xoá cao hơn - khoảng 100,000 lần và có kích thước rất nhỏ Để đọc/ghi dữ liệu ta có thể dùng thư viện EEPROM của Arduino

Thông số kỹ thuật của board Arduino được tóm tắt trong bảng sau:

Bảng 1 Thông số kỹ thuật của board Arduino

Trang 19

EEPROM 1 KB (ATmega328)

1.2.2 Một số lưu ý khi làm việc với Arduino Uno R3

Mặc dù Arduino có cầu chì tự phục hồi bảo vệ mạch khi xảy ra quá tải, tuy nhiên cầu chì này chỉ được mắc cho cổng USB nhằm tự động ngắt điện khi nguồn vào USB lớn hơn 5V

Vì vậy, khi thao tác với Arduino, ta cần tính toán cẩn thận để tránh gây hư tổn đến board Các thao tác sau đây có thể gây hỏng một phần hoặc toàn bộ board Arduino

a) Nối trực tiếp dòng 5V vào GND

 Nối trực tiếp dòng 5V vào 1 trong 2 chân GND

 Nối 1 pin OUT bất kì vào GND

 Nối một pin HIGH vào một pin LOW bất kì

b) Cấp nguồn lớn hơn 5V cho bất kì pin I/O nàoTheo tài liệu của nhà sản xuất, với vi điều khiển ATmega328P thì 5V là ngưỡng lớn nhất mà vi điều khiển này có thể chịu được Nếu bất kì pin nào bị cấp điện áp vượt quá 5V sẽ gây ra hỏng vi điều khiển này

c) Tổng cường độ dòng điện trên các I/O pin vượt quá ngưỡng chịu đượcDựa theo datasheet của vi điều khiển ATmega328P, tổng cường độ dòng điện cấp cho các I/O pin tối đa là 200mA Vì vậy, ví dụ như trong trường hợp ta ép Arduino cấp nguồn cho hơn 10 đèn LED (mỗi đèn thông thường sẽ cần 20mA) hay dùng trực tiếp các chân I/O cấp nguồn cho động cơ sẽ có thể gây tổn hại đến vi điều khiển

d) Thay đổi các kết nối trong lúc đang vận hànhKhi Arduino đang vận hành, việc thay đổi các kết nối có thể gây ra sự không ổn định của điện áp dẫn đến hư hỏng Arduino Vì vậy, trong thực tế làm việc ta nên ngắt nguồn Arduino trước khi thực hiện bất kì các thay đổi nào

Trang 20

Ví dụ: Thư viện GSMSHIELD chứa các ứng dụng để chạy các GSM Shield (SIM900 Shield, SIM908 Shield) như: ứng dụng GSM_GPRSLibrary_Call để gọi điện thoại, GSM_GPRSLibrary_SMS để nhắn tin,

Để lập trình được cho các board Arduino thì cần phải có một công cụ gọi là Môi trường phát triển tích hợp - Intergrated Development Environment (IDE) Công cụ này được đội ngũ kĩ sư của Arduino phát triển và có thể chạy trên nhiều hệ điều hành như: Windows, MAC OS X và Linux

Các chương trình Arduino được viết bằng C hoặc C++ Arduino IDE đi kèm với một thư viện phần mềm được gọi là "Wiring", từ project Wiring gốc, có thể giúp các thao tác input/output được dễ dàng hơn Người dùng chỉ cần định nghĩa 2 hàm để tạo

ra một chương trình vòng thực thi là có thể chạy được

setup() : hàm này chạy mỗi khi khởi động một chương trình, dùng để thiết lập các cài đặt

loop() : hàm này được gọi lặp lại cho đến khi tắt nguồn board mạch

a) Cổng kết nốiSau khi Arduino Uno R3 kết nối với máy tính, Arduino sử dụng cổng giao tiếp COM để máy tính và mạch có thể tương tác qua lại với nhau

Trang 21

Hình 1 Computer Management

Trang 22

b) Các thành phần của Arduino IDE

Hình 1 Giao diện Arduino IDE 1.6.8

 Toolbar:

• Arduino Toolbar: có một số button và chức năng của chúng như sau :

- Verify : kiểm tra code có lỗi hay không button

- Upload: nạp code đang soạn thảo vào Arduino button

- New, Open, Save : tạo mới, mở và Save sketch

- Serial Monitor : đây là màn hình hiển thị dữ liệu từ Arduino gửi lên máy tính hoặc tổ hợp phím CTRL + SHIFT + M

• Arduino Menu:

Trang 23

- File menu: trong file menu chúng ta quan tâm tới mục Examples đây là nơi chứa code mẫu ví dụ như: cách sử dụng các chân digital, analog, sensor.

- Sketch menu:

o Verify/Compile: chức năng kiểm tra lỗi code

o Show Sketch Folder: hiển thị nơi code được lưu

o Add File: thêm vào một Tap code mới

o Import Library: thêm thư viện cho IDE

 Nạp code: chúng ta sẽ sử dụng ngôn ngữ lập trình để nạp tại đây Tên chương trình được hiển thị ngay dưới dãy các Icon Nếu chương trình có dấu “§” Điều

đó có nghĩa là đoạn chương trình chưa được lưu lại

 Vùng debug: thông báo quá trình xử lý code tại đây

1.2.4 Cấu hình Arduino IDE và chạy thử chương trình

Bước 1: Vào menu Tools → Board → chọn Arduino đang sử dụng

Hình 1 Chọn board Arduino đang sử dụng

Trang 24

Bước 2: Vào menu Tools → Serial Port → chọn cổng Arduino đang kết nối với máy tính (COM4).

Hình 1 Chọn cổng COM đang được kết nối với Arduino

Bước 3: Vào menu Tools → Programmer → chọn AVR ISP

Trang 25

Hình 1 Chọn chương trình nạp

Bước 4: Vào menu File → Examples → 01.Basics → chọn Blink

Hình 1 Chọn chương trình mẫu

Trang 26

Khi đó Arduino IDE mở một cửa sổ mới chứa mã code Mã này có chức năng là điều khiển đèn LED màu cam trên mạch Arduino Uno, đèn Led này được nối trực tiếp với pin 13 trên mạch Arduino, nhấp nháy với chu kì 1 giây.

Sau đó chọn Verify để kiểm tra lỗi và Upload để nạp code vào Arduino

Hình 1 Chương trình mẫu nhấp nháy LED

Kết quả:

Trang 27

Hình 1 Thực tế của chương trình Blink nạp lên Arduino

Nhiều ngôn ngữ lập trình hiện nay, nhất là các ngôn ngữ viết cho Windows, thường có cung cấp thêm một số lượng rất lớn các thư viện bao gồm nhiều hàm để hỗ trợ giao diện người dùng, và các thư viện có sẵn trong Arduino không đủ để đáp ứng yêu cầu của người lập trình, vì thế chung ta cần phải nạp thêm thư viện cần thiết

Trên giao diện IDE Arduino vào Sketch → Include Library → Add .ZIP Library… và tìm đến file thư viện cần thêm vào

Hình 1 Thêm thư viện vào Arduino IDE

Trang 28

1.3 Giới thiệu về một số linh kiện ngoại vi

1.3.1 Servo GS 90

a) Giới thiệuServo là một dạng động cơ điện đặc biệt Không giống như động cơ thông thường cứ cắm điện vào là quay liên tục, servo chỉ quay khi được điều khiển (bằng xung PPM) với góc quay nằm trong khoảng bất kì từ 0o – 180o Mỗi loại servo có kích thước, khối lượng và cấu tạo khác nhau Có loại thì nặng chỉ 9g (chủ yếu dùng trên máy bay mô hình), có loại thì sở hữu một momen lực lớn (vài chục Newton/m), hoặc

có loại thì khỏe và nhông sắt chắc chắn,

Hình 1 Servo GS 90

Động cơ servo được thiết kế những hệ thống hồi tiếp vòng kín Tín hiệu ra của động cơ được nối với một mạch điều khiển Khi động cơ quay, vận tốc và vị trí sẽ được hồi tiếp về mạch điều khiển này Nếu có bất kỳ lý do nào ngăn cản chuyển động quay của động cơ, cơ cấu hồi tiếp sẽ nhận thấy tín hiệu ra chưa đạt được vị trí mong muốn Mạch điều khiển tiếp tục chỉnh sai lệch cho động cơ đạt được điểm chính xác Các động cơ servo điều khiển bằng liên lạc vô tuyến được gọi là động cơ servo RC (radio-controlled) Trong thực tế, bản thân động cơ servo không phải được điều khiển bằng vô tuyến, nó chỉ nối với máy thu vô tuyến trên máy bay hay xe hơi Động cơ servo nhận tín hiệu từ máy thu này

b) Nguyên lý hoạt độngĐộng cơ nối với mạch điều khiển tạo thành mạch hồi tiếp vòng kín Cả mạch điều khiển và động cơ đều được cấp nguồn DC (thường từ 4.8 – 7.2 V)

Trang 29

Hình 1 Cấu tạo của động cơ servo

Để quay động cơ, tín hiệu số được gởi tới mạch điều khiển Tín hiệu này khởi động động cơ, thông qua chuỗi bánh răng, nối với vôn kế Vị trí của trục vôn kế cho biết vị trí trục ra của servo Khi vôn kế đạt được vị trí mong muốn, mạch điều khiển sẽ tắt động cơ Như ta dự đoán, động cơ servo được thiết kế để quay có giới hạn chứ không phải quay liên tục như động cơ DC hay động cơ bước Mặc dù ta có thể chỉnh động cơ servo R/C quay liên tục nhưng công dụng chính của động cơ servo là đạt được góc quay chính xác trong khoảng từ 00 – 1800 Việc điều khiển này có thể ứng dụng để lái robot, di chuyển các tay máy lên xuống, quay một cảm biến để quét khắp phòng…

c) Lắp mạch

Hình 1 Mạch điều khiển Servo bằng Arduino cơ bản

Trang 30

Ta có ví dụ làm cho servo quay từ 00 đến 1800 sau đó quay ngược về.

Thư viện Servo đã có sẵn trong hệ thống thư viện mặc định của Arduino nên chúng ta không cần phải tải một thư viện mới về

Code cho IDE:

1.3.2 Cảm biến siêu âm HC-SR04

a) Giới thiệu

Hình 1 HC-SR04

Cảm biến khoảng cách siêu âm HC-SR04 được sử dụng rất phổ biến để xác định khoảng cách vì rẻ và chính xác Cảm biến sử dụng sóng siêu âm và có thể đo khoảng cách trong khoảng từ 2 → 300 cm

Cảm biến HC-SR04 có 4 chân là: Vcc, Trig, Echo, GND

Bảng 1 Sơ đồ nối chân giữa HC-SR04 và Arduino

#include <Servo.h>

Servo myservo; // khởi tạo đối tượng Servo với tên gọi là myservo

int pos = 0; // biến pos dùng để lưu tọa độ các Servo

for(pos = 0; pos < 180; pos += 1) // cho servo quay từ 0 >179 độ

{ // mỗi bước của vòng lặp tăng 1 độ

myservo.write(pos); // xuất tọa độ ra cho servo

delay(15); // đợi 15 ms cho servo quay đến góc đó rồi tới bước tiếp theo }

for(pos = 180; pos>=1; pos-=1) // cho servo quay từ 179 >0 độ

{

myservo.write(pos); // xuất tọa độ ra cho servo

delay(15); // đợi 15 ms cho servo quay đến góc đó rồi tới bước tiếp theo }

}

Ngày đăng: 14/03/2017, 23:25

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Casey Reas, Ben Fry. Processing. The MIT Press, December 2014. trang 720 Sách, tạp chí
Tiêu đề: Processing
2. Greenberg, Ira. Processing: Creative Coding and Computational Art. Friends of Ed, 2007. trang 840 Sách, tạp chí
Tiêu đề: Processing: Creative Coding and Computational Art
3. Margolis, Michael. Arduino Cookbook. O’Reilly Media, 2011. trang 637 Sách, tạp chí
Tiêu đề: Arduino Cookbook
4. Banzi, Massimo. Getting Started with Arduino. O’Reilly Media, 2011. trang 130 Sách, tạp chí
Tiêu đề: Getting Started with Arduino
5. Casey Reas, Ben Fry. Getting Started with Processing. O’Reilly Media, 2010. trang 209 Sách, tạp chí
Tiêu đề: Getting Started with Processing
6. Shiffman, Daniel. Learning Processing. Morgan Kaufmann, August 2015. trang 472 Sách, tạp chí
Tiêu đề: Learning Processing
7. Casey Reas, Ben Fry. Make: Getting Started with Processing. Maker Media, 2015. trang 238 Sách, tạp chí
Tiêu đề: Make: Getting Started with Processing

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w