Thông báo

Collapse
No announcement yet.

giúp em điều khiển 20 em RC servo cùng lúc?

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

  • giúp em điều khiển 20 em RC servo cùng lúc?

    em đang làm 1 con robot phải dùng 20 em RC servo. Bác nào có kinh nghiệm đã làm rùi chỉ bảo em với. Thanks các bác nhiều

  • #2
    gì mà nhiu thế, mình làm co 3 cai servo ma củng mệt rồi, con đang kiếm người giúp nè, bạn có được tí nào về servo chưa ban, mình cung nghiên cưu đi, mình đang kiếm trong chuyên mục AVR về sẻvo, ma vân chưa kiếm đựoc gj nề, bạn nào co tí tài liệu nào thì cho mình xin!!!!!!! thank!

    Comment


    • #3
      theo như mình được biết thì RC servo có 3 dây ra là nguồn (mầu đỏ) GND (đen) và dây xung điều khiển (trằng) hoạt động odr tần số 50 đến 60 hz độ rộng sườn dương từ 1 đến 2ms. Tương ứng với các góc quay của RC servo.
      Điều khiển 1 em thì đơn giản nhưng mà điều khiển 20 em lằng nhằng quá

      Comment


      • #4
        cho mình hỏi cái động cơ sevor của bạn co driver chưa thế, ma bạn kiếm ra cái động cơ nao chưa, mình mới ra chợ kiếm ma cha tháy đâu, mình đang dung loại có đĩa ecoder, chưa có mạch driver nên có 2 chan nguôn, và thêm chân của ecoder nữa tuy theo loại ecodor, bạn co bit cho nao ban thi cho minh biết với , mà gja của no mình hỏi cung cao tu 150k den 200 k day

        Comment


        • #5
          -Lập một mảng 20 phần tử, giả sử giá trị từ 0 đến 100 tương ứng góc 0-100% (1ms-2ms)
          -Bật đồng loạt 20 ngõ ra, cho timer chạy cho hết 1ms đầu
          -Bắt đầu ngắt timer mỗi 10us, mỗi lần ngắt cộng dồn một biến nào đó và so sánh với các phần tử trong mảng, nếu nhỏ hơn: giữ nguyên chân đó, nếu lớn hơn: tắt chân
          -Chạy hết 100 lần 10us như vậy cũng là 100%, các chân đã tắt hết thì chờ 20ms lại bắt đầu bật.
          -lập trình sơ bộ là thế, chọn tốc độ chip cao cỡ 8-16MHz để đủ thời gian xử lý hết chừng đó thao tác trong 10us, nâng cao hơn có thể xử lý vòng tròn, mỗi con xử trong 1ms hết 20 con lại quay về đầu
          Đã bỏ nghề về quê chăn gà...

          Comment


          • #6
            Nguyên văn bởi Katecka Xem bài viết
            -Lập một mảng 20 phần tử, giả sử giá trị từ 0 đến 100 tương ứng góc 0-100% (1ms-2ms)
            -Bật đồng loạt 20 ngõ ra, cho timer chạy cho hết 1ms đầu
            -Bắt đầu ngắt timer mỗi 10us, mỗi lần ngắt cộng dồn một biến nào đó và so sánh với các phần tử trong mảng, nếu nhỏ hơn: giữ nguyên chân đó, nếu lớn hơn: tắt chân
            -Chạy hết 100 lần 10us như vậy cũng là 100%, các chân đã tắt hết thì chờ 20ms lại bắt đầu bật.
            -lập trình sơ bộ là thế, chọn tốc độ chip cao cỡ 8-16MHz để đủ thời gian xử lý hết chừng đó thao tác trong 10us, nâng cao hơn có thể xử lý vòng tròn, mỗi con xử trong 1ms hết 20 con lại quay về đầu
            Cách của bạn là đúng rồi nhưng mà phần điều xung (trong ngắt timer) này chiếm thời gian xử lý khá nhiều và tần suất khá cao (cứ 10us nhảy vào ngắt 1 lần), không biết yêu cầu của đề tài có giám sát hoặc giao tiếp thêm gì khác phức tạp không chứ nếu hệ thống làm nhiều việc thì cũng mệt đó, nếu xài PIC thì nên xài PIC18 với chế độ PLL4, sử dụng thạch anh 10MHz ta sẽ có tần số tối đa 40MHz (<=> 10MIPS), có như vậy bạn mới có thể xử lý hết 20 output trong thời gian bắt buộc nhỏ hơn 10us và còn để làm việc khác nữa.
            Theo mình an toàn hơn thì nên chia đa xử lý Master-Slave qua I2C hoặc SPI, trong đó các Slave-MCU chỉ làm công tác điều khiển RC Servo, Master chỉ cần truyền dữ liệu về góc quay đến cho các slave lo việc điều khiển. Vấn đề 1 slave-MCU nên điều khiển bao nhiêu RC Servo cho tiết kiệm ? nếu nhiều quá thì khi ngắt truyền thông đến liệu nó có bị ảnh hưởng bởi ngắt timer điều xung không, và nếu ít quá thì gây lãng phí và rườm rà(tốn nhiều MCU), còn không thì lên google xem có IC chuyên dụng nào điều khiển RC Servo không, mua về làm cho khỏe.

            Comment


            • #7
              bạn hiểu về dc servo vậy thì giới thiệu lun cho anh em hiểu đi.mình đang mun làm nhưng chưa bít bắt đầu ntn nữa.
              email:trangonthuocthom@gmail.com

              Comment


              • #8
                chào các bạn, năm ngoái sau khi vật lộn với mấy cái RC servo mấy bữa thì mình phát hiện ra trong trình dịch bascom avr có một chức năng rất hay là điều khiển RC servo
                với mỗi RC servo mình sẽ cấu từ đầu chương trình, và sau chỉ việc gọi nó với giá tri tuơng ưng thui
                chương trinh làm việc khá nhẹ. mình điều khiển 4 RC servo cho con robot tha lữa trong robocon 2011 mà ko có vấn đề gì

                Comment


                • #9
                  Nguyên văn bởi tkbang Xem bài viết
                  chào các bạn, năm ngoái sau khi vật lộn với mấy cái RC servo mấy bữa thì mình phát hiện ra trong trình dịch bascom avr có một chức năng rất hay là điều khiển RC servo
                  với mỗi RC servo mình sẽ cấu từ đầu chương trình, và sau chỉ việc gọi nó với giá tri tuơng ưng thui
                  chương trinh làm việc khá nhẹ. mình điều khiển 4 RC servo cho con robot tha lữa trong robocon 2011 mà ko có vấn đề gì
                  Bác nói rõ hơn được không ạ. Bác có code nào post nên cho anh em tham khảo với. Thank bác nhiều.

                  Comment


                  • #10
                    Nguyên văn bởi tkbang Xem bài viết
                    chào các bạn, năm ngoái sau khi vật lộn với mấy cái RC servo mấy bữa thì mình phát hiện ra trong trình dịch bascom avr có một chức năng rất hay là điều khiển RC servo
                    với mỗi RC servo mình sẽ cấu từ đầu chương trình, và sau chỉ việc gọi nó với giá tri tuơng ưng thui
                    chương trinh làm việc khá nhẹ. mình điều khiển 4 RC servo cho con robot tha lữa trong robocon 2011 mà ko có vấn đề gì
                    Bác nói rõ hơn được không ạ. Bác có code nào post nên cho anh em tham khảo với. Thank bác nhiều.

                    Comment


                    • #11
                      đay la code bascom. nếu bác ko quen viết bằng bascom thì có thể giao tiếp 2 con ic với nhau,một con chỉ để dk rc thôi.
                      đây là code cấu hình timer và RC trong bascom.

                      Config Lcd = 16 * 2
                      Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0

                      'Config Timer0 = Pwm , Pwm = On , Compare Pwm = Clear Up , Prescale = 256

                      Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Compare C Pwm = Clear Up , Prescale = 256

                      Config Timer2 = Timer , Prescale = 256

                      Config Timer3 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Compare C Pwm = Clear Up , Prescale = 256

                      Config Adc = Single , Prescaler = 128 , Reference = Avcc

                      Config Servos = 4 , Servo1 = Portg.1 , Servo2 = Portb.4 , Servo3 = Portg.4 , Servo4 = Portg.0 , Reload = 10 , Timer = Timer0


                      sau đó gọi nó ra thôi
                      Servo(1) = 200
                      Servo(2) = 10
                      Servo(3) = 200
                      Servo(4) = 20
                      ( với mỗi giá trị cho một góc , nếu nhớ ko nhầm hình như tối đa chỉ dược chừng 200 thôi ah)
                      ngôn ngữ của nó giống VB thôi
                      Last edited by tkbang; 24-07-2011, 16:17.

                      Comment


                      • #12
                        vẫn mơ hồ quá bạn ơi, ban có thể share code dc ko??
                        email: quilamspk13@gmail.com
                        cám ơn ban nhiêu ^^

                        Comment

                        Về tác giả

                        Collapse

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

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

                        Collapse

                        Đang tải...
                        X