Welcome & Happy Holidays!
Trang 1 của 2 12 CuốiCuối
Kết quả 1 đến 10 của 13
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Sensor dò line dùng ADC

    Như các bạn đã biết năm nào mỗi năm Robocon tổ chức một lần và việc dò line với các robot là không thể thiếu dù công nghệ tới đâu. Sensor dò line thường không ổn định do điều kiện về ánh sáng và độ nhám, bóng của sân thi đấu không ổn định. Vậy nên dò line ổn định đã là nỗi băn khoăn với tất cả anh em làm Robot. Ngoài thị trường hiện nay đã bán nhiều loại sensor dò line mà cơ bản là ổn định nhưng giá thành khá cao đối với sinh viên.
    Với tut này mình hy vọng sẽ góp phần nào công sức cho anh em khi làm robot.

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mình Up tiếp phần sơ đồ nguyên lý lên cho các bạn. Nói chung sơ đồ này mình đã chỉnh sửa từ sơ đồ cũ nên mình nghĩ nó sẽ là ổn định nhất. Các bạn chú ý mình dùng Atmega8 kiểu SMD nên mới có đủ 8 ADC còn Atmega8 kiểu chân DIP chỉ có 6 ADC thôi. Và khi dùng Full 8 ADC thì chúng ta chỉ có thể dùng kiểu 8bit thôi.


    [IMG]http://*************/attachments/4959/[/IMG]

  3. #3
    Ngày tham gia
    May 2016
    Bài viết
    0
    Bận quá nên quyên không UP code lên cho các bạn tham khảo.
    Hiện tại code này đã chạy nhưng hôm nào rỗi rỗi mình sẽ viết lại y hệt các mạch sensor họ đang bán trên thị trường cho mọi người.


    Mã:
    // Vesion 1.0
    #include <mega8.h>
    #include <delay.h>
    #include <stdio.h>
     
    #define ADC_VREF_TYPE 0x20
     
    unsigned char read_adc(unsigned char adc_input)
    {
    ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
    delay_us(10);
    ADCSRA|=0x40;
    while ((ADCSRA & 0x10)==0);
    ADCSRA|=0x10;
    return ADCH;
    }
                                                       
    unsigned char temp_adc[8]={0,0,0,0,0,0,0};  // mang RAM doc ADC dung de so sanh
    unsigned char w[8] = {1,2,4,8,16,32,64,128};
    eeprom unsigned char mau_adc[8] ;  // mang rom luu gia tri lay ma so sanh
    unsigned char sensor = 0x00;
     
    #define button PINB.0
    #define out_sensor PORTD
     
    void ghi_adc_in_rom (void) // chuong trinh thuc hien ghi ADC vao ROM
    {
        unsigned char i;
        for(i=0;i<8;i++)
        {
            mau_adc[i] = read_adc(i);
            delay_ms(20);    // thuc hien tre thoi gian ghi
        }
    }
     
    void doc_adc(void)    // thuc hien viec doc
    {
        unsigned char j; 
        sensor = 0x00;
        temp_adc[0] = read_adc(0);
        temp_adc[1] = read_adc(1);
        temp_adc[2] = read_adc(2);
        temp_adc[3] = read_adc(3);
        temp_adc[4] = read_adc(4);
        temp_adc[5] = read_adc(5);
        temp_adc[6] = read_adc(6);
        temp_adc[7] = read_adc(7);
        for(j=0;j<8;j++)
        {
            if((mau_adc[j]-3) < temp_adc[j])  // kiem tra so sanh voi gia tri ADC mau
            {
                sensor |= w[7-j];  // thuc hien cong don gia tri 
            }               
            else sensor |= 0;
        }
    }
     
    void main(void)
    {
    PORTD = 0xFF;
    DDRD = 0xFF;
     
    PORTB = 0Xff;
    DDRB = 0x00;
    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;
    SFIOR=0x00;
     
    // ADC initialization
    // ADC Clock frequency: 500.000 kHz
    // ADC Voltage Reference: AREF pin
    // Only the 8 most significant bits of
    // the AD conversion result are used
    ADMUX=ADC_VREF_TYPE & 0xff;
    ADCSRA=0x84;
    while (1)
          { 
            if(!button)
            {                     
                while(!button);
                out_sensor = 0x00;
                ghi_adc_in_rom(); 
                delay_ms(100);   
            }
            doc_adc();
            out_sensor = sensor; // dua gia tri do duoc ra PORTD
                     
          }
    }

  4. #4
    Ngày tham gia
    Jan 2016
    Bài viết
    0
    Trích dẫn Gửi bởi dainv
    Như các bạn đã biết năm nào mỗi năm Robocon tổ chức một lần và việc dò line với các robot là không thể thiếu dù công nghệ tới đâu. Sensor dò line thường không ổn định do điều kiện về ánh sáng và độ nhám, bóng của sân thi đấu không ổn định. Vậy nên dò line ổn định đã là nỗi băn khoăn với tất cả anh em làm Robot. Ngoài thị trường hiện nay đã bán nhiều loại sensor dò line mà cơ bản là ổn định nhưng giá thành khá cao đối với sinh viên.
    Với tut này mình hy vọng sẽ góp phần nào công sức cho anh em khi làm robot.
    Cậu giải thích cho mình đoạn mạch L C dc k ?

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Ý của bạn muốn nói tới mạch có cuộn cảm và tự điện ở #2 đúng không. Cái này đơn giản chỉ là mạch lọc thôi bạn à.

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi dainv
    Ý của bạn muốn nói tới mạch có cuộn cảm và tự điện ở #2 đúng không. Cái này đơn giản chỉ là mạch lọc thôi bạn à.
    ah tôi biết là mạch lọc.nhưng tôi muốn hỏi là so với k mạch lọc nó như thế nào?Và tính toán thông số mạch loc ấy?

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mạch này mình làm hoàn toàn theo khuyến cáo của nhà sản xuất, vì vậy mình không quan tâm công thức cụ thể để tạo ra nó.


    [IMG]http://*************/attachments/6447/[/IMG]

  8. #8
    Ngày tham gia
    Mar 2016
    Bài viết
    0
    Đội robocon của mình năm nào cũng dùng phương pháp này để dò vạch. Cách này có ưu điểm là có thể "học" sân mới chứ không bị fix cứng hoặc phải điều chỉnh lại bằng chiết áp như loại thông thường.

    Thanks anh dainv đã chia sẻ.

  9. #9
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    bạn chho mình hỏi đọc adc từ senser đâu vào với
    mình đang học làm robot dò đuwong

  10. #10
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Cái này mình thường hay lấy cái giá trị ngưỡng bằng giá trị vạch+giá trị của nền rồi chia cho 2. So sánh nếu như lớn hơn (hoặc là nhỏ hơn tùy loại sensor) ngưỡng thì là vạch trường hợp còn lại thì là nền thôi.

 

 
Trang 1 của 2 12 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •  
Múi giờ GMT +7. Bây giờ là 11:43 AM. Diễn đàn sử dụng vBulletin® Phiên bản 4.2.5.
Bản quyền của 2025 vBulletin Solutions, Inc. Tất cả quyền được bảo lưu.
Ban quản trị không chịu trách nhiệm về nội dung do thành viên đăng.