Category: it

Category was added automatically. Read all entries about "it".

Перепрошивка китайского USBAsp программатора

Для программирования AVR микроконтроллеров удобно использовать USBAsp программатор. Китайская версия стоит до 2$, но родная прошивка не USBAsp - её надо менять. Родная программа ProgISP1.72.



После прошивки программатор будет определяться как usbasp и поддерживаться avrdude.
Проверено на MX-USBISP-V4.00 и MX-USBISP-V5.00.

Для прошивки требуется плата arduino (as isp программатор) или другой программатор.

Прошивка при помощи уже вылеченного китайского программатора:


1. Скачиваем НЕ оригинальную прошивку USBASP, т.к. китайцы поменяли пины в своих программаторах тут. Версия для atmega88v (/bin/firmware/usbasp.atmega88-modify.hex)

2. Устанавливаем драйвер для вылеченного USBAsp (libusbK)

3. Скачиваем avrdude утилиту

4. Разбираем оригинальный USBAsp, который хотим перепрошить. Замыкаем два контакта (проводом навесу или пайкой).


5. Соединяем родным шлейфом вылеченный и оригинальный USBAsp. Отличие вылеченного - у него горит синий светодиод. У оригинального - красный.
Подключаем вылеченный программатор к ПК и выполняем:

avrdude -c usbasp -P usb -p m88 -B 1 -U flash:w:usbasp.atmega88-modify.hex

Если фьюзы не HFUSE=0xdd LFUSE=0xff, то изменяем и их:
avrdude -c usbasp -P usb -p m88 -B 1 -U lfuse:w:0xff:m -U hfuse:w:0xdd:m

6. Отсоединяем перемычку оригинального USBAsp - светодиод должен загореться синим. Поздравляю!

7. Подключение в USB теперь покажет libusbK устройство.

Прошивка при помощи ардуино:


1. Прошиваем плату Ардуино как программатор ISP

2. Разбираем оригинальный USBAsp, который хотим перепрошить. Замыкаем два контакта (проводом навесу или пайкой).

3. Подключаем ардуино к оригинальному USBAsp по SPI + питание. Ардуино подключаем к ПК.



4. avrdude -p m88 -P COM1 -c avrisp -b 19200 -B 1 -U flash:w:usbasp.atmega88-modify.hex
COM1 - замените на свой порт
-B 1 возможно можно убрать.


Источник:
drive.ru
Фото: github @aleh
прошивки

В мире должен быть аналог tripadviser для оборудования!

Очередной раз на интеграцию попало оборудование с описанием протокола на 1-м листе (это уже маячок, что с компанией не надо иметь дело (!)).
Вроде бы европейский производитель, стоит дофига денег, но сразу же возникли вопросы по API.

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

В течении инеграции конкретно текущей железки оказалось, что она не из Европы, а какой то страны СНГ, а при более глубоком тарканье (даже не отверткой) всплывают иероглифы. Глядя на то, как медленно и своим языком отвечают сотрудники компании в голове рождаются справедливые предположения о папуасах, пишищих говнокод и "эффективных менеджеров" продающих красивую оболочку.

Вот для подобных случаев предлагается сделать красивый сайт для специалистов, в котором можно было бы узнать насколько надежно оборудование "в боевых условиях", полноценна техподдержка, кто разрабатывает оборудование и какие подводные камни встречаются при интеграциии.
Безусловно информация будет устаревать, однако надо хоть как то обезопасить потенциальных покупателей/интеграторов.

То, что никогда не напишут менеджеры на своих сайтах должно быть централизованно опубликовано. Можно предусмотреть комментирование  компаниями.

Другие примеры "косяков":
- Железка пожарно-охранной системы "Болид" "Болид-ПП" якобы поддерживает Modbus-RTU, но оказывается некоторые регистры можно спрашивать только вместе. Это может не поддерживаться Modbus контроллерами.
- Знакомые рассказывают, что не смотря на масштабируемость системы "Болид", реакция системы при наличии 500 зон достигает 5 минут... Числа примерные, но смысл в том, что надо учитывать масштаб объекта и правильно планировать архитектуру системы.
- Была еще железка для распознавания видео. Чтобы конпенсировать недостаток фукнциональности добавили к ней вебсервер. К сожалению, квалифицированного веб программиста у компании не было, поэтому веб часть железки ее регулярно убивала. После долгих переписок и сотни часов убитого времени пришлось отказаться от ее использования.

Автоматизированный градуировочный комплекс

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

Была задача подключить к компу счетчик воды и уровнемер, управлять насосом и генерировать файл отчета.
Вишенка на торте: Все это размещено на базе грузового автомобиля и работает в суровых российских реалиях :))!

Автоматизацию сделал на SCADA системе Zond, попутно написав драйвер к уровнемеру.
После пару холостых выездов "в поле" к не работающему железу пришлось еще взяться за "железную часть" с оборудованием. Wi-fi роутер, ethernet-rs232 конвертер, Modbus RTU реле, контроллер расходомера были красиво засунуты в ящик для электрики и выведены разъемы на корпус. (работа казалась такой банальной, что была сделана лишь 1 фотография на телефон и та где то потерялась).

Оператор комплекса, подключившись к ящику, видел следующую картинку и мог управлять процессом градуировки.


Вот такая full-stack автоматизация получилась. От драйвера до 220в, от документации до работы напильником.

upd: Фото ящика нашел, а целого комплекса не делал
18102012124.jpg


#градуировка #уровнемерструна

Книги о программировании преподавателя ВМК

Полтора года назад преподаватель ВМК Столяров Андрей Викторович объявил сбор денег на написание книги по программированию. Я  с удовольствием поддержал это начинание, т.к. не понаслышке знаю "прелести" сотрудничества с издательствами. Идея краудфаундинга мне понятна и близка.
Деньги на издание первых томов были получены и в этом году любой желающий может скачать и купить их:
http://www.stolyarov.info/books/programming_intro



Впереди новые тома, а значит все, кто ценит образование, могут помочь проекту!

Информация:
Финансовое обоснование

>> Пожертвовать любую сумму  <<

*&%*#%* Роскомнадзор

Я никак не мог понять, почему issuu.com последнее время не открывается!


Оказалось, наш "домашний", "уютный", "мудрый", не побоюсь этого слова "патриотичный" Роскомнадзор заблокировал сайт issuu.com, из-за каких-то экстремистских материалов. Т.е. из-за "знать-никто-не-знает-какой" публикации вся Россия не может читать огромное количество журналов, буклетов и т.п. изданий!

Мое негодование было бы небольшим, если бы не использование issuu.com в своих целях для выкладывания Журналов ВМК, буклета первокурсника ВМК, а потом и своих публикаций.

Давайте покажем чиновникам то, что зонт от студии Артемия Лебедева показывает дождю.

Для того, чтобы вернуть себе доступ к сайту, используйте простой плагин к браузеру FriGate:
https://fri-gate.org/ru/ Ставьте FriGate Light.



В правом углу браузера появится кнопка. Когда понадобится зайти на issuu нажимайте ее. Вы будете выходить в интеренет через Европейский компьютер. Выключить - нажимаем кнопку. Появится на значке off.

Успехов!

2 нюанса использования Modbus RTU

Рабочее.

Звёзды сошлись так, что проверка CRC в верификаторе посылки Modbus RTU протокола дала сбой.

Это сообщение проходит проверку CRC, но некорректно:
0x04, 0x03, 0x1c, 0x3f, 0xe9, 0x15, 0x18, 0x03, 0x02, 0x00, 0x01, 0x02, 0x02, 0x00

Вот корректное сообщение:
0x04, 0x03, 0x1c, 0x3f, 0xe9, 0x15, 0x18, 0x03, 0x02, 0x00, 0x01, 0x02, 0x02, 0x00, 0x03, 0x18, 0x02, 0x00, 0x03, 0x0b, 0x06, 0xc6, 0x39, 0x07, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0xee

Это не проблема протокола Modbus, т.к. он создавался для медной линии связи *дцать лет назад и в нем концом посылки является пауза между байтами длинее, чем 1.5 байта. В наше время Modbus RTU часто используют через TCP\IP соединение (преобразователи MOXA и т.п.), а в этом случае временные промежутки становятся случайным.

Вывод: Надо проверять не только CRC, а еще и длину посылки в сообщении (она не всегда есть, надо смотреть тип сообщений).

И еще есть одна, уже не исправляемая, проблема Modbus:
В ответной посылке не фигурирует номер регистра из запроса.

Может возникнуть следующая ситуация: спросили адрес 1000, ответа от устройства за N мс нет, спрашиваем адрес 1001, приходит ответ на предыдущий запрос (1000), который интерпретируется ответом на 1001й.
Страховки от такой ситуации нет. Минимизация: установка таймаута больше, чем возможная задержка в TCP соединении. Однако при GPRS подключении (GSM модем) она может быть сколь угодно большой.

Вывод: не использовать Modbus RTU/TCP в сетях где нет гарантированного времени ответа.

P.S. Для тех, кто не в курсе, моей профессиональной деятельностью является программирование промышленной автоматизации. Несколько лет я проработал в компании, разрабатывающий ПО транспортировки газа для Газпрома, а сейчас продолжаю программировать взаимодействие с различным оборудование системы типа "умный дом", а также отвлекаюсь на автоматизацию тестирования и веб программирование.

Ссылки по теме:
2015 Умная кофемашина
2015 Автоматизация тестирования СКУД
2013 Беларусь (картинки пропали :( )
2011 Первая командировка

Компьютерная игра "Сто к одному"


Решил выложить программу, написанную лет 5 назад.
Лежит мертвым грузом на диске. Доработать так и не собрался.


В далеком 2011м году я не нашел в интернете ни одной реализации "100 к 1", а устроить праздник на День Рождения очень хотелось. За ночь была написана игра. Параллельно друг проводил опрос среди друзей и подсчитывал результаты. "Кажется я начинаю понимать Избирком..", - писал он мне в 5 утра накануне праздника.

Игра полностью повторяет телевизионную версию:
- Простая игра;
- Двойная игра;
- Тройная игра;
- Игра наоборот;
- Супер игра;
- звуки открытия ответов и ошибочного ответа.


Collapse )


Игра написана на QT без экзотики, поэтому перенести на Linux, Mac не составит труда.

exe-шник, 4Мб (Windows): https://yadi.sk/d/rnzS93uP5lok0
Исходники: https://github.com/dontsovcmc/100_k_1

Буду рад, если кто-то разовьет идею и сделает отличную игру с автоматизацией опросов!
Что надо бы доработать:
- дизайн;
- поддержку 2-го экрана для показа органов управления;
- поддержку опросов в GoogleForms или свой сайт;
- веб-версия или поддержка Linux/Mac

Пишите в комментариях, если будете где-то проводить игры.
Также приветствуются результаты Ваших опросов.

Идея: Плагин для Photoshop склеивающий кадры день-вечер-ночь в коллаж

Очень красивые коллажи получаются из фото, снятых с одной точки за целый день: от светлого до темного времени суток.

Пример (фотограф Stephen Wilkes):


Было бы круто сделать plugin для Photoshopa, который склеивал бы набор кадров из вертикальных полосок.
Нужно просто добавить маску слоя заданной ширины.

Дано:
- набор файлов
Настройки:
- диапазон времени (из exif считывается)
- кол-во делений

Далее можно усложнить:
"маска деления", как на примере выше: на фото нет вечера посередине, канал на пополам разделен.
Сделать не сложно: нужно, чтобы плагин разделял видимость не по полоскам, а по заданной маске слоя.

"нелинейное деление", как на примере выше: на фото нет вечера, мы видим или день справа или ночь слева.
Т.е. пользователь может задать график течения день-ночь. (обычная кривая в фотошопе).

В общем, запрогайте, буду пользоваться ;)!

P.S. ну или какой туториал по плагинам посоветуйте..

#идеи_на_халяву

Идеи: программа составление тестов и проверка

ээээ. В общем, меня часто посещают различные идеи в программировании.
Вот хочется упростить жизнь, а никто еще подобного не сделал (или плохо разрекламировал, раз я не знаю). Короче, если кто соберется реализовывать - пожалуйста ;). Держите рецепт:

Сегодня обозначим традиционную проблему преподавателей вузов, школ: составление тестов.

Задача: Сделать программу, в которую можно заносить вопросы и варианты ответа (а,b,c,d). В программе были бы кнопки: "сделать новый вариант теста" с возможностью перемешать вопросы и ответы. Для каждого варианта еще печатается список правильных ответов.

Казалось бы, никакой высшей математики - программирование 1го курса, однако реализацию найти не так просто в интернете... Часто встречаются импортные программы. Те, в которых есть рандом, не знают понятие "вариант теста"...

Наибольшее приближение к задаче у этой проги: Schoolhouse.Test.v3.1.14.0
Чтобы сделать новый вариант надо выделить вопросы и нажать "перемашать".
К сожалению слова "вариант" в шапке теста отсутствует, его надо вручную набрать.

Дополнительные функции:
- задание количества вопросов в варианте (а множество всех вопросов может быть больше);
- задание количества вариантов для генерации;
- возможность печати таблицы для ответов вверху 1й стр. теста;
- возможность вбить в программу список студентов для генерации персональных вариантов;
- возможность автоматической проверки теста с распознаванием Буквы в таблице ответов + QR код с ФИО студента (в том числе с помощью мобильника)

Для группы в 30 чел.: мы получаем 30 вариантов теста и 30 таблиц ответов. Варианты печатаем разом из файла, ответы закачиваем в приложение для телефона. Проверка сводится к включению приложения, наведения камеры на шапку заполненного теста. Телефон распознает ответы, читает QRкод и добавляет в базу данных. После 30 итераций результаты проверки отправляются на e-mail :).

С учетом повального введения ЕГЭ и всяких тестирований, приложение будет пользоваться огромным спросом.
Это достойный ответ преподавателей студентам на "использование современных технологий". А то старшее поколение пока отстает.

Сканирование одним кликом!

Как научить родителей сканировать документы? Да не надо их этому учить!
Сделайте ярлык запуска программы IrfanView и сканирование займет 1 клик мыши!


Вот как выглядит ярлык у меня:
"C:\Program Files\IrfanView\i_view32.exe" /batchscan=(SCAN,1,1,3,1,K:\My Documents\SCAN,jpg,0) /scanhidden /dpi=(300,300)

Разберемся с параметрами:
/batchscan=(SCAN,1,1,3,1,K:\My Documents\SCAN,jpg,0) - пакетное сканирование.
параметры:
  SCAN - полученные файлы будут называеться SCANxxx.jpg
  1 - начальный номер файла, т.е. первый файл будет SCAN001
  1 - приращение, т.е. второй отсканированный файл будет SCAN002
  3 - количество цифр, т.е. 001,002,..999.
  1 - пропускать созданные файлы=ДА: если в папке уже 10 файлов, программа создаст SCAN011. Если значение       параметра 0, то программа перезапишет файл SCAN001
  K:\My Documents\SCAN - путь сохранения файлов.
  jpg - расширение файла. Качество файла можно задать командой: /jpgq=X (Х лучше от 70 до 90)
  0 - многостраничный тифф=НЕТ. Если стоит 1 и формат файла tif, то к tif файлу будут добавляться страницы. Удобно, если вы сканируете конспект или книгу.

/scanhidden - сканировать, не открывая диалогов
/dpi=(300,300) - разрешение сканера

На рабочем столе создаем такой ярлык, называем его "Сканирование".
Рядом создаем ярлык к папке "K:\My Documents\SCAN" и называем его "Отсканированное".

Чтобы отсканировать документ нажимаем на ярлык "Сканирование". Получаем файл в папке "Отсканированное"!

Идем пить кофе и хвастаться друзьям, что ваша бабушка умеет сканить документы ;).

предыдущие записи:
Уменьшение фотографии одним кликом