вівторок, 11 жовтня 2016 р.

Комп'ютерна вишивка і Linux


Комп'ютерна вишивка - цікавий напрямок розвитку машин з ЧПУ.
На ринку є вишивальні машини різних фірм з різними можливостями. Але обʼєднує їх те, що на вході кожна з них приймає дані лише в своєму форматі і до спільного формату вони поки що так і не дійшли (щоправда, як пишуть деякі фахівці, професійні машини таки притримуються формату *.exp). Для підготовки машинної програми кожен бренд розробляє власне програмне забезпечення.
Це програмне забезпечення доволі вузькоспеціалізоване і розраховане переважно для використання в ОС Windows.
Але, як виявилося, Linux-ові теж є чим повихвалятися.
Розробка машинної програми складається з кількох простих кроків. Ось вони:

Розробляємо шаблон

Для розробки шаблону цілком підходить будь-який векторний редактор.  В Linux (та й у Windows) існує гарний кросплатформений інструмент Inkscape. Саме його я рекомендую використовувати для розробки шаблону. Додатково скажу, що Inkscape може навіть переводити растрові зображення у векторні.

Переводимо зображення у машинний формат

Ось тут виникають перші труднощі. Конкретно мені був потрібен файл під машину Brother (розширення *.PES). Інструментів для його створення обмаль. А ті, що є, не відразу збагнеш, як працюють.
Для переведення картинки в машинні стібки для Inkscape добрі люди написали плагін inkscape-embroidery (розміщений на github). Він зробить за вас основну роботу по герерації тисяч стібків з вашого зображення. Єдине, що в результаті треба або зберігати svg зі стібками (а його немає чим перетворити на *.PES. Тут слід згадати про утиліту svg2pes, яка теж працює, але не так як мені б хотілося. Треба буде здійснити другу спробу) або використовувати проміжний файл, який генерує плагін в своєму каталозі (файл називається embroider-output.exp - як виявилося всі елементи в ньому в 10 разів зменшені по відношенню до оригінального зображення. Це я зрозумів аж на 3 день експериментів. Тепер гадаю: "А, може, svg2pes не працює з тієї ж причини?"). Щоб подолати проблему зменшення достатньо збільшити зображення в 10 разів перед застосуванням плагіну.
Особливості роботи плагіну:
  • він перетворює лінії, шириною >0.5pt в зигзагоподібні стібки. Якщо ж ширина лінії <0.5pt - просто обшивання по контуру. Якщо колір штриха контуру прозорий, то обшивання взагалі відсутнє
  • прозорі ділянки не зашиваються
  • непрозорі внутрішні ділянки контурів зашиваються стібками. Напрямок визначається автоматично
  • згруповані фігури і фігури типу прямокутник чи зірка не обробляються взагалі (тобто все треба розгрупувати і перетворити на штрихи і контури)
  • перед застосуванням плагіну рекомендується згладити лінії за допомогою фільтру Без'є для кращого відтворення кривих штрихів

Перетворюємо *.EXP у *.PES

На щастя є ще добрі люди, які розробляють потужний інструмент embroidmodder2. Це векторний редактор стібків. Він дуже всеядний і може відкривати і зберігати безліч різноманітних форматів файлів машинних програм. Не виключення і embroider-output.exp.
Тож відкривши *.EXP у embroidmoder2 я просто скористався ним як конвертером для перетворення даних в так потрібний мені *.PES.

Перевіряємо правильність конвертації

Для перевірки отриманого *.PES файлу можна скористатися тим же embroidmodder2.
Як варіант можна використати безкоштовний PESView. Він, щоправда, розроблений для Windows, але працює й під Wine.
І останній варіант перевірки - утилітка pesconvert (від Лінуса Торвальдса) - перетворювач *.PES файлів у зображення *.PNG. Нею перетворюєте *.PES файл у картинку і переглядаєте будь-яким переглядачем картинок.
Залишилося перевірити, що ж вийде після виконання машинної вишивки на реальному обладнанні.
Після десятка експериментів вдалося добитися доволі пристойних результатів. Робота швейної машини виглядає приблизно так:
І, нарешті кінцевий варіант:



Процес створення літер за технологією satin column виглядає ось так:
 А перетворення отриманого CSV файлу на машинний PES виглядає так:

Джерела:

http://www.jonh.net/~jonh/inkscape-embroidery/
https://github.com/stesie/inkscape-embroidery
https://github.com/lexelby/inkscape-embroidery
https://github.com/Embroidermodder/Embroidermodder
http://www.joachim-riedel.de/freeware/
http://git.kernel.org/cgit/linux/kernel/git/torvalds/pesconvert.git
https://github.com/MaxKellermann/svg2pes
http://torvalds-family.blogspot.com/2010/01/embroidery-gaah.html
http://svg2embr.wasbo.net/

понеділок, 3 жовтня 2016 р.

TimeLapse відео - пришвидшене відтворення тривалих процесів.

Цікаво створювати відео тривалих процесів, які вкладаються в кількахвилинний ролик. Методів для цього, певен, є досить.

Наприклад відразу знімати процеси з налаштуваннями камери, щоб уповільнена зйомка відтворювалася пришвидшено. На смартфонах під керуванням Android можна, нааприклад, скористатися програмою CosyDVR. Та деякі камери чи смартфони такого і не підтримують. Або що робити, коли помилився з коефіцієнтом стистення?

Для цього в Linux можна використати утиліту ffmpeg з відповідним фільтром:

ffmpeg -i input.mkv -filter:v "setpts=0.1*PTS" output.mkv

В цьому прикладі швидкість файлу прискорюється в 10 разів. 
Ось це відео, хоч і знято і стисканням, та я помилився з коефіцієнтом. Довелося стиснути ще в 10 разів:
А ось відео з розряду "великі будови" - як працює екскаватор в пришвидшеному вигляді:
 
Аналогічно можна сповільнювати швидкі процеси, наприклад удвічі:

ffmpeg -i input.mkv -filter:v "setpts=2*PTS" output.mkv

Джерело:

неділя, 2 жовтня 2016 р.

Linux ABCDE - йдемо до школи

Вивчення іноземних мов у школі часто опирається на аудіоматеріали з підручників. Та не завжди аудіо диски є чим прочитати. Зручніше мати всі матеріали в телефоні у вигляді файлів.

Для перетворення аудіо-дисків на файли є безліч програм і утиліт в Linux. Я обрав собі утилітку 'abcde' - консольний інструмент. Встановлення тривіальне, бо утиліта є в репозитаріях:

sudo apt-get install abcde

Використання теж не складає труднощів. Запускаємо утилітку, вкзауємо параметри вхідних і вихідних даних. Програма сканує диск і створює конфігураційний файл, де для кожного треку можна визначити назву. Так само можна визначити META-дані файлів (рік, виконавець, назва альбому). Дуже зручно в конфігураційному файлі одноразово ввести ці дані. Вони будуть використані при створенні mp3 чи ogg файлів. Отже, команда запуску:

abcde -a cddb,read,encode,tag,move,playlist,clean -d /dev/cdrom -o ogg -V -x

Ось і все. В результаті отримуємо копію аудіо диску на ПК.

субота, 1 жовтня 2016 р.

xombrero - браузер з малими системними вимогами

Мої поневіряння з пошуком браузера для старих систем, схоже, завершилися. Так, сьогодні не легко знайти браузер з достатнім функціоналом, який би не потребував значних ресурсів ПК. От вам коротенький аналіз моїх спроб:

1. Dillo

Цей браузер іде в комплекті з PuppyLinux. Дійсно легенький. Але не підтримує ні javascript, ні cookies. Тож працює швидко, але лише з чистим HTML. Facebook не працює навіть мобільна версія. Відео youtube відповідно не працює також.

2. NetSurf

Цей вже підтримує cookies. Отже, можна зайти на мобільну версію Facebook (m.facebook.com). Це вже щось. Теж досить швидкий. Виглядає пристойно. Вікно із вкладками. Є кнопки керування. Не підтримує JavaScript, хоча в налаштуваннях опція є. Мабуть планується у майбутньому. Відео на youtube не йде. Не працюють сайти типу http://mail.google.com/tasks/ig. Сайт хоч і легенький, але без JavaScript з нього нічого не візьмеш.

3. surf

Перший браузер, який я знайшов, що підтримує і cookies і JavaScript, та ще й не вимагає гігабайтів ОЗП. Клас. Facebook, GoogleTasks і (яке диво!) навіть відео з Youtube. Але є одне але. В цьому браузері немає жодної(!) кнопки. Адресу треба вводити в командному рядку як параметр. Це дещо зіпсувало загальне враження. Втім, браузер як і попередні споживає мінімум памʼяті і працює доволі жваво. Ще один недолік - google визначає його як старий Chrome і постійно намагається запропонувати оновлену версію. Дратує.

4. uzbl

Клон попереднього, але вже без проблем з "версією Chrome" :). Всякі Facebook, GoogleTasks, Youtube працюють. Є елементи керування, а саме командний рядок. Натискаємо 'o' для введення адреси і мандруємо інтернетрями. Це хоча б щось, подібне на реальну роботу. Залишилися всі переваги: швидкість, споживання ОЗП.

5. xombrero

Також клон від surf. Але якийсь мутант uzbl і звичайних графічних браузерів. Є кілька кнопок на панелі інструментів. Є командний рядок, який викликається при введенні ':'. закладки тільки через команди :favadd та :fav. Цей браузер найрозвинутіший з усіх. Памʼяті не жере. Javascript та cookies працюють. Браузер дозволяє вибірково дозволяти скрипти і cookies за допомогою команд. Власне, в ньому я й набираю цю статтю. Схоже він залишиться основним у моїй системі.

Висновки

На моєму нетбуці непогано працює Firefox, але щойно відкриєш забагато вкладок, починається використання файлу підкачки і вся система тільки й займається його обслуговуванням. Це трохи дратує. Мої ж вимоги не такі й великі. Хочу почитати документацію, подивитися ролик в youtube та перевірити фейсбук. Як бонус іноді керую завданнями, які треба не забути зробити. Але, якщо запустити поряд ще якусь програму типу GIMP чи навіть офісну програму, проблеми гарантовані.
Я часто зустрічав на сайтах згадки про Dillo. Але кожен раз, коли намагався його вкотре спробувати наражався на проблеми з cookes та JavaScript.
Нарешті я знайшов адекватну заміну Firefox з невеликими вимогами. Три останні браузери майже рівноцінні. Єдина різниця - інтерфейси. Я обрав поки що xombrero. Спробуйте й ви.

Скріншот на закуску