Welcome & Happy Holidays!
Kết quả 1 đến 3 của 3
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Dò Line dùng ADC Avr + CB Siêu âm - BK-VS

    Đây là Code mình dùng tại vòng trường và vòng ĐH Đà Nẵng năm 2013. vòng miền Trung và vòng toàn quốc thì đội mình không dò Line nữa mà dùng CB Gyro kết hợp Encoder để chạy theo toạ độ góc.
    -Ý tưởng: Dùng một chip Slaver Atmega8 để thực hiện vừa dò Line vừa đọc cảm biến siêu âm.


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

    -Ưu điểm:
    +không làm ảnh hưởng hoạt động của Master nhưng vẫn có thể dò Line và đọc CB siêu âm chỉ với 1 chip Slaver.
    +Sử dùng chuẩn giao tiếp SPI nên truyền khá ổn định.
    +Dùng ADC để đọc cảm biến nên có khả năng tự lấy mẫu.
    -Nhược điểm:
    +Dùng chip dạng DIP nên chỉ đọc 6 kênh ADC. theo mình nghĩ là vừa đủ dùng.
    +Chỉ có thể chọn 1 trong 2 chức năng. nếu cho cả 2 chức năng hoạt động có thể làm treo chip hoặc tín hiệu cảm biến đọc về không chuẩn xác.
    +khi đổi chức năng phải truyền 2 lần.
    -Hoạt động:
    +Ý tưởng về cách giao tiếp: nếu chip Master truyền 0 thì Slaver sẽ chuyển sang chế độ đọc ADC, tắt siêu âm và trả về trạng thái của 6 cảm biến quang (nằm trên vạch trắng hay không). Nếu truyền về giá trị khác 0 thì bật siêu âm, tắt ADC và tắt luôn Led ss trắng dùng dò Line để tiết kiệm Pin. Giá trị trả về là trạng thái của CB siêu âm. so sánh khoảng cách siêu âm đọc được với giá trị mà Master truyền về theo đơn vị cm. trả về giá trị lớn hơn hay nhỏ hơn. (Trong chương trình dưới đây thì mình mặc định là 400mm. không xét giá trị master truyền về như ý tưởng. code ý tưởng mình viết ở 1 máy khác mà chưa tìm lại được. hix. lúc nào tìm lại được mình sẽ up lên lại)
    +Về CB siêu âm thì mình nghĩ tài liệu trên mạng nói khá nhiều và kỹ nên mình không bàn ở đây.
    +Về phần dò đường ADC: cách của mình làm là bật led ss trắng dò đường lên, đặt toàn bộ led vào Line trắng, Nhấn nút 1 để lấy mẫu. cách lấy mẫu là đọc giá trị ADC 20 lần rồi lấy trung bình cộng. lưu 6 giá trị mẫu đọc được vào EEPROM. Khi dò đường thì đọc giá trị ADC trên mỗi kênh. so sánh với giá trị mẫu trong khoảng: mẫu + dung sai. ở đây mình dùng dung sai = 40. dung sai càng lớn thì độ nhạy càng cao, bù lại thì độ chính xác thấp. dung sai lớn thì độ nhạy kém song độ chính xác vẫn không đảm bảo. phương pháp này không được tối ưu lắm vì vẫn không dò được đoạn Line từ khu khởi động đến cùng trái đất do 2 màu khá tương đồng. còn các đoạn khác thì tương đối ổn định.
    Trong phần này có lib LCD dùng 595 nên mình up luôn sơ đồ mạch ở đây. Code + mạch còn hơi cẩu thả. mong các bác chém nhẹ và góp ý thêm. Còn ý tưởng của mình là vậy, các bạn có thể dùng luôn hoặc phát triển để hoàn thiện hơn. Cảm ơn các bạn đã quan tâm.


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


  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    anh cho em hỏi chút, cái SPI đó để truyền đi đâu vậy?

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi trịnhtrần92
    anh cho em hỏi chút, cái SPI đó để truyền đi đâu vậy?
    SPI đó để giao tiếp với con IC chủ.

 

 

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à 09:48 PM. Diễn đàn sử dụng vBulletin® Phiên bản 4.2.5.
Bản quyền của 2024 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.