Thông báo

Collapse
No announcement yet.

RC Servo

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • RC Servo

    Mình mới mua 1 con RC Servo loại dành cho xe đua RC, về viết code test thử:
    Code:
    #include <def_877a.h>
    #device *=16 ADC=8
    #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, BROWNOUT, NOLVP, NOCPD, NOWRT
    #use delay(clock=400000)
    
    void main()
       {
       set_tris_c(0x00);
       setup_ccp1(CCP_PWM);
       setup_timer_2(T2_DIV_BY_16, 249, 1);
       set_pwm1_duty(9);
       while(1)
          {
          } 
       }
    Đọc theo tài liệu của a Fall thì giới hạn của RC Servo khoảng từ 1ms-2ms, mà sao cắm RC Servo dô nó quay liên tục (mình đã cắt cái chốt của Servo để test cho an toàn), ai đã từng điều khiển con RC Servo có thể giúp xem dùm đoạn mã trên có đúng không, giới hạn trên và dưới, điểm trung hòa của con RC này là bao nhiêu??.
    P/S: Con RC Servo mới mua nên chạy tốt (dù đã mod), mình đã cắm vô cái cây mode của xe mô hình của mình thì nó vẫn chạy ok, nhưng tiếc là mình không có thiết bị nào để đo thử độ rộng xung từ cây mode đó hết .
    Last edited by motu; 22-02-2010, 11:18. Lý do: edit
    Dao nao cung la dao, dao cao dai cung la dao.

  • #2
    sao không ai giúp mình hết vậy.
    Dao nao cung la dao, dao cao dai cung la dao.

    Comment


    • #3
      bạn có thể cho minh xin tài liệu về rc servo của anh fall dc ko ạ.mình ko down dc.thanks

      Comment


      • #4
        www.megaupload.com/?d=2TI18MCU
        Đây nè bạn!!!
        Dao nao cung la dao, dao cao dai cung la dao.

        Comment


        • #5
          Sau 2 năm vật lộn với con RC Servo cuối cùng cũng điều khiển được nó, hỏi bên PICVIETNAM và DIENTUVIETNAM mà chẳng ai quan tâm, có vài kinh nghiệm bản thân post lên cho ae nào "gà" giống mình tham khảo.
          - Theo tài liệu mình đọc thì RC Servo hoạt động ở dãy tần số 50Hz (T=20ms), độ rộng xung từ 1ms đến 2ms. Nên ta có 3 cách sau để điều khiển nó:
          1. Sử dụng PWM của PIC, nhưng cách này để tạo ra xung tần số 50Hz hơi bị khó, mình không rành điện tử lắm nhưng hình như do tần số PWM phụ thuộc vào tần số thạch anh nên chỉ thích hợp tạo ra xung tần số cao >500Hz. Lúc đầu mình cũng đã dùng cách này và thất bại cay đắng .
          2. Sử dụng PWM tự tạo bằng cách on off chân output và delay tá lả. Cách củ chuối này chỉ thích hợp để test chơi cho vui.
          3. Tạo PWM dựa trên ngắt timer0, cách này có vẻ hợp lý (do chẳng biết còn cách nào hay hơn ). Dùng ngắt timer0 để on off chân RC2 (tương tự cách 2 nhưng pờ rồ hơn). Và code test được viết như sau:
          Code:
          #include <16F877A.H>
          #include <def_877a.h>
          #device *=16 ADC=8
          #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, BROWNOUT, NOLVP, NOCPD, NOWRT
          #use delay(clock=4000000)
          #define MAX_VALUE 200
          #define Right MAX_VALUE - 20
          #define Left MAX_VALUE - 10
          #define Center MAX_VALUE - 15
          unsigned char pulse_max=0;
          unsigned char pulse_top=0;
          unsigned char top_value=0;
          #INT_TIMER0
          void interrupt_timer0()
           {
             set_timer0(156);
             pulse_max++;            
             pulse_top++;
             if (pulse_max >= MAX_VALUE) 
              {
                pulse_max=0;
                pulse_top=0;
                RC2=0;                // Turn off RC2
              }
             if (pulse_top == top_value) 
              {
                RC2=1;                // Turn On RC2
              } 
           }
          /* TIMER0 period = [(TMR0 + 1)] x 4 x Tosc x (TIMER0 prescaler value) second
             Init TIMER0: Period: Fosc/4 x Prescaler x TMR0
             TIMER0 period = [((255 - 156) + 1)] x 4 x 1/4000000 x 1 = 0.0001 second = 0.1 ms*/
          void main()
           {
             set_tris_c(0x00);
             portC = 0x00;
             top_value = Center;
             enable_interrupts(global);
             enable_interrupts(int_timer0);
             setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
             set_timer0(156);
             while(1)
              {    
                top_value = Left;
                delay_ms(1000);
                top_value = Right;
                delay_ms(1000);    
              } 
           }
          Thật ra những kinh nghiệm trên được dịch từ trang web www.ermicro.com/blog/?p=771 (trang hay nhất trong tất cả các trang hướng dẫn về RC Servo, đọc rất dễ hiểu và giải thích cụ thể) các bạn có thể vào đọc để nghiên cứu kỹ hơn, mình chỉ đọc, hiểu đại khái và cải biên lại vậy thôi, o dịch chính xác và toàn bộ (dịch hết lòi cái ngu ra sao )
          Code này đã test chạy ok, nhưng có một điều không hiểu, đúng ra RC Servo phải quay 1 góc chính xác ứng với 1 độ rộng xung, nhưng thực tế chạy thử thì sau mỗi lần quay qua quay lại, con RC Servo bị lệch 1 góc nhỏ, quay 10 lần nó thành góc lớn, 100 lần nó lệch má nhìn không ra , cao thủ nào giúp e với, h ...e ...l....p!!! (chắc chờ tiếp 2 năm nữa mới có lời giải đáp).
          Thk cả nhà, chúc ngủ ngon, e đi làm việc kiếm tiền mua Servo về test tiếp.
          P/S: Các bạn mới test với con RC Servo lần đầu, nhớ cắt cái chốt cản để có lỡ tay cũng không làm hư nó.
          Dao nao cung la dao, dao cao dai cung la dao.

          Comment

          Về tác giả

          Collapse

          motu Tìm hiểu thêm về motu

          Bài viết mới nhất

          Collapse

          • mèomướp
            Trả lời cho Sửa bộ nguồn DC 60V 45A
            bởi mèomướp
            Dạ hông dám làm thì chắc chắn sẽ mãi ko thể làm được đâu ạ. Nguồn xung dân dụng vài kw giờ rất nhìu ạ, sạc ô tô điện, máy hàn, lò vi sóng, âm ly... tùy chất lượng mà độ phức tạp sẽ khác nhau ạ. Và cái giá phải trả về kinh tế...
            hôm nay, 13:11
          • tuyennhan
            Trả lời cho Sửa bộ nguồn DC 60V 45A
            bởi tuyennhan
            Sửa dạng này thì chuyên còn không dám chắc khộng cháy nổ với linh kiện bán ngoài chợ nói gì khộng chuyên .
            hôm nay, 09:25
          • tuyennhan
            Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
            bởi tuyennhan
            Đúng rồi chọn mua theo tai . ca thì phải toàn dải nhạc thì chỉ cao và thấp thé nên loa ca thì nghe nhạc không hay và ngược lại .
            Muốn ca và nhạc đều hay thì phải dúng 2 giàn , còn nếu chỉ có 1 thì phải chỉnh sửa lại sao cho ca và nhạc đều được không quá dở ....
            hôm nay, 09:10
          • Ng.Phuong.5
            Vấn đề in lỗ khoan ra pdf ở Orcad 9.2
            bởi Ng.Phuong.5
            Vấn đề cũ: khi in mạch ra pdf và bấm chọn Keep Drill Holes Open, in ra thì pdf trắng đen các lỗ chân linh kiện như nhau. Mặc dù có linh kiện phần Drill là 1mm, có linh kiện thì là 3mm. Cho em hỏi cách sửa phần này ở Orcad 9.2 với ạ.
            Mấy con...
            Hôm qua, 19:44
          • viettinh
            Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
            bởi viettinh
            Bác nói đúng quá. Cơ mà muốn mua hàng chính hãng, hàng thương hiệu mà tai lại hợp hàng tầu mới khổ chứ.
            Đang tính mua cái loa tầu nữa cột đằng sau loa này, Loa sony chỉ để hát nhép thôi, có dc k các bác ...
            Hôm qua, 18:12
          • nguyendinhvan
            Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
            bởi nguyendinhvan
            Theo tôi thì khi hpj sản xuất ra cái loa đó, đã có nhiều chuyên gia kỹ thuật hiệu chỉnh, tính toán các phần tử kỹ lưỡng rồi.
            Bây giờ tính toán hiệu chỉnh lại cần có đội ngũ tương đương với nhà sản xuất.
            Cách đơn giản...
            Hôm qua, 00:04
          • mèomướp
            Trả lời cho Sửa bộ nguồn DC 60V 45A
            bởi mèomướp
            Dạ cháu có ý tốt muốn động viên chú ấy ngâm cứu khoa học thôi ạ. Về phần kiểm tra dao động thì chú ấy chưa biết thì sẽ tìm hiểu được là cần những gì ạ, chắc chắn là khi hướng dẫn phần ấy các cô chú nào đó sẽ lưu ý cần loại sò công suất ra tránh cháy nổ rồi ạ....
            08-01-2025, 19:02
          • tuyennhan
            Trả lời cho Sửa bộ nguồn DC 60V 45A
            bởi tuyennhan
            Chủ thớt hỏi có kiểm tra được dao động mà không cấp nguồn thì rõ trình ở mức nào mà mèo còn xúi ngâm cứu nữa ác vậy ....
            08-01-2025, 15:43
          • tuyennhan
            Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
            bởi tuyennhan
            Loa bass đấu trực tiếp không qua phân tần để thành loa toàn dải xem có thoát tiếng khộng , nếu không thoát cần phải sửa lại mạch cs hay âm sắc nếu đủ trình còn nếu thoát ca hay nhưng chưa vừa ý vì bass kém chăc thì đấu lại như cũ và đấu thêm loa mid treble bên ngoài .
            08-01-2025, 15:28
          • mèomướp
            Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
            bởi mèomướp
            Dạ loa tép bé xíu như ngón chân cái thôi ạ. Thiếu gì chỗ để đâu. Quan trọng là gắn thêm nó loa nghe ok hay ko thôi ạ...
            08-01-2025, 11:44
          Đang tải...
          X