1. THÔNG BÁO TUYỂN ADMIN DIỄN ĐÀN 2013
    Tìm kiếm nhà trọ - Ở ghép
    THÔNG BÁO BÁN ÁO SPKT.NET CHO THÀNH VIÊN DIỄN ĐÀN


    HÃY TÌM KIẾM Ở ĐÂY TRƯỚC KHI ĐẶT CÂU HỎI
    {xen:phrase loading}

Pic and Robocon

Thảo luận trong 'Điều khiển tự động ô tô' bắt đầu bởi snoppy203, 28 Tháng mười hai 2006.

  1. snoppy203 Guest

    Số bài viết: 0
    Đã được thích: 0
    Điểm thành tích: 0
    SỬ DỤNG VI ĐIỀU KHIỂN PIC

    - Ngày nay vi điều khiển được sử dụng rất nhiều trong lĩnh vực điều khiển tự động, với những ai quan tâm đến cuộc thi robocon thì đây có thể xem như là 1 lĩnh vực mà các đội thường gặp phải rất nhiều khó khăn và rất mong muốn lập trình để điều khiển được chú robot mà mình tạo ra. Mục này được tạo ra nhằm giúp đỡ các bạn sinh viên trong khoa CKD nói riêng hay trong trường SPKT nói chung có thể chia sẻ cho nhau nhiều hơn về lĩnh vực điều khiển lập trình. Hy vong tôi có thề phần nào giúp đỡ các bạn bằng cách chia sẽ ít nhiều kinh nghiệm trong lập trình mà mình đã từng có.
    - Trước hết chúng ta cần biết hiện nay có những dòng vi điều khiển nào và những ưu nhược điểm riêng của nó.
    - Đa số các sinh viên đều được tiếp cận với dòng vi điều khiển 89 nổi bật như các dòng 89S với khả năng self programming tức bạn chỉ cần 1 sợi bus 6 đầu dây là bạn đã có sẵn 1 mạch nạp đơn giản và cực kì rẻ với giá khoảng 15.000 cho sợi bus đó và cổng LPT, do đó tôi khuyên bạn nếu có mua vdk dòng 89 nên chọn những con dòng 89S thay vì mua 89C để đỡ tốn tiền mua thêm 1 mạch nạp với giá trên 100.000 trong khi đó bạn có thể mua được cổng LPT ( cổng máy in ) và sợi bus 6 sợi với giá rẻ hơn nhiều. Nhưng có thể nói nếu sử dụng dòng vdk 89 thì ta sẽ thấy viêc thiết kế mạch sẽ khó khăn hơn và ở 89 dễ bị nhiễu nên do đó ít ứng dụng nhiều trong công nghiệp và các sản phẩm thương mại. Ngoài ra 89 còn rất ít chức năng hơn so với các dòng vdk khác như AVR, PIC, PSOC, … đa số các dòng này thương gặp trong các thiết bị điều khiển trong lĩnh vực công nghiệp.
    - Tới đây sẽ có nhiều người thắc mắc tại sao fải chọn PIC mà ko chọn AVR hay 89, bởi nếu so với 89 về mặt tính năg và công năg thì có thề xem PIC vượt trội hơn rất nhiều so với 89 với nhiều module được tích hợp sẵn như ADC 10 BIT, PWM 10 BIT, EEPROM 256 BYTE, COMPARATER, VERF COMPARATER…Nhưng về mặt giá cả thì có đôi chút chênh lệch như giá 1 con 89S52 khoảng 20.000 thì PIC16F877A là 60.000 nhưng khi so sánh như thề thì ta nên xem lai fần linh kiện cho việc thíết kế mạch nếu như xài 89 muốn có adc bạn fải mua con adc chẳng hạn như adc0808 hay0809 với giá vài chục ngàn và bộ opamp thì khi sử dung PIC nó đã tích hợp cho ta sẵn các module đó có nghĩa là bạn ko cần mua ADC , opam, EPPROM vì PIC đã có sẵn trong nó rùi ngoài ra bạn sẽ gặp nhiều thuận lợi hơn trong thiết kế board, khi đó board mạch của bạn sẽ nhỏ gọn và đẹp hơn dễ thi công hơn rất nhiều, vì tính về giá cả tổng cộng cho đến lúc thành fẩm thì PIC có thể xem như rẻ hơn 89 fải ko các bạn, 1 điếu đặc biệt nữa là tất cả các con PIC bạn sử dụng thì đều có chuẩn PI tức chuẩn công nghiệp thay vì chuẩn PC ( chuẩn dân dụng ) nếu bạn mua 1 con 89PI thi luc đó giá cả giữa PIC và 89PI thì đã chênh lệch rất nhiều rồi. Và gần đây Philip cũng đã ra 1 dòng 89VRD mới bổ sung them chức năng PWM nhưng giá cả còn rất đắt mà vẫn còn thiếu nhiều tinh năg so với PIC.
    - Vậy còn AVR, bạn có thể xem về thời gian ra đòi thì PIC được xem như là 1 bậc đàn anh, hang ATMEL nhẳm cạnh tranh với PIC đã cho ra đời dòng sản fẩm 90s8535, AT8, hay AT16,… Với sự ra đời sớm hơn AT nhà sản xuất Microchip đã tạo cho dòng vdk này rất nhiều lợi thề, Các trường đại học trên thế giới đặc biệt là ở các nước Châu Âu hầu hết xem PIC là 1 môn học trong bộ môn vi diều khiển nói vậy các bạn cũng thấy sự phổ biến rộng rãi của nó. Ngoài ra PIC còn được rất nhiều nhà sản xuat fần mêm tạo ra các ngôn ngữ hổ trợ cho việc lập trình ngoài ngôn ngữ Asembly ra như nếu ai yêu thích sử dụng ngôn ngữ C thì có thề sử dung CCSC, HTPIC, ai thích sử dung Basic thì có MirkoBasic,… và còn nhiều chương trình khác nữa để hỗ trợ cho việc lập trình bên cạnh ngôn ngữ kinh điển là asmbler thì sử dụng MPLAB IDE. Trong khi AVR hầu như chỉ có CodeVisionC, và Bascom, các bản này ko được load free trong khi PIC thì hầu như là free cho các bạn an tâm sử dụng và đảm bảo ko bi truc trặc so với bản crack. Bên cạnh đó với bề dày của sự phát triển lâu đời PIC đã tạo ra rất nhiều diễn đàn sôi nổi về vdk PIC và công ty Microchip cũng tạo ra diễn đàn www.microchip.com cho chính sản phẩm của minh nhằm hỗ trợ về các kĩ thuật và giải đáp thắc mắc, nếu có vốn tiếng Anh khá bạn có thể tham gia và học hỏi rất nhiều ở đó, ngoài ra còn có những thư viện đồ sộ các project về PIC được cập nhật rất nhiều trên www.piclist.com, có thể nói bạn an tâm lựa chọn dòng vdk PIC bới bạn sẽ có rất nhiều thuận lợi trong việc dễ dàng tìm kiếm các thông tin lập trình các dòng PIC cũng như sự hỗ trợ rất nhiều từ nhà sản xuất.
    - Tóm lại tôi chọn PIC bởi nó được fát triển lâu đời và có rất nhiều dòng sản phầm cho bạn lựa chọn như dòng ,basic PIC 12 midrange la PIC16, hi end là PIC18, gần đây là DS Pic, vói những ai wan tâm đến lập trình dk từ xa thì có rf PIC… và trong mỗi dòng sản fẩm ấy lại có rất nhiều loại chip để đáp ứng mọi nhu cầu của bạn.
    - Nói tới đây sẽ có ng thắc mắc ta chọn loại nao để bắt đầu cho việc lập trình dòg vdk PIC. Có thề nói 1 dòg fổ thông và đáp ứg gần như hầu hết các công dụng thì ta nên chọn dòng fồ thông ban đầu là PIC16F877A. Vậy nó có những những ghì và có dễ lập trình nó hay không.???
    + Tập lệnh để lập trình chỉ có 35 lệnh rất dễ nhớ và dễ học.
    + 8k Flash Rom.
    + 368 Bytes Ram.
    + 5 Port điều khiển vào ra với tín hiệu điề khiển độc lập, với dòng ra cao có thề kích trực tiếp các transirtor mà ko cần wa bộ buffer.
    + 2 bộ dinh thời timer0 va timer2 8 bit có thể lập trình được.
    + 1 bộ định thời timer1 16 bit có thể hoạt động trong chế độ sleep với nguồn xung clock ngoài.
    + 2 bộ module CCP ( bao gồm Capture bắt giữ, Compare so sánh, PWM điều chế xung 10 bit).
    + 1 Bộ ADC với 8 kênh ADC 10 bit .
    + 2 bộ so sánh tương tự hoạt động độc lập.
    + Bộ giám sát định thời Watchdogtimer
    + 1 cồng song song 8 bit với các tín hiệu điều khiển.
    + 1 cổng nối tiếp.
    + Hỗ trợ giao tiếp I2C.
    + 15 nguồn ngắt.
    + Chế độ sleep tiết kiệm năg lượng.
    + Nạp chương trình bằng cổng nốii tiếp ICSP.
    + Tần số hoạt động tối đa là 20Mhz.
    …. Nhiêu đó cũg đủ thấy tại sao cần fải học PIC fải ko các bạn.
    Hôm nay trước mắt là vậy, tôi sẽ cố gắng sẽ hướng dẫn các bạn lam wen với việc hoc PIC wa các tutorial sau nhen!
  2. bmnhy Giảng Viên

    Số bài viết: 914
    Đã được thích: 0
    Điểm thành tích: 0
    Lê duy hay wua, giờ mới xuất hiện nha!!!

    Cơ điện tử ô tô mà sao ẩn mình quá!

    Đăng vài bài nữa đi cho anh em học hỏi với!
  3. snoppy203 Guest

    Số bài viết: 0
    Đã được thích: 0
    Điểm thành tích: 0
    Giờ tôi xin đề cập những ghì ta sẽ học ở Pic, và hy vọng nó sẽ trở thành 1 bộ môn trong chuyên nghành cơ điện tử ôtô sau này. Ở đây tôi sẽ đề cập 1 lượt những nội dung mà ta sẽ học trên diễn đàn. Với mục đích phổ biến kiến thức về VDK Pic các bài học sẽ đi từ dễ tới khó, ban đầu có thể bạn sẽ gặp 1 chút khó khăn nhưng khi vượt qua được nó thì công việc sau này là sẽ vô cùng dễ dàng. Nếu có gặp những khó khăn ghì các bạn có thể trực tiếp reply trên diễn đàn, với khả năng và hiểu biết của mình sẽ giảp đáp các khó khăn vì tôi là người đi trước cũng đã gặp nhiều khó khăn có thể tôi sẽ giúp được nhiều cho bạn để thấy việc học Pic sẽ dễ dàng hơn.

    Bài 1: Tổng quan về vi điều khiển PIC.
    Bạn sẽ học ghì ở đây:
    + Sơ đồ khối về Pic các chân port, các thanh ghi trang bộ nhớ.
    + Cách kết nối chúng như thế nào để Pic có thể hoạt động như cấp nguồn ở đâu, sử dung thạch anh loại nào, reset nối ở đâu.
    + Nạp chương trình cho Pic như thế nào. Và sử dụng mạch nạp ghì thiết kế ra sao có dễ hay ko!!!( fải nói là cực kì dễ [IMG])

    Bài 2: Tập lệnh Pic:
    Ta viết chương trình cho Pic bằng ngôn ngữ ghì và tập lệnh của nó ra sao có dễ thuộc và có nhiều không. Ở đây ta nhằm giúp các bạn nắm rõ hơn về cấu trúc của Pic nên tạm thời ta học lập trình cho Pic bằng ngôn nữ ASM, có thể là khá khó nhưng nó giúp ta hiểu rõ nguồn gốc các cách thức thực hiện của Pic như thế nào cũng như qua đó ta nắm rõ hơn về phần cứng của Pic. Một khi đã nắm được chúng ta có thể dễ dang chuyển sang các ngôn ngữ lập trình khác như Pascal, Visual Basic, hay thông dụng hơn là C, việc học bằng ngôn ngữ ASM sẽ giúp ta kiểm soát được các lỗi sinh ra hay cách tối ưu hóa chương trình khi ta viết bằng ngôn ngữ khác. Do đó tôi khuyên bạn hãy bắt đầu và dành chút thời gian cho ngôn ngữ này nó sẽ rất có lợi cho bạn đấy và tôi sẽ dẫn dắt các bạn từng bước một sẽ rất dễ dàng chứ không khó khăn như nhiều người đã nói.
    + Các lệnh sử dụng trong vdk Pic cụ thể là Pic16F877A bao gồm có 35 lệnh, với số lệnh ít như vây tôi tin các bạn sẽ dễ dàng cho việc học của mình, chứ không như AVR số lệnh lên tới hơn cả 100 lệnh rất dễ quên do vậy học Pic bằng ASM la sẽ dễ dàng hơn học AVR cũng cùng ngôn ngữ ASM fải không!!! Chỉ dành ra khoảng 3 tiếng là bạn đã có thể nắm thành thạo cách sử dụng các lệnh rồi đấy, bởi nó chỉ có 35 lệnh thôi mà.

    Bài 3: Ứng dụng học tập lệnh
    + Ta sẽ học cách điều khiển I/O có nghĩa là sẽ khai báo cho pic như thế nào để có thể nó hoạt động
    + Học cách viết 1 delay đơn giản và ứng dụng ra điều khiển chớp tắt các đèn Led.
    + Nâng cấp cách viết delay làm cho việc delay dễ dang hơn, cách viết 1 chương trình con như thế nào.

    Bài 4: Kỹ thuật bảng
    + Cách tạo 1 bảng tra trên Pic như thế nào.

    Bài 5: Giới thiệu chương trình soạn thảo lập trình
    + Ta đã học cách viết lệnh, học viết delay, và tạo bảng tra như thế nào, nhưng ta sẽ viết chúng ở đâu và viết bằng chương trình ghì?Ở đây sẽ giới thiệu chương trình MPLAB IDE bạn có thể load free tại trang chủ của Microchip.
    + Cách cài đặt chương trình MPLAB IDE thiết lập cho 1 chương trình soạn thảo nói chung.

    Bài 6: Timer
    + 16F877A co 3 timer và ta sẽ học cách khởi tạo các timer này
    + Khởi tạo Timer0.
    + Khởi tạo Timer1.
    + Khởi tạo Timer2.
    + Ứng dụng timer để lam delay
    + Cách sử dụng timer ở chế độ counter để đọc giá trị từ encoder.(trong robocon dùng encoder để xác định chính xác quãng đường robo chạy là bao nhiêu còn trong công nghiệp dùng để đếm sản phẩm,….)

    Bài 7: Ngắt
    + Cấu trúc của ngắt, các nguồn ngắt.
    + Khởi tạo ngắt và vào ra ngắt như thế nào.
    Tóm lại là tất tần tật về ngắt và sẽ cung cấp cho các bạn 1 đoạn code mẫu vào ra ngắt và cách thiết lập trình tự thứ tự ngắt.

    Bài 8: Module ADC
    + Khởi tạo ADC thế nào, đọc giá trị chúng ở đâu?
    + Cách làm 1 cảm biến dò đường có khả năg tự học sân dựa trên ADC
    + Ứng dụng ADC để đo nhiệt độ.

    Bài 9: Module CCP
    Một module vô cùng thú vị với nhiều chức năng Capture, Compare, PWM.
    + Module Capture dùng để bắt giữ tín hiệu khi xảy ra.
    + Module Compare dùng để so sánh giá trị.
    + Module PWM dùng để điều chế xung, trong robocon dùng để điều khiển tốc độ động cơ rất hữu ích cho các bạn làm robo khi có module này khi đó việc điều khiền tốc độ động cơ vô cùng dễ dàng .

    Bài 10: Ứng dụng điều khiển động cơ
    + Điều khiển động cơ DC.
    + Điều khiển Step motor.
    + Điều khiển mini servo motor.
    + Ứng dung ADC điều khiển tốc độ.

    Bài 11: Module Comparaer va Voltage Reference
    + Cách khởi tạo Comparater và Voltage Reference.
    + Chuyển đổi xung dạng sin sang dạng xung vuông từ Pic.
    + Úng dụng đọc tần số từ điện xoay chiều ở nhà bạn có đúng là 50Hz ko?
    + Trên ôtô , xe gắn máy thì ta sẽ ứng dụng viết chương trình đọc tốc độ động cơ từ cảm biến G, Ne. chỉ với việc đưa dây tín hiệu về Pic là ta có thể biết dc tốc độ động cơ.

    Bài 12: Module EEPROM
    + Đây là bộ nhớ không mất dữ liệu khi mất điện
    + Cách khởi tạo và đưa giá trị vào EEPROM.
    + 1 ứng dụng khá thú vị là viết chương trình điều khiển vi trí và nhớ vị trí ghế trên xe, ngoài ra cách lưu giá trị cảm biến tự học trên eeprom.

    Bài 13: Điều khiển LCD (màn hình tinh thể lỏng)
    + Giới thiệu LCD 16x2
    + Cách viết xuất giá trị thông tin ra cho LCD.
    + Sử dụng LCD ở dạng 8 bit .
    + Sử dung LCD ở dạng 4 bit.

    Bài 14: Chuẩn giao tiếp I2C
    + I2C là ghì?
    + Làm cách nào giao tiếp giữa 2 hay nhiều con Pic làm việc độc lập với nhau mà chỉ sử dụng có 2 dây (vô cùng hay đó các bạn).

    Đó là toàn bộ module cho chương trình học vdk PIC sau khi học xong tôi nghĩ các bạn sẽ làm được nhiều hơn nữa. Tạm thời là 14 bài từ cấp độ dễ tới khó, các bạn cần phải học tuần từ bài một theo thứ tự, đừng vì thích bài này mà bỏ bài kia bởi các bài có sự liên quan chặt chẽ với nhau. Có thể 14 bài nay là chưa đủ nếu có yêu cầu hay bổ sung ghì thêm mà các bạn cần thì có thể nói với tôi, mong rằng nó sẽ đầy đủ thêm cho các bạn.
  4. bmnhy Giảng Viên

    Số bài viết: 914
    Đã được thích: 0
    Điểm thành tích: 0
  5. bmnhy Giảng Viên

    Số bài viết: 914
    Đã được thích: 0
    Điểm thành tích: 0
    <div class='quotetop'>QUOTE (bmnhy @ Dec 28 2006, 11:59 PM) <{POST_SNAPBACK}></div><div class='quotemain'>Hoành tráng quá! mà sao lâu quá không thấy gì nhỉ!!

    Gằng lên!![/b][/quote]

    Lê Duy sao chưa xúc tiến thêm nhỉ????

    Cố lên nào!!!
  6. chuyen.1041022 Guest

    Số bài viết: 0
    Đã được thích: 0
    Điểm thành tích: 0

Chia sẻ trang này