Это пакет программ для схемотехнического моделирования. Имеет все возможности SPICE, редактирования схем с кучей готовых библиотек, создания своих элементов и библиотек, а также передачи отлаженных схем в программу трассировки печатных плат. Как и в редакторе схем, имеется множество готовых элементов - посадочных мест - в нескольких библиотеках, а также возможность создавать свои. Выход можно получать для промышленного производства: в файлах GERBER (для апертурного фотоплоттера); EXELLON (данные сверления); gcode и nelma. Для ручного изготовления плат: PS, EPS (для печати чертежей и метода лазерного принтера и утюга). Можно получать файлы спецификации: bom. И, наконец, можно делать фотореалистичную тонировку готовой платы, пусть и не 3D и без элементов.
Для моделирования электронных схем используют такие мощные и тяжелые штуки Proteus, Multisim и что-нибудь еще. К тому же, они страшно дорогие. Немалым огорчением является то, что они под Windows. У меня есть раздел с Windows и там стоят эти проги в версии для студентов - бесплатные. Очень прикольно поработать в Multisim: там можно взять осциллографы Tectronix или Agilent и они работают, прям как живые - все ручки и кнопки выполняют свои функции. Для обучающихся это немаловажно. Тем более, что реальные прибочики отнюдь недешевые и доступны учащимся только в лаборатории. Как протеус, так и мультисим (бывш. EWB) позволяют эмулировать контроллеры. Правда, выбор камней невелик. Само собой, можно проектировать в указанных продуктах и печатные платы. Работать в этих программах куда проще и удобнее, чем, скажем, в QrCAD или P-CAD (нынче Altium). Однако, учебные версии имеют досадные ограничения: нельзя сохранять полученные данные и т.д. и т.п...
Теперь о бесплатных, но вполне хорошего уровня программах для Linux.
Для Linux есть KiCAD, неплохая штука, можно можно даже 3D-плату сделать (собственно, на кой черт?), но требует хорошего монитора и мне показался этот ковчег не слишком уютным.
Еще для Linux есть отличная вещь, способная решать любые задачи: gEDA. Это набор из нескольких пакетов, которые есть в большинстве репозиториев для основных дистрибутивов.
ngspice - симулятор
gschem - редактор схем
gnetlist - генератор списков узлов
gattrib - редактор атрибутов
pcb - редактор печатных плат
Выглядит он простовато, для микрософнутых будет адом с печками и трюмом Титаника с Чернобылем впридачу, но мне понравился. Все правится, все настраивается, и при работе он просто летает, а не ползет, как другие симуляторы. Возможно, что редактор плат, pcb, по разным плюшкам уступает фотошопу другим редакторам плат, но мне тоже понравилось. Я довольно сложную плату на нем разводил. Ни разу не ошибся, и не ругался нехорошими словами.
Здесь я не могу рассказать о предмете со всех сторон и во всей полноте (чем и не владею, конечно), могу только предложить getting started. На примере... что бы тут замутить... ну, например, таймера для лампочки в туалете. Многие люди, посрав, забывают выключить свет. Да в конце-концов, наша задача - посмотреть, как работает gEDA, а вовсе не сберечь несколько рублей за год. Хотя, должен сказать, что я стараюсь, чтобы все, о чем я пишу, имело практическую пользу в реальной жизни.
Вот идея или техническое задание, кому как угодно. Наш таймер должен помещаться на квадратной (или круглой) плате, которую можно вставить в коробку от настенного выключателя. Таймер работает по умолчанию 10 минут и это время мы можем уменьшать до 1-2 минут, подкручивая его маленькой отверточкой при необходимости. Обычно это делается на всю оставшуюся жизнь выключателя. Кому-то удобно, чтобы лампочка горела 2 минуты, а кому-то мало и 8 минут. Думаю, что 15 минут - это уже лишнее, поэтому решил остановиться на десяти.
Мы покупаем минимум радиодеталей, остальное наковыряем из подручных плат и прочего радиохлама. Если мы сэкономим на этом пару сотен рублей, то ведь даже Дж. Сорос не скажет, что мы нищеброды.
В качестве выключателя в основной цепи мы можем взять небольшой симистор, он же триак или диодный мостик и тиристор (или маленький mosfetик). Они недороги и полностью решают нашу задачу. Затем, нам как-то надо управлять им. Да! Еще ведь надо получить питание для схемы управления. Как сделать это в двухпроводном варианте? Очевидно, если задаться совместимостью с лампочками любых типов, только используя часть протекающего тока, отобрав его от имеющегося падения напряжения на ключе, каким бы оно ни было. Если напряжение будет слишком маленьким, придется его поднимать.
Мы должны избегать дилетантских решений с зарядками и разрядками конденсаторов через мегаомные резисторы. Такие идеи хороши всем, но технически, к сожалению, неграмотны, как и первый в истории мотоцикл. Который, говорят, чуть не отбил изобретателю все яйца. Потому, что такое решение будет очень чувствительно к любым колебаниям влажности и каждый раз будет врать по времени срабатывания. Короче говоря, примитивная схема будет неустойчивой в работе. Защита ее от влаги в сферическом вакууме - это геморрой и идиотизм.
Таким образом, у нас уже куча интересных вопросов, которые потребуют экспериментов с паяльником, проводов, разных деталей, да и опыта работы с опасным напряжением из розетки. Тут ведь и уебать может...
Или, у нас есть альтернатива в виде БЕСПЛАТНОГО инструмента ngspice. Собственно, его одного уже достаточно для выяснения почти всех вопросов. Список узлов, netlist, можно написать и от руки. Директивы для симуляции тоже. Достаточно основных знаний языка SPICE почерпнутых из мануала. Но, поскольку меня тут ругали, что все сложно, а куда уж проще, казалось, то начнем с редактора схем.
Я не хочу объяснять, как установить перечисленные пакеты. В терминале UNIX это настолько тупо все можно сделать...
Но, чтобы сэкономить время новичкам, пожалуй, объясню. Например, пусть мне нужен пакет abracadabra. Я не знаю, может и правда, есть такой. Сначала я смотрю в своей системе:
abracadabra нет ни в моей системе, ни в репозиториях, иначе, мне было бы предложено установить ее. Дальше. ngspice уже есть в моей системе, так как which выдала путь к исполняемому файлу. Чтобы продемонстрировать, как установить имеющуюся в индексе репозиториев программу, которой нет в системе, я возьму небезопасную команду at. Ее нет, как очень лаконично сообщает which. Тогда я просто вызываю ее и система, видя мои потуги, дает совет, как ее установить. Этого я делать не буду, но вы уже понимаете, как это сделать. (Если ваша система не дебиановская, а идет от красной шляпы, к примеру, Fedora или ALT Linux, то подсказка по командной строке для установки просто будет другой. Общий принцип соханяется.)
Итак:
Все у нас есть и в следующем посте мы будем уточнять решение, выбирать подходящие части схем и симулировать их работу при помощи ngspice. Смысл этого “сериала” - убедить сомневающихся (а такие есть до сих пор) в пользе от симуляторов и моделирования vs тупого повторения непроверенных схем, а также получение таймера как бонуса. Быстро выложить его я не обещаю, так как у меня хватает срочняков. Но при первой возможности буду работать над каждым очередным постом.
Дальше