Телескопы покупают здесь


A A A A Автор Тема: Lin_guider - автогид для Linux  (Прочитано 15285 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Galaxy MasterАвтор темы

  • *****
  • Сообщений: 838
  • Благодарностей: 32
    • Сообщения от Galaxy Master
Re: Lin_guider - автогид для Linux
« Ответ #140 : 26 Ноя 2014 [22:52:56] »
Удачи в сборке :)
Debian GNU/Linux

Оффлайн Server28

  • ***
  • Сообщений: 103
  • Благодарностей: 2
    • Сообщения от Server28
Re: Lin_guider - автогид для Linux
« Ответ #141 : 27 Ноя 2014 [22:34:04] »
Отпишусь по результатам портирования на Raspberry Pi
OS Raspbian ver. 3.12
Установка без проблем.
Компиляция идет минут 30 или более.
Для использования GPIO в качестве источника импульсов управления  запустить порт GPIO, для чего 
1. Отсюда
http://wiringpi.com/download-and-install/
установить Wiring Pi.

2. Изменить или принять значения m_gpio_pin[] в файле /lin_guider/src/io_dev/io_gpio.cpp приведенного блока:

   // set default values
   m_gpio_pin[ GPIO_RAP ]  = 27; //RA+
   m_gpio_pin[ GPIO_RAN ]  = 22; //RA-
   m_gpio_pin[ GPIO_DECP ] = 23; //DEC+
   m_gpio_pin[ GPIO_DECN ] = 24;  //DEC-

Значения не являются номером вывода(!) и указаны в маркировке порта после префикса GPIO. По умолчанию это GPIO27, GPIO22, GPIO23 и GPIO24 (схемы маркировки широко представлены в WWW). Номера выводов для приведенных значений 13,15,16 и18 соответственно.

3. Выполнить команды экспорта:
echo "<наименование вывода >" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio<наименование вывода >/direction
для каждого значения наименования вывода, где <наименование вывода > -  актуальное значение для каждого из 4-х используемых пинов. Для значений по умолчанию это:

:~$ echo "27" > /sys/class/gpio/export
:~$ echo "out" > /sys/class/gpio/gpio27/direction
:~$ echo "22" > /sys/class/gpio/export
:~$ echo "out" > /sys/class/gpio/gpio22/direction
:~$ echo "23" > /sys/class/gpio/export
:~$ echo "out" > /sys/class/gpio/gpio23/direction
:~$ echo "24" > /sys/class/gpio/export
:~$ echo "out" > /sys/class/gpio/gpio24/direction

В результате указанные пины RPi назначены для вывода импульсов управления по осям RA и DEC.

После старта из терминала (под иксами) в закладке проверить правильность выбора Device. Если выбран GPIO, в терминальном окне появится вывод текущих значений на пинах управления.
« Последнее редактирование: 27 Ноя 2014 [22:39:17] от Server28 »

Оффлайн Galaxy MasterАвтор темы

  • *****
  • Сообщений: 838
  • Благодарностей: 32
    • Сообщения от Galaxy Master
Re: Lin_guider - автогид для Linux
« Ответ #142 : 28 Ноя 2014 [19:13:25] »
Желаемый результат достигнут?
Debian GNU/Linux

Оффлайн Server28

  • ***
  • Сообщений: 103
  • Благодарностей: 2
    • Сообщения от Server28
Re: Lin_guider - автогид для Linux
« Ответ #143 : 30 Ноя 2014 [02:31:45] »
Как промежуточный - вполне. Импульсы управления получил, а отписался - так ведь думал, может кому пригодится. Lin_guider замечательно поместился в Reaspberry. Рулится  по SSH, даже картинку и самописцы мониторить, калиброваться - все можно делать удаленно.  За программу и помощь - спасибо.

Оффлайн Galaxy MasterАвтор темы

  • *****
  • Сообщений: 838
  • Благодарностей: 32
    • Сообщения от Galaxy Master
Re: Lin_guider - автогид для Linux
« Ответ #144 : 30 Ноя 2014 [23:27:11] »
Да не за что.
RPi + LG + cccd очень активно используют забугорные ластрономы. Как правило несколько человек в месяц пишут подобные вопросы на почту  :)
Debian GNU/Linux

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Lin_guider - автогид для Linux
« Ответ #145 : 01 Дек 2014 [08:38:33] »
А вопрос о том фрагменте кода, которым LG управляет GPIO на RPi здесь будет уместным? ::)
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн Galaxy MasterАвтор темы

  • *****
  • Сообщений: 838
  • Благодарностей: 32
    • Сообщения от Galaxy Master
Re: Lin_guider - автогид для Linux
« Ответ #146 : 01 Дек 2014 [09:26:29] »
А вопрос о том фрагменте кода, которым LG управляет GPIO на RPi здесь будет уместным? ::)

Конечно!
Debian GNU/Linux

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Lin_guider - автогид для Linux
« Ответ #147 : 01 Дек 2014 [09:50:19] »
Есть ли в RPi средства нормального и быстрого руления GPIO, а не через файловый ввод-вывод? Поиск по гуглу обычно заканчивается тоннами ссылок из разряда "GPIO - это просто. Берём питон или баш и пишем в файлы. Уиии!"
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн Galaxy MasterАвтор темы

  • *****
  • Сообщений: 838
  • Благодарностей: 32
    • Сообщения от Galaxy Master
Re: Lin_guider - автогид для Linux
« Ответ #148 : 01 Дек 2014 [10:06:00] »
Есть ли в RPi средства нормального и быстрого руления GPIO, а не через файловый ввод-вывод? Поиск по гуглу обычно заканчивается тоннами ссылок из разряда "GPIO - это просто. Берём питон или баш и пишем в файлы. Уиии!"

Вопрос некорректен. Его можно перефразиррвать как, есть ли средства работы с файлами быстрее баша и т.д. На него ответ - да есть. Если же вас смущает что GPIO управляется через файлы, то тут все в полном порядке со скоростью, т.к. эти файлы (равно как и все файлы в /dev, /proc, /sys) не имеют никакого отношения к диску и привычной файловой системе. Это абстракция создаваемая ядром и драйверами для унификации доступа к устройствам и ядру. Любое устройство в линуксе - есть файл, только хитрый. Не стоит думать, что записав в файл вы кладете информацию на файловую систему, а потом ее кто-то читает и это медленно. Работая с файлом устройства вы имеете прямое соединение с его драйвером и именно драйвер сразу получает всю информацию.

PS. GPIO драйвер в LG пример быстрого управления GPIO, если можно так выразиться.
« Последнее редактирование: 01 Дек 2014 [10:13:09] от Galaxy Master »
Debian GNU/Linux

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Lin_guider - автогид для Linux
« Ответ #149 : 01 Дек 2014 [10:26:01] »
Да, согласен, вопрос некорректен, но Вы поняли верно. И это всё понятно, но для того, чтобы записать 1, надо открыть файл, записать символ, закрыть файл. И только после закрытия файлового дескриптора напряжение выходного пина меняется. Я эксперимента ради (правда на CubieBoard, но не суть) хотел сделать программный ШИМ. Если поддерживать какой-то коммуникационный протокол на таких средствах, получится долго и нудно. А к регистрам ввода-вывода пользовательский код едва ли имеет доступ, так ведь?
Можно ознакомиться с этим драйвером быстрого управления GPIO и что почитать для продолжения, чтобы не захламлять тему?
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн Galaxy MasterАвтор темы

  • *****
  • Сообщений: 838
  • Благодарностей: 32
    • Сообщения от Galaxy Master
Re: Lin_guider - автогид для Linux
« Ответ #150 : 01 Дек 2014 [17:52:25] »
И только после закрытия файлового дескриптора напряжение выходного пина меняется.

Это неверное утверждение! Меняется сразу же после записи. Это полный бред постоянно инициализировать драйвер и завершать работу с ним. (См. код модуля в LG) То о чем вы говорите возможно только в случае буферизированного вывода, когда ваша записть в устройство оказывается отложенной, например с помощью fwrite(). Используйте fflush() для сброса буферов и никаких закрытий не потребуется.

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Lin_guider - автогид для Linux
« Ответ #151 : 01 Дек 2014 [18:57:19] »
Вот я тоже по части открытия решил, что это глупость. А вот про очевидное - fflush - я как-то не подумал.... Сам дурак, как обычно.
Большое спасибо!
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн Server28

  • ***
  • Сообщений: 103
  • Благодарностей: 2
    • Сообщения от Server28
Re: Lin_guider - автогид для Linux
« Ответ #152 : 29 Янв 2015 [01:21:48] »
Попробовал установить FTDI-устройство.
Выполнил все пункты кроме:
"Для FTDI-коммутаторов необходимо установить прилагающееся правило udev-а. " Совершенно непонятно, как это выполнить.
Подскажите последовательность команд.
После старта имею:
« Последнее редактирование: 29 Янв 2015 [01:40:25] от Server28 »

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Lin_guider - автогид для Linux
« Ответ #153 : 29 Янв 2015 [08:24:47] »
Как раньше говорили, STFW:
http://rus-linux.net/lib.php?name=MyLDP/sys-conf/udev.html
http://real.kiev.ua/category/avreal/adapters-drivers/usb-ftdi/?langswitch_lang=ru
навскидку вроде то, что надо.
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн DosEclipsesTotales

  • *****
  • Сообщений: 794
  • Благодарностей: 35
  • Mi casa es la Vía Láctea
    • Сообщения от DosEclipsesTotales
Re: Lin_guider - автогид для Linux
« Ответ #154 : 29 Янв 2015 [08:40:33] »
Судя по скрину, автор поста не собрал упомянутую либу и не кинул ее в каталог с бинарником lin_guider. А так же не прочитал пункт 4.7 того же самого ридми. И зачем от рута запускаете?

Оффлайн Server28

  • ***
  • Сообщений: 103
  • Благодарностей: 2
    • Сообщения от Server28
Re: Lin_guider - автогид для Linux
« Ответ #155 : 29 Янв 2015 [12:02:47] »
А так же не прочитал пункт 4.7 того же самого ридми.
Автор все прочитал внимательно. В ридми есть вторая строчка в пункте 7, которая отменяет п.п.7.1-7.4.
Автор выполнил прямую установку пакета и получил квиток об успешном завершении установки.
За внимание конечно спасибо, но вопрос о последовательности команд остался без ответа.
Как всегда приходится читать между строк.



Оффлайн DosEclipsesTotales

  • *****
  • Сообщений: 794
  • Благодарностей: 35
  • Mi casa es la Vía Láctea
    • Сообщения от DosEclipsesTotales
Re: Lin_guider - автогид для Linux
« Ответ #156 : 29 Янв 2015 [13:22:46] »
Если файл /lib/udev/rules.d/92-telescope.rules у вас существует, тогда не пойму вашу проблему с установкой правил. Ну рестартаните udev (п. 4.7.4 из ридми).

Оффлайн Server28

  • ***
  • Сообщений: 103
  • Благодарностей: 2
    • Сообщения от Server28
Re: Lin_guider - автогид для Linux
« Ответ #157 : 29 Янв 2015 [23:07:26] »
Все правила оказались на месте, где им и полагается быть.
92-telescope.rules выглядит так:
# usbfs-like devices
#SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", \
#                               MODE="0664"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device",   GROUP="plugdev" \
        ATTR{idVendor}=="0403", ATTR{idProduct}=="6001", MODE="0664"

Атрибуты соответствуют выводу lsusb:
Bus 002 Device 003: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

Сперва никак не мог понять, откуда взять libio_ftdi.so.
Оп-па! Мне удалось найти этот файл только в виде пакета rpm.
http://www.rpmfind.net/linux/rpm2html/search.php?query=libio_ftdi.so
Скопировал файл libio_ftdi.so в рабочий каталог с программой (lin_guider), а конфиг-файлы в каталог /home/.config/GM_software
Зажили некоторые ноги, но коряво (все перепутаны). После этого проверил файл /home/.config/GM_software/devconf2.conf
Там обнаружил битовую карту, ну и поправил ее руками. После этого все работает. На выводах D0-D7 высокий уровень соответствует нажатию на кнопку. Инверсию и мертвое время не включал.

P.S. Почему-то при каждом открытии настроек Driver setup в терминале запись
[1422567109:565] IO device info: "External library libio_ftdi.so is required."



« Последнее редактирование: 30 Янв 2015 [00:48:20] от Server28 »

Оффлайн DosEclipsesTotales

  • *****
  • Сообщений: 794
  • Благодарностей: 35
  • Mi casa es la Vía Láctea
    • Сообщения от DosEclipsesTotales
Re: Lin_guider - автогид для Linux
« Ответ #158 : 30 Янв 2015 [07:40:39] »
Если вы собираете из сорцов, то вам следовало заглянуть в каталог lin_guider_pack/io_ftdi и запустить build.sh. Скомпилится либа libio_ftdi.so, ее и надо рядом с lin_guider положить.

Оффлайн Server28

  • ***
  • Сообщений: 103
  • Благодарностей: 2
    • Сообщения от Server28
Re: Lin_guider - автогид для Linux
« Ответ #159 : 30 Янв 2015 [16:28:15] »
Если вы собираете из сорцов, то вам следовало заглянуть в каталог lin_guider_pack/io_ftdi и запустить build.sh. Скомпилится либа libio_ftdi.so, ее и надо рядом с lin_guider положить.
Спасибо, я начисто когда буду собирать систему - именно так и поступлю. Этой информации как-раз и не хватало. Мне  в голову не пришло, что компиляция создаст библиотеку с таким именем.