Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 82 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
82
Dung lượng
3,18 MB
Nội dung
i TR NGă H SPKT TP H CHÍ MINH KHOAă I N- I NăT B ăMÔNă I NăT ăCÔNGăNGHI Păậ Y SINH C NGăHÒAăXẩăH IăCH ăNGH AăVI Tă NAM CăL Pă- T ăDOă- H NHăPHÚC o0o -Tp HCM, ngày 05 tháng 01ăn mă2019 NHI MăV ă H tên sinh viên: Chuyên ngành: H đƠo t o: Khóa: I TÊN ăÁNăT TăNGHI P Nguy năTi năHòa NgơăMinhăHi păăăăăăăăăăăăăăăăăăăă K thu t i n - i n t i h c quy 2014 MSSV: 14141117 MSSV: 14141105 Mã ngành: 41 Mã h : L p: 14141DT2A TÀI: THI TăK ăVẨăTHIăCƠNGăMƠăHÌNHăXEăTH MăDỊăMƠIă TR NG II NHI M V Các s li u ban đ u: kit RASPBERRY PI ARDUINO UNO R3 MODULE L298N SERVO SG90 MODULE DHT11 MODULE MPU-6050 CAMERA LOGITECH N i dungăth căhi n: Thi tăk ăgiaoădi năwebăserverăđi uăkhi năxe Live camera webserver i uăkhi năcamera G iăd ăli uăc măbi nălênăweb III NGÀY GIAO NHI M V : 07/10/2018 IV NGÀY HOÀN THÀNH NHI M V : 18/01/2019 V H VÀ TÊN CÁN B H NG D N: ThS Nguy năTr CÁN B H NG D N BM I N T ngăDuy CÔNG NGHI P ậ Y SINH ii TR NGă HăSPKTăTP.ăH ăCHệăMINH KHOAă I N- I NăT B ăMÔNă I NăT ăCƠNGăNGHI Păậ Y SINH C NGăHỊAăXẩăH IăCH ăNGH AăVI Tă NAM CăL Pă- T ăDOă- H NHăPHÚC o0o -Tp HCM, ngày tháng 10 n mă2018 L CHăTRÌNHăTH CăHI Nă H L H L ăÁNăT TăNGHI P ătênăsinhăviênă1:ăNgơăMinhăHi p p:14141DT1B MSSV: 14141105 ătênăsinhăviênă2:ăNguy năTi năHòa p: 14141DT1C MSSV: 14141117 Tênăđ tài: THI TăK ăVẨăTHIăCƠNGăMƠăHÌNHăXEăTH MăDỊăMƠIă TR NG ắu n ắu n/ngày N i dung (01-07/10/2018) Nh năđ án,ătìmăhi uăđ ătƠi,ăvi tă đ ăc ngăchiăti tăchoăđ ătƠi (08-14/10/2018) (15-21/10/2018) (22/4 - 28/10/2018) 5, (29/10 -11/11/2018) 7,8,9 (12/11 -02/12/2018) 10 (03 -09/12/2018) L păđ tăph năc ngăc aăxe 11,12 (10-23/12/2018) K tăn iăvƠăhoƠnăthi năxe 13 (24/12 -30/12/2018) 14 01/01/2018 Xác nh n GVHD Tìmăhi uăthơngătinăv ăthi tăb ă uăkhi năl pătrình,ăc ăc uăch pă hành K tăn iăvƠăvi tăcodeăđ yăvideoă lên web server K tăn iăvƠăvi tăcodeăđ yăd ăli uă t ăraspberryăsangăarduinoăuno K tăn iăvƠăvi tăcodeăđ yăd ăli uă c măbi năDHT11,ămpu6050ăt ă arduino qua raspberry Thi tăk ăgiaoădi năwebăserver Vi tăbáoăcáo,ăki mătraăcácăph nă c ngă GVHDăki măduy tăl iăđ ătƠi GVăH NGăD N (KýăvƠăghiărõăh ăvƠătên) iii L IăCAMă OAN ătƠiănƠyălƠădoătôi t ăth căhi năd aăvƠoăm tăs tƠiăli u tr t ătƠiăli uăhayăcơngătrìnhăđưăcóătr c căđóăvƠăkhơng chép Nhóm sinh viên th căhi năđ ătƠi NgơăMinhăHi păậ Nguy năTi năHòa iv L IăC Mă N Emăxinăg iăl iăc mă năsơuăs căđ năTh yăNguy năTr ngăDuyă_ăGi ngăviênăb ă mônă i năt ăcôngănghi păậ yăsinhăđưătr căti păh ngăd năvƠăt nătìnhăgiúpăđ ăt oăđi uă ki năđ ăhoƠnăthƠnhăt tăđ ătƠi EmăchơnăthƠnhăc mă năquýăth yăcô,ăGi ngăviênăb ămônăđi năt ăcơngănghi păậ yăsinhăđưăgópăýăvƠăchiaăs ănhi uăkinhănghi măqăbáuăchoăemăth căhi năt tăđ ătƠi Emăxinăg iăl iăchơnăthƠnhăc mă năcácăth yăcôătrongăKhoaă i n- i năT ăđưă t oănh ngăđi uăki năt tănh tăchoăemăhoƠnăthƠnhăđ ătƠi Emăc ngăg iăl iăđ ngăc mă năđ năcácăb năl pă14141DT2Aăđưăchiaăs ătraoăđ iă ki năth căc ngănh ănh ngăkinhănghi măquýăbáuătrongăth iăgianăth căhi năđ ătƠi.ă C mă năđ năgiaăđìnhăđưălnăbênăc nhăvƠă ngăh ătinhăth n XinăchơnăthƠnhăc mă n! Nhómăsinhăviênăth căhi năđ ătƠi NgơăMinhăHi păậ Nguy năTi năHòa v M CăL C NHI MăV ă ăÁNăT TăNGHI P ii L CHăTRỊNHăTH CăHI Nă ăÁNăT TăNGHI P iii L IăCAMă OAN iv L IăC Mă N .v M CăL C vi DANHăM CăHỊNH viii DANHăM CăB NG x TịMăT T xi Ch ngă1.ăT NGăQUAN 1.1 TăV Nă 1.2 M CăTIểU 1.3 N iăDUNGăNGHIểNăC U 1.4 GI IăH N .4 1.5 B ăC C Ch ngă2.ăC ăS ăLụăTHUY T 2.1ăCÁCăCHU NăTRUY NăTHỌNGăKHỌNGăDỂY 2.1.1ăM tăs ăcôngăngh ăk tăn iătrongătruy năthôngăkhôngădơy 2.1.3ăTìmăhi uăv ăchu năIEEEă208.16 2.2ăGI IăTHI UăV ăWEBăSERVERăVẨăNGỌNăNG ăL PăTRỊNHăHTML .9 2.2.1ăKháiăni măwebăserver .9 2.2.2ăNguyênălíăho tăđ ngăc aăwebăserver 2.2.3ăCácăgiaoăth căs ăd ngăc aăwebăserver .10 2.2.4ăKháiăni măngônăng ăl pătrìnhăHTML 11 2.2.5ăC uătrúcăc ăb năc aăHTML .11 2.3ăROBOTăTH MăDọăMỌIăTR NG .13 2.3.1ăPhơnălo iărobot 13 2.3.2ăM tăs ăd ngăđi uăkhi nărobot 14 2.3.3ăCácălo iăchuy năđ ngăc aărobot .14 2.4ăGI IăTHI UăPH NăC NG 17 2.4.1 RASPBERRY PI 17 2.4.2 ARDUINO UNO R3 18 2.4.3 MODULE L298N 19 2.4.4 CAMERA LOGITECH 20 vi 2.4.5 NGăC ăSERVOăSG90 .20 2.4.6ă NGăC ăGI MăT C 21 2.4.7ăMODULEăC MăBI NăDHT11 .22 2.4.8ăMODULEăC MăBI NăMPU-6050 22 Ch ngă3.ăTệNHăTOÁNăVẨăTHI TăK 24 3.1 GI IăTHI U 24 3.2 TệNHăTOÁNăVẨăTHI TăK ăH ăTH NG 24 Ch 3.2.1 Thi tăk ăs ăđ ăkh iăh ăth ng 24 3.2.2 TínhătốnăvƠăthi tăk ăm ch 26 3.2.3 S ăđ ănguyênălýăc aătoƠnăm ch 32 ngă4.ăTHIăCỌNGăH ăTH NG 33 4.1 GI IăTHI U 33 4.2 THI CÔNG H ăTH NG .33 4.2.1 4.3 Ch Thiăcôngăph năc ng 33 L PăTRỊNHăH ăTH NG 37 4.3.1 L uăđ ăgi iăthu t 37 4.3.2 Ph năm măl pătrìnhăchoăviăđi uăkhi n 41 ngă5.ă K TăQU _NH NăXÉT_ ÁNHăGIÁ .44 5.1ăăK TăQU 46 5.2ăăNH NăXÉTăVẨ ÁNHăGIÁ 49 Ch ngă6.ăK TăLU NăVẨăH NGăPHÁTăTRI N 50 6.1.ăK TăLU N 50 6.2.ăH NGăPHÁTăTRI N 50 TẨIăLI UăTHAMăKH O 51 CÁCăT ăVI TăT T 52 PH ăL C 53 vii DANHăM CăHÌNH Hình 1.1: iRobot 210 negotiator Hình 1.2: iRobot 710 Warrior Hình 3: iRobot 510 Packbot Hình 2.1: Robot hai chân BRAT 15 Hình 2.2: Robot MANOI AT01 MANOI PF01 15 Hình 2.3: Robotăirobotăchuy năđ ngăb ngăxích 16 Hình 2.4: RobotăNASAăchuy năđ ngăbánhăxe 16 Hình 2.5 Raspberry pi 17 Hình 2.6: Arduino Uno R3 18 Hình 2.7: Module L298n 19 Hình 2.8: Camera Logitech C270 20 Hình 2.9: đ ngăc ăservoăsg90 21 Hình 2.10: đ ngăc ăgi măt c 21 Hình 2.11: Moduleăc măbi năDHT11 22 Hình 2.12: moduleăc măbi nămpu-6050 22 Hình 3.1: S ăđ ăkh iătoƠnăm ch 25 Hình 3.2: S ăđ ăk tăn iăraspberryăv iăcácăthi tăb 26 Hình 3.3: S ăđ ăk tăn iăArduino 27 Hình 3.4: camera logitech 28 Hình 3.5: Servo sg90 28 Hình 3.6: s ăđ ăk tăn iăservoăvƠăcamera 28 Hình 3.7: s ăđ ăk tăn iăđ ngăc ăgi măt c 29 Hình 3.8: S ăđ ăk tăn iăc măbi năDHT11ăvƠăMPU-6050 29 Hình 3.9: M chă3Dăkh iăđènăled 30 Hình 3.10: s ăđ ăk tăn iăđèn 31 Hình 3.11: S ăđ ănguyênălýătoƠnăm ch 32 Hình 4.1 Mơăhìnhăxeănhìnăt ătrên ầầầầầầầầầầầầầầầầầầ 34 Hình 4.2: Mơăhìnhăxeănhìnăt ătr c 35 Hình 4.3: Pinăd ăphòngăc păchoătoƠnăm ch .35 Hình 4.4: Ngu năpinăc păchoăđ ngăc .36 Hình 4.5: Kíchăth căth căt ăc aăxe 36 Hình 4.6: L uăđ ăchính 37 Hình 4.7: L uăđ ch ngătrìnhăconăxeăch y .38 Hình 4.8: L uăđ ăch ngătrìnhăconăcameraăquay 39 Hình 4.9: L uăđ ăch ngătrinhăconăb tăt tăđèn 40 Hình 4.10: Giaoădi năwebăserver 41 Hình 4.11: Remote Desktop Connection 42 Hình 4.12: mƠnăhìnhăđ ngănh păraspi 42 Hình 4.13: Giaoădi năh ăđi uăhƠnhăraspi 43 Hình 4.14: Giaoădiênăph năm măpython .43 Hình 4.15 : Giaoădi năph năm măarduino 44 Hình 4.16: Giaoădi năph năm măLogMeInăHamachi .45 Hình 5.1 : Giaoădi năwebầầầầầầầầầầầầầầầầầầầầầầ.46 Hình 5.2: Bi uăđ ănhi tăđ ăvƠăđ ă m .47 Hình 5.3: Nhi tăđ ăvƠăđ ă măth căt 47 viii Hình 5.4: Xeăho tăđ ngăkhiătr iăt iăcóăđèn .48 Hình 5.5: Xeăch yătrênăv tăc nă3-5cm 48 ix DANHăM CăB NG B ngă4.1: Danhăsáchăcácălinhăki n 33 B ngă5.1: Thơngăs ăk ăthu tămơăhìnhăxeărobotăth mădòầầầầầầầầầ ầ49 x PH ăL C a.open("GET", "left.php"); a.onreadystatechange=function(){ if(a.readyState==4){ if(a.status == 200){ } else{ alert("Error") } } } a.send(); }); $('#clickL').mouseup(function(){ var a = new XMLHttpRequest(); a.open("GET", "stop.php"); a.onreadystatechange=function(){ if(a.readyState==4){ if(a.status == 200){ } else{ alert("Error") } } } a.send(); }); }); B ăMÔNă I NăT ăCÔNGăNGHI P ậ Y SINH 57 PH ăL C $(document).ready(function(){ $('#clickR').mousedown(function(){ var a = new XMLHttpRequest(); a.open("GET", "right.php"); a.onreadystatechange=function(){ if(a.readyState==4){ if(a.status == 200){ } else{ alert("Error") } } } a.send(); }); $('#clickR').mouseup(function(){ var a = new XMLHttpRequest(); a.open("GET", "stop.php"); a.onreadystatechange=function(){ if(a.readyState==4){ if(a.status == 200){ } else{ alert("Error") } } } a.send(); }); }); B ăMÔNă I NăT ăCÔNGăNGHI P ậ Y SINH 58 PH ăL C $(document).ready(function(){ $('#clickB').mousedown(function(){ var a = new XMLHttpRequest(); a.open("GET", "back.php"); a.onreadystatechange=function(){ if(a.readyState==4){ if(a.status == 200){ } else{ alert("Error") } } } a.send(); }); $('#clickB').mouseup(function(){ var a = new XMLHttpRequest(); a.open("GET", "stop.php"); a.onreadystatechange=function(){ if(a.readyState==4){ if(a.status == 200){ } else{ alert("Error") } } } a.send(); }); }); B ăMÔNă I NăT ăCÔNGăNGHI P ậ Y SINH 59 PH ăL C $(document).ready(function(){ $('#clickS').mousedown(function(){ var a = new XMLHttpRequest(); a.open("GET", "stop.php"); a.onreadystatechange=function(){ if(a.readyState==4){ if(a.status == 200){ } else{ alert("Error") } } } a.send(); }); $('#clickS').mouseup(function(){ var a = new XMLHttpRequest(); a.open("GET", "stop.php"); a.onreadystatechange=function(){ if(a.readyState==4){ if(a.status == 200){ } else{ alert("Error") } } } a.send(); }); }); B ăMÔNă I NăT ăCÔNGăNGHI P ậ Y SINH 60 PH ăL C $(document).ready(function(){ $('#clickds').mousedown(function(){ var a = new XMLHttpRequest(); a.open("GET", "dens.php"); a.onreadystatechange=function(){ if(a.readyState==4){ if(a.status == 200){ } else{ alert("Error") } } } a.send(); }); $('#clickds').mouseup(function(){ var a = new XMLHttpRequest(); a.open("GET", "dens.php"); a.onreadystatechange=function(){ if(a.readyState==4){ if(a.status == 200){ } else{ alert("Error") } } } a.send(); }); }); B ăMÔNă I NăT ăCÔNGăNGHI P ậ Y SINH 61 PH ăL C $(document).ready(function(){ $('#clickdt').mousedown(function(){ var a = new XMLHttpRequest(); a.open("GET", "dent.php"); a.onreadystatechange=function(){ if(a.readyState==4){ if(a.status == 200){ } else{ alert("Error") } } } a.send(); }); $('#clickdt').mouseup(function(){ var a = new XMLHttpRequest(); a.open("GET", "dent.php"); a.onreadystatechange=function(){ if(a.readyState==4){ if(a.status == 200){ } else{ alert("Error") } } } a.send(); }); }); B ăMÔNă I NăT ăCÔNGăNGHI P ậ Y SINH 62 PH ăL C $(document).ready(function(){ $('#clickCL').mousedown(function(){ var a = new XMLHttpRequest(); a.open("GET", "clen.php"); a.onreadystatechange=function(){ if(a.readyState==4){ if(a.status == 200){ } else{ alert("Error") } } } a.send(); }); $('#clickCL').mouseup(function(){ var a = new XMLHttpRequest(); a.open("GET", "cdung.php"); a.onreadystatechange=function(){ if(a.readyState==4){ if(a.status == 200){ } else{ alert("Error") } } } a.send(); }); }); B ăMÔNă I NăT ăCÔNGăNGHI P ậ Y SINH 63 PH ăL C $(document).ready(function(){ $('#clickCX').mousedown(function(){ var a = new XMLHttpRequest(); a.open("GET", "cxuong.php"); a.onreadystatechange=function(){ if(a.readyState==4){ if(a.status == 200){ } else{ alert("Error") } } } a.send(); }); $('#clickCX').mouseup(function(){ var a = new XMLHttpRequest(); a.open("GET", "cdung.php"); a.onreadystatechange=function(){ if(a.readyState==4){ if(a.status == 200){ } else{ alert("Error") } } } a.send(); }); }); B ăMÔNă I NăT ăCÔNGăNGHI P ậ Y SINH 64 PH ăL C $(document).ready(function(){ $('#clickCT').mousedown(function(){ var a = new XMLHttpRequest(); a.open("GET", "ctrai.php"); a.onreadystatechange=function(){ if(a.readyState==4){ if(a.status == 200){ } else{ alert("Error") } } } a.send(); }); $('#clickCT').mouseup(function(){ var a = new XMLHttpRequest(); a.open("GET", "cdung.php"); a.onreadystatechange=function(){ if(a.readyState==4){ if(a.status == 200){ } else{ alert("Error") } } } a.send(); }); B ăMÔNă I NăT ăCÔNGăNGHI P ậ Y SINH 65 PH ăL C }); $(document).ready(function(){ $('#clickCP').mousedown(function(){ var a = new XMLHttpRequest(); a.open("GET", "cphai.php"); a.onreadystatechange=function(){ if(a.readyState==4){ if(a.status == 200){ } else{ alert("Error") } } } a.send(); }); $('#clickCP').mouseup(function(){ var a = new XMLHttpRequest(); a.open("GET", "cdung.php"); a.onreadystatechange=function(){ if(a.readyState==4){ if(a.status == 200){ } else{ alert("Error") } } } a.send(); B ăMÔNă I NăT ăCÔNGăNGHI P ậ Y SINH 66 PH ăL C }); }); Code arduino #include #define ENA #define ENB #define IN1 #define IN2 #define IN3 #define IN4 #define den Servo servo1; Servo servo2; int goc1= 0; int goc2= 0; int a=0; // Serial int rpi; void setup() { servo1.attach(9); servo2.attach(10); Serial.begin(9600); // L298n pinMode(ENA, OUTPUT); pinMode(ENB, OUTPUT); pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); pinMode(den, OUTPUT); } void motorA(int mode, int percent) { int duty = map(percent, 0, 100, 0, 255); switch(mode) { case 0: digitalWrite(ENA, LOW); break; case 1: digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); analogWrite(ENA, duty); break; case 2: B ăMÔNă I NăT ăCÔNGăNGHI P ậ Y SINH 67 PH ăL C digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); analogWrite(ENA, duty); break; case 3: digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); analogWrite(ENA, duty); break; } } //**************** Motor B control void motorB(int mode, int percent) { ***************** int duty = map(percent, 0, 100, 0, 255); switch(mode) { case 0: digitalWrite(ENB, LOW); break; case 1: digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); analogWrite(ENB, duty); break; case 2: digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); analogWrite(ENB, duty); break; case 3: digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); analogWrite(ENB, duty); break; } B ăMÔNă I NăT ăCÔNGăNGHI P ậ Y SINH 68 PH ăL C } void loop() { // Move if (Serial.available()>0) { rpi = Serial.read(); rpi = rpi - 48; Serial.println(rpi); } if(rpi ==49) { a=1; if(a==1) { digitalWrite(den, HIGH); } } else if(rpi ==50) { a=0; if(a==0) { digitalWrite(den, LOW); } } else if (rpi == 3) { goc1++ ; if(goc1 == 181) { goc1 = 180; } servo1.write(goc1); delay(5); } //////////////////////////////// else if (rpi == 1) { goc1 ; if(goc1 == -1) { goc1 = 0; } servo1.write(goc1); delay(5); } else if (rpi == 5) { goc2++ ; if(goc2 == 181) { goc2 = 180; } servo2.write(goc2); delay(5); } B ăMÔNă I NăT ăCÔNGăNGHI P ậ Y SINH 69 PH ăL C //////////////////////////////// else if (rpi == 7) { goc2 ; if(goc2 == -1) { goc2 = 0; } servo2.write(goc2); delay(5); } else if(rpi ==9) { goc1=goc1; goc2=goc2; } else if (rpi==2) { //Ti n motorA(2, 100); motorB(2, 100); } else { if (rpi==4) { //trái motorA(1, 100); motorB(2, 100); } else { if (rpi==6) { //Ph i motorA(2, 100); motorB(1, 100); } else { if (rpi==8) { //Lùi motorA(1, 100); motorB(1, 100); } else { if (rpi==0) { //D ng motorA(3, 100); motorB(3, 100); } } } } } } Code c măbi năDHT11 import sys import RPi.GPIO as GPIO from time import sleep import Adafruit_DHT import urllib.request as urllib2 myAPI = "PH03HXEQQQVL8ZN2" def getSensorData(): T, RH = Adafruit_DHT.read_retry(Adafruit_DHT.DHT11, 17) B ăMÔNă I NăT ăCÔNGăNGHI P ậ Y SINH 70 PH ăL C return (str(RH), str(T)) def main(): print ('starting ') baseURL = 'https://api.thingspeak.com/update?api_key=%s' % myAPI while True: try: T, RH = getSensorData() f = urllib2.urlopen(baseURL + "&field1=%s&field2=%s" % (T, RH)) print (f.read()) f.close() sleep(2) #uploads DHT22 sensor values every minutes except: print ('exiting.') break # call main if name == ' main ': main() B ăMÔNă I NăT ăCÔNGăNGHI P ậ Y SINH 71 ... u xe robotă thámăhi mălƠăv năđ ăc n thi tăchoăth căt ,ănhómăth căhi năch năđ ătƠiă Thi tăk ăvƠă thi cơngămơ hình xe th m dò mơiătr 1.2 ng” M CăTIểU ătƠiă Thi tăk ăvƠ thi cơngămơ hình xe th m dò mơiătr... t,ănguyăhi mămƠăconăng iătham dò, ăkhámă iăch ăc năđi uăkhi năt ă xa ătƠiă Thi tăk ăvƠ thi cơngămơ hình xe th m dò mơiătr v ălýăthuy tărobotăvƠ thi cơngămơ hình xe robotăđ ng”ăđ cătrìnhăbƠyă căđi... iăđènăled 30 Hình 3.10: s ăđ ăk tăn iăđèn 31 Hình 3.11: S ăđ ănguyênălýătoƠnăm ch 32 Hình 4.1 Mơ hình xe nhìnăt ătrên ầầầầầầầầầầầầầầầầầầ 34 Hình 4.2: Mơ hình xe nhìnăt ătr