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

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • FXR
    Thành viên tích cực
    • Feb 2008
    • 163

    #1

    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
  • huynhvantin
    Thành viên mới
    • Sep 2009
    • 12

    #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

    • FXR
      Thành viên tích cực
      • Feb 2008
      • 163

      #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

      • huynhvantin
        Thành viên mới
        • Sep 2009
        • 12

        #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

        • Katecka
          Thành viên tích cực
          • Sep 2008
          • 243

          #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

          • PUMA
            Thành viên chính thức
            • Sep 2006
            • 58

            #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

            • trathuoc
              Thành viên chính thức
              • May 2011
              • 97

              #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

              • tkbang
                Thành viên tích cực
                • May 2009
                • 159

                #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

                • FXR
                  Thành viên tích cực
                  • Feb 2008
                  • 163

                  #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

                  • FXR
                    Thành viên tích cực
                    • Feb 2008
                    • 163

                    #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

                    • tkbang
                      Thành viên tích cực
                      • May 2009
                      • 159

                      #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, 15:17.

                      Comment

                      • quilamspk13
                        Thành viên mới
                        • Jul 2010
                        • 5

                        #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...