BÁO cáo bài tập lớn môn kĩ THUẬT lập TRÌNH đề tài xe mô hình tránh vật cản điều khiển bằng bluetooth

33 30 0
BÁO cáo bài tập lớn môn kĩ THUẬT lập TRÌNH đề tài xe mô hình tránh vật cản điều khiển bằng bluetooth

Đ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

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CƠ KHÍ ********************** BÁO CÁO BÀI TẬP LỚN MÔN KĨ THUẬT LẬP TRÌNH Đề tài: Xe mơ hình tránh vật cản điều khiển Bluetooth Giảng viên hướng dẫn: Lớp: Nhóm sinh viên thực hiện: Hà Nội 8-2021 download by : skknchat@gmail.com 2 download by : skknchat@gmail.com Tóm tắt cơng trình Sản phẩm: Xe mơ hình tránh vật cản điều khiển Bluetooth Chức năng: Xe tránh vật cản điều khiển chế độ thông qua window form modul bluetooth HC-06: Tự động Tự điều khiển nút bấm window form Linh kiện cấu tạo : Giá đỡ kích thước 70*85mm Hai bánh xe đường kính 35mm gắn vào trục động khác Một bánh xe đa hướng gắn đầu xe động DC chiều Nguồn pin 12V Arduino UNO Module điều khiển động L298 mạch cầu Cảm biến khoảng HC-SR04 Động SERVO Bluetooth HC-06 download by : skknchat@gmail.com I Đặt vấn đề: Các loại máy móc khí ngày trở nên lỗi thời, việc sử dụng chúng sản xuất nhiều công sức thời gian người sử dụng Do đó, kết hợp hệ thống điện với điện tử lập trình tạo đột phá công dụng vô to lớn Để chuẩn bị cho thời đại công nghiệp nay, từ ngồi giảng đường, sinh viên nên học thực hành với sản phẩm mang kết hợp - Mục đích đề tài áp dụng kiến thức học từ môn học Kĩ thuật Lập trình Cơ Điện Tử vào việc thiết kế xe tự hành có khả tự động di chuyển tránh vật cản điều khiển qua Bluetooth - Robot có nhiệm vụ di chuyển theo bảng điều khiển máy tính lập trình sẵn thơng qua Bluetooth tiến, lùi, quay trái, quay phải, tự nhận biết vật cản, khoảng cách tránh vật cản II Các linh kiện cụ thể Arduino UNO R3 Một board mạch chủ dùng để truyền nhận liệu từ người sử dụng đến thiết bị điện tử khác download by : skknchat@gmail.com Các thông số bản: Vi điều khiển Điện áp hoạt động Tần số hoạt động Dòng tiêu thụ Điện áp vào khuyên dùng Điện áp vào giới hạn Số chân Digital I/O Số chân Analog Dòng tối đa chân I/O Dòng tối đa (5V) Dòng tối đa (3.3V) Bộ nhớ flash SRAM EEPROM Module điều khiển động L298 mạch cầu H download by : skknchat@gmail.com Thông số kỹ thuật: Driver: L298N tích hợp hai mạch cầu H Điện áp điều khiển: +5 V ~ +12 V Dòng tối đa cho cầu H là: 2A (=>2A cho motor) Điện áp tín hiệu điều khiển: +5 V ~ +7 V Dịng tín hiệu điều khiển: ~ 36mA Cơng suất hao phí: 20W (khi nhiệt độ T = 75 ℃) Nhiệt độ bảo quản: -25 ℃ ~ +130 ℃ L298 gồm chân: 12V power, 5V power Đây chân cấp nguồn trực tiếp đến động Có thể cấp nguồn 9-12V 12V *Ngun lí hoạt động: - Chúng ta điều khiển tốc độ động DC cách điều khiển điện áp đầu vào động phương pháp phổ biến để làm điều sử dụng tín hiệu PWM - PWM hay thay đổi độ rộng xung kỹ thuật cho phép điều chỉnh giá trị trung bình điện áp đến thiết bị điện tử cách bật tắt nguồn với tốc độ nhanh Điện áp trung bình phụ thuộc vào chu kỳ xung, lượng thời gian tín hiệu BẬT so với lượng thời gian tín hiệu TẮT khoảng thời gian quy định download by : skknchat@gmail.com Vì vậy: Tùy thuộc vào kích thước động cơ, cần kết nối đầu Arduino với chân cua điện trở chân MOSFET điều khiển tốc độ động cách điều khiển đầu PWM Tín hiệu Arduino cơng suất thấp bật tắt chân MOSFET thông qua động cơng suất cao điều khiển Điều khiển động DC mạch cầu H Mặt khác, để điều khiển hướng quay, cần đảo ngược hướng dòng điện qua động cơ, phương pháp phổ biến để làm điều sử dụng mạch cầu H Một mạch cầu H chứa bốn chân chuyển mạch, điện trở MOSFET, với động trung tâm tạo thành cấu hình giống chữ H Bằng cách kích hoạt hai cơng tắc cụ thể lúc, thay đổi hướng dịng điện, thay đổi hướng quay động download by : skknchat@gmail.com Cảm biến khoảng cách HC-SR04 : Cảm biến siêu âm có chức để đo khoảng cách cách áp dụng cơng thức tính tốn khoảng cách dựa thời gian vận tốc sóng cao tần phát *Thơng số kĩ thuật: Điện áp: 5V DC Dịng hoạt động: < 2mA Mức cao: 5V Mức thấp: 0V Góc tối đa: 15 độ Khoảng cách: 2cm – 450cm (4.5m) Độ xác: 3mm download by : skknchat@gmail.com *Các chân chức năng: VCC Cấp nguồn cho cảm biến (5V) 3.3V cảm biến 3V3 TRIGGER Chân phát sóng âm Là chu kỳ của điện cao /thấp diễn ECHO Trạng thái ban dầu 0V, có tín hiệu trả 5V sau trở 0V GND Nối cực âm mạch OUT Khơng sử dụng *Ngun lí hoạt động: Để đo khoảng cách, ta phát xung ngắn (5 microSeconds) từ chân Trig Sau đó, cảm biến siêu âm tạo xung HIGH chân Echo nhận lại sóng phản xạ pin Chiều rộng xung với thời gian sóng siêu âm phát từ cảm biển quay trở lại Tốc độ âm khơng khí 340 m/s (hằng số vật lý), tương đương với 29,412 microSeconds/cm (106 / (340*100)) Khi tính thời gian, ta chia cho 29,412 để nhận khoảng cách Bluetooth HC-06: -Module Bluetooth SLAVE cho phép vi điều khiển kết nối với thiết bị ngoại vi: smartphone, laptop, usb bluetooth thông qua giao tiếp Serial gửi nhận tín hiệu chiều Module bluetooth tích hợp board cho phép bạn sử dụng nguồn từ DC 3.5 - 5V - Module Bluetooth SLAVE cho phép vi điều khiển kết nối với thiết bị ngoại vi: smartphone, laptop, usb bluetooth thông qua giao tiếp Serial gửi nhận tín hiệu chiều download by : skknchat@gmail.com } switch (x) { case 'a': Tien(); break; case 'b': Lui(); break; case 'd': Retrai(); break; case 'c': Rephai(); break; case 'e': Dung(); break; case 'f': Tranh_Vat_Can(40); break; case '1': spd=100; break; case '2': spd=125; break; case '3': spd=150; break; case '4': spd=200; break; case '5': spd=255; break; } } void Tien() { analogWrite(enA,spd-15); analogWrite(enB,spd-30); digitalWrite(inA1, HIGH); 17 download by : skknchat@gmail.com digitalWrite(inA2, LOW); digitalWrite(inB1, HIGH); digitalWrite(inB2, LOW); } void Lui() { analogWrite(enA,spd-15); analogWrite(enB,spd-30); digitalWrite(inA1, LOW); digitalWrite(inA2, HIGH); digitalWrite(inB1, LOW); digitalWrite(inB2, HIGH); } void Retrai() { analogWrite(enA,spd-15); analogWrite(enB,spd-30); digitalWrite(inA2,LOW); digitalWrite(inA1,HIGH); digitalWrite(inB1,LOW); digitalWrite(inB2,LOW); } void Rephai() { analogWrite(enA,spd-15); analogWrite(enB,spd-30); digitalWrite(inA1,LOW); digitalWrite(inA2,LOW); digitalWrite(inB2,LOW); digitalWrite(inB1,HIGH); } void Dung() { digitalWrite(inA1, LOW); digitalWrite(inA2, LOW); digitalWrite(inB1, LOW); digitalWrite(inB2, LOW); } int TinhKC (byte goc) { myservo.write(goc); delay(500); unsigned long times; 18 download by : skknchat@gmail.com int KC; digitalWrite(trig,0); delayMicroseconds(2); digitalWrite(trig,1); delayMicroseconds(5); digitalWrite(trig,0); times = pulseIn(echo,HIGH); KC = int(times/2/29.412); return KC; } void Tranh_Vat_Can(byte KC_choPhep) { //Tien(); int KC_phiaTruoc = TinhKC(90); if (KC_phiaTruoc > KC_choPhep) { Tien(); delay(100); } else //(KC_phiaTruoc comboBox2->DataSource = tocdotruyen; comboBox2->SelectedIndex = 1; this->comboBox3->DataSource = speed; this->comboBox1->DataSource = oBarray; comboBox1->SelectedIndex = 1;*/ } protected: / / Clean up any resources being used / ~MyForm() { if (components) { delete components; } } private: System::Windows::Forms::Button^ button1; private: System::Windows::Forms::Label^ label1; private: System::Windows::Forms::Button^ button2; private: System::Windows::Forms::Button^ button3; private: System::Windows::Forms::Button^ button4; private: System::Windows::Forms::Button^ button5; private: System::Windows::Forms::Button^ button6; private: System::Windows::Forms::Button^ button7; private: System::Windows::Forms::Button^ button8; private: System::Windows::Forms::Label^ label2; private: System::Windows::Forms::Label^ label3; private: System::Windows::Forms::Label^ label4; private: System::Windows::Forms::Label^ label5; private: System::Windows::Forms::ComboBox^ comboBox1; private: System::Windows::Forms::ComboBox^ comboBox2; private: System::Windows::Forms::ComboBox^ comboBox3; private: public: System::IO::Ports::SerialPort^ serialPort1; private: private: System::ComponentModel::IContainer^ components; protected: 21 download by : skknchat@gmail.com private: / / / Required designer variable #pragma region Windows Form Designer generated code / / Required method for Designer support - not modify / the contents of this method with the code editor / void InitializeComponent(void) { this->components = (gcnew System::ComponentModel::Container()); this->button1 = (gcnew System::Windows::Forms::Button()); this>label1 = (gcnew System::Windows::Forms::Label()); this->button2 = (gcnew System::Windows::Forms::Button()); this->button3 = (gcnew System::Windows::Forms::Button()); this->button4 = (gcnew System::Windows::Forms::Button()); this->button5 = (gcnew System::Windows::Forms::Button()); this->button6 = (gcnew System::Windows::Forms::Button()); this->button7 = (gcnew System::Windows::Forms::Button()); this->button8 = (gcnew System::Windows::Forms::Button()); this->label2 = (gcnew System::Windows::Forms::Label()); this->label3 = (gcnew System::Windows::Forms::Label()); this->label4 = (gcnew System::Windows::Forms::Label()); this->label5 = (gcnew System::Windows::Forms::Label()); this->comboBox1 = (gcnew System::Windows::Forms::ComboBox()); this->comboBox2 = (gcnew System::Windows::Forms::ComboBox()); this->comboBox3 = (gcnew System::Windows::Forms::ComboBox()); this->serialPort1 = (gcnew System::IO::Ports::SerialPort(this>components)); this->SuspendLayout(); // / button1 / this->button1->Location = System::Drawing::Point(468, 33); this->button1->Name = L"button1"; this->button1->Size = System::Drawing::Size(75, 30); this->button1->TabIndex = 0; this->button1->Text = L"Auto"; this->button1>UseVisualStyleBackColor = true; this->button1->Click += gcnew System::EventHandler(this, &MyForm::button1_Click); / / label1 // this->label1->AutoSize = true; this->label1->ForeColor = System::Drawing::SystemColors::MenuHighlight; this->label1->Location = System::Drawing::Point(111, 33); this->label1->Name = L"label1"; this->label1->Size = System::Drawing::Size(100, 17); this->label1->TabIndex = 1; 22 download by : skknchat@gmail.com this->label1->Text = L"Not connected"; // / button2 / this->button2->Location = System::Drawing::Point(42, 350); this->button2->Name = L"button2"; this->button2->Size = System::Drawing::Size(90, 28); this->button2->TabIndex = 2; this->button2->Text = L"Connect"; this>button2->UseVisualStyleBackColor = true; this->button2->Click += gcnew System::EventHandler(this, &MyForm::button2_Click); / / button3 // this->button3->Location = System::Drawing::Point(42, 392); this->button3->Name = L"button3"; this->button3->Size = System::Drawing::Size(90, 28); this->button3->TabIndex = 3; this->button3->Text = L"Disconnect"; this->button3->UseVisualStyleBackColor = true; this->button3->Click += gcnew System::EventHandler(this, &MyForm::button3_Click); // / button4 / this->button4->Location = System::Drawing::Point(270, 81); this->button4->Name = L"button4"; this->button4>Size = System::Drawing::Size(60, 55); this->button4>TabIndex = 4; this->button4->Text = L"Down"; this->button4>UseVisualStyleBackColor = true; this>button4->MouseDown += gcnew System::Windows::Forms::MouseEventHandler(this, &MyForm::button4_MouseDown); this->button4->MouseUp += gcnew System::Windows::Forms::MouseEventHandler(this, &MyForm::button4_MouseUp); // / button5 / this->button5->Location = System::Drawing::Point(270, 233); this->button5->Name = L"button5"; this->button5>Size = System::Drawing::Size(60, 55); this->button5>TabIndex = 5; this->button5->Text = L"Up"; this->button5>UseVisualStyleBackColor = true; this>button5->MouseDown += gcnew System::Windows::Forms::MouseEventHandler(this, &MyForm::button5_MouseDown); this->button5->MouseUp += gcnew System::Windows::Forms::MouseEventHandler(this, &MyForm::button5_MouseUp); // / button6 / this->button6->Location = System::Drawing::Point(348, 156); this->button6->Name = L"button6"; 23 download by : skknchat@gmail.com ... Tóm tắt cơng trình Sản phẩm: Xe mơ hình tránh vật cản điều khiển Bluetooth Chức năng: Xe tránh vật cản điều khiển chế độ thông qua window form modul bluetooth HC-06: Tự động Tự điều khiển nút bấm... vào việc thiết kế xe tự hành có khả tự động di chuyển tránh vật cản điều khiển qua Bluetooth - Robot có nhiệm vụ di chuyển theo bảng điều khiển máy tính lập trình sẵn thơng qua Bluetooth tiến,... MOSFET điều khiển tốc độ động cách điều khiển đầu PWM Tín hiệu Arduino cơng suất thấp bật tắt chân MOSFET thơng qua động công suất cao điều khiển Điều khiển động DC mạch cầu H Mặt khác, để điều khiển

Ngày đăng: 25/04/2022, 08:51

Hình ảnh liên quan

Đề tài: Xe mô hình tránh vật cản điều khiển bằng Bluetooth - BÁO cáo bài tập lớn môn kĩ THUẬT lập TRÌNH đề tài xe mô hình tránh vật cản điều khiển bằng bluetooth

t.

ài: Xe mô hình tránh vật cản điều khiển bằng Bluetooth Xem tại trang 1 của tài liệu.
- Robot có nhiệm vụ di chuyển theo bảng điều khiển trên máy tính đã được lập trình sẵn thông qua Bluetooth có thể tiến, lùi, quay trái, quay phải, hoặc có thể tự  nhận biết vật cản, khoảng cách và tránh vật cản đó. - BÁO cáo bài tập lớn môn kĩ THUẬT lập TRÌNH đề tài xe mô hình tránh vật cản điều khiển bằng bluetooth

obot.

có nhiệm vụ di chuyển theo bảng điều khiển trên máy tính đã được lập trình sẵn thông qua Bluetooth có thể tiến, lùi, quay trái, quay phải, hoặc có thể tự nhận biết vật cản, khoảng cách và tránh vật cản đó Xem tại trang 4 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan