1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

DIY smart hút bụi làm sạch sử dụng arduino

110 120 0

Đ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 110
Dung lượng 1,82 MB

Nội dung

DIY Smart hút bụi làm sạch sử dụng Arduino Bởi B.Aswinth Raj 23 Nhận xét Arduino dựa trên trở ngại Tránh máy hút bụi làm sạch Hi guys, bạn là một newbie cho thế  giới của Robotics hoặc điện tử? Hoặc Bạn đang tìm kiếm một dự  án đơn giản nhưng mạnh mẽ  để  làm cho bạn bè và giáo viên  ấn tượng? Sau đó, đây là nơi Trong dự án này, chúng tơi sẽ sử dụng sức mạnh của Hệ thống Nhúng và Điện tử để tạo ra robot của riêng chúng tơi có thể giúp chúng tơi giữ nơi ở hoặc nơi làm việc gọn gàng và gọn gàng. Robot này là máy hút bụi có bánh xe bốn bánh đơn giản , có thể thơng minh tránh chướng ngại vật và hút chân khơng sàn cùng một lúc. Ý tưởng này lấy cảm hứng từ  máy hút bụi nổi tiếng Robot Roomba được hiển thị  trong hình dưới đây Ý tưởng của chúng tơi là làm cho một robot đơn giản ngay từ  đầu có thể tự  động tránh những trở ngại trong khi dọn dẹp sàn nhà . Tin tưởng tơi mọi người thật vui vẻ!   Vật liệu và thành phần bắt buộc: Được rồi, bây giờ chúng tơi có ý tưởng về Robot Máy hút bụi Tự động của chúng tơi và chúng tơi biết chúng tơi đang làm gì. Vì vậy, chúng ta hãy xem xét nơi chúng ta nên bắt đầu thực hiện của chúng tơi. Để  xây dựng một robot của ý tưởng của chúng tôi, trước tiên chúng ta cần phải quyết định những điều sau:  Loại vi điều khiển  Cảm biến yêu cầu   Yêu cầu động cơ  Vật liệu khung xe  Dung lượng pin Bây giờ, cho phép chúng tơi quyết định về từng điểm nêu trên  Bằng cách này, sẽ rất hữu ích nếu bạn khơng chỉ xây dựng robot làm sạch nhà này mà còn cho bất kỳ robot nào khác mà làm nổi bật trí tưởng tượng của bạn   Loại vi điều khiển: Chọn Vi điều khiển là một nhiệm vụ  rất quan trọng, vì bộ  điều khiển này sẽ  hoạt động như  bộ  não robot của bạn. Hầu hết các dự  án Tự  làm được thực hiện xung quanh Arduino và Raspberry   Pi ,     không   phải       nhau. Khơng   có Microcontroller cụ thể mà bạn có thể làm việc trên. Tất cả phụ thuộc vào u cầu và chi   phí .  Giống như  một Tablet khơng thể  được thiết kế  trên Microcontroller 8 bit và khơng có giá trị sử dụng ARM cortex m4 để thiết kế một máy tính điện tử Lựa chọn vi điều khiển hồn tồn phụ thuộc vào các u cầu của sản phẩm: 1. Trước tiên u cầu kỹ  thuật được xác định như  số  lượng u cầu I / O pins, kích thước flash, số lượng / loại giao thức truyền thơng, bất kỳ tính năng đặc biệt vv 2. Sau đó liệt kê các bộ  điều khiển được lựa chọn theo u cầu kỹ  thuật. Danh sách này chứa bộ điều khiển từ các nhà sản xuất khác nhau  Nhiều bộ điều khiển ứng dụng cụ thể có sẵn 3. Sau đó bộ điều khiển được hồn tất dựa trên chi phí, tính khả dụng và sự hỗ trợ từ nhà sản xuất   Nếu bạn khơng muốn làm rất nhiều nâng nặng và chỉ  muốn tìm hiểu những điều cơ     vi   điều   khiển     sau     có     sâu   vào   nó,   sau     bạn   có   thể   chọn Arduino. Trong dự án này, chúng tơi sẽ sử dụng Arduino . Trước đây chúng tơi đã tạo ra nhiều loại Robot sử dụng Arduino :  Robot kiểm sốt DTMF sử dụng Arduino  Line Follower Robot sử dụng Arduino  Robot điều khiển bằng máy tính sử dụng Arduino  Robot điều khiển bằng WiFi sử dụng Arduino  Accelerometer Dựa trên Tay cử chỉ Kiểm sốt Robot sử dụng Arduino  Xe đồ chơi có điều khiển Bluetooth bằng Arduino   Cảm biến bắt buộc: Có rất nhiều cảm biến có sẵn trên thị  trường mỗi người có cách sử  dụng riêng của mình. Mỗi robot được nhập thơng qua một cảm biến, chúng hoạt động như  các cơ quan cảm giác cho Robot . Trong trường hợp của chúng tơi robot của chúng tơi sẽ có thể phát hiện những trở ngại và tránh chúng Có rất nhiều cảm biến mát mẻ khác mà chúng tơi sẽ sử dụng trong các dự  án tương lai của chúng tơi, nhưng bây giờ  chúng ta hãy tập trung vào bộ cảm biến hồng ngoại và bộ cảm biến siêu âm của Mỹ vì hai người này sẽ  cung cấp tầm nhìn cho chiếc xe robo. Kiểm   tra hoạt   động     cảm   biến   hồng   ngoại ở   đây. Dưới       hình   ảnh của bộ cảm biến hồng ngoại và cảm biến siêu âm :   Bộ  cảm biến siêu âm bao gồm hai mắt tròn mà trong đó một cái được sử  dụng để truyền tín hiệu của Hoa Kỳ và một tín hiệu khác để  nhận các tia nước Mỹ  Thời gian của các tia để  nhận được truyền và nhận lại được tính bởi vi điều khiển  Bây giờ, vì thời gian và tốc độ  của âm thanh được biết, chúng ta có thể  tính tốn khoảng cách theo các cơng thức sau đây  Khoảng cách = Thời gian x Tốc độ âm thanh chia cho 2 Giá trị được chia cho hai vì ray đi về phía trước và phía sau bao phủ cùng một khoảng cách. Giải thích chi tiết về việc sử dụng cảm biến siêu âm được đưa ra ở đây    Các động cơ u cầu: Có khá nhiều động cơ được sử  dụng trong lĩnh vực robot học những người sử dụng nhất là động cơ  bước và servo. Vì dự  án này khơng có bất kỳ  thiết bị  truyền động phức   tạp       mã   hoá   quay,   chúng       sử   dụng    PMDC   Motor bình thường . Nhưng pin của chúng tơi là một chút cồng kềnh và nặng nề vì vậy chúng tơi sử  dụng bốn động cơ  để  lái xe của chúng tơi tất cả  bốn robot là cùng một động cơ PMDC. Nhưng bạn nên đặt vào động cơ  bước và động cơ  servo một khi bạn cảm thấy thoải mái với động cơ PMDC   Robot vật liệu khung: Là một sinh viên hay một người u thích phần khó nhất trong khi làm một robot là chuẩn bị khung gầm của robot của chúng tơi. Vấn đề là với sự sẵn có của các cơng cụ và vật liệu. Vật liệu lý tưởng nhất cho dự án này là Acrylic, nhưng nó đòi hỏi khoan và các cơng cụ  khác để  làm việc với nó. Do đó gỗ được chọn để  mọi người có thể  làm việc trên nó dễ dàng.   Vấn đề này đã hồn tồn biến mất khỏi lĩnh vực này sau khi giới thiệu máy in 3D  Tơi đang lên kế hoạch cho phần in 3D một ngày nào đó và cập nhật cho bạn những người có cùng một. Vì vậy, bây giờ  chúng ta hãy sử  dụng tấm gỗ  để  xây dựng robot của chúng tơi   Dung lượng pin: Lựa chọn dung lượng pin nên là phần cuối cùng của chúng tơi vì nó hồn tồn phụ thuộc vào khung xe và động cơ của bạn  Ở đây pin của chúng tơi nên lái một máy hút bụi mà rút ra khoảng 3­5A và bốn động cơ PMDC. Do đó chúng tơi sẽ u cầu một pin nặng. Tơi đã chọn 12V 20Ah SLAB (Pin axit chì kết dính ) và chiếc cồng kềnh của nó làm cho robot của chúng tơi có được bốn động cơ PMDC để kéo gã khổng lồ này   Bây giờ  chúng ta đã chọn tất cả  các thành phần bắt buộc của chúng ta để  liệt kê chúng  Tấm gỗ khung  Cảm biến IR và US  Máy hút bụi hoạt động trên dòng DC  Arduino Uno  Pin 12V 20Ah  IC điều khiển động cơ (L293D)  Cơng cụ làm việc  Dây kết nối  Năng động nhiệt tình để học tập và làm việc   Hầu hết các thành phần của chúng tơi được bao gồm trong mơ tả    trên, tơi sẽ  giải thích các bên trái bên dưới DC máy hút bụi: Kể từ khi robot của chúng tơi chạy trên một hệ thống 12V 20Ah DC. Chân khơng của chúng tơi cũng nên được một máy hút bụi DC 12V. Nếu bạn đang bối rối về nơi để có được một thì bạn có thể  truy cập vào eBay hoặc Amazon để làm sạch xe máy hút bụi Chúng ta sẽ sử dụng như thể hiện trong hình trên   Trình điều khiển mơ tơ (L293D): Một trình điều khiển động cơ  là một mơ­đun trung gian giữa Arduino và Motor. Điều này là do microcontroller Arduino sẽ khơng thể cung cấp cho các u cầu hiện tại cho động cơ để làm việc nó và chỉ có thể cung cấp 40mA, do đó vẽ thêm hiện nay sẽ làm hỏng bộ điều khiển vĩnh viễn. Vì vậy, chúng tơi kích hoạt các trình điều khiển động cơ mà lần lượt kiểm sốt động cơ Chúng tơi sẽ  sử  dụng động cơ L293D Motor Driver IC mà có thể  cung cấp đến 1A, do đó người lái xe này sẽ  nhận được thơng tin từ  Arduino và làm cho động cơ  hoạt động như mong muốn   Đó là nó!! Tơi đã đưa ra hầu hết các thơng tin quan trọng nhưng trước khi chúng tơi bắt   đầu   xây   dựng   robot,   bạn   nên     qua     thông   số   kỹ   thuật     L293D   Arduino. Nếu bạn có bất kỳ nghi ngờ hoặc vấn đề nào bạn có thể liên hệ với chúng tơi qua phần nhận xét   Xây dựng và thử nghiệm Robot: Máy hút bụi là phần quan trọng nhất trong việc đặt Robot. Nó phải được đặt   góc nghiêng như  thể  hiện trong hình  ảnh, để  nó có thể  cung cấp hoạt động chân khơng thích hợp. Máy hút bụi khơng được kiểm sốt bởi Arduino . Một khi bạn bật robot, chân khơng cũng được bật lên Một q trình mệt mỏi của việc xây dựng Robot của chúng tơi là các cơng trình bằng gỗ. Chúng tơi phải khắc gỗ của chúng tơi và khoan một số lỗ để  đặt các bộ  cảm biến và máy hút bụi Bạn nên kiểm tra Ride  Robot bằng mã sau đây khi bạn sắp xếp Motor  và Motor trước khi kết nối Sensors Thiết lập void () { Serial.begin (9600); PinMode (9, OUTPUT); PinMode (10, OUTPUT); PinMode (11, OUTPUT); PinMode (12, OUTPUT); } Void loop () { Chậm trễ (1000); Serial.print ("chuyển tiếp"); DigitalWrite (9, CAO); DigitalWrite (10, LOW); DigitalWrite (11, CAO); DigitalWrite (12, LOW); Chậm trễ (500); Serial.print ("lùi"); DigitalWrite (9, LOW); DigitalWrite (10, CAO); DigitalWrite (11, LOW); DigitalWrite (12, CAO); } ((((void setup() { Serial.begin(9600); pinMode(9,OUTPUT); pinMode(10,OUTPUT); pinMode(11,OUTPUT); pinMode(12,OUTPUT); } void loop() { delay(1000); Serial.print("forward"); digitalWrite(9,HIGH); digitalWrite(10,LOW); digitalWrite(11,HIGH); digitalWrite(12,LOW); delay(500); Serial.print("backward"); digitalWrite(9,LOW); digitalWrite(10,HIGH); digitalWrite(11,LOW); digitalWrite(12,HIGH); } ))))   Nếu tất cả mọi thứ hoạt động tốt thì bạn có thể kết nối các cảm biến với Arduino như trong Sơ đồ mạch và sử dụng Mã số đầy đủ ở cuối. Như bạn thấy, tơi đã lắp một cảm biến   siêu   âm   lên   phía   trước     hai     cảm   biến   hồng   ngoại       hai   bên   robot. Tản nhiệt được lắp vào L293D chỉ trong trường hợp vi mạch nóng lên nhanh   Bạn cũng có thể thêm vài phần phụ như thế này   Đây là một sắp xếp Sweeping có thể  được đặt trên cả  hai đầu của phần phía trước đó sẽ đẩy bụi dọc theo các mặt vào khu vực hút   Hơn nữa, bạn cũng có một lựa chọn để  làm một  phiên bản nhỏ  hơn của máy hút bụi  này như thế này ADC   is   the   Analog   to   Digital   converter,   which   converts   analog   data   into   digital format; usually it is used to convert analog voltage into digital format. Analog signal has   infinite  no   of  values   like   a  sine   wave  or   our   speech,   ADC  converts  them  into particular levels or states, which can be measured in numbers as a physical quantity Instead  of  continuous  conversion,  ADC  converts  data  periodically,  which  is  usually known as sampling rate. Telephone modem is one of the examples of ADC, which is used   for   internet,   it   converts   analog   data   into   digital   data,   so   that   computer   can understand,   because   computer   can   only   understand   Digital   data   The   major advantage,   of   using   ADC   is   that,   we   noise   can   be   efficiently   eliminated   from   the original signal and digital signal can travel more efficiently than analog one. That’s the reason that digital audio is very clear, while listening   In present time there are lots of microcontrollers in market which has inbuilt ADC with one or more channels. And by using their ADC register we can interface. When we select 8051 microcontrollerfamily for  making  any  project, in which  we  need of  an ADC   conversion,   then   we   use external   ADC   Some   external   ADC   chips   are 0803,0804,0808,0809 and there are many more. Today we are going to interface 8­ channel ADC with AT89s52 Microcontroller namely ADC0808/0809   Components:  8051 Microcontroller (AT89S52)  ADC0808/0809  16x2 LCD  Resistor (1k,10k)  POT(10k x4)  Capacitor(10uf,1000uf)  Red led  Bread board or PCB  7805  11.0592 MHz Crystal  Power  Connecting wires   ADC0808/0809: ADC0808/0809 is a monolithic CMOS device and microprocessor compatible control logic and has 28 pin which gives 8­bit value in output and 8­ channel ADC input pins (IN0­IN7)  Its resolution is 8 so it can encode the analog data into one of the 256 levels (2 8)   This device has three channel address line namely: ADDA, ADDB and ADDC for selecting channel. Below is the Pin Diagram for ADC0808: ADC0808/0809 requires  a clock pulse for conversion. We can provide it by using oscillator  or   by  using  microcontroller   In  this  project  we  have  applied  frequency  by using microcontroller We can select the any input channel by using the Address lines, like we can select the input line IN0 by keeping all three address lines (ADDA, ADDB and ADDC) Low. If we want to select input channel IN2 then we need to keep ADDA, ADDB low and ADDC high. For selecting all the other input channels, have a look on the given table: ADC Channel Name ADDC PIN ADDB PIN ADDA PIN IN0 LOW LOW LOW IN1 LOW LOW HIGH IN2 LOW HIGH LOW IN3 LOW HIGH HIGH IN4 HIGH LOW LOW IN5 HIGH LOW HIGH IN6 HIGH HIGH LOW IN7 HIGH HIGH HIGH                                                                                              Circuit Description: Circuit   of “Interfacing   ADC0808   with   8051” is   little   complex   which   contains   more connecting wire for connecting device to each other. In this circuit we have mainly used AT89s52 as 8051 microcontroller, ADC0808, Potentiometer and LCD A 16x2 LCD is connected with 89s52 microcontroller in 4­bit mode. Control pin RS, RW and En are directly connected to pin P2.0, GND and P2.2. And data pin D4­D7 is connected   to   pins   P2.4,   P2.5,   P2.6   and   P2.7   of   89s52   ADC0808   output   pin   are directly connected to port P1 of AT89s52. Address line pins ADDA, ADDB, AADC are connected at P3.0, P3.1, and P3.2   ALE   (Address   latch   enable),   SC   (Start   conversion),   EOC   (End   of   conversion),   OE (Output enable) and clock pins are connected at P3.3, P3.4, P3.5, P3.6 and P3.7 And   here   we   have   used   three   potentiometers   connected   at   pin   26,   27,   and   28   of ADC0808 A 9 volt battery and a 5 volt voltage regulator namely 7805 are used for powering the circuit     Working: In this project we have interfaced three channels of ADC0808. And for demonstration we have used three variable resistors. When we power the circuit then  microcontroller initialize the LCD by using appropriate command, gives clock to ADC chip,   selects ADC channel by using address line and send start conversion signal to ADC. After this ADC   first   reads   selected   ADC   channel   input   and   gives   its   converted   output   to microcontroller. Then microcontroller shows its value at Ch1 position in LCD. And then microcontroller  changes ADC channel  by using  address line.  And  then  ADC  reads selected channel and send output to microcontroller. And show on LCD as name Ch2 And like wise for other channels Working   of   ADC0808 is   much   similar   to   working   of   ADC0804   In   this,   first microcontroller   provides   a   500   KHz   clock   signal   to   ADC0808, using the Timer 0 interrupt, as ADC requires clock signal to operate. Now microcontroller sends a LOW to HIGH level signal to ALE pin (its active­high pin) of ADC0808 to enable the latch   in   the   address   Then   by   applying   HIGH   to   LOW   Level   signal   to   SC   (Start Conversion), ADC starts analog to digital conversion. And then wait for the EOC (End of   Conversion)   pin   to   go   LOW   When   EOC   goes   LOW,   it   means   analog   to   digital conversion has been completed and data is ready to use. After this, microcontroller enables the output line by applying a HIGH to LOW signal to OE pin of ADC0808 ADC0808 gives ratio metric conversion output at its output pins. And the formula for radiometric conversion is given by: Vin/(Vfs­Vz)= Dx/(Dmax­Dmin) Where  Vin is   input   voltage Vfs is   full   Vz is   zero Dx is   data   point Dmax is   Maximum   Dmin is Minimum data limit   for scale     being data         conversion Voltage voltage measure limit   Program Explanation: In the program, first of all we include header file sand defines variable and input & output pins for ADC and LCD # include #include sbit ale=P3^3; sbit oe=P3^6; sbit sc=P3^4; sbit eoc=P3^5; sbit clk=P3^7; sbit ADDA=P3^0; //Address pins for selecting input channels sbit ADDB=P3^1; sbit ADDC=P3^2; #define lcdport P2 //lcd sbit rs=P2^0; sbit rw=P2^2; sbit en=P2^1; #define input_port P1 //ADC int result[3],number; Function for creating the delay has been created (void delay), along with some LCD functions like for LCD initialization, printing the string, for LCD commands etc. You can easily   find   them   in   Code   Check   this   article   for LCD   interfacing   with   8051 and   its functions After this in main program we have initialize LCD and set the EOC, ALE, EO, SC pins accordingly.  void main() { int i=0; eoc=1; ale=0; oe=0; sc=0; TMOD=0x02; TH0=0xFD; lcd_ini(); lcdprint(" ADC 0808/0809 "); And then program reads the ADC and stores ADC output in a variable and then sends it to LCD after decimal to ASCII conversion, using void read_adc() and void adc(int i) functions: void read_adc() { number=0; ale=1; sc=1; delay(1); ale=0; sc=0; while(eoc==1); while(eoc==0); oe=1; number=input_port; delay(1); oe=0; } void adc(int i) { switch(i) { case 0: ADDC=0; ADDB=0; ADDA=0; lcdcmd(0xc0); read_adc(); Code:  # include #include sbit ale=P3^3;   sbit oe=P3^6;  sbit sc=P3^4;  sbit eoc=P3^5;   sbit clk=P3^7;   sbit ADDA=P3^0;  //Address pins for selecting input channels sbit ADDB=P3^1; sbit ADDC=P3^2; #define lcdport P2  //lcd  sbit rs=P2^0; sbit rw=P2^2; sbit en=P2^1; #define input_port P1  //ADC int result[3],number; void timer0() interrupt 1  // Function to generate clock of frequency 500KHZ using Timer 0 interrupt { clk=~clk; } void delay(unsigned int count)   { int i,j; for(i=0;i

Ngày đăng: 13/12/2019, 14:26

TỪ KHÓA LIÊN QUAN

w