Raspberry 3 + Troyka Cap + библиотека gpioexp

Тема в разделе "Raspberry Pi", создана пользователем singen, 19 сен 2019.

  1. singen

    singen Нуб

    Приветствую. Пытаюсь запустить микросервопривод с помощью малинки + тройка-cap.
    Не вполне понимаю, какие значения нужно посылать на сигнальный пин сервопривода. Рандомные значения угла поворота в голом виде не работают. Нет ли у кого скетча? Или, может быть, есть специальная питонья библиотека для серво под распберри? Найти не могу.
     
  2. NikitOS

    NikitOS Public enemy Администратор

  3. singen

    singen Нуб

    Спасибо.
     
  4. parovoZZ

    parovoZZ Гуру

  5. NikitOS

    NikitOS Public enemy Администратор

    Нет, я питон не знаю
    Только по инструкции могу сделать
    Да и сайт не мой :)
     
    Igor68 нравится это.
  6. Igor68

    Igor68 Гуру

    И я не питонист так же:)
    По ходу все перешли на питон:(
    Крутые архитекоры нынче пошли. Им проект дома не надо, им проект города подавай. Чтоб значить дома расставлять вдоль улиц.
    Вот и спрашиваю: На кой ляд в железо лезть? Не проще ли купить готовое?!:D
    Шутка:)
     
  7. Igor68

    Igor68 Гуру

    Не спалите малину. Удачи!
     
  8. singen

    singen Нуб

    получилось, спасибо. вероятно, оберну в функцию, которая принимала бы всё-таки угол, и преобразовывала бы в микросекунды, так как сейчас не вполне удобно.
     
  9. singen

    singen Нуб

    Если кому интересно.
    Это делается гораздо проще с помощью pwm на gpio expander'е и соотвествующей библиотеке, есть на этом сайте в разделе вики.
     
  10. Shurik

    Shurik Нерд

    Привет всем! Не могу найти в "соответствующей" библиотеке функции для настройки скважности. Примеры очень скудные. Подскажите, как настроить кроме частоты PWM еще и скважность, чтобы управлять вращением вала серво?
     
  11. singen

    singen Нуб

    в этой библиотеке есть функция analogWrite([здесь указываем пин], [а здесь коэффициент заполнения в виде числа от нуля до единицы])
    например, чтобы дать такую картинку при частоте 250 Гц, нужен такой примерно код:
    Код (Python):
    import gpioexp
    import time
    import signal
    # создаём объект для работы с расширителем портов
    exp = gpioexp.gpioexp()
    # обеспечиваем удобный выход из бесконечного цикла
    def endProcess(signalnum = None, handler = None):
        exit(0)
    signal.signal(signal.SIGTERM, endProcess)
    signal.signal(signal.SIGINT, endProcess)
    # устанавливаем частоту
    exp.pwmFreq(250)
    while True:
        exp.analogWrite(1,0.6) # регулируем скважность, точнее, дьюти сайкл. 0.6 = 60%
     

    Вложения:

  12. Shurik

    Shurik Нерд

    Добрый день!
    Спасибо!
    Правда не понял, где это в WiKi... :)
     
  13. singen

    singen Нуб

    В вики есть ссылка на гитхаб.
    Идёшь по ссылке, открывашь код, смотришь, какие есть функции)
    Не то чтобы это был лучший способ документирования, но что делать.
     
  14. Shurik

    Shurik Нерд

    Ссылку я видел :)
    TroykaCapPython/gpioexp.py
    и установил библиотеку, но то, что analogWrite можно использовать для установки dc на пине PWM - это не тривиально.
    Еще раз спасибо!
     
  15. Shurik

    Shurik Нерд

    Если кому-то будет интересно. Оказалось, что в TroykaCap завышены характеристики ШИМ. Разрядность ШИМ заявлена 16 бит, реально обрезается до 8-ми бит. Т.е. вращать серво можно только с шагом в 7 градусов, :( точнее не получится. Эта игрушка, видимо, предназначалась для функционала АЦП. Но пока не проверял, какая точность измерений реально достижима на этом расширителе. Попросил поддержку исправить информацию в магазине.
     
    singen нравится это.
  16. singen

    singen Нуб

    Интересно, проверю на днях.
     
  17. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Не забывайте - серве нужен дьютицикл только 2,5 % - 12,5%. Ширше она не прожуёт.
    При 8-битном ШИМе - это 6 - 32. Дискретность положений будет - 180 / (32 - 6 -1) = 7,2 град.
     

    Вложения:

    • Servo.JPG
      Servo.JPG
      Размер файла:
      85 КБ
      Просмотров:
      193
    Последнее редактирование: 23 окт 2019