| |||
|
|
ServoLLeo для ESP8266/Arduino Довел до ума стандартную библиотеку 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> |
|||||||||||||||