-ћузыка

ѕоследовательное чтение ROM ѕ«”  573–‘2, 27C32

ƒневник

—уббота, 14 јпрел€ 2018 г. 00:22 + в цитатник

ЌашЄл у себ€ зоопарк микросхем EPROM с ”‘-стиранием, выдернутых из разных машинок и приборов, BIOS-ы старые, даже лампа есть.  онкретные маркировки -  573–‘1,  573–‘2, TMS 2764-20JL, 27C256-20, NMC27C32Q. ѕрограмматора под рукой, конечно же, нет, но сначала чтение. –ешил поэкспериментировать на младших модел€х с 2  Ѕ и 8  Ѕ ѕ«”. —разу же отпало желание экспериментировать с  573–‘1 (Ємкость 1  Ѕ), потому что по даташиту она хочет три разных напр€жени€, в т.ч. -5 ¬, а как известно, нынче техника должна просить одно из стандартных напр€жений: 19 ¬, 12 ¬, 5 ¬, и соответственно, аккумул€торное питание 12,6 (11,1) ¬, 7,4 (8,4) ¬, 3,7 (4,2) ¬. »ногда ещЄ встречаетс€ 14,8 (16,8) ¬. Ёто хороший тон производителей техники, иные напр€жени€ вызывают немалый геморрой с поиском нужных блоков питани€ и ј Ѕ.



ѕоследовательное чтение ѕ«” через ATMega (Arduino) и пару корпусов логики: мультиплексора 4051 и регистра 4094. –ешил не включать ѕ«” в адресное пространство ќ«”, лишилс€ преимущества параллельной шины. ѕросто чтобы в схеме была микросхема с окошечком, пусть даже и заклеенным изолентой.


K573RF2 serial reader scheme

ѕредварительна€ проверка работоспособности микрух и общей идеи на макетке. ¬ручную выставленные DIP-переключател€ми биты адресной шины и индикаци€ лампочками на шине данных.


K573RF2 27C32 serial reader (maket)

ѕоленилс€ разводить и травить плату.


K573RF2 27C32 serial reader (front)

“рудоЄмкий и устрашающий проводной ћ√“‘-монтаж на оргызке текстолита. ¬уал€.


K573RF2 27C32 serial reader (back)

¬ообще € не совсем корректен, когда пишу Ємкость EPROMов в байтах и килобайтах, поскольку хоть адресаци€ у них и побайтна€, и ножки подписаны D0...D7, ничто не мешает мне подключить шину данных устройства в произвольном пор€дке, попутно инвертировав значени€ битов, да ещЄ и адресную шину напутать ;) ѕоэтому в маркировке и присутствует обозначени€ в килобитах. Ёто ещЄ один из способов защиты и искажени€ исходной информации: ѕ«” хоть и сможет быть прочитано на другом программаторе, который доступен на рынке, на выходе окажетс€ месиво битов, переставл€ть которые тоже ресурсоЄмко, не зна€ маркеров и сигнатур.  лючом в данном случае ( 573–‘2) будет €вл€тьс€ комбинаци€ адресной шины и комбинаци€ шины данных, т.е. согласно рекурентной формуле x(8)=8*x(7)=40 320 комбинаций дл€ шины данных и 39 916 800 комбинаций дл€ 11-битной шины данных. »того 1 609 445 376 000 комбинаций дл€ брута при известной сигнатуре.

–убрики:  этот удивительный мир вокруг нас

ћетки:  

Ќестандартные скорости UART MSCOMM32

ƒневник

¬оскресенье, 18 »юн€ 2017 г. 17:06 + в цитатник

”далось св€затьс€ с AVR по UART через MSCOMM32.OCX на скорости 250000 бод. „астота кварца избыточна€ - 16 ћ√ц. ƒействительно и дл€ Arduino.  ак? ѕодсказка на VBForums, используем Win32 API SetCommState и GetCommState из Kernel32. Ќемного костылей в выборе менюшки скоростей, т.е. дл€ галочки открываем порт на допустимой стандартной скорости 115200, а затем уже задаЄм любую, вплоть до 2ћЅит.


AVR software uart 250000 baud (452x115, 5Kb)
MSComm 250000baud (206x172, 13Kb)

—разу оговорюсь, что UART со стороны AVR программный, поэтому скорость така€ низка€. —хемотехнически у мен€ программный RX/TX висит на свободных ногах ATMega328P, потому как аппаратный зан€т шиной данных с NAND флешкой.



»так, управл€юща€ программа на VB6 использует компонент MSComm и разрешает из коробки подключатьс€ только на следующих скорост€х (бит/с, бод): 110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 115200, 128000, 256000. ”спехом увенчалась попытка подключени€ на 128000, а 256000 уже не приводила к желанному результату увидеть ответ устройства по UART. ¬озможно, дело в том, что если дл€ аппаратного приЄмопередатчика UART можно запросто подобрать скорость UART в зависимоти от частоты задающего генератора, то дл€ программного, который зависит от кучи прерываний и лагов обработчика, высокие частоты упираютс€ уже не в последнюю милю кабел€ и разводку с экранировкой, а в специфику работы программного UART. Ѕоюсь предположить, но аппаратный UART на AVR в теории может давать бодрейт до 2 ћЅит/с, т.е. 2000000. –азумеетс€, со стороны компьютера € ловлю его не через родной COM-порт материнки, а через преобразователь CH340G, который стоит в каждой ардуине, и его предел аппаратных возможностей с подобающей обв€зкой по даташиту заканчиваетс€ как раз таки на 2 Mbps. Ёто ограничение уже упираетс€ в физическую реализацию последней мили - длину проводов USB, разводку на плате, конденсаторы и качество кабел€.



„то € получил на скорост€х 250  Ѕит/с? „тение блока с флешки (135168 байт) за 6,16 секунд. «апись, правда, до сих пор ограничиваетс€ скоростью в 135168 байт за 35,9 сек, что обусловлено моей осторожностью и программными задержками при записи в NAND flash. ќднако мой любимый дисплейчик ❤️️ LCD 160x128 16 битного цвета заполн€етс€ из флешки полностью картинкой за 215 мс, то есть можно гл€деть кино с FPS ~5 кадров/сек., что € считаю пределом дл€ 16 ћ√ц, софтварном SPI через дрыганье ногами и попутном чтении с флешки, то смею предположить, что видеобуфер (ќ«” диспле€) составл€ет 40 960 байт, и по UART напр€мую при скорости 250  Ѕит заполнитс€ за 2 секунды. ¬сЄ равно медленно, чтение флешки размером в 1 √Ѕ (NAND flash K9K8G08U0M-PIB0) займЄт 14 часов.


ќднако команда CLS, оформленна€ AVR-ASM просто дЄрганьем CLK диспле€ при посто€нной единице на шине DATA очищает 160х128 за 0,105 сек, то есть за 105 мс., что как бы намекает на непредельность скорости. “о есть использу€ полупрограммный-полуаппаратный SPI из-за того, что 9-й бит приходитс€ дЄргать вручную, остальные 8 будет слать аппаратный SPI, при быстром ќ«” контроллера € бы смог добитьс€ скорости вывода одного экрана (не пустого) за 105 мс при скорости UART в 1,5...2 ћЅит. Ѕез промежуточной флешки, а картинку бы формировал на стороне компьютера. “огда и кино в 10 FPS можно было бы крутить.


AVR Parallel output for Nokia 1616 LCD (700x451, 108Kb)

ј самым забавным решением было бы применение внешнего аппаратного SPI, который из параллельной шины делает последовательную, и клок дЄргать вручную. ќднако это то же самое, что и полупрограммный SPI, потому как совсем блокируетс€ возможность передавать данные в обратную сторону от диспле€ (читать ќ«” диспле€, SPFD54124B это позвол€ет). Ќо это уже больна€ фантази€.

–убрики:  этот удивительный мир вокруг нас

ћетки:  

 ак починить/вылечить Windows: системные утилиты

ƒневник

—уббота, 10 »юн€ 2017 г. 00:29 + в цитатник

¬ копилочку, на флешечку, выкладываю список системных утилит, с BSOD_ok (320x240, 10Kb) помощью которых можно намного глубже проникнуть в суть процесса ќ— Windows, починить неработоспособную и слетевшую винду, вылечить BSOD, пересадить на другую материнскую плату, удалить тро€н или вирус, бэкдор, восстановить загрузчик Windows.


 ороче, список наиболее часто используемых мной системных утилит дл€ восстановлени€ работоспособности Windows и еЄ ювелирной настройки. “акже данный набор программ будет полезен тем, кто занимаетс€ разработкой или просто ковыр€ет винду типа эникейщиков. ¬ общем, мастхэв.



FAR Manager http://www.farmanager.com. —тавлю в первую очередь - просто файл-менеджер текстового режима, удобство на высоте и дл€ реб€т родом из MS-DOS, и даже тупо в случа€х, когда ѕроводник Windows не работает, рабочий стол недоступен.

DAEMON Tools Lite https://www.daemon-tools.cc/rus/downloads Ѕесовьи инструменты. „резвычайно полезна€ программа дл€ монтировани€ образов попул€рных форматов .ISO, .CCD, .BWT, .NRG CD/DVD-rom дисков в Windows всех форматов. — по€влением в Windows 10 штатной возможности монтировать образ необходимость отпала.

UltraISO https://ultraiso.ru.softonic.com/ ѕрограммный пакет дл€ работы с образами CD/DVD-дисков всех возможных форматов, создание - редактирование. “акже используетс€ дл€ записи на пишущий оптический привод и умеет монтировать образа в систему. »ногда необходима дл€ работы с образами жЄстких дисков и дискет.

WinImage http://www.winimage.com/download.htm Ѕолее легковесна€ утилита дл€ работы с образами жЄстких дисков и дискет (помимо CD/DVD) с возможностью клонировани€ на физические носители. “акже умеет работать с .VHD образами, что удобно использовать дл€ бэкапа/резервного копировани€ системного жЄсткого диска.

WinHex https://www.x-ways.net/winhex/ Ўестнадцатеричный и дисковый редактор файлов и дисков. ѕозвол€ет на низком уровне обращатьс€ к секторам, записывать и клонировать образа жЄстких дисков (побайтно), мен€ть физические параметры образов жЄстких дисков, исправл€€ таблицу разделов руками. Ќезаменима при организации виртуальных машин и иных манипул€ци€х со сливом-восстановлением данных.

R-Studio http://www.r-studio.com/ru/ ѕакет дл€ восстановлени€ удалЄнных файлов с жЄстких дисков и иных флешек. ѕрограмма умеет читать файловые системы FAT/NTFS/EXT из коробки и спецфайлы $MFT, $BITMAP, $JOURNAL, позвол€ет смотреть сектора напр€мую. ”добство в том, что первоначальна€ функци€ работает - восстанавливает файлы до их физической перезаписи.

Ext2Fsd http://www.ext2fsd.com/ Open-source драйвер файловой системы EXT дл€ Windows. ћонтирует тома EXT в систему Windows. "„итаем диски от видеорегистратора Linux".

Visual BCD Editor https://www.boyans.net/ –едактор загрузочных записей Windows файла BCD. ѕо сути, BCD это ещЄ одна ветвь реестра, и Visual BCD Editor поможет пон€ть назначение всех ключей и более нагл€дно добавить вторую ќ— в загрузчик без использовани€ сторонних загрузчиков. Ќезаменима дл€ восстановлени€ загрузчика вручную и организации загрузки UEFI на разделах MBR.

BootBuilder by AEK http://xrust.ru/soft/free_soft/87543-bootbuilder-g...ya-obolochka-dlya-bcdedit.html   сожалению, нормального сайта скачки не нашЄл. √рафическа€ оболочка дл€ BCDEDIT, даже чуть удобнее, чем предыдуща€.

LoadOrder https://technet.microsoft.com/ru-ru/sysinternals/loadorder.aspx ѕоказывает очерЄдность загрузки всех драйверов и служб Windows, начина€ от Start=0 (запуск раньше, чем по€вл€етс€ логотип) до Start=4 (не запускать службу/драйвер). ѕолезно при конфликтах драйверов и синем экране.

Process Monitor https://technet.microsoft.com/ru-ru/sysinternals/processmonitor.aspx
ћогуча€ утилита, позвол€юща€ глубоко анализировать, что творит процесс (поток) с реестром, диском, какие файлы открывает, какие дочерние процессы запускает, к каким DLL обращаетс€.

TCPView https://technet.microsoft.com/ru-ru/sysinternals/tcpview.aspx ѕросмотр установленных соединений, процессов, которые высылают что-либо в сеть, IP-адресов. Ќе сниффер пакетов, но видно подозрительную активность и отправку данных в сеть.

Windows Performance Toolkit https://msdn.microsoft.com/ru-ru/library/hh162945.aspx ѕакет, позвол€ющий графически увидеть активность железа (процессоров, жЄстких дисков, озу) во врем€ загрузки и работы процессов, ускорить загрузку ќ—, профилировать поведение любой программы и процесса. ѕолезно дл€ разработки при вы€влении слабых мест своего софта.

Password Renew by sala http://www.kood.org/windows-password-renew/ “Ємна€ утилита, позвол€юща€ на другой Windows создать нового пользовател€ с административными правами, и зайти через него, если пароль от Windows безнадЄжно забыт.

Universal Termsrv patch http://www.websphererus.com/others/enable-windows-concurrent-sessions ѕатч DLL, позвол€ющий множественные подключени€ удалЄнного рабочего стола к Windows. ќрганизует терминальный сервер на базе ќ— Windows профессиональной и максимальной редакции.

RDP Wrapper https://github.com/stascorp/rdpwrap/releases Ќе наруша€ лицензий, разблокирует возможность терминального (удалЄнного) доступа к базовым и домашним редакци€м Windows, снима€ маркетинговое ограничение Microsoft.

Registry Workshop http://www.torchsoft.com/en/rw_information.html Ѕолее удобный редактор реестра с возможностью дефрагментации, резервировани€, экспорта, сращивани€ веток, отслеживанию изменений, более удобного поиска ключей. Regedit с человеческим лицом.

SharpKeys https://github.com/randyrants/sharpkeys ”тилита, позвол€юща€ переназначить расладку клавиатуры в Windows через реестр. ј также отлавливает скан-коды нажатых клавиш.

MKey https://www.seriosoft.org/ ”тилита нашего соотечественника, позвол€юща€ переназначить дополнительные кнопки мультимедийных клавиатур на произвольные функции - регул€тор громкости, ввод символов, смайлов, запуск прогамм, много всего полезного.

EVEREST (AIDA64) https://www.aida64.com/downloads Ѕольшой и информативный пакет, показывающий системную информацию обо всех без исключени€ аппаратных компонентах ѕ . “о есть если нужно ответить на вопрос " акой у теб€ компьютер?", исчерпывающим ответом будет прислать отчЄт программы AIDA64. ”меет читать информацию с датчиков температуры и скоростей вращени€ вентил€торов, напр€жений и выводить в виджет Windows.

CPU-Z http://www.cpuid.com/softwares/cpu-z.html Ѕолее лЄгка€ утилита, показывающа€ исчерпывающую информацию о процессорах в компьютере. Ќедаром скриншот из CPU-Z считаетс€ доказательством разгона у хвастливых оверклокеров.

GPU-Z https://www.techpowerup.com/gpuz/ јналогична€ утилита дл€ получени€ информации о графических картах и видеоадаптерах в ѕ , хвасталка частотам дл€ оверклокеров.

HyperTerminal из пакета Windows XP http://microsoft.com Ќезаслуженно вырезанна€ из пакета Windows в св€зи с ув€данием попул€рности модемных подключений утилита. Ќадо возвращать, просто копируем требуемые ей файлы hypertrm.exe и hypertrm.dll из дистрибутива Windows XP.

FlashBoot http://www.prime-expert.com/flashboot/ ѕрога-мастер-волшебник, позвол€юща€ из USB-флешки или SD-карты сделать загрузочную. ‘орматирует, прописывает как USB-HDD, активирует раздел.

BootICE http://www.usbdev.ru/files/bootice/ ¬олшебна€ низкоуровнева€ утилита работы с флешками и жЄсткими дисками. ”меет работать с bootsector, MBR/PBR и таблицей разделов. ќднажды € поделил ей USB-флешку на два раздела и до сих пор не могу срастить их в один.

BootIt https://www.rekings.com/bootit-1-07/ ѕрограмма, €кобы умеюща€ восстанавливать флешки. Ќо € не нашЄл в ней низкоуровневого функционала, за исключением Flip Removable Bit, то есть можно представить флешку как несъЄмный диск - полезно, когда делаем загрузку с CompactFlash (CF) как IDE-диск через драйвер Hitachi microdrive.

Unlocker http://www.softportal.com/software-4539-unlocker.html јнлокер простенька€ программа, прописывающа€с€ в контекстное меню файлов, и с лЄгкостью позвол€юща€ удалить неудал€емые файлы, а точнее показывает процесс, которым оккупирован (зан€т) данный файл, и завершив этот процесс, освободить файл. ѕолезно при оперативном удалении тро€нов.

Thumbcache Viewer https://thumbcacheviewer.github.io/ ѕростенька€ программа дл€
извлечени€ сохранЄнных превьюшек-тамбнейлов файлов из недр папок Windows. Ќачина€ с Windows 7, проводник сохран€ет в кэш каждого пользовател€ изображени€ предпросмотра графических файлов, а не просто записывает в папку с изображением файл thumbs.db. “аким образом, открыв thumbcache, мы в теории можем увидеть то, что видела винда в файлах.
Default Programs Editor https://defaultprogramseditor.com/ ёзер-френдли программа дл€ редактировани€ ассоциаций типов файлов с определЄнными программами. ћного лет назад ассоциации файлов часто слетали за счЄт того, что кажда€ программа нетактично переписывала сопоставление расширени€ на свой .EXE, что вызывало фрустрацию вплоть до удалени€ хамского ѕќ, но и исправить проводником было проще. “еперь же ассоциации из проводника убрали, и решаетс€ через "ќткрыть с помощью...", что неудобно.

AutoIt v3 Window Info https://www.autoitscript.com/autoit3/docs/intro/au3spy.htm из пакета AutoIt. ”тилита, полезна€ при разработке софта тем, что умеет работать с чужими окнами - вы€сн€ть Handle, заголовки, параметры работающего и видимого на экране окна. ј окном в Windows считаетс€ любой элемент, будь то чекбокс или кнопка. ¬ принципе, это человеческа€ реализаци€ API EnumWindow, GetWindowText, GetWindowClass.

Media Player Classic http://mpc-hc.org/ »звестнейший, попул€рнейший плеер, который помимо функции воспроизведени€, даЄт возможность добратьс€ до аудио и видео фильтров, шейдеров и иных настроек, чтобы запустить HD видео даже на машинке уровн€ Pentium 2. “акже показывает GUID идентификатор неизвестного кодека, нагуглив который можно посмотреть видеофайл, на котором давно поставлен крест как на битом.

MonitorES Lite http://www.softpedia.com/get/System/Launchers-Shut.../Chandran-MonitorES-Lite.shtml ћаленька€ утилита, с успехом замен€юща€ скринсейвер. ƒаЄт возможность вместо заполнени€ экрана красивыми картинками во врем€ просто€ быть хранителем не только экрана, но и электроэнергии: вводит все мониторы системы в режим DPMS.

SequoiaView http://www.win.tue.nl/sequoiaview/ ѕрекрасна€ софтина, позвол€юща€ визуально отразить структуру заполненности диска или папки тем или иным файлом. ѕолезно при чистке файлопомоек и пон€ти€, где же лежит тот самый огромный файл на 4 √Ѕ.

”тилиты от NirSoft (NirSoft Package) http://launcher.nirsoft.net/utilities_list.html ќбширный список маленьких, но полезных утилит дл€ ковыр€ни€ винды. ћногие повтор€ют функционал более продвинутых системных утилит, но фишки типа WirelessKeyView и Netpass в одном паке это при€тно.  ак посмотреть ключ установленной Windows? ProduKey.exe. “о есть пак однозначно нужно иметь на флешке.

Process Hacker http://processhacker.sourceforge.net/ ћощна€ утилита по работе с процессами и потоками в реальном времени. ‘ункционал огромен, вплоть до ковыр€ни€ на уровне €дра. Ќе отладчик, но приостановить процесс можно запросто =) „то сильно поможет остановить паразитную активность вируса-шифровальщика, конечно, если он уже обнаружен.

Resource Hacker http://www.angusj.com/resourcehacker/ ѕрограмма дл€ работы с ресурсами исполн€емых скомпилированных файлов - изображени€, значки, медиа, инфо о продукте. ≈сли исполн€емый файл был скомпилирован в VB или Delphi, зачастую содержатс€ формы и диалоги в первозданном виде, что можно делать перевод на иные €зыки сторонних программ. Ќо чаще вытаскивать ресурсы.

PE Explorer http://www.heaventools.ru/pe-explorer.htm ”добный дизассемблер PE-файлов EXE, SYS, DLL и прочих скомпилированных. ћожет, и простоват как дизассемблер, однако мне чаще нужно посмотреть вызовы в сторонних библиотеках с целью последующего ковыр€ни€ бинарника Hex-редактором и затем пересчитать контрольные суммы.

AutoCutIt http://freesoft.ru/autocutit ƒревн€€ утилитка, бинарно режуща€ файл на несколько частей с точностью до байта. ƒействие, обратное команде "copy /b 1+2 3"

—разу оговорюсь, что ни одного пакетного твикера-интегратора или т€желовесного пакета с мастерами и кнопкой Ђѕочинить Windowsї или Ђ—делать збсї нет. ¬сЄ придЄтс€ делать ручками, но можно залезть так глубоко в систему, что неосторожные действи€ могут навредить настолько, что придЄтс€ применить ламерский приЄм Ђпереустановить виндуї.


ћетки:  

 ак мне нравитс€

ƒневник

ѕ€тница, 21 јпрел€ 2017 г. 03:51 + в цитатник

всЄ же по аккуратности монтаж серьЄзной электроники прошлого. –едкие и крайне дорогие девайсы из любовно выточенного алюмини€, ћ√“‘, наша элементна€ база - на вид так совсем конфетка. Ќарвалс€ на постик http://dimon-w.livejournal.com/190344.html ”строю-ка € мирное соревнование 2х политических систем. √ы-гы. про √ƒ–овский и ———–овский оптические энкодеры (датчики углового перемещени€), ну красота же.



ј вот вытащенный то ли из корейского ксерокса, то ли из плоттера, канувший в лету оптический энкодер на 1000 шагов. ¬ернее, прорезей. Ќа диске пор€дка 30...40 мм в диаметре расположены 1000 тончайших прорезей и два диода с приЄмниками. ¬сЄ это счастье одето в чЄрный светонепроницаемый кожух и сидело на валу обычного двигател€ посто€нного тока.


Ёнкодер на 1000 шагов (525x700, 46Kb)

Ќо, кроме как электроэрозионной обработкой € не представл€ю, как сделать подобные микронные прорези. Ћазер дорого, ибо каждый врез и прорезь (1000 шт.) стоит огого, несмотр€ на дешевизну резки контуров как таковой (дл€ сравнени€: выходна€ цена небольшой гнутой детали, контур которой был отфрезерован и вырезан на лазере имела отношение 650 к 252 р). Ћазер сравним с ножницами, где каждый врез есть сквозной пробой материала, канцел€рскими ножницами тоже бумага травмируетс€, если резать не с краю, а дальше по контуру уже легче идЄт, подплавл€€ и закал€€ край.



«ачем мне энкодеры? я всЄ же хочу прикрутить их к станку на валы шаговых двигателей дл€ контрол€ пропуска шагов. ѕоскольку KCam4 хоть и имеет интерфейс дл€ входа данных о текущем местоположении (!), данный функционал нереализуем на одном LPT-порту, и весь функционал вынесен на плату MaxStepper. ѕлата, разумеетс€, продаЄтс€ Kellyware за североамериканскую валюту с доставкой из-за океана, и поэтому €вл€етс€ товаром почти подсанкционным. Ћюди делают клоны на ATMega16, побайтово разбира€ протокол общени€, и всЄ ради буфера в 40 команд-фреймов, аппаратную круговую интерпол€цию и отсутствие тормозов LPT-порта. Ќо реализации подобных клонов MaxStepper, увы, заслуживают глубокой переработки, поскольку не содержат самого нужного - интерфейса пульта и входов энкодеров, да и делает вс€к кулик дл€ своего „ѕ”, посему это не наш путь. Mach3 с доступом ко второму LPT решает проблему нехватки пинов, но это уж тем более не наш путь.


ѕошукав по интернетам тему контрол€ фактических шагов Ўƒ и запланированных, пришЄл к неутешительному выводу, что кустари либо оставл€ют Ўƒ Ђas isї без контрол€ шагов, либо став€т сервоприводы (что тоже не вариант) либо совсем уж ушлые схемотехники мер€ют ток на обмотках чтобы отловить холостые шаги. Ќекоторые предлагают использовать лазер и камеру от мышек, чтобы та сама анализировала напечатанную на принтере чЄрно-белую картинку и вычисл€ла перемещени€ Ђмышиї. —амое экстремальное решение, предложенное форумчанами заключалось в том, чтобы повесить на торец вала стрелку, а параллельно этому валу поставить ещЄ один шаговый двигатель попроще, тоже со стрелкой, который бы повтор€л шаги синхронно (электрически распараллелить) с основным. »тогом подсчЄта погрешности и пропуска шагов должно составить отклонение стрелок друг от друга. ќднако видимый результат увидим только в устойчивом положении остановленных двигателей, когда уже заготовка запорота.


ќдин из вариантов контрол€ шагов мне показалс€ привлекательнее всего - оптический энкодер даЄт на выходе 4 состо€ни€ (00-01-11-10) , которые с лЄгкой руки готового схемотехнического решени€ на базе элементов Ћј7 превращаютс€ в показани€ вида STEP-DIR.  оторые можно легко сравнить с показани€ми на входе реального STEP-DIR контроллера Ўƒ. ѕричЄм сравнить можно и без умного контроллера, лишь счЄтчиками импульсов типа »≈11. ј затем результаты подсчЄта шагов сравнить чем-то вроде элементов AND или XOR, и при несовпадении хот€ бы одного из битов жать кнопку E-Stop (опускать соответствующий контакт в землю). ¬едь пропуск 1 шага хоть и нечувствителен, но при пропуске 200 шагов мы имеем 1 потер€нный оборот Ўƒ.


ѕервым минусом данной схемы €вл€етс€ не€сность с дребезгом схемы на Ћј7, временные диаграммы по€влени€ импульсов, а также предельна€ частота отлова импульсов счЄтчиком, ибо наказанием будет остановка двигател€ и исполнени€ G-кода. ќднако, непроверенна€ схема.


¬торым моментом €вл€етс€ физическа€ реализаци€ - на аликспрессе доступны энкодеры на 200 прорезей за 150 рублей, с диодами и приЄмниками, но чтобы к этому прийти, надо погасить внутреннего евре€✡.


​Ўƒ станка без редуктора имеет разрешение 1,8∞/шаг, то есть полный оборот вала достигаетс€ 200 шагами. Ёнкодер на 200 прорезей кажетс€ избыточным, поскольку выходных линий фотоприемника 2 (4 состо€ни€), т.е. 200 прорезей в теории дают 800 состо€ний, разрешение растет в 4 раза. ј ведь входной поток импульсов от датчиков энкодера нужно считать и соотносить с шагами аппаратно. ѕосему дл€ загрублени€ избыточной точности можно воспользоватьс€ дл€ первого раза дисками энкодеров из шариковой мышки, котора€ как раз имеет диски с 50 прорез€ми.


ƒругое дело, что всЄ это полезное изобретение не будет иметь с KCam св€зи и будет служить либо кнопке аварийного останова, либо просто людине за станком, уж графическое представление пропущенных шагов с кнопочкой обнулени€ € приделаю на дисплее от Nokia 1616.




Ќезаметно дл€ себ€ € также реализовал функционал поиска абсолютного нул€ в софтине на VB6 за счЄт перемещений по ос€м и отлавливани€ нажатий концевых датчиков по состо€нию &H379 LPT-порта, ведь даже 3D-принтер это делает сам перед печатью каждой модели.

–убрики:  этот удивительный мир вокруг нас

ћетки:  

ћузейности и VB6 пост

ƒневник

„етверг, 13 јпрел€ 2017 г. 03:03 + в цитатник
ћес€ц не писал, зан€т😬. ’а, идеальный смайл))
„ем поделитьс€? Ќаходкой, списанной. ѕредыстори€ такова, что работаючи в ÷јѕе в начале 2010-х, как новобранцу, мне досталась машинка Compaq DeskPro кака€-то там в десктоп форм-факторе, на ней была наклейка мол Windows 98 compatible и ключ этой самой винды. “ак как в почтовом €щике в принципе не предусмотрены каналы св€зи (и да, теперь € в этом секу, ибо безопасники местные были профаньЄ по меркам тех людей, с кем сейчас общаюсь, суд€ по методам отлова любителей интернетов на рабочих местах), о левых операционках на рабочих машинах знать не знали ни мокрый софт, ни даже органы.   чему это всЄ? Ќа ней давно сто€ла XP, внутри был Pentium III 700 MHz (Coppermine) 128 SDRAM133 и 80√Ѕ Ќ∆ћƒ, но что самое удивительное, так это nVidia Quadro 64 ћЅ кака€-то там пассивна€. ƒатировалась машинка изготовлением 2000 года, в ней села батарейка и каждый день € в противовес нефединскому голосу включал еЄ, и она издавала полуваттным динамиком весьма недвусмысленные намЄки на сброс настроек BIOS. ’ерн€ вопрос, через врем€ € сменил батарею и видеокарту на двухголовую, а к чему вс€ эта речь? —уть в том, что эта вот DeskPro сейчас кажетс€ рухл€дью, даже в далЄком 2010 уже таковым €вл€лось, поскольку 2...4 √Ѕ ќ«” на 775 сокете €вл€лось стандартом де-факто (жирные годы и долгоиграюща€ платформа), а представьте, 2000 год. ¬от выбито свежее финансирование, и в госконтору став€т вожделенные после Pentium I и автокада/пикада дл€ доса с галиматейным спулером на LPT-принтеры нормальные современные машины. » дл€ сравнени€ - в 1999 году родители обновили мне комп (буквально за год до описываемых событий) на ASUS P2B с Celeron 333 и 64 ћЅ ќ«” + 5 √Ѕ Ќ∆ћƒ и двухмегабайтной немощной видеокартой. ¬ новом корпусе, однако апдейт 70% железа уже считай новый комп, но у него оставалс€ 4x Creative CD-ROM + ISA SB16 (!), 5,25" флопповод и 400 ћЅ Ќ∆ћƒ от ЂчетвЄркиї. ¬ 2002-ом году он успешно дал дуба от моих кривых рук накануне  омтека, и взамен был приобретЄн Celeron Tualatin 1000 ћ√ц с 256 ќ«” на мамке Epox (€ его мебелировал в конце, и он с переменным успехом показывал нам с л€рвой киношки, а € боролс€ за бесшумность). Ќо это потом он обзавЄлс€ 40 √Ѕ Ќ∆ћƒ (потом 120...), 512 ќ«” и той самой двухголовой Radeon 8500 64ћЅ. ѕредставьте себе, насколько топовой машинкой был DeskPro в своЄм 2000-м, когда средний размер жЄсткого диска был 20 √Ѕ, а о 64 ћЅ видео можно было во снах грезить.

Ќо нет, читатель, это всЄ лишь вступление.

ƒосталась недавно причудлива€ машинка из встроенной техники - комплекса радиоконтрол€, на мамке ASUS TX97E первый пентиум MMX, года 1998 сборки, вполне по тем временам оправданна€ штука. — двум€ LPT-портами, ј÷ѕ в виде звуковой карты, подключающа€с€ к AT и ATX Ѕѕ, с каркасом на винтах √ќ—“ 17473. Ќа ней работала радиософтина, которую € уже не увидел. Ќо самым необычным дл€ мен€ стало вот это:
_MG_2610 (700x556, 102Kb)
_MG_2614 (700x466, 235Kb)
_MG_2618 (267x700, 78Kb)
COMPAL LM-LT220 (700x466, 122Kb)
COMPAL TVC02 GKRTVC02 LM-LT220 (700x548, 132Kb)
Ёто видеопара Compal TVC02 и LCD-дисплей Compal LM-LT220. ќднозначно в музей ибо врем€ на включение и проверку работоспособности надо где-то найти. — проприетарным разъЄмом и шиной передачи данных в дисплей (VGA тоже поддерживаетс€). ѕитание тоже по шине. ¬идимо, какое-то бюджетное решение, однако, 1998 год и это сама€ ранн€€ ∆ -панель, которую € держал в руках (вру, ноутбук 486 с ч/б пассивной матрицей был). ”мельцы приделали к ней вывод неизвестно чего, скорее всего это продублированные кнопки управлени€ (матрица работала в составе комплекса), что интересно - в интернетах, кроме как на eBay, упоминаний про Compal совсем немного, и решение, выходит, совсем не бытовое. ƒрайверов нет, если только не на дискетках, фирмы уже нет, и вот он закрадываетс€ вопрос - панель всЄ же ∆ , цветна€, это ж каких бабок она стоила в 1998 и сколько в итоге стоил подобный комплекс? ќднозначно в музей или на дачу, а может как информационный дисплей/стенд, но шина св€зывает руки - вариант запихнуть в Atom 525 как метеостанцию (пха!) сразу же отметаю ибо Atom может позволить себе современную ќ— Win10. ¬от такие чудеса.


ѕо VB6, как в заголовке поста, хочу рассказать об одном успехе. ѕрограмма KCam 4 при всей своей пригодности и простоте, €вл€етс€ топорной прогой на VB6, где люди рисуют лишь эскизы, и она€ один из них. —уть моей претензии проста: раз есть у мен€ возможность подключить к ѕ  множество устройств по COM-порту или переходникам USB-COM, которые позвол€ют отсылать всЄ, что угодно, а не просто дЄргать пины LPT, почему бы не прикрутить больше функционала к станку? Ќапример, очень не хватает аппаратного Keyboard jog (пульт управлени€), ибо когда ты находишьс€ далеко от терминала и ловить 0 заготовки неудобно с клавиатуры, выручает пульт. Ѕольшинство китайских контроллеров станка (STEP-DIR) имеют пины дл€ подключени€ пультов, но пульты эти оказываютс€ неконтроллируемы персональным компьютером и KCam, ибо координата не мен€етс€ в программе. –азве что использовать MaxStepper от Kellyware или его клоны. ќн действительно полностью работает по UART и даже доставл€ет пам€тью команд (независимость от тормозов и зависаний LPT), но это не наш метод. ƒаже Arduino GRBL не наш путь - будем писать всЄ своЄ.
”вы, KCam4 не предусматривает расшир€емость, а равно это тупо мышкой по экрану елозить без гор€чих клавиш управлени€. ƒело усугубл€ет подключение к станку по RDP, и аппаратна€ PS/2 клавиатура, подключенна€ пр€мо к станку, будет слать символы в экран входа (пока работает RDP), и хот€ в KCam предусмотрена работа под Game-порту, джойстика отрод€сь не было, да ещЄ и не работает оно. ƒаже самое простое - при перестановке заготовки не хватает зелЄной кнопки повторени€ G-кода (PLAY). я просил у Kellyware обратить внимание на эту проблему, но кажетс€, автор молчит уже сколько-то времени. » вот успех нашЄл мен€.
—делано было следующее: в станке стоит мо€ плата с USB-UART CH340G на борту, релюшками дл€ переключени€ питани€ шпиндел€, общего питани€ и подсветки, а также заделом под тахометр и иные фенечки типа ваттметра, котора€ может помочь реализовать вышеописанное - зелЄную кнопку на одном из пинов (их число, кстати, очень ограничено, ATMega8 всЄ же). Ёта плата анализирует кнопки, и если нажата аппаратна€ PLAY, запустить G-код повторно. Ќо кнопка PLAY в KCam не содержит ни хотке€, который бы SendKeys мог сэмулировать, ни пункта меню - тупо графическа€ кнопка TButton без заголовка!
»так, плата сканирует клаву, посылает нужный символ в UART-COM-порт компьютера, а мо€ самописна€ прога отлавливает команду и должна что-то сделать. ј делает она это следующим образом: в WinAPI всЄ же есть функции работы с окнами: FindWindowX, SendMessageS, EnumChildWindows, apiGetWindowText, GetParent, PostMessage, сырцы могу дать, с помощью этих заклинаний мы находим процесс KCam, посылаем ему F4 (модальное окно CNC Controls), а затем циклом перечисл€ем все имеющиес€ кнопки в окне, попутно записыва€ их пор€дковые номера (instances, как это делает Au3info), получаем hWnd каждой из них - делаетс€ один раз на весь сеанс, и путЄм подсчЄта номеров от кнопок с текстом (Caption, GetWindowText) находим желанную кнопку. «апоминаем еЄ hWnd и путЄм PostMessage посылаем ей WM_LBUTTONDOWN и WM_LBUTTONUP. ѕри этом кнопка в программе KCam оказываетс€ в нажатом и подн€том положении. SendMessage здесь не пл€шет, поскольку ожидает отклика от программы, а PostMessage посылает сообщение в пустоту. Ќе виснет нажатие кнопки в чужом окне.
“аким образом, при длительном удержании аппаратной кнопки "влево", мы посылаем в UART 2 событи€: нажатие и отпускание, например ЂLї и Ђlї одним (трем€) байтом. ќтлавливаем их, и на основе каждого событи€ шлЄм в hWnd чужого окна PostMessage WM_LBUTTONDOWN и WM_LBUTTONUP. ¬уал€. “ак что даже самый неудобный интерфейс можно обуздать, ибо это не переписывание KCam снул€. ѕри должной аккуратности обращени€ с KCam можно действительно безглючно управл€ть кареткой с пульта и ловить ноль заготовки. Ћебедев говорит софтверизаци€, € выбираю обратный путь.
KCam4 helper (563x345, 49Kb)
–убрики:  здесь и сейчас

ћетки:  

Ётимологическа€ ошибка

ƒневник

—реда, 29 ћа€ 2013 г. 02:33 + в цитатник
 ак гласит педики€:
Hex (hexadeсimal) Ч обозначение шестнадцатеричной системы счислени€.
¬ переводе с немецкого ЂHexenї означает Ђведьмы, колдуньиї, а Ђto hexї Ч Ђколдоватьї.
“о-то € не мог долгое врем€ уловить св€зь меж фентезийной игрушкой, именованной превосходной степенью степени счислени€. Ђќн куда более шестнадцатеричен, даже более, шестнадцатеричнейший...ї.
“еперь, обнаружив пропажу своего html-сборища полезных функций, € буду публиковать их пр€мо тут. ћне насрать на то, что это вовсе не дн€фковый формат, просто сюда € имею быстрый доступ, а ещЄ больше мне насрать на мнение окружающих, что VB6 отнюдь не сама€ лучша€ среда реализации всего-всего, € как  ен —ильверман, отрабатываю алгоритмы и принципы в самом что ни на есть допустимо-нестрогом и в то же врем€ однозначно интерпретируемом €зыке BASIC. «ачастую пусть так и остаЄтс€, ибо зачастую производительность Ђи так сойдЄтї. «атем весь этот индусский код можно запилить в ASM, однако VB хорош тем, что доступен даже из Excel.
»так, не отвлекаемс€.
ѕеревод кодовых страниц CP1251 и CP866 (VB, QB)
Function String1251To866$(strWin$)
   '»з кодовой страницы 1251 в 866
   TwinTodos$ = ""
   For i = 1 To Len(strWin$)
      k = Asc(Mid$(strWin$, i, 1))
      If k >= 192 And k <= 239 Then
        TwinTodos$ = TwinTodos$ + Chr$(k - 64)
      ElseIf k >= 240 And k <= 255 Then
        TwinTodos$ = TwinTodos$ + Chr$(k - 16)
      ElseIf k = 9 Then ' онверси€ табул€торов
        TwinTodos$ = TwinTodos$ + Space$(8)
      Else
        TwinTodos$ = TwinTodos$ + Chr$(k)
      End If
   Next i
   String1251To866$ = TwinTodos$
End Function

Function String866To1251$(strDos$)
   '»з кодовой страницы 866 в 1251
   TdosTowin$ = ""
   For i = 1 To Len(strDos$)
      k = Asc(Mid$(strDos$, i, 1))
      If k >= 128 And k <= 175 Then
        TdosTowin$ = TdosTowin$ + Chr$(k + 64)
      ElseIf k >= 224 And k <= 239 Then
        TdosTowin$ = TdosTowin$ + Chr$(k + 16)
      ElseIf k = 9 Then ' онверси€ табул€торов
        TdosTowin$ = TdosTowin$ + Space$(8)
      Else
        TdosTowin$ = TdosTowin$ + Chr$(k)
      End If
   Next i
   String866To1251$ = TdosTowin$
End Function

Ќахождение точки пересечени€ двух отрезков (VB,QB)
Sub LineSegmentCross(x1, y1, x2, y2, x3, y3, x4, y4, xCross, yCross)
  ' —обственно сама выходна€ функци€
  LineEquation x1, y1, x2, y2, AP1, BP1, CP1
  LineEquation x3, y3, x4, y4, AP2, BP2, CP2
  LineCrossing AP1, BP1, CP1, AP2, BP2, CP2, xCross, yCross
End Sub

Sub LineEquation(x1, y1, x2, y2, AP, BP, CP)
  ' ѕеревод координат линии по двум точкам X,Y в коэффициенты
  If x1 = x2 And y1 = y2 Then
    AP = 0
    BP = 0
    CP = 0
  Else
    AP = y2 - y1
    BP = x1 - x2
    CP = -AP * x1 - BP * y1
    coeff = Sqr(AP * AP + BP * BP)
    AP = AP / coeff
    BP = BP / coeff
    CP = CP / coeff
  End If
End Sub

Sub LineCrossing(AP1, BP1, CP1, AP2, BP2, CP2, xCross, yCross)
 'Ќахождение пересечени€ линий
 Delta = AP1 * BP2 - BP1 * AP2
 If Delta <> 0 Then
   xCross = -(CP1 * BP2 - BP1 * CP2) / Delta
   yCross = -(AP1 * CP2 - CP1 * AP2) / Delta
 End If
End Sub

јлгоритм —азерленда- оэна, любезно транслированный одним добрым человеком из википедии на VB
ƒл€ Ђурезонивани€ї (обрезани€) с сохранением углов и направлений координат отрезка (X0,Y0,X1,Y1), если оный выходит за рамки xMin,xMax,yMin,yMax. ¬озвращает False если он не пересекает ограниченную область.
Private Enum EdgeCode
 ecNone = &H0
 ecLeft = &H1
 ecRight = &H2
 ecBottom = &H4
 ecTop = &H8
End Enum

Public Function CohenSutherlandLineClip(x0, y0, x1, y1, xMin, xMax, yMin, yMax) As Boolean
 '—ама процедура алгоритма
 Dim accept As Boolean, done As Boolean
 Dim outcode0 As EdgeCode, outcode1 As EdgeCode, outcodeOut As EdgeCode
 Dim X As Double, Y As Double
 accept = False
 done = False
 Call CompOutCode(x0, y0, xmin, xmax, ymin, ymax, outcode0)
 Call CompOutCode(x1, y1, xmin, xmax, ymin, ymax, outcode1)
 Do
  If (outcode0 = ecNone) And (outcode1 = ecNone) Then
   accept = True
   done = True
  ElseIf ((outcode0 And outcode1) <> ecNone) Then
   done = True
  Else
   If (outcode0 <> ecNone) Then outcodeOut = outcode0 Else outcodeOut = outcode1
   If (outcodeOut And ecTop) Then
     X = x0 + (x1 - x0) * (ymax - y0) / (y1 - y0)
     Y = ymax
   End If
   If (outcodeOut And ecBottom) Then
     X = x0 + (x1 - x0) * (ymin - y0) / (y1 - y0)
     Y = ymin
   ElseIf (outcodeOut And ecRight) Then
     Y = y0 + (y1 - y0) * (xmax - x0) / (x1 - x0)
     X = xmax
   ElseIf (outcodeOut And ecLeft) Then
     Y = y0 + (y1 - y0) * (xmin - x0) / (x1 - x0)
     X = xmin
   End If
   If (outcodeOut = outcode0) Then
     x0 = X
     y0 = Y
     Call CompOutCode(x0, y0, xmin, xmax, ymin, ymax, outcode0)
   Else
     x1 = X
     y1 = Y
     Call CompOutCode(x1, y1, xmin, xmax, ymin, ymax, outcode1)
   End If
  End If
 Loop Until done
 CohenSutherlandLineClip = accept
 End Function

 Private Sub CompOutCode(X, Y, xMin, xMax, yMin, yMax, code As EdgeCode)
   '¬ычисление бинарного кода состо€ни€ пр€мой (отрезка)
   code = 0
   If (Y > yMax) Then code = ecTop _
   Else If (Y < yMin) Then code = ecBottom
   If (X > xMax) Then code = code Or ecRight 
   Else If (X < xMin) Then code = code Or ecLeft
 End Sub

јлгоритмы сортировки массивов
    For i = 0 To UBound(MyArray) '—ортировка пузырьком
        For j = i + 1 To UBound(MyArray)
            If MyArray(i) > MyArray(j) Then
                temp = MyArray(i)
                MyArray(i) = MyArray(j)
                MyArray(j) = temp
             End If
       Next j
    Next i
'---------------------------------------------
' —ортировка выбором (в принципе, N = UBound(MyArray)
         For q = 1 To N - 1
            Min = MyArray(q)
            k_min = q
            For j = q + 1 To N
               If MyArray(j) < Min Then
                 MinY = MyArray(j)
                 k_min = j
               End If
             Next j
             MyArray(k_min) = MyArray(q)
             MyArray(q) = MinY
         Next q

ѕреобразование координат 3D в 2D-проекцию на экране (догадываетесь, к чему € веду всем этим кодом;)?)
Dim camX, camY, camZ    'јбсолютные координаты камеры
Dim aX, aY '”глы наклона камеры по ос€м X и Y
Dim xSize As Integer, ySize As Integer '–азмеры экрана (видимой области)

Function Calculate(X, Y, Z, xscr, yscr) As Boolean
  '—обственно, функци€ проекции из координат точки в экранные
  '√оворит True если надо рисовать
  CalculateTemporaryAxis X, Y, Z, tmpX, tmpY, tmpZ
  If tmpZ > 0 Then Calculate = False: Exit Function

  tempZ = ySize / tmpz
  xScr = Int(tmpX * tempZ + (xSize / 2))  'xSize
  yScr = Int(tmpY * tempZ + (ySize / 2))
  Calculate = True
  '¬ формулах проекции заключен FOV
End Function

Sub CalculateTemporaryAxis(X, Y, Z, tmpX, tmpY, tmpZ)
 'ѕриведение координат из абсолютных к оси Z, направленной из камеры
 tmpX = (X - camX) * Cos(aY) - (Z - camZ) * Sin(aY)
 tmpZ = ((X - camX) * Sin(aY) + (Z - camZ) * Cos(aY)) * (Cos(aX) - (Y - camY) * Sin(aX))
 tmpY = tmpZ * Sin(aX) + (Y - camY) * Cos(aX)
End Sub
soxie_pure_visual_basic_3d (700x406, 55Kb) soxie_pure_visual_basic_3d_1 (700x406, 153Kb)
–убрики:  этот удивительный мир вокруг нас

ћетки:  

„тобы не засыхало

ƒневник

—уббота, 20 ќкт€бр€ 2012 г. 03:18 + в цитатник

серое вещество, эпизодически ставлю перед собой какие-нибудь задачки, в принципе бессмысленные, но если хорошо присмотретьс€ в практической плоскости Ђможет пригодитьс€ї, то интерес подогреваетс€ пока не приходит аврал или какие-то дела посерьЄзней. ѕотом к этим задачкам возвращаюсь, например, когда узнаю что-то новое, что может помочь в этой области. —егодн€ хочу показать аудитории свои поделки на тему изображений, вдохновлЄнный статейками с хабра.


»так, поделка є1 - восстанавливалка картинок (скорее, убиралка), и сразу пример практического применени€: нивелировать к ебене фене зелЄную свечку и следы от неЄ в виде тени на стене. —лева - исходное изображение, справа цветом magenta руками неаккуратно нанесена маска.


vosst-0 (594x501, 143Kb)


∆му кнопочку Ђ—ложної - вуал€, свечки и след простыл, за один проход.


vosst-1 (594x501, 143Kb)


”сложн€ем задачу: портим изображение кнопкой Ђѕортить!ї рандомными пр€моугольниками и иным ручным мусором. ∆мЄм Ђ—ложної.


vosst-3 (594x501, 142Kb)


«а один проход не справл€етс€, на картинке слева - результат работы программки, справа видно ход мыслей (алгоритма), сперва восстанавливаютс€ самые окружЄнные информацией пустышки, то есть те, которые ближе к кра€м пр€моугольников и одиночный мусор.


vosst-4 (594x501, 151Kb)


≈щЄ через пару проходов видим, что получилось на выходе.


vosst-5 (594x501, 149Kb)


ѕринцип прост: усреднение цветов соседних 8 пикселов без учЄта их весов в картинке или области, первоначально прога Ђцепл€етї те, у которых больше всего известно соседей, угловые и одиночные пикселы, как доходит до низа изображени€ - проход (pass) закончен. » так столько раз, сколько нужно. ¬ итоге за недостатоком информации к середине испорченной области образуетс€ настолько усреднЄнный цвет (как на полу возле каблука), что энтропи€ может достигнуть максимума (серый цвет: 127,127,127), если картинка состоит из ключевых граничных цветов. Ѕольша€ испорченна€ область демонстрирует направление работы слева сверху (опционально), и исходные цвета берутс€ оттуда.


vosst-6 (594x501, 118Kb)


–азумеетс€, ничего ценного восстановить на такой большой области не удалось просто потому, что двухмерна€ картинка не избыточна в принципе. Ќалицо признаки размыти€, пропорционального удалению от исходных пикселов.


vosst-7 (594x501, 90Kb)


 нопочка Ђќч—ложної not implemented yet, а Ђѕростої рассчитана на пр€моугольные кос€ки, где восстановление идЄт от углов без приоритетов соседних пикселов, и более веро€тна полна€ энтропи€ к центру. ¬от така€ вот бесполезна€ поделка, годна€ разве что дл€ убирани€ свечек.




ѕоделка є2. ¬дохновлЄн щелевой фотосъЄмкой, особенно фильмом The Fourth Dimension (1988) и обложкой альбома Bent Out of Shape группы Rainbow. ћатематически картинка дл€ одного пиксела содержит два измерени€: X и Y, а видео - три: X, Y и T (врем€). ‘ормулировка не совсем верна€ (из-за значени€ цвета пиксела, которое мен€етс€ по времени и €вл€етс€ отдельным измерением), но дл€ простоты сойдЄт. ¬ SLIT-фотосъЄмке мы мен€ем ось Y на ось времени, располага€ по вертикали полоску изображени€ из каждого кадра шириной 1px. ¬ поделке € отошЄл от канонической SLIT-съЄмки и сделал нечто, более подход€щее под определение rolling shutter.


я раскадровал обычное видео открывани€ и закрывани€ двери в серию bitmap'ов.


raskadrovka (640x404, 122Kb)


«атем мо€ программка берЄт за основу нулевой кадр, и по заданным параметрам (стоп-кадр, количество повторов и начальна€ строка) накладывает по одной строчке из каждого кадра со смещением в 1px на выходное изображение.


slic0 (640x470, 120Kb)


Ѕалу€сь с параметрами, удаЄтс€ получить тот самый рейнбоувский эффект. ¬тора€ картинка перед публикацией прошла через первую поделку дабы не смущать читателей.


—инусоидаћетатрон

“акие дела. » смехуЄчков ради кадры с јланом –икманом в роли ћетатрона из к/ф Ђƒогмаї, 1999.


ћетатрон без ху€
–убрики:  этот удивительный мир вокруг нас

ћетки:  

–аздражает каждый раз.

ƒневник

—уббота, 18 јпрел€ 2009 г. 23:52 + в цитатник
Ќастроение сейчас - не стоило удел€ть этому столько внимани€?

Ђ ак бы соблазнительно ни выгл€дел доллар слева от суммы, писать его в русских текстах можно только справа. (»сключение могут составл€ть финансовые и биржевые тексты, но это отраслевой стандарт, который не может распростран€тьс€ на остальные области.)
¬ русском €зыке единица измерени€, сто€ща€ перед значением, означает примерно столько: Ђдолларов стої. ј не писать пробел перед знаком доллара, это все равно что писать 50руб. “ак себе может позволить упражн€тьс€ в типографике только продавщица продмага с трафаретом и шариковой ручкой. (»сключение тут составл€ют финансовые документы, где отсутствие пробела страхует от приписки лишних цифр.)ї


вз€то с http://www.artlebedev.ru/kovodstvo/sections/74

—пециально вз€л и сфоткал ћне непон€тно, почему Ћебедев оправдывает написание значка доллара и иных национальных валют после суммы, а особенно в русско€зычном контексте. » использование пробела между $ и 10 совершенно неоправданно - знак £, ¥, $ или И не спутаешь с какой-либо цифрой.

¬ цел€х программировани€ стоило бы сначала писать идентификатор валюты, а затем уже сумму. » дл€ большей утонченности кода стоило сразу вводить тип данных, схожий с CURRENCY - только добавл€ть еще один байт дл€ типа валюты. ѕри этом не потребуетс€ в имени переменной указывать принадлежность суммы.

ƒаже на ценнике альбома Nationa Gallery of Art из ¬ашингтона € не нашел пробела между значком и суммой - и нормально это читаетс€ Ђдолларов двадцать четыре и дев€носто п€ть центовї, иначе в словесной речи не осталось бы места дл€ монеток. » даже если сумму писать словами, как на билетах в ¬атикан - сначала валюта, потом сумма!

» даже когда наконец многострадальный значок рубл€ примут, стоит его писать перед суммой. я только за это.



“акже € последнее врем€ очень много внимани€ удел€ю букве ЂЄї, кавычкам Ђї и ФД которые в отличие от " можно использовать в нормальной типографике. ћы уже выросли из DOS и текстового режима 80x25, чтобы ограничивать себ€ таблицей ASCII.

–еб€т, ну не экономьте врем€ использу€ Shift+2 (верхние кавычки), браузер их не замен€ет, в отличие от текстовых процессоров.


* Ётот пост увидел свет и был процитирован на мейле
–убрики:  бывает)
увидевшие свет

ћетки:  

 —траницы: [1]