lleo (lleo) wrote,
lleo
lleo

Categories:

ServoLLeo для ESP8266/Arduino

это перепост заметки, оригинал находится на моем сайте: http://lleo.me/dnevnik/2018/07/29.html

Довел до ума стандартную библиотеку Servo.h, которая управляет сервоприводами, она не умела регулировать скорость движения сервомоторов. От того Женечка паниковала, махала руками и раскачивалась.

Там сложный балдеж с двумя таймерами, библиотека генерирует импульсы по таймерам сама. Это мне не очень нравилось — в ESP8266 есть и свой генератор импульсов — AnalogWrite() для цифровых пинов генерирует ШИМ-подобный сигнал определенной частоты (сервоприводам нужно обычно 60Гц) с указанной скважностью импульса. Я поиграл с ним, но там другая проблема — все равно надо какие-то таймеры заводить, но даже с ними сложно плавно регулировать, серва движется скачками.

Поэтому я переписал имеющуюся библиотеку, добавив новых функций и проапгрейдив старые (сохзранив совместимость, понятное дело). Заодно часть процедур вывел из класса, заведя им нормальные человеческие вызовы. Чтобы можно было по номеру сервы обращаться.

Получившееся имеет какие-то, похоже, небольшие глюки, связанные с тем, что не вусегда моторы по окончании движения отсоединяются (мне хотелось, чтобы они отсоединялись самостоятельно по достижении выбранной точки). То есть, отключаются, но не всегда.

Меня просили завести Гитхаб. Я не понимаю, зачем, но завел. И выложил. Так что это мой первый проект на Гитхабе: https://github.com/lleokaganov/ServoLLeo

Как встроить библиотеку в папку со своим скетчем в Ардуине я не придумал — не понимаю этих заморочек ардуиновского фреймворка, поэтому у себя сложил ее в системные папки ~/.arduino, заведя /ServoLLeo рядом с /Servo, и вызываю просто как include

[Error: Irreparable invalid markup ('<servolleo.h>') in entry. Owner must fix manually. Raw contents below.]

<small><i>это перепост заметки, оригинал находится на моем сайте: <a href='http://lleo.me/dnevnik/2018/07/29.html'>http://lleo.me/dnevnik/2018/07/29.html</a></i></small><p><center><img src='http://lleo.me/dnevnik/2018/07/29/IMG_20180729_194121.jpg' hspace='5' vspace='5' border='0'></center><p>Довел до ума стандартную библиотеку Servo.h, которая управляет сервоприводами, она не умела регулировать скорость движения сервомоторов. От того Женечка паниковала, махала руками и раскачивалась.<p>Там сложный балдеж с двумя таймерами, библиотека генерирует импульсы по таймерам сама. Это мне не очень нравилось — в ESP8266 есть и свой генератор импульсов — AnalogWrite() для цифровых пинов генерирует ШИМ-подобный сигнал определенной частоты (сервоприводам нужно обычно 60Гц) с указанной скважностью импульса. Я поиграл с ним, но там другая проблема — все равно надо какие-то таймеры заводить, но даже с ними сложно плавно регулировать, серва движется скачками.
<lj-cut><p>Поэтому я переписал имеющуюся библиотеку, добавив новых функций и проапгрейдив старые (сохзранив совместимость, понятное дело). Заодно часть процедур вывел из класса, заведя им нормальные человеческие вызовы. Чтобы можно было по номеру сервы обращаться.<p>Получившееся имеет какие-то, похоже, небольшие глюки, связанные с тем, что не вусегда моторы по окончании движения отсоединяются (мне хотелось, чтобы они отсоединялись самостоятельно по достижении выбранной точки). То есть, отключаются, но не всегда.<p>Меня просили завести Гитхаб. Я не понимаю, зачем, но завел. И выложил. Так что это мой первый проект на Гитхабе: <a href='https://github.com/lleokaganov/ServoLLeo'>https://github.com/lleokaganov/ServoLLeo</a><p>Как встроить библиотеку в папку со своим скетчем в Ардуине я не придумал — не понимаю этих заморочек ардуиновского фреймворка, поэтому у себя сложил ее в системные папки ~/.arduino, заведя /ServoLLeo рядом с /Servo, и вызываю просто как include <ServoLLeo.h> В общем, вчерашний вечер прошел не зря, хоть и закончился утром. Женечка через API Яндекс-Алисы заведена как «навык», отлично отвечает на вопросы голосом, выполняет простейшие команды, умеет даже молиться и материться. Но это мы ее отучим. И то тоже.<p><hr><br><small><i>это перепост заметки, оригинал находится на моем сайте: <a href='http://lleo.me/dnevnik/2018/07/29.html'>http://lleo.me/dnevnik/2018/07/29.html</a></i></small>
Tags: программирование, сделай сам, электроника
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 1 comment