THIẾT KẾ PHẦN CỨNG

Một phần của tài liệu Xây dựng mô hình đếm sĩ số lớp sử dụng Board Arduino (Trang 32 - 43)

3.1 CẤU TRÚC HỆ THỐNG

3.1.1 THIẾT KẾ PHẦN CỨNG

Máy vi tính & phần mềm mơ phỏng Proteus

Máy vi tính là một thiết bị khơng thể thiếu trong cuộc sống hiện đại và cả trong nghiên cứu, nhất là trong ngành điện tử có lập trình. Trong nội dung đề tài này, tác giả sử dụng một máy vi tính có cấu hình trung bình (chíp sử lý core 2 duo- ram 2GB) có cài sẵn một số phần mềm cần thiết:

- Phần mêm Arduino IDE dùng để rà soát lỗi và biên dịch lệnh cho arduino. - Phần mềm hỗ trợ lập trình giao diện.

- Phần mềm Proteus: dùng để vẽ mạch nguyên lý và mạch in để làm mạch hiển thị-nút nhấn.

Internet cũng là một yếu tố quan trọng hỗ trợ cho việc viết chương trình nạp cho arduino thơng qua các thư viện, các đoạn code mẫu và hướng dẫn khác. Máy vi tính được kết nối với arduino qua cổng usb bằng cáp phụ kiện của arduino.

Phần mềm Proteus là phần mềm cho phép mô phỏng hoạt động của mạch điện tử bao gồm phần thiết kế mạch và viết chương trìn điều khiển cho các họ vi điều khiển như MCS- 51, PIC, AVR, … Proteus là phần mềm mô phỏng mạch điện tử của Lancenter Electronics, mô phỏng cho hầu hết các linh kiên điện tử thông dụng, đặn biệt hỗ trợ cho các MCU như PIC, 8051, AVR, Motorola.

Phần mềm bao gồm 2 chương trình: ISIS cho phép mơ phỏng mạch và ARES dùng để vẽ mạch in. Proteus là công cụ mô phỏng cho các loại vi điều khiển khá tốt, nó hỗ trợ các dòng vi điều khiển PIC, 8051, PIC, dsPIC, AVR, HC11,… các giao tiếp I2C, SPI, CAN, USB, Ethenet…ngồi ra cịn mơ phỏng các mạch số, mạch tương tự một cách hiệu quả.

21

Hình 3.1: Giao diện khởi động phần mềm Proteus.

Thư viện Arduino trong Proteus

Thư viện Arduino là một bổ sung rất hay cho phần mềm mơ phỏng Proteus nó giúp cho việc mơ phỏng Arduino được thuận tiện và dễ dàng hơn thay vì chỉ mơ phỏng được chip ATmega328(nhân của Arduino), thư viện này được phát triển bởi các kĩ sư Cesar Osaka, Daniel Cezar, Roberto Bauer và được đăng tải trên blog tiếng Bồ Đào Nha: http://blogembarcado.blogspot.de/

Thư viện bao gồm các linh kiện sau:

- Arduino Uno (Phiên bản chip ATmega328 chân DIP) - Arduino Uno (Phiên bản chip ATmega328 chân SMD) - Arduino Mega

- Arduino Lilypad - Arduino Nano

22

Hình 3.2: Các linh kiện trong thư viện Arduino cho Proteus

Board Arduino Uno

Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tương tác với nhau hoặc với môi trường được thuận lợi hơn. 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. Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6 chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác nhau.

Được giới thiệu vào năm 2005, Những nhà thiết kế của Arduino cố gắng mang đến một phương thức dễ dàng, không tốn kém cho những người yêu thích, sinh viên và giới chuyên nghiệp để tạo ra những nhiết bị có khả năng tương tác với môi trường thông qua các cảm biến và các cơ cấu chấp hành. Những ví dụ phổ biến cho những người yêu thích mới bắt đầu bao gồm các robot đơn giản, điều khiển nhiệt độ và phát hiện chuyển động. Đi cùng với nó là một mơi trường phát triển tích hợp (IDE) chạy trên các máy tính cá nhân thông thường và cho phép người dùng viết các chương trình cho Aduino bằng ngơn ngữ C hoặc C++.

23

Hình 3.3: Các chân kết nối của arduino R3

Hình 3.4: Các chân kết nối của chíp Atmega328 và các chân trong arduino

Nhắc tới dịng mạch Arduino dùng để lập trình, cái đầu tiên mà người ta thường nói tới chính là dịng Arduino UNO. Hiện dịng mạch này đã phát triển tới thế hệ thứ 3 (R3). Dựa vào hình 2 và hình 3, chúng ta hồn tồn có thể thiết kế một bo mạch rời với arduino và chạy bằng chíp Atmega328 đã nạp code bằng Arduino. Trong đề tài này, tác giả thực hiện thi cơng một bo mạch rời sử dụng chíp của arduino. Mạch này có thể hoạt động độc lập mà khơng cần sử

24

dụng đến bo arduino để tiết kiệm chi phí. Khi cần kết nối với máy tính, cần sử dụng mạch chuyển đổi serial – Usb để kết nối với máy tính. Trong trường hợp giao tiếp với các chíp vi điều khiển khác, có thể giao tiếp trực tiếp bằng cổng serial.

Hình 3.5: Board Arduino Uno.

- Cổng USB: đây là loại cổng giao tiếp để ta upload code từ PC lên vi điều khiển. Đồng

thời nó cũng là giao tiếp serial để truyền dữ liệu giữa vi điều khiển và máy tính.

- Jack nguồn: để chạy Arduino thỉ có thể lấy nguồn từ cổng USB ở trên, nhưng khơng

phải lúc nào cũng có thể cắm với máy tính được. Lúc đó ta cần một nguồn từ 9V đến 12V.

- Có 14 chân vào/ra số đánh số thứ tự từ 0 đến 13, ngồi ra có một chân nối đất (GND) và một chân điện áp tham chiếu (AREF).

- Vi điều khiển AVR: đây là bộ xử lí trung tâm của tồn bo mạch. Với mỗi mẫu Arduino khác nhau thì con chip là khác nhau. Ở con Arduino Uno này thì sử dụng ATMega328. - Các thơng số chi tiết của Arduino Uno:

Vi xử lý: Atmega328

Điện áp hoạt động: 5V

Điện áp đầu vào: 7-12V DC iện áp đầu vào (Giới hạn): 6-20V

Chân vào/ra (I/O) số: 14 (6 chân có thể cho đầu ra PWM) Chân vào tương tự: 6

25

Dòng điện chân nguồn 3.3V: 50mA Bộ nhớ trong: 32KB

(ATmega328) SRAM: 2 KB

(ATmega328) EEPROM: 1 KB

(ATmega328) Xung nhịp: 16MHz

Board Arduino Nano

Board Arduino Nano có cấu tạo, số lượng chân vào ra là tương tự như board Arduino Uno tuy nhiên đã được tối giản về kích thước cho tiện sử dụng hơn. Do được tối giản rất nhiều về kích thước nên Arduino Nano chỉ được nạp code và cung cấp điện bằng duy nhất 1 cổng mini USB.

Hình 3.6: Board Arduino Nano Thông số kĩ thuật chi tiết: Thông số kĩ thuật chi tiết:

Vi xử lý ATmega328 (phiên bản v3.0) Điện áp hoạt động 5 V

Điện áp đầu vào 7-12 V (khuyến nghị) Điện áp đầu vào 6-20 V (giới hạn)

Chân vào/ra số 14 (6 chân có khả năng xuất ra tín hiệu PWM) Chân vào tương tự 8

Dòng điện mỗi chân 40 mA

Bộ nhớ 16 KB (ATmega168),

32 KB (ATmega328) - 2 KB dùng để nạp bootloader SRAM 1 KB (ATmega168) hoặc 2 KB (ATmega328)

EEPROM 512 bytes (ATmega168) hoặc 1 KB (ATmega328) Xung nhịp 16 MHz

26 Kích thước 0.73" x 1.70"

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

Nguyên lý hoạt động của cảm biến siêu âm khá đơn giản. Ta phát đi một sóng siêu âm và đo thời gian từ khi sóng phát đến khi sóng phản xạ.

Do vận tốc sóng âm truyền trong một môi trường đồng nhất là không thay đổi nên từ đó ta tính được khoảng cách từ cảm biến đến đối tượng cần đo.

Hình 3.7: Sơ đồ cấu tạo cảm biến siêu âm

HC-SR05 là bản nâng cấp của cảm biến siêu âm HC-SR04. So với phiên bản trước ta có thể chọn một trong hai chế độ hoạt động thay vì một như trước.

• Các chế độ hoạt động

Mode 1: Chế độ hoạt động riêng rẽ hai chân Trigger và Echo

Nhà sản xuất thêm vào chế độ này để mọi thiết bị hoạt động trên module HC-SR04 từ trước đều có thể tương thích với phiên bản HC-SR05 này.Để cảm biến hoạt động ở MODE này ta chỉ việc thả nổi chân OUT. Bên trong cảm biến đã có sẵn một điện trở pull-up để đưa chân này lên mức cao.

27

Sơ đồ tín hiệu HC-SR05 ở mode 1

Ở chế độ này cảm biến hoạt động như sau:

• Đầu tiên ta tạo một xung có độ khoảng 10 uS trên chân Trigger. Cảm biến sẽ tự động sinh một xung cao tần với tần số 40KHz nhằm tạo sóng siêu âm.

• Theo dõi chân Echo, khi nào chân Echo ở mức logic cao ta bắt đầu bật một timer

• Đợi chân Echo xuống mức logic thấp ta ghi lại thời điểm đó để tính độ rộng xung và quy đổi ra khoảng cách theo công thức:

D=(v*t)/100/2

Trong đó: D là khoảng cách từ cảm biến đến vật cản (m)

t là độ rộng xung (ms)

v là vận tốc của sóng âm trong khơng khí 340m/s, do khoảng cách được tính hai lần nên ta chia cho 2.

Chú ý: Các dòng vi điều khiển hiện nay như: Pic, Avr,MSP430,STM… đều hỗ trợ mode Input Capture nên ta có thể trực tiếp dùng mode này để đo động rộng xung nằm nâng cao độ chính xác cũng như đơn giản cho việc lập trình.

28

Mode 2: Chế độ hoạt động chung hai chân Trigger và Echo

Chế độ này đưa ra nhằm tiết kiệm ngoại vi cho vi điều khiển. Thay vì phải sử dụng 2 chân như mode 1, mode này sử dụng một chân chung cho cả hai tín hiệu Echo và Trigger. Để cảm biến hoạt động ở mode này ta chỉ việc nối chân OUTPUT với tín hiệu GND.Để thực hiện đo lường ở mode này ta cũng làm tương tự như mode 1 chỉ khác 1 chút đầu tiên cấu hình ngoại vi là chân ra (output) để phát tín hiệu trigger sau đó ta cấu hình ngoại vi là chân vào (input) để bắt tín hiệu echo.

Sơ đồ tín hiệu HC-SR05 ở mode 2

Mạch hiển thị -nút nhấn

Mạch hiển thị và nút nhấn được tạo ra từ các linh kiện điện tử thông thường như led 7 đoạn, led đơn, nút nhấn, biến trở và điện trở. Boar được thiết kế phù hợp để gắn trực tiếp vào board arduino và có tạo các cổng phụ để dễ dàng kết nối với nguồn điện hay làm trung gian. Ngoài ra, để tiết kiệm chân kết nối với arduino, mạch có dùng thêm chíp 74595 (chíp ghi dịch) kết hợp trong mạch hiển thị.

Để có thể hiển thị kết quả, cần lắp một mạch hiển thị. Chúng ta có thể sử dụng các led đơn, led 7 đoạn hay màn hình để biểu diễn kết quả. Mạch arduino có 14 chân in/out (từ chân

29

0 đến chân 13), trong đó có hai chân 1 và 2 dùng để truyền tín hiệu serial, như vậy chúng ta có thể sử dụng 11 chân còn lại (chân số 2 đến chân 13) để điều khiển 11 led đơn. Tuy nhiên, trong thực tế, người ta cần điều khiển được nhiều led hơn hay nhiều thiết bị hiển thị hơn để có thể truyền tải được nhiều nội dung hơn. Trong trường hợp này, cần dùng thêm chip giải mã để có thể thực hiện việc này mà sử dụng ít chân của ic hơn hoặc sử dụng những chân analog có thể đưa ra nhiều mức tín hiệu để điều khiển nhiều led hơn. Trong khuôn khổ đề tài, tác giả chọn sử dụng 4 con led đơn và 1 con led 7 đoạn (loại Anot chung) để tận dụng những thiết bị sẵn có và đồng thời tận dụng tối đa số chân ra cua arduino. Sơ đồ nối dây được thực hiện giống như hình. Các led đơn đều được nối với một điện trở hạn dòng, một đầu nối với chân điều khiển của arduino, chân còn lại được nối với nguồn (tín hiệu điều khiển tích cực mức thấp) hoặc với đất (tín hiệu điều khiển tích cực mức cao). Các led trong led 7 đoạn cũng được mắc tương tự, nhưng phụ thuộc vào led 7 đoạn thuộc loại anot chung hay katot chung mà phải nối xuống đất hay lên nguồn, nếu mắc sai, led 7 đoạn sẽ không hoạt động. Cụ thể trong trường hợp này dùng led 7 đoạn anot chung, vì thế chúng ta bắt buộc phải nối chân chung này lên nguồn và nối đầu còn lại mỗi led với một con điện trở hạn dòng và nối vào chân điều khiển. Người ta cũng có thể nối chân chung với một chân điều khiển để điều khiển led 7 đoạn trong trạng thái hoạt động hay không. Trong trường hợp này, nếu chân chung được nối với chân điều khiển thì khi chân điều khiển ở mức 5v thì led 7 đoạn hoạt động và nếu mức điện áp ở chân này là 0v thì led 7 đoạn sẽ khơng hoạt động.

30

Như vậy, dựa vào sơ đồ kết nối dây này, có thể làm một board mạch để hiển thị chỉ số. Khi thiết kế các hệ thống, đôi khi cần dùng đến một vài thiết bị để điều khiển. Quy tắc hoạt động của nút nhấn như sau: khi nút nhấn đang ở trạng thái bình thường, chân nhận tín hiệu (ở đây là chân số 2) được nối với nguồn thơng qua một điện trở, vì dịng vào các chân input rất nhỏ nên điện áp ở chân này coi như ở mức 5v. Khi nhấn nút, điện áp ở chân nhận tín hiệu này được đưa xuống mức thấp (0v). Điện trở đóng vai trị cản trở bớt dịng điện từ nguồn xuống mass để tránh tình trạng ngắn mạch xảy ra khi nhấn nút. Nếu thiếu điện trở này, khi nhấn nút sẽ xảy ra ngắn mạch. Sau khi đã kết hợp tất cả các thành phần của mạch điện thì ta được mạch nguyên lý như sau:

Hình 3.9: Mạch nguyên lý

31

Hình 3.10: Mơ phỏng bo mạch sản phẩm 3 chiều trên Proteus

Hình 3.11: Sơ đồ kết nối cảm biến HC-RS05 - Arduino

Một phần của tài liệu Xây dựng mô hình đếm sĩ số lớp sử dụng Board Arduino (Trang 32 - 43)

Tải bản đầy đủ (PDF)

(59 trang)