.6 Giao Diện Vùng Lệnh

Một phần của tài liệu ĐỒ án kĩ THUẬT MẠCH điện tử (Trang 61)

 Vùng viết chương trình

Bạn sẽ viết các đoạn mã của mình tại đây. Tên chương trình của bạn được hiển thị ngay dưới dãy các Icon, ở đây nó tên là “Blink”. Để ý rằng phía sau tên chương trình có một dấu “§”. Điều đó có nghĩa là đoạn chương trình của bạn chưa được lưu lại.

 Vùng thơng báo (debug)

HÌNH 3. 7 Giao diện vùng thơng báo

3.4.1.2 Giới thiệu về Proteus

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ình đ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, đặc biệt hỗ trợ cho cả 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 VĐK PIC, 8051, PIC, dsPIC, AVR, HC11, MSP430, ARM7/LPC2000 ... 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ả. Proteus là bộ công cụ chuyên về mơ phỏng mạch điện tử.

3.4.1.3 Tính năng của proteus

 Mơ phỏng:

Bản mạch đã hoàn thiện hay chưa? Tính năng mơ phỏng của Proteus 8 Professional có thể hiển thị hầu hết các chi tiết trong mạch điện. Có hai tùy chỉnh cho tính năng này: chạy bản mơ phỏng và chạy từng bảng. "Chạy bản mơ phỏng" trình chiếu bảng mạch ở tốc độ bình thường (nếu bản mạch không quá phức tạp). "Chạy từng bảng" sẽ chạy từng bảng mạch khi trong mỗi lần click. Tùy chỉnh này rất có ích cho việc khắc phục những bản mạch số.

Bạn có thể mơ phỏng vi điều khiển. Tùy thuộc vào từng vi điều khiển sẽ được phác thảo dựa trên PIC24, dsPIC33, 8051, Arduino, hoặc ARM7. Bạn có thể tải các trình dịch và đổ tập tin hex vào vi điều khiển có trong Proteus. Hơn nữa, tích hợp thời gian thực với bản mô phỏng sử dụng công tắc, điện trở, quang điện trở, v.v. thậm chí cả vơn kế, ampe kế.

 Thiết kế PCB:

Là tính năng dễ sử dụng trong Proteus. Bạn có thể tự tạo bản thiết kế hoặc bắt Proteus làm hộ bạn. Tự tạo bản thiết kế rất dễ dàng chỉ cần bạn đặt những chi tiết vào sơ đồ và vẽ đường mạch điện chạy qua. Đừng lo lắng về việc vi phạm bất kỳ quy tắc thiết kế nào bởi vì nó sẽ tự động phát hiện ra lỗi. Cịn nếu muốn Proteus làm thay bạn thì chỉ cần đặt các chi tiết vào vị trí tương ứng rồi cho chạy tự động. Nó sẽ vẽ ra các cách đặt đường mạch và lựa bản tốt nhất. Và hiện nay cịn có một tùy chỉnh nữa "Auto placer", nó u cầu bạn xác lập kích thước bảng bằng cách vẽ hình dáng và kích cỡ bản mạch. Sau đó, nó tự động đặt các chi tiết vào trong khn. Sau đó, tất cả việc bạn phải làm là lập sơ đồ mạch.

3.4.2 Sơ đồ thuật tốn

3.4.2.1 Thuật tốn chính

HÌNH 3. 8 Lưu đồ thuật tốn di chuyển chính của robot Mơ tả thuật tốn  Mơ tả thuật tốn STT KÍ HIỆU Ý NGHĨA 1 Bắt đầu/ kết thúc chương trình 2 Điều kiện rẽ nhánh 3 Xử lý, tính tốn, gán 4 Luồng xử lí

HÌNH 3. 9 mơ tả thuật tốn

 Giải thích thuật tốn

Sau khi khởi động robot, bộ điều khiển sẽ bắt đầu phát tín hiệu cho hoạt động, robot chạy theo hướng thẳng về phía trước, khi đó các cảm biến siêu âm sẽ được phát

tín hiệu và qt về phía trước, có 3 cảm biến siêu âm đặt theo 3 hướng: phía trước robot; bên phải robot và bên trái robot. Nếu cảm biến phải có vật cản, robot sẽ quay trái cho đến khi cảm biến khơng cịn qt thấy vật cản thì đi tiếp. nếu cảm biến trái có vật cản, robot sẽ quay phải cho đến khi cảm biến khơng cịn qt thấy vật cản thì đi tiếp. nếu cả 3 cảm biến trái, phải, giữa đều quét thấy vật cản thì robot sẽ quay 180 độ và đi tiếp.

Đồng thời khi khởi động, bộ điều khiển sẽ phát tín hiệu cho cảm biến hồng ngoại hoạt động, nó được gắn ngay dưới mép sàn phía trước của hút bụi, khi nó phát hiện được khơng có tín hiệu truyền lại, đồng nghĩa phía dưới nó là cầu thang, nên nó sẽ quay ngược và bám đuổi quỹ đạo.

3.4.2.2 Thuật tốn con

 Sơ đồ thuật toán của cảm biến siêu âm HC-SR04

HÌNH 3. 10 Lưu đồ thuật tốn của cảm biến tránh vật cản

 Sơ đồ thuật toán của cảm biến hồng ngoại

HÌNH 3. 11 Lưu đồ thuật tốn của cảm biến tránh rơi cầu thang 3.4.3 Chương trình điều khiển

3.4.3.1 Chương trình điều khiển cho cảm biến siêu âm

/* * Kết nối: HCSR04 Arduino VCC 5V GND GND TRIG 8 ECHO 7

Nạp code mở Serial Monitor chọn No line ending, baud 9600. */

const int trig = 8; // chân trig của HC-SR04 const int echo = 7; // chân echo của HC-SR04 void setup() (adsbygoogle = window.adsbygoogle || []).push({});

{

Serial.begin(9600); // giao tiếp Serial với baudrate 9600 pinMode(trig,OUTPUT); // chân trig sẽ phát tín hiệu pinMode(echo,INPUT); // chân echo sẽ nhận tín hiệu }

void loop() {

int distance; // biến lưu khoảng cách

/* Phát xung từ chân trig */

digitalWrite(trig,0); // tắt chân trig delayMicroseconds(2);

digitalWrite(trig,1); // phát xung từ chân trig

delayMicroseconds(5); // xung có độ dài 5 microSeconds digitalWrite(trig,0); // tắt chân trig

/* Tính tốn thời gian */

// Đo độ rộng xung HIGH ở chân echo. duration = pulseIn(echo,HIGH); // Tính khoảng cách đến vật. distance = int(duration/2/29.412);

/* In kết quả ra Serial Monitor */ Serial.print(distance); Serial.println("cm"); delay(200); }  Giải thích chương trình - duration = pulseIn(echo,1);

Hàm pulseIn() được dùng để đo độ rộng của xung, Duration sẽ bằng độ dài xung HIGH ở chân echo (tính theo micro giây).

- distance = int(duration/2/29.412);

Thời gian sóng truyền từ cảm biến đến vật sẽ bằng duration/2, sau đó ta chia tiếp cho 29,412 để tính khoảng cách.

Đọ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). Một số cảm biến như cảm biến màu sắc như TCS3200D hay cảm biến siêu âm dòng HC-SRxx phải giao tiếp qua xung tín hiệu nên ta phải kết hợp giữa 2 hàm digitalWrite() để xuất tín hiệu và pulseIn() để đọc tín hiệu.

Cú pháp

pulseIn(pin, value);

pulseIn(pin, value, timeout); Trong đó:

pin là chân được chọn để đọc xung. pin có kiểu dữ liệu là int.

Nếu đặt value là HIGH, hàm pulseIn() sẽ đợi đến khi tín hiệu đạt mức HIGH, khởi động bộ đếm thời gian. Khi tín hiệu nhảy xuống LOW, bộ đếm thời gian dừng lại. pulseIn() sẽ trả về thời gian tín hiệu nhảy từ mức HIGH xuống LOW này. Nếu đặt value là LOW, hàm pulseIn() sẽ làm ngược lại, đó là đo thời gian tín hiệu nhảy từ mức LOW lên HIGH. value có kiểu dữ liệu là int.

Nếu tín hiệu ln ở một mức HIGH/LOW cố định thì sau khoảng thời gian timeout, hàm pulseIn() sẽ dừng bộ đếm thời gian và trả về giá trị 0. timeout được tính bằng đơn vị micro giây. Giá trị mặc định của timeout là 60.106 tương ứng với 1 phút. Giá trị tối đa là 180.106 tương ứng với 3 phút. timeout có kiểu dữ liệu là unsigner long.

Trả về

Một số nguyên kiểu unsigner long, đơn vị là micro giây. pulseIn() trả về 0 nếu thời gian nhảy trạng thái HIGH/LOW vượt quá timeout

Ví dụ int pin = 7;

unsigned long duration; void setup() {

Serial.begin(9600); pinMode(pin, INPUT); }

void loop() {

duration = pulseIn(pin, HIGH);

//Hãy nối chân 7 của Arduino vào đường tín hiệu //bạn muốn đọc xung (adsbygoogle = window.adsbygoogle || []).push({});

Serial.println(duration); }

3.4.3.2 Chương trình chính điều khiển cho adruino

// defining the pins const int trigPin1 = 3; const int echoPin1 = 5; const int trigPin2 = 6; const int echoPin2 = 9;

const int trigPin3 = 10; const int echoPin3 = 11; int irpin =2; // defining variables long duration1; long duration2; long duration3; int distanceleft; int distancefront; int distanceright; int a=0; void setup() { pinMode(trigPin1, OUTPUT); pinMode(trigPin2, OUTPUT);

pinMode(trigPin3, OUTPUT);// Sets the trigPin as an Output pinMode(echoPin1, INPUT); // Sets the echoPin as an Input pinMode(echoPin2, INPUT); pinMode(echoPin3, INPUT); pinMode(irpin, INPUT); pinMode(4, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); pinMode(12, OUTPUT); } void loop() { digitalWrite(trigPin1, LOW); delayMicroseconds(2); digitalWrite(trigPin1, HIGH); delayMicroseconds(10); digitalWrite(trigPin1, LOW);

duration1 = pulseIn(echoPin1, HIGH); distanceleft = duration1 * 0.034 / 2; Serial.print("Distance1: ");

Serial.println(distanceleft); digitalWrite(trigPin2, LOW); delayMicroseconds(2);

digitalWrite(trigPin2, HIGH); delayMicroseconds(10); digitalWrite(trigPin2, LOW);

duration2 = pulseIn(echoPin2, HIGH); distancefront = duration2 * 0.034 / 2; Serial.print("Distance2: "); Serial.println(distancefront); digitalWrite(trigPin3, LOW); delayMicroseconds(2); digitalWrite(trigPin3, HIGH); delayMicroseconds(10); digitalWrite(trigPin3, LOW);

duration3 = pulseIn(echoPin3, HIGH); distanceright = duration3 * 0.034 / 2; Serial.print("Distance3: "); Serial.println(distanceright); int s = digitalRead(irpin); if(s==HIGH) { digitalWrite(4, LOW); digitalWrite(7, HIGH); digitalWrite(8, LOW); digitalWrite(12, HIGH); delay(1000); a=1; }

if ((a==0)&&(s==LOW)&&(distanceleft <= 20 && distancefront > 20 && distanceright <= 20) || (a==0)&&(s==LOW)&&(distanceleft > 20 && distancefront > 20 && distanceright > 20)) { digitalWrite(4, HIGH); digitalWrite(7, LOW); digitalWrite(8, HIGH); digitalWrite(12,LOW); }

if ((a==1)&&(s==LOW)||(s==LOW)&&(distanceleft <= 20 && distancefront <= 20 && distanceright > 20)||(s==LOW)&&(distanceleft <= 20 && distancefront <= 20 && distanceright > 20)||(s==LOW)&& (distanceleft <= 20 && distancefront > 20 && distanceright > 20)||(distanceleft <= 20 && distancefront > 20 && distanceright > 20)) { digitalWrite(4, HIGH); digitalWrite(7, LOW); digitalWrite(8, LOW); digitalWrite(12, HIGH); delay(100); a=0; }

if ((s==LOW) && (distanceleft > 20 && distancefront <= 20 && distanceright <= 20) ||(s==LOW) && (distanceleft > 20 && distancefront > 20 && distanceright <= 20) ||(s==LOW) && (distanceleft > 20 && distancefront <= 20 && distanceright > 20) ) { digitalWrite(4, LOW); digitalWrite(7, HIGH); digitalWrite(8, HIGH); digitalWrite(12, LOW); } SVTH: ĐỖ PHẠM THANH - PHẠM ĐỨC TRÍ GVHD: Th.S PHẠM VĂN PHÁT lxv

CHƯƠNG 4: QUÁ TRÌNH THỰC HIỆN VÀ KẾT QUẢ

4.1. Quá trình thực hiện

4.1.1. Tham khảo sản phẩm robot hút bụi có trên thị trường.

HÌNH 4. 1 các robot trên thị trường

Như đã thấy, hầu hết các sản phẩm trên thị trường hiện nay đều có giá thành rất cao, nên viẹc tạo ra một sản phẩm có chất lượng tốt, thân thiện với mơi trường, an toàn, đáp ứng đủ nhu cầu sử dụng và đặt biệt giá thành rẻ hơn rất nhiều lần so với các sản phẩm trên thị trường

4.1.2. Xây dựng các phương án thiết kế

Cơng việc thiết kế cơ khí của robot hút bụi bao gồm 2 phần như sau: xây dựng bản vẽ, công việc này được thực hiện trên phần mềm vẽ đồ họa

solidwork 2005. Sau khi có được bản vẽ thiết kế 3d của robot bụi, tiến hành phân tích lựa chọn phương án thiết kế.

4.1.3. Phân tích và chọn phương án thiết kế.

Phương án 1 là mơ hình robot tự hành 3 bánh, trong đó 2 bánh sau được gắn liền trục với 2 động cơ điện dc 12v, bánh tự lựa được đặt ở phía trước có tác dụng

điều hướng. Mơ hình có hình trịn. Robot được trang bị lcd và nút nhấn để giao tiếp, ngồi ra sử dụng cơng tắc hành trình và loxo giúp robot tiếp xúc vật cản khi hoạt động. Trang bị một chổi lớn có tác dụng khuấy bụi giúp robot hút bụi tốt hơn. Phương án này sử dụng một nguồn duy nhất từ acquy 12v.

Ưu điểm của phương án này là:

 Kiểu dáng thiết kế nhỏ gọn.

 Khả năng di chuyển linh hoạt.

 Đảm bảo một số tiêu chí của yêu cầu kỹ thuật.

 Màu sắc đẹp. (adsbygoogle = window.adsbygoogle || []).push({});

 Tuy nhiên, diện tích khơng gian bên trong robot khiêm tốn, chỉ trang bị có một chổi và kiểu dáng thiết kế như vậy thì hiệu quả làm việc ở những góc tường kém, kèm theo việ các sản phẩm trên thị trường gần như dùng thiết kế này nên gần như nhìn sẽ nhàm chán.

Phương án thứ 2 là robot tự hành 3 bánh, nó cũng sử dụng một bánh điều hướng, 2 bánh phía sau được gắn liền trục với động cơ, khác với phương án 1, thiết kế tổng thể là khối hình vng được bo trịn bốn góc có kích thước. Các cơng tắc hành trình được đặt duy nhất ở phía trước.

Mơ hình cũng có khoảng trống phía trong để mạch điều khiển và pin, trang bị lcd, nút nhấn để giao tiếp. Robot được trang bị hệ thống gồm 3 chổi. Trong đó, hai chổi phía trước có chức năng phụ trợ giúp gom bụi hai bên vào, quét các góc tường. Chổi lớn có tác dụng khuấy bụi giúp robot hút bụi tốt hơn.

Ưu điểm của phương án 2 là:

 Diện tích khơng gian bên trong robot rộng.

 Hiệu quả làm việc được cải thiện.

 Màu sắc đẹp và bắt mắt.

 Tuy nhiên, nhìn tổng thể thì cồng kềnh, q góc cạnh tạo cảm giác thơ cứng khơng được mượt mà và đẹp mắt, nhìn ghồ ghề và khơng được thuận tiện cho các ngôi nhà chật hẹp.

Phương án 3 được thiết kế dựa trên hình vng, được cắt đi các cạnh góc vng, thành 1 hình bát giác tạo cảm giác mới mẻ trong cách nhìn cũng như đẹp mắt hơn. Robot có 2 bánh chủ động và 1 bánh dẫn hướng được đặt phía trước. Ở phương án này có bố trí hệ thống gồm 3 chổi quét, trong đó 2 chổi nhỏ đặt hai bên góc trước của robot giúp quét bụi ở góc tường nên tăng diện tích làm việc của robot. Bên cạnh đó, chổi lớn được thiết kế đặt trung tâm chếch về phía trước có chức năng khuấy bụi và qt các mảnh vụn có kích thước nhỏ. Hộp bụi được thiết kế bố trí hợp lý. Ở phương án này

dùng các cơng tắc hành trình đặt phía trước để giúp robot cảm nhận vật cản và né vật cản cho robot khi va chạm với vật cản. Các công tắc hành trình được bảo vệ bởi 2 vành ngồi được thiết kế dựa theo hình dạng của thân robot.

Ưu điểm:

 Robot có kích thước nhỏ gọn giúp di chuyển linh hoạt.

 Bo lớn các góc nâng cao hiệu quả làm việc.

 Diện tích khơng gian bên trong robot khá rộng.

 Kiểu dáng và màu sắc đẹp.

 Các phần cấu thành nên robot được bố trí hợp lý.

Tuy vậy, tồn tại một số nhược điểm như dung tích hộp bụi cịn nhỏ. Sử dụng cơng tắc hành trình chưa được hay lắm.

4.1.4. Lựa chọn phương án

Từ những phân tích ưu việt trong 3 phương án thiết kế, cũng như dựa trên yêu cầu kỹ thuật được đưa ra trước đó. Phương án 3 là phương án có nhiều ưu điểm hơn 2 phương án cịn lại, phương án 3 được đánh giá cao khơng chỉ ở thiết kế nhỏ gọn mà cịn thẩm mĩ cao. Vì vậy, phương án 3 được lựa chọn để chế tạo thành sản phẩm thực tế

4.1.5. Chuẩn bị linh kiện

HÌNH 4. 3 nguyên liệu làm khung sản phẩm

4.1.6. Thi công phương án lựa chọn

HÌNH 4. 4 lắp ráp các linh kiện

4.1.7. Hình ảnh sinh viên khi thực hiện

HÌNH 4. 5 Một số hình ảnh trong quá trình thực hiện

4.1.8. Thử nghiệm sản phẩm

HÌNH 4. 6 sản phẩm hồn thiện

4.1.9. Hướng phát triển và cải tạo

 Robot cần được nâng cấp khả năng tự sạc nguồn khi cạn.

 Robot cần phát triển khả năng nhận dạng không gian. (adsbygoogle = window.adsbygoogle || []).push({});

 Robot cần trang bị cảm biến tránh vật cản tốt hơn.

 Robot nên trang bị cảm biến bụi bẩn để hoạt động tốt hơn.

Một phần của tài liệu ĐỒ án kĩ THUẬT MẠCH điện tử (Trang 61)