2,54mm
Вид для печати
Извиняюсь, проверил, да, 2.54. Один из четырех вопросов есть!
Оптопара тоже извлекается из старого принтера. Там есть как раз датчики бумаги на оптопаре с открытым каналом.
По электромагниту - см. Google "расчёт электромагнита"
Как управлять ШД - там же. Если вкратце, то в униполярном ШД (с 5 проводами) по очереди подаётся импульс напряжения в каждую из катушек. От одного импульса он поворачивается на один шаг. В биполярном ШД (с 4 проводами). В каждую из двух обмоток по очереди подаётся напряжение сначала прямой а затем инверсной полярности. От каждого импульса ШД поворачивается на один шаг.
По микроконтроллерам: можно взять или ATmega8 в корпусе DIP-28 или ATmega16 в корпусе DIP-40. И к нему ещё программатор.
Подключать МК к COM-порту нужно через микросхему MAX232. Есть стандартная схема её включения, где земля COM-порта (вывод 5) и земля схемы соединяются. Ещё можно поискать схему сопряжения с гальванической развязкой.
В МК за работу с COM-портом отвечает UART. В программе МК нужно или в бесконечном цикле или по прерыванию ждать, что придёт с UART и обрабатывать его. Затем выдать подтверждение об обработке в компьютер. Решение отправлять ли следующий символ принимает компьютер если получит подтверждение.
1) Я не уверен что принтер на месте, если нет то придется что-то придумать... Я позвоню, уточню на месте принтер или нет и скажу точнее.
2) Я все равно не понял как включать этот ШД. У меня их три штуки, у всех трех ось примерно 5 см, на оси нарезка (выдрал из дисководов, двигали каретку с лазером). Сейчас кину фото.
3) Про MAX232 можно поподробне?))) Как заставить контроллер понять что ему дали конкретный байт и наоборот - заставить MAX232 понять что он должен что-то выдать компу?
4) Почему все так не любят LPT и наоборот так любят COM? Я не понимаю. Покопаюсь в /dev/, может найду эти LPT1 и COM1... Никто не знает?
У MAX232 ума нету, что с одной стороны подал - то с другой стороны вылезло. Это просто преобразователь уровней.
В компьютерах сначала исчез LPT, потом COM. Теперь остался только USB.
А преобразователи USB-COM более доступны, чем USB-LPT.
Вот и вся любовь :)
Именно так
COM1 соответствует устройство /dev/ttyS0, COM2 - /dev/ttyS1 и т.д. Какой байт мы запишем в это устройство - тот и передастся по последовательному порту.
Например:
echo "1">/dev/ttyS0 - передали символ 1 в порт COM1.
Также можно считать данные из COM-порта.
cat /dev/ttyS0 - выведет поток символов от устройства на COM1 на терминал.
Предварительно нужно установить скорость COM-порта : stty 9600 -F /dev/ttyS0 raw -echo - установит 9600 бод.
Подробнее по этим командам см. Google.
Для С - используются вызовы ioctl, read. write. Для Qt (C++) есть готовый класс для работы c СОM.
Для LPT1 - раньше было устройство /dev/paport0. С ним работали разные древние сканеры и т.п.
Последняя строчка оказалась самой полезной :) Я использую Code::blocks (C++). У меня оба порта нормально распаяны на плате, COM планируется под прошиватель (забыл как его...). А LPT пустой. Я сейчас делаю платку чтобы можно было контролировать все регистры светодиодами, подключить любые регистры к любым двум устройствам, подключить другой LPT принтер. В качестве одного из устройств будет мой фломастеротыкатель. Опять забыл про шд... Сейчас.
Опечатался в предыдущем сообщении. Выпала одна буква.
Устройство для LPT-порта правильно пишется /dev/parport0
Ещё во времена ядер Linux серии 2.6 и 2.4 была какая-то прога которой если передать параметр с командной строки, то она выставляет биты на LPT-порту. Название её не помню.