31.08.2009

Seeeduino Mega

Название: Seeeduino Mega
Процессор: ATmega1280
Тактовая частота: 16 МГц
Совместимость с Shield-платами: да
Совместимость с Arduino IDE: да
Страница проекта: www.seeedstudio.com/depot/seeeduino-mega-fully-assembled-p-438.html
Дата первого упоминания: 29.06.2009

Амбициозный инженер Альберт Миао не мог не ответить на выпуск Arduino Mega: он опять постарался превзойти своих итальянских коллег (см. мой обзор о Seeeduino):



Основные преимущества Seeeduino Mega перед Arduino Meaga: компактнее, больше выходов, есть возможность работы портов F и K от 3,3В. В остальном плата повторяет достижения Seeeduino, среди которых отключение автосброса, возможность установки дублирующего ряда колодок с шагом 2,54 мм, посадочные места для дополнительных колодок I2C и выходов FT232 - я уже писал об этом, довольно подробно.

Кстати, о колодках - в отличие от Arduino Mega, здесь они поставляются отдельно:



... остается припаять только необходимые:





Автор составил сравнительную таблицу, чтобы отличия от Arduino Mega стали яснее:

СвойствоSeeeduino MegaArduino Mega
МикроконтроллерAtmega1280Atmega1280
Питание5В / 3,3В (Порты F,K)
Входное напряжение (рекомендовано)7-12В7-12В
Входное напряжение (пределы)6-20В6-20В
Цифровые пины70 (из них 14 ШИМ)54 (из них 14 ШИМ)
Аналоговые пины1616
Макс. ток через пин40 мА40 мА
Макс. ток через 3,3В-пин5050
Flash-память128К (4К из которых занято bootloader-ом)128К (4К из которых занято bootloader-ом)
SRAM (ОЗУ)8 Кб8Кб
EEPROM4 Кб4 Кб
Тактовая частота16 МГц16 МГц
Портов UART33
Контроллеров I2C11
Размеры71 х 53 х 11,3 мм101 х 53 х 13,6 мм
Разъем питанияJST двухпиновый, шаг 2,54 мм (есть переход на 3,5мм)3,5 мм
Переключение питания Внешнее/USBПереключательАвтоматически


Теперь о цене. Если ценник на Arduino Mega колеблется около цифры в 65 USD, то Seeeduino Mega стоит лишь 50 USD.

25.08.2009

Доступ к СМП по USB (2)

Вторая версия USB-устройства чтения-записи СМП/МПО Электроника МК-90.

В схему добавлен резистор 22К, притягивающий вход измерения батарейки к GND. Он позволяет избежать чтения "ерунды", когда пин висит в воздухе – теперь будет стабильный ноль.

Также я задался риторическим вопросом о том, стоит ли тащить в схему ICSP-разъем, если и так уже есть USB. Все, что требуется - это bootloader, который будет принимать новую прошивку через USB и прошивать ее во flash-память. С одной стороны - пустяк, может и не пригодиться, с другой - доступный способ обновления, не требующий программатора.

Итак, теперь управление всегда передается bootloader-у, который опрашивает джампер JP1. Пользователь аккуратно разбирает корпус устройства (при наличии такового ;), устанавливает джампер, подключает кабель USB. По установленному джамперу bootloader понимает, что грядет обновление прошивки и ждет данных для записи. Пользователь должен запустить отдельную программу smpreader_updater.exe с единственноым аргументом - именем hex-файла с новой прошивкой. После успешного завершения программы, надо отключить устройство от USB, снять джампер и завинтить обратно.




Бутлоадер был создан на основе релиза V-USB 20090415, а также проектов AVRUSBBoot и USBaspLoader.

AVRUSBBoot мне понравился экстремальной простотой и укомплектованностью host-программой – ну просто бери и пользуйся! Не тут-то было: с момента первого (и последнего ;) релиза прошло довольно много времени, поэтому пришлось обработать напильником: учесть особенности последнего стандарта C++, обновить морально устаревшее ядро V-USB, немного подкорректировать алгоритм проверки условия активизации и корректность выхода (позаимствовал идеи из USBaspLoader).

Увы, размер необходимой памяти программ с учетом bootloader-а вырос на 2К и составил более 4К. В таком варианте ATTiny2313 использовать уже не получится, ATmega48 – только если выкинуть код измерения напряжения батарейки. Поэтому, практически безальтернативно проект собирается на ATmega8-16PU.

Схема, исходники и бинарники: smpreaderusb_2.0.zip.

Файлов с прошивками теперь стало два: сначала надо прошить программатором smpreaderboot.hex, а уже потом через USB можно заливать smpreaderusb.hex. Подробные инструкции на английском языке в виде README-файлов заботливо разложены мной по подкатагам ;)

Кстати, собрал прототип на макетной плате под пайку, выглядит так:



Вместо двух отдельных светодиодов Rx и Tx я использовал один двухвыводной, токоограничительные резисторы R3, R4 и R5 имеют номинал 330 Ом.

К моему огорчению, по-прежнему отсутствуют:

  • GUI, печатная плата
  • инсталлятор (или хотя бы inf-файлы для драйверов)
  • Makefile для консольной сборки
  • поддержка Linux (пока – только потенциальная)
Если руки дойдут, возможно - все это и появится, следите за новостями ;)

23.08.2009

Новый V-USB

Вчера вышла новая сборка V-USB - программной реализации USB 1.1 для микроконтроллеров ATmega (именно на ней основаны AVR910 by prottoss и мой SMPReaderUSB). ChangeLog гласит:
  • исправлена бага определения End Of Packet в режиме 16.8 МГц;
  • исправлена бага с битстаффингом и рассинхронизацией в режиме 16.0 МГц;
  • дескриптор конфигурации чуть подкорректирован для USB 1.1, чтобы был установлен старший бит в bmAttributes (там, где флажок SELF_POWERED);
  • процедура подсчета CRC заменена на более быструю - но по-прежнему, необходим кварц 18.0 МГц.
Буду иметь ввиду на будущее, хотя, на первый взгляд, изменения по отношению к апрельскому релизу - минимальные. Реализация для частоты 12 МГц пока что находится вне конкруенции ;)

20.08.2009

Arduino Nano v.3

Название: Arduino Nano v.3
Процессор: ATmega328P
Тактовая частота: 16 МГц
Совместимость с Shield-платами: нет
Совместимость с ArduinoIDE: есть
Веб-сайт проекта: http://arduino.cc/
Дата первого упоминания: 13.07.2009


На текущий момент - это последняя плата, разработанная под маркой Arduino. С предыдущей версии 2.2 изменилось:
  • МК ATmega328P (32К Flash)
  • Голубой светодиод питания сверху
  • Выводы A0-A7 теперь совместимы с Arduino Pro Mini и Arduino Stamp
  • Печатная плата стала двухсторонней, проще модифицировать :)
Основаная идея этой платы - стремление к миниатюризации, но не в абсолютном понятии, как у Arduino Mini, а при сохранении USB.


Я считаю - в принципе, получилось неплохо (в ArduinoIDE 0017 эта плата уже есть в списке поддерживаемых). Плата имеет возможность внешнего питания с автопереключением, как в Duemilanove. Удалось разместить разъем ICSP, свтодиоды Rx,Tx,L и даже крошечную кнопочку сброса ;) Как и в Seeeduino, наружу выведены дополнительные входы АЦП, которых нет у МК в DIP-корпусах, а это значит, что вы получаете еще два I/O пина.

К сожалению, вилка X4 на плату не поместилась, поэтому BitBang-программирование невозможно.


Подобно BoAdruino, гнезда PBS заменены на вилку PLS: это означает, что плату можно легко воткнуть в макетку или даже в DIP-кроватку соответствующей ширины и количества ножек.

Выводы

Из плюсов: идеально подходит для макетирования, если у вас есть макетная беспаечная плата. Небольшой вес позволяет использовать ее для установки на летательные аппараты. Не нужен переходник USB-TTL.

Минусы - нужна макетка или гнезда BLS, чтобы пристыковаться, нужен разъем mini-B USB, чтобы заливать скетчи, да и процессор "в случае чего" будет не поменять. Нет возможности запустить процессор от 3,3В.


Ограниченная партия плат доступна для покупки здесь.

14.08.2009

Фоторезистор

Наконец-то ко мне в руки попала партия фоторезисторов! Сделано в СССР, датчик называется ФР-764:



Датчик работает так: в темноте его сопротивление довольно велико (минимум - 3 МОм). Когда в прозрачное окошечко попадает свет, сопротивление падает пропрционально освещенности. Соответственно, чтобы использовать его в Arduino, собирается несложная схема:



Подключаем, естественно, к аналоговому входу. Подтягивающий резистор R1 и фоторезиcтор PH1 образуют делитель напряжения питания, опорное напряжение АЦП - оно же. Производим простейшее соединение на колодках Arduino:





Пишем простейший скетч, который считывает показания АЦП и отправляет их в последовательный порт (для наглядности - с переводом строки):

int val;

void setup()
{
Serial.begin(38400);
analogReference(DEFAULT);
}

void loop()
{
val = analogRead(0);
Serial.println(val);
delay(100);
}


Только не забудьте выставить соответствующую скорость порта в Arduino IDE:



и подключиться к порту через иконку Serial Monitor:



Первым делом, можно проверить, что считывается в "темноте":



В "темноте" ;) с АЦП будет считываться значение около 1010..1020, лампа дневного света над моим столом будет выглядеть как 950-980, а вот если к сенсору приблизить настольную "галогенку", можно получить около 500-600, в зависимости от расстояния.

Вероятно, после несложной калибровки ФР-764 можно использовать в схеме датчика освещенности или же в качестве сенсора работа, ориентирующегося на свет. Максимальное напряжение, которое можно приложить к датчику - 20 вольт, максимальная длина волны - около 660 нм. Получается, что граница чувствительности приходится на красный диапазон, который закхватывается не целиком. Если это критично, надо искать ФР-765 - у него предел составляет около 700 нм.

13.08.2009

И снова Xbee в LinuxCenter.ru

Приятно видеть, что ассортимент аксессуаров к Arduino у официального дистрибьютера Linuxcenter.ru пополнился, несмотря на финансовый кризис и сезонный спад продаж.

Итак...

1. Платы Xbee Pro 50mW:







Xbee - это решение для беспроводной связи в диапазоне 2,4 ГГц, дающее надежную цифровую связь на скоростях до 250 КБит/с и расстоянии до 1600 метров. Основано на технологии ZigBee, которая сама по себе заслуживает отдельной серии статей. Питается модуль от 3,3В/40 мА, имеет кроме всего прочего цифровые и аналоговые входы, может управляться и конфигурироваться удаленно, поддерживает шифрование данных. А все, что требуется от вашего устройства - наличие последовательного порта ;)

Лично мне старшие товарищи советовали именно серию Pro, но если ценник кусается (а ведь надо-то целых две штуки, между прочим ;), то можно попробовать и модули на 2 мВт, они немного дешевле:





2. Платы-переходники

К сожалению, напрямую Xbee к Arduino не подключишь. Мало того, шаг ножек у модуля - 2,0 мм, и для его стыковки требуется соответствующие разъемы PBS2. Чуть облегчат жизнь платы-переходники:



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



А это переходник для т.н. "вшиваемой" электроники LilyPad. Устанавливаете на него Xbee, а потом шьете за подкладку токопроводящей нитью ;)



3. Прочее

Несколько полезных вещиц, которые я бы обязательно прикупил год назад, когда только-только начал заниматься Arduino и не имел понятия, где это достать:



Прямая вилка PLS-40, осторожно! Стоит 99 рублей...



Угловая вилка PLSR-40 тип 1. То же самое предупреждение - аккуратней, цена завышена!



Колодка PBS-40, цена та же.

По собственному опыту, очень полезна бывает еще и двурядная вилка PLD, а вот гнезда PBS, в отличие от вилок PLS/PLD, нельзя укоротить без потери одного контакта - уж очень они хрупкие. Поэтому, розетки стоит покупать сразу на нужное число контактов - так практичнее, да и выглядит лучше ;)





Макетные платы без пайки. Незаменимая вещь, экономит время, деньги и здоровье. На мой вкус, все-таки чаще нужны платы большего размера. Сама по себе миниатюрность такой платы полезна для конструирования роботов - иногда прямо к ней прикрепляют моторы и трансмиссию, но как же быть с неизбежной тряской? В этом случае, все-таки, макетные платы под пайку оказываются предпочтительнее.


Проводки мама-мама. Вещь действительно ценная, но также завышен ценник - 256 рублей за 10 проводов пяти цветов. Можно изготовить самостоятельно: берется провод нужной длины, разъемы PBS и клещи для обжима. Если нет однопиновых корпусов, можно применить термокембрик, так даже компактнее получается.



Цифровой датчик температуры DS18B20, вполне популярная вещь, работает по однопроводному интерфейсу. Опять-таки, завышена цена, можно купить дешевле, раза в два.

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

В общем и целом, я очень признателен магазину Linuxcenter.ru, потому что свой первый Arduino я приобрел именно там ;)

12.08.2009

ArduinoIDE 0017

Вышел очередной релиз ArduinoIDE 0017. Как всегда, копаюсь в поисках интересного.

Самое важное - этот релиз синхронизирован с Processing 1.0.3 (rev. 5503), что потянуло за собой серьезные переделки в GUI.

Появилась поддержка многооконного интерфейса. Если раньше New вызывало закрытие текущего скетча и загрузку следующего, то теперь открывается еще одно окно. Возможность работать с закладками осталась прежней. Да и несколько окон можно было раньше запускать - только делать это приходилось вручную.


Повысилось удобство редактирования: команды "Comment" и "UnComment" для комментирования и раcкомментирования фрагментов кода, "Increase Indent" и "Decrease Indent" для увеличения и уменьшения отступа:


Serial Monitor обрел свое собственное окно. Поздравим его с повышением! ;)


По крайней мере, теперь диагностические сообщения о компиляции не перемешиваются с выводом из последовательного порта. Разумно.

Владельцы Mac-ов оценят то, что ArduinoIDE теперь идет как app-файл (Disk ImaGe - dmg). Для владельцев Windows - теперь нет файла run.bat, все решается внутри arduino.exe ;)

Новое окно about:


Ну и последний штрих: в список поддерживаемых плат добавили Arduino Nano w/ ATmega328. Пора! Тем более, что эта миниатюрная плата уже запущена в серию.


По поводу внутреннего мироустройства - тоже есть новости.

Библиотеки теперь компилируются вместе со скетчем, что позволило убрать задержку при переключении типа платы и необходимость тупо удалять объектники .o при любом изменении кода библиотеки, чтобы она перекомпилировалась.

Библиотеки сторонних производителей поддерживаются через отдельный каталог SKETCHBOOK/libraries. Это просто замечательно - раньше при выпуске новой IDE я мучительно копался в поисках своих рабочих версий библиотек в старой и копировал в новую ( причем, сами понимаете, внутренней дисциплины никакой - пару раз прибивал нужные файлы, когда стирал "ненужный" каталог со старой IDE ).

Стандартные библиотеки также обновились: LiquidCrystal ( добавлены изменения ladyada, для загрузки собственного знакогенератора ), заменили Servo на MegaServo by Michael Margolis (она поддерживает до 48 серво на Arduino Mega и 12 на "стандартном" Duemilanove ), обновили Firmata (v2.1, rev.25).

Пофиксили ошибку с вычислением скорости последовательного порта на Arduino 8MHz. Не может не радовать такое внимание к братьям нашим меньшим ;)

Ну и напоследок, добавили примеров от передового члена команды Arduino, барабанщика Тома Игое, вот некоторые:

  • Analog/AnalogInOutSerial: - чтение и запись результатов, демонстрация функции map
  • Analog/AnalogWriteMega - плавное зажигание и гашение светодиодов на пинах со 2 по 13 - специально для Arduino Mega.
  • Communication/MIDI - про то, как использовать serial port для посылки MIDI-последовательностей.
  • Communication/MultiSerialMega - пересылка данных с одного последовательного порта на другой - тоже для ArduinoMega.
  • Control/* - новая секция с примерами расширенного владения языком - как пользоваться массивами для маппигна пинов, операторами if, for, while, switch/case - полезно для новичков, которые еще не выучили C.
  • Display/* - примеры для управления группами светодиодов (пока есть только шкала и матрица)
  • Stubs/* - коллекция коротких скетчей, с текстом, который надо писать всегда. Начиная от BareMinumum - void setup() {} void loop() {} и заканчивая более сложными - AnalogRead или DigitalWrite. Неплохо для ленивых или для тех, кто пишет много скетчей.

07.08.2009

Доступ к СМП по USB

Итак, представляю устройство чтения-записи картриджей сменной памяти СМП/МПО для микроэвм Электроника МК-90.

Ключевые особенности разработанного устройства:
  • совместимо с шиной USB 1.0;
  • читает и записывает образы картриджа СМП;
  • измеряет напряжение внутренней батареи;
  • легко повторяется самостоятельно.
Основу устройства составляет МК ATmega8-16PU, для программной поддержки USB использована реализация V-USB от Objective Development. Для управления с PC используется хост-программа smpusb, которая позволяет:
  • читать содержимое СМП в файл
  • записывать образ из файла в СМП с проверкой
  • показывать напряжение батареи и предупреждать о разряде
  • работать через интерфейс командной строки
  • выводить сообщения на stdout (описаны все коды завершения)
  • работать с с Windows XP, Vista, потенциально переносима на Linux
Для Linux требуется установка libusb, для Windows - libusb-win32,

Предупреждение: на Vista ставить в режиме совместимости с Windows XP, иначе сразу "лишитесь" всех USB-устройств.

Как всегда, начинаю с результата: smpreaderusb_1.0.zip (исходники и бинарники firmware и software).

Схема:



Список деталей:

Part Value Device Package Library

C1 22 pF C5/2.5 C5B2.5 capacitor-wima
C2 22 pF C5/2.5 C5B2.5 capacitor-wima
C3 100 nF C5/2.5 C5B2.5 capacitor-wima
C4 47 uF CPOL-EUTT2D5 TT2D5 rcl
C5 100 nF C5/2.5 C5B2.5 capacitor-wima
D1 3V6 BZX55 DO35Z10 diode
D2 3V6 BZX55 DO35Z10 diode
D3 LM385-1.2 LM385-1.2 TO-92 lm385
IC1 MEGA8-P MEGA8-P DIL28-3 atmel
JP2 PINHD-1X6 1X06 pinhead
LED1 PWR LED3MM LED3MM led
LED2 RX LED3MM LED3MM led
LED3 TX LED3MM LED3MM led
Q1 12 MHz CRYSTALHC49U-V HC49U-V crystal
R1 10K R-EU_0204/7 0204/7 resistor
R2 68 R-EU_0204/7 0204/7 resistor
R3 1K R-EU_0204/7 0204/7 resistor
R4 1K R-EU_0204/7 0204/7 resistor
R5 1K R-EU_0204/7 0204/7 resistor
R6 68 R-EU_0204/7 0204/7 resistor
R7 1K5 R-EU_0204/7 0204/7 resistor
R8 1M R-EU_0204/7 0204/7 resistor
R9 22K R-EU_0204/7 0204/7 resistor
X1 PN61729 PN61729 con-berg
X3 PINHD-2X3 2X03 pinhead


Пояснения к схеме

Если под рукой нет ATmega8-16PU, без изменений в схеме можно использовать ATmega48-16PU, ATmega168-20PU, ATmega328P-PU (однако, потребуется перекомпиляция firmware и другие значения фьюз-битов). Важная особенность тактирования: подходит только кварц, заменять его на калиброванные RC-цепочки и керамические резонаторы нельзя. Если нет кварца на 12 МГц, можно использовать 16, 18 и 20, но в этом случае надо исправить значение константы F_CPU в файле make_config.h и перекомпилировать firmware.

Потенциально возможно использование ATtiny2313-20PU, если пожертвовать функцией измерения напряжения батареи (в этом МК нет АЦП, да и памяти у него всего 2К).

МК питается от напряжения +5В, при этом согласование с сигнальной шиной обеспечивают стабилитроны D1, D2, которые должны быть 3V6 и не более 0,5Вт. Перенебрежение этими условиями может сделать обнаружение и обмен по шине нестабильными, более подробно можно почитать здесь и еще рекомендую обратиться к стандарту USB.

Мощность всех резисторов – 0,25 Вт, допустима погрешность ±5%. Резисторы R3, R4 и R5 – токоограничительные, для обычных светодиодов подойдут 330, 470, 1К. Конденсатор C4 фильтрует помеху по питанию, при использовании внутреннего супервизора питания ATmega, его емкость может колебаться в пределах 10...100 мкФ, устанавливайте максимально близко к разъему USB.

Для формирования напряжения 1,235 В с точностью ±1% используется элемент D3, LM385-1.2. Будьте бдительны: микросхема выполнена в корпусе TO-92, использованы два вывода из трех. Тем не менее, в некоторых даташитах дано неверное расположение выводов, например нарисованы 1 и 2, а на самом деле надо брать 2 и 3 (можно легко определить при помощи вольтметра). Поскольку этот элемент способен работать при токах до 10 мкА, номинал R9 может быть 10..47К.

Разъем программирования ICSP стоит устанавливать исключительно по желанию: не исключаю, что будут обновления firmware. Поэтому, если паяете МК без панельки – настоятлельно рекомендую ;)

После прошивки МК не забудьте установить фьюзы согласно документации.

Пояснения к работе с host-программой

Если все собрано правильно, то после подключения к шине USB Windows радостно сообщит об обнаружении нового устройства. Самое время установить драйвер libusb-win32, который существует в двух вариантах (выбирайте один из двух!):

1. Фильтр. Скачиваете установочный файл libusb-win32-filter-bin-x.x.x.x.exe и запускаете его на выполнение – для Vista надо сначала открыть его свойства и выбрать "Режим совместимости с Windows XP SP2" и "запуск от имени Администратора". Если вы из тех, кто читает мануалы, когда что-то не получается, то сейчас должны наблюдать печальную картину: все устройства USB, как один, перестали работать. К счастью, это не смертельно: через меню программ можно сделать uninstall и повторить установку согласно описанию выше.

2. Драйвер. Скачиваете архив с драйвером libusb-win32-device-bin-x.x.x.x.tar.gz, распаковываете. Подключите готовое устройство к шине и запустите inf-wizard.exe, который выкинет список устройств, ищите в нем VendorId= 0x16c0 и ProductId=0x5dc. Пройдите все шаги до конца, сохранив необходимый inf-файл под каким-нибудь именем. Теперь зайдите в Device Manager, удалите устройства, которые обозначены вопросиком и вновь отсканируйте шину (или просто переподключите устройство). Вот тут-то на риторический вопрос Windows "Что делать?" по поводу нового устройства, предложите ему сделанный на предыдущих шагах inf-файл.

Совсем подробные инструкции расписаны в секции Installation, в будущем постараюсь включить драйвер в один архив с проектом.

Запустите команду чтения напряжения:

smpusb voltage

в ответ вы должны получить текущее значение, положительное число от 0 до 3 В. Далее, чтобы прочитать образ картриджа:

smpusb read –f mk90.bin

Соответственно, чтобы записать:

smpusb write –f mk90.bin

При записи и чтении горят соответствующие светодиоды RX и TX.

Возможные неприятности:

USB error – проверьте, установлено ли у вас libusb-win32 и насколько корректно это сделано.

Could not find USB device "SMPreader" with vid= 0x16c0 pid=0x5dc – проверьте еще раз корректность сборки устройства и надежность его подключения к шине USB.

Поскольку я лицензировал поддержку USB у Objective Development по бесплатной схеме, то используется общее для всех устройств VID и PID, хост-программа пытается выбрать то, у которого строка названия продукта возвращается как "SMPReader". Кстати, из этого вытекает, что два SMPReader-а нельзя использовать одновременно, но кому такое может понадобиться?..

Остальные ошибки связаны с файловым вводом-выводом и относительно понятны, длинные имена файлов, особенно с пробелами, надо заключать в двойные кавычки.

В случае необходимости, можно попробовать добавить ключ –d, выводящий дополнительные отладочные сообщения.

Производитель СМП указывает, что минимальное напряжение, которое гарантированно обеспечивает хранение информации в СМП составляет 2.6 В, поэтому программа будет выдавать предупреждение о том, что оно ниже 2.7 и 2.6 В. Но по практике у меня случалось, что оно опускалось и до 1.8 В с сохранением информации, поэтому можно выключить это предупреждение ключом –p.

Поскольку я являюсь поклонником командной строки, то предоставляю возможность написать GUI желающим, все коды выхода описаны исходнике программы.

Пользуясь случаем, хочу поблагодарить Piotr Piatek-а за хак и публикование алгоритма обмена с картриджем СПМ МК-90. Если вы находите мой вариант устройства сложноватым, можете попробовать более простой вариант, который подключается к LPT-порту. Более подробно можно почитать здесь и здесь.

В заключение пара слов про минусы проекта:
  • отсутствие GUI
  • нет печатной платы
  • драйвер надо ставить отдельно
  • недостаточная проработка вопроса совместимости c Linux
  • не помешал бы консольный Makefile для сборки через nmake.
Постараюсь постепенно добавить все это в будущем, но буду признателен за любую помощь от энтузиастов ;)

05.08.2009

Оригинальность текстов

Сегодня увидел в статистике заход на сайт робота seolib.ru. Страница этого сайта гласит, что может проверить оригинальность сайта или страницы - т.е. насколько тот или иной сайт "дерет" свои материалы с других.

Прикольно... скрипт может показать ссылки на сайты с похожей информацией, что иногда бывает очень даже полезно...