Управляем чем угодно откуда угодно

Pins SDK

Обсуждение линуксовой части и софта на борту виртурилки

Pins SDK

Сообщение phoenix367 » 27 сен 2013, 23:00

В процессе исследования виртурилки мне стало понятно, что для написания под нее программ на C++ потребуется SDK для управления пинами ввода-вывода. Поскольку по понятным причинам в природе такого не существует, то возникло желание его разработать и заодно поближе познакомится с особенностями ввода-вывода на виртурилке. Поэтому был запилен проект с использованием тулчейна Codesourcery. Его довольно удачно удалось прикрутить к NetBeans IDE, что существенно облегчило сам процесс разработки. Даже удалось заставить работать отладчик (правда в ограниченном объеме). Сам проект я решил сделать открытым и выложил на гитхабе по адресу https://github.com/phoenix367/v2rpins_sdk.

Сейчас там конечно немного всего - только управление пинами аппаратного PWM и демонстрационная программа. Но надеюсь, что со временем проект удастся развить до нормального состояния.

Если есть желающие присоединиться к разработке - you are welcome. Замечания и пожелания также приветствуются.
phoenix367
 
Сообщения: 193
Зарегистрирован: 09 сен 2013, 00:19

Re: Pins SDK

Сообщение andrewion » 28 сен 2013, 00:54

Добрый день!

Было бы очень круто, если бы у вас в SDK была бы возможность управлять сервой как в ардуино. А то сейчас сижу и курю вики (http://wiki.virt2real.ru/wiki/PPM) как расчитать эти тики и дути так, чтобы можно было бы управлять сервой в градусах, а не магическими заклинаниями формул из вики :D
Аватара пользователя
andrewion
 
Сообщения: 150
Зарегистрирован: 03 сен 2013, 21:46

Re: Pins SDK

Сообщение phoenix367 » 28 сен 2013, 01:34

Так вроде поворот сервопривода на заданный угол зависит от его характеристик, т.е. для разных приводов нужна разная длительность импульсов, чтобы они на одинаковый угол поворачивались. Или я не прав?
phoenix367
 
Сообщения: 193
Зарегистрирован: 09 сен 2013, 00:19

Re: Pins SDK

Сообщение Arle » 28 сен 2013, 11:23

Нужно управление камерой, сервомашинками, управление входами выходами. Ну и работа на андроиде )))
Аватара пользователя
Arle
 
Сообщения: 35
Зарегистрирован: 09 сен 2013, 16:42

Re: Pins SDK

Сообщение Mirmik » 28 сен 2013, 11:43

phoenix367 писал(а):Так вроде поворот сервопривода на заданный угол зависит от его характеристик, т.е. для разных приводов нужна разная длительность импульсов, чтобы они на одинаковый угол поворачивались. Или я не прав?


... Плюс-минус конечно есть... Но лишь в пределах некоторой погрешности.
Практически же интерфейс подавляющего большинства "радиолюбительских" серв стандартный.

Чтобы не быть голословным, у Ардуино есть библиотека Servo.h, которая заводит с полпинка большинство сервоприводов. Одно то, что такая библиотека существует говорит о том, что задача решается.
... и перерастворяясь из одной формы реальности в другую. И вот он я, рядом с вами падаю в эту же нору, тот кто волшебной палочкой вра...
Аватара пользователя
Mirmik
 
Сообщения: 222
Зарегистрирован: 04 сен 2013, 19:20
Откуда: Московская область, Пушкино

Re: Pins SDK

Сообщение Mirmik » 28 сен 2013, 11:49

Вот формула пересчета из градусов, если верить той инфе, что выложил камрад Gol.
(Хотя, должен сказать, что числа, ИМХО немного другие... Даже на видео, идущем в вики видно, что серва не доворачивается.)

#define grade_0 16666
#define grade_180 52380
duty=grade*(grade_180-grade_0)/180+grade_0;

Причем формула подходит не только для серв с лимитом в 180.
... и перерастворяясь из одной формы реальности в другую. И вот он я, рядом с вами падаю в эту же нору, тот кто волшебной палочкой вра...
Аватара пользователя
Mirmik
 
Сообщения: 222
Зарегистрирован: 04 сен 2013, 19:20
Откуда: Московская область, Пушкино

Re: Pins SDK

Сообщение andrewion » 28 сен 2013, 14:11

phoenix367 писал(а):Так вроде поворот сервопривода на заданный угол зависит от его характеристик, т.е. для разных приводов нужна разная длительность импульсов, чтобы они на одинаковый угол поворачивались. Или я не прав?


Вроде правильно пишете. Но на Ардуино мы же просто указываем угол поворота, а не длительность импульсов.
Аватара пользователя
andrewion
 
Сообщения: 150
Зарегистрирован: 03 сен 2013, 21:46

Re: Pins SDK

Сообщение andrewion » 28 сен 2013, 14:15

Mirmik писал(а):Вот формула пересчета из градусов, если верить той инфе, что выложил камрад Gol.
(Хотя, должен сказать, что числа, ИМХО немного другие... Даже на видео, идущем в вики видно, что серва не доворачивается.)

#define grade_0 16666
#define grade_180 52380
duty=grade*(grade_180-grade_0)/180+grade_0;

Причем формула подходит не только для серв с лимитом в 180.


Круто! Спасибо!

хм... что-то тут не так с константами, не совсем корректно работает у меня
Аватара пользователя
andrewion
 
Сообщения: 150
Зарегистрирован: 03 сен 2013, 21:46

Re: Pins SDK

Сообщение Mirmik » 28 сен 2013, 18:55

andrewion писал(а):хм... что-то тут не так с константами, не совсем корректно работает у меня


И я о том же... У меня так 57000 верхний предел стоит...
... и перерастворяясь из одной формы реальности в другую. И вот он я, рядом с вами падаю в эту же нору, тот кто волшебной палочкой вра...
Аватара пользователя
Mirmik
 
Сообщения: 222
Зарегистрирован: 04 сен 2013, 19:20
Откуда: Московская область, Пушкино

Re: Pins SDK

Сообщение scayn » 28 сен 2013, 19:05

Для начала мне кажется необходимо разобраться с пинами. В вики распиновка не бъет. Пытался повесить на них оптические датчики. Только методом научного тыка удалось найти соответствие нескольких пинов. Есть ли точная схема распиновки платы?
И еще пара вопросов. Способ чтения пинов:
Код: Выделить всё
cat /dev/v2r_pins
выдает очень неудобный результат. Раньше писал на delphi. А вот в с++ делаю первые шаги. Я так понимаю нужно создать масив равный количеству пинов и обращаться к нужному элементу. Вопрос №1 в каком формате выдается результат комонды cat /dev/v2r_pins и как его запихнить в массив. Вопрос №2 может есть способ читать напрямую кокретный пин?
Аватара пользователя
scayn
 
Сообщения: 27
Зарегистрирован: 16 сен 2013, 16:14

След.

Вернуться в Софт на виртурилке - SDK, Linux, Github, программирование (C/C++ и др.)

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron