Category: 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
прошивки

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

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



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

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

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

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 Первая командировка

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

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

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


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

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

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

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

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

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

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

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

Как научить родителей сканировать документы? Да не надо их этому учить!
Сделайте ярлык запуска программы 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" и называем его "Отсканированное".

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

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

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