Идеи для desktop приложений

243 views
Skip to first unread message

Ilya Nemihin

unread,
Jun 18, 2015, 2:48:22 PM6/18/15
to make...@googlegroups.com
Приветствую!

Тут попробовал недавно wxPython - можно делать полноценные Windows приложения.

wxPython - это python обертка над кроссплатформенной библиотекой wxWidgets

Сейчас тенденция в веб приложения, в мобильные приложения. Но для задач работы с железом - нужны desktop приложения.

Python содержит большое количество библиотек.

Вот и подумал что можно было бы open source desktop приложение сделать. В этой области. 

Может подскажете какого плана приложение вам было бы полезно? Или можете подсказать направление. Работа с com, wi fi, Bluetooth etc.

В качестве примера - есть робоголова - можно было бы сделать приложение специализированное для работы с ней - программирование мимики и тп.

С уважением,
Илья

Alexey Galakhov

unread,
Jun 18, 2015, 3:41:22 PM6/18/15
to make...@googlegroups.com
Привет!

> Тут попробовал недавно wxPython - можно делать полноценные Windows
> приложения.
>
> wxPython - это python обертка над кроссплатформенной библиотекой
> wxWidgets

Попробуй PyGTK. Дает то же самое, в пользовании даже проще, а
возможностей больше.


> Может подскажете какого плана приложение вам было бы полезно? Или
> можете подсказать направление. Работа с com, wi fi, Bluetooth etc.

Сейчас основную проблему составляет качество уже имеющихся приложений.
Например, не существует НИ ОДНОГО браузера, не содержащего проблем
вроде утечек памяти. Работа с PDF тоже кошмарна.

Если говорить именно о десктоп-приложениях, то остро не хватает
опенсорсного (совместимого) аналога Eagle. KiCad не предлагать, он не
аналог. У Eagle совершенно очевидная архитектура, ее достаточно легко
реализовать, если знаешь, что такое pattern "observer", и неплохо было
бы это сделать. Только время надо.

Я сам сейчас занимаюсь разработкой компилятора компиляторов. Программа,
позволяющая легко создавать новые языки программирования. Но она
неинтерактивная и написана на Си.

Alexey Galakhov

unread,
Jun 18, 2015, 3:43:07 PM6/18/15
to make...@googlegroups.com
Еще одна вещь: хочу сделать хороший интерполятор для управления ЧПУ.
Недостатки вещей вроде LinuxCNC могу перечислить, их много. (Там
математика интерполяции плохая, итог - большая нагрузка на процессор и
неточное движение). Это задача на математику. Решать уравнения в
реальном времени.

Ilya Nemihin

unread,
Jun 19, 2015, 3:27:47 AM6/19/15
to make...@googlegroups.com
Привет, Алексей!

Спасибо за комментарии. PyGTK так же посмотрю как будет возможность.

Думаю идея про аналог LinuxCNC интересная.

Я ещё думаю про не очень сложные приложения, или "заготовки", например desktop приложение работающее с Ардуино - мигающее светодиодом, управляющее серво. -- чтобы человек мог сам его доработать и сделать своё приложение.

Мне понравилось, что возможно сделать standalone приложения, и InnoSetup -- установщик.
 


--
Веб-адрес группы: https://groups.google.com/forum/?fromgroups#!forum/makeitlab
---
Вы получили это сообщение, поскольку подписаны на группу Makeitlab.

Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес makeitlab+...@googlegroups.com.
Просмотреть это обсуждение в Сети можно по адресу https://groups.google.com/d/msgid/makeitlab/20150618214305.1886c3fe.agalakhov%40gmail.com.
Настройки подписки и доставки писем: https://groups.google.com/d/optout.

Alexey Galakhov

unread,
Jun 19, 2015, 4:01:03 AM6/19/15
to make...@googlegroups.com
Am Fri, 19 Jun 2015 13:27:47 +0600
schrieb Ilya Nemihin <nem...@gmail.com>:

> Привет, Алексей!
>
> Спасибо за комментарии. PyGTK так же посмотрю как будет возможность.
>
> Думаю идея про аналог LinuxCNC интересная.

Там фактически есть четыре части:

1. Интерполятор шагов. (Можно сделать аппаратно на Cortex M3/M4). Эта
часть работает в почти жестком реальном времени и при реализации на
компьютере нужен LPT-порт и ядро как минимум с RT_PREEMPT. (Вариант
PCI-карты можно не рассматривать, это равноценно аппаратной
реализации). ИМХО, варианты с реализацией на компьютере тут интересны
только в случае, если компьютер - это ARM с GPIO. Математика невкусная,
но реализуемая. (Обычно эту часть переупрощают и делают неправильно,
как, например, в LinuxCNC и в большинстве контроллеров 3d-принтеров).

2. Планировщик траектории. Матан матановый. Реализация в LinuxCNC
удовлетворительная, в контроллерах 3d-принтеров никуда не годится. Есть
статьи, как делать это правильно. Хорошие реализации есть только в
дорогих фирменных станках с ЧПУ, контроллерах вроде Fanuc.

3. Интерпретатор G-кода. Средне-сложно. Реализация в LinuxCNC хорошая, в
контроллерах 3d-принтеров удовлетворительная (не полнофункциональная).
Можно сделать лучше, чем в LinuxCNC. Можно на моем компиляторе
компиляторов, когда он будет готов.

4. Графический интерфейс. Делать в последнюю очередь.


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

Теория говорит, что траектория должна планироваться с ограничениями на
скорость, ускорение и рывок (jerk, скорость изменения ускорения).
LinuxCNC ограничивать рывок как раз и не умеет. Ограничение на рывок
нужно для снижения шума, вибраций, износа и для увеличения точности на
соответствующих частях детали. Отсюда следует, что траекторию выгодно
представить в виде кусочной интерполяции полиномами (сплайнами) 3-го
порядка. Формулу для этого я уже вывел.

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

Изначально я планировал доработать LinuxCNC, но потом стало ясно, что
это невозможно в силу архаичности архитектуры. После доработки от
оригинала ничего не останется, так что лучше сразу делать с нуля.


> Я ещё думаю про не очень сложные приложения, или "заготовки", например
> desktop приложение работающее с Ардуино - мигающее светодиодом,
> управляющее серво. -- чтобы человек мог сам его доработать и сделать
> своё приложение.

Это называется "библиотека". В большинстве случаев делать ничего с нуля
не надо, а надо дорабатывать имеющееся. Дело в том, что уже есть много
очень хороших по задумке вещей вроде libopencm3 для Cortex, библиотек
для устройств под Linux и т.д., многие из которых неюзабельны из-за
сырости, неотлаженности и недоработанности. Или просто от плохой
документации. Чем начинать делать свой велосипед, лучше помочь одному
из таких проектов. Это в миллион раз полезнее - работа не будет
дублироваться, усилия людей будут концентрироваться на одном и том же.

Павел Серков

unread,
Jun 19, 2015, 12:07:03 PM6/19/15
to make...@googlegroups.com
Про CNC
У нас у станка мозги - вот такой китайский пульт
http://et-rus.ru/d/81169/d/1_9.jpg
Стоит эта штука от 20 тыс, у местных - в два раза дороже. Иногда ее переглючивает - и инструмент ломало, кириллицу в именах файлов не понимает. Сам корпус нежный, а мембранной клавиатуре в промышленном применении я не доверяю. Интерфейс очень специфический.

Я обеими руками за отдельное хардварное решение. В брутальном корпусе, который можно ронять. С интерфейсом простым, что бы можно было на пальцах объяснять пенсионеру. И опенсорс как у лайт пака. - "Вот схема, вот топология ПП. Можешь сам - делай сам, не можешь - вот интернет магазин с готовым вариантом". Варианты софта для компа мне не нравятся. Особенно где ЧПУ роутер - там много пыли, привет перегрев.

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



19 июня 2015 г., 13:01 пользователь Alexey Galakhov <agal...@gmail.com> написал:
--
Веб-адрес группы: https://groups.google.com/forum/?fromgroups#!forum/makeitlab
---
Вы получили это сообщение, поскольку подписаны на группу Makeitlab.

Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес makeitlab+...@googlegroups.com.
Просмотреть это обсуждение в Сети можно по адресу https://groups.google.com/d/msgid/makeitlab/20150619100100.410c7526%40aga-ws-01.

Настройки подписки и доставки писем: https://groups.google.com/d/optout.



--
С уважением, Серков П.А.
Reply all
Reply to author
Forward
0 new messages