Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет Леонид Каганов ([info]lleokaganov)
@ 2018-07-29 19:54:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Entry tags:программирование, сделай сам, электроника

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>