Электроника и Linux.

Попытка перехода от (DOS->Win3.1->Win95->Win98->WinME->WinXp) к Linux глазами старого "пользователя".

@mail Гостевая книга На главную Раздел OS
на сайте http://www.electrosad.ru
Владимир Гололобов.

http://vgololobov.narod.ru/

Слухи о трудностях перехода с Windows на Linux, равно как и слухи о полном отсутствии нужных программ для Linux, явно устарели. Такое со слухами случается.

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

 
 
Почему Linux, а не Windows?

У меня на компьютере установлены три дистрибутива Linux и купленная с компьютером операционная система Windows. Когда к нам в гости приходит трехлетний сосед, он просит загрузить ту, что с пингвинами (ALTLinux), ему так больше нравится. Видимо, и мне больше нравиться Linux. Да и не по карману мне покупка всех программ, которые бывают интересны. В остальном, сказать что-то плохое о Windows - программах, помогающих освоиться в мире электроники, я не готов.

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

Для тех, кто только делает первые шаги в электронике, я хочу рассказать о Linux-программах двух направлений: общего, о программе Qucs, и о программах, которые помогут освоить работу с микроконтроллерами.

Вначале о программе Qucs.

Qucs

Ссылки на документацию - http://qucs.sourceforge.net/docs.html

Скачать - http://www.linuxlinks.com/article/20080813155101423/Qucs.html

Но прежде напомню, что для любителей, особенно начинающих, программы следует рассматривать как прекрасный инструмент, хороший помощник, но не самоцель: обязательны остаются и учебники, и книги, и приборы, и макетная плата. За компьютером трудно освоить навыки пайки, а любителю это необходимо, за компьютером трудно освоить правильное использование приборов, а приборы — «глаза и уши» в электронике, а без навыков реального воплощения схем любые эксперименты могут принести больше вреда, чем пользы.

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

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

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

 

Рис. 1. Куб сопротивлений в программе Qucs

 

Задачу о распределении токов и напряжений в подобной схеме можно решить аналитически, есть соответствующие методы решения, но проще измерить все с помощью программы, чем выполнить расчеты. И не следует думать, что это пример чисто учебный, на практике любая схема, в конечном счете, задает похожие вопросы, и не всегда легко найти ответы на эти вопросы, используя бумагу и карандаш. Более того, не всегда, измеряя или наблюдая с помощью осциллографа сигналы в схеме, ты можешь получить ответы, любой практик знает, что бывают ситуации, когда пытаясь измерять, ты получаешь сгоревшее устройство, хотя все делал правильно. Такое случается не часто, но возможность проверить свои соображения за компьютером избавляет от сожалений по поводу непродуманного общения с работавшим прежде устройством.

Существует мнение, что программы, такие как Qucs, хорошо работают только с цифровыми устройствами: «там логика, с ней проще!». Да, Qucs позволяет рассмотреть работу всех базовых цифровых устройств. Для этого есть в наборе цифровых компонентов все необходимое:

 

Рис. 2. Цифровое моделирование в Qucs

 

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

И, сошлюсь опять на Qucs Workbook, программа позволяет создавать модели смешанных устройств, таких как таймер 555. Когда-то генераторы в подобных программах не работали:

 

Рис. 3. Генератор в программе Qucs

 

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

Книга Qucs Workbook имеет несколько сотен страниц. И у меня осталось впечатление, что авторы не успели рассказать о программе все, что следовало. В этом смысле уложить в размер статьи даже беглое описание программы задача непосильная. Поэтому предлагаю каждому, кто сомневается, воспользоваться рекламным советом про майонез: «А вы есть его пробовали?».

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

Я не советую начинающим задаваться вопросом, микроконтроллер какого производителя самый лучший. Ни один профессионал не способен дать вразумительный ответ на этот вопрос, вернее, любой скажет: «Смотря, для какой цели, для решения какой задачи и при каких условиях и т.д.». То же можно отнести к программному обеспечению для создания собственных программ. А они и есть «суть работы» микроконтроллера. В Linux есть программы для работы, например, с контроллерами AVR и PIC. Я предпочитаю говорить о последних, только потому, что знаком с ними немного лучше. Но под Wine в Linux, возможно, могут работать и такие программы как AVRStudio. Нужно пробовать. Это касается и языка программирования. Есть среды программирования на многих языках, какой ближе, какой нравится, такой лучше и использовать. Мне кажется, что связка Си-ассемблер, наиболее перспективна, но я могу и ошибаться.

А вот в чем, мне кажется, я прав, это в отношении того, как начинающему любителю освоить программирование микроконтроллеров. Можно, конечно, сразу начать изучать ассемблер. Если вы достаточно сильны в «программировании в общем», если вы хотите использовать в дальнейшем только один модельный ряд контроллеров, то выбор ассемблера избавит вас от поиска транслятора, скажем, с языка Си. Но, если вы знаете программирование «по наслышке», я очень советую использовать простой прием, который рассмотрим в среде Linux.

Есть такая программа, которая называется KTechlab, думаю ее основное назначение — обучение. Обучение электронике в достаточно широком наборе направлений, включающем и применение транзисторов, и использование цифровых устройств, но, что мне сейчас важно, использование микроконтроллеров.

Для начинающих очень важно с первых шагов почувствовать, что им по силам справиться с задачей создания устройства, в основе которого лежит очень сложный современный элемент — микроконтроллер. Проще всего начать обучение с графического языка программирования. Для Windows создана программа FlowCode, как в версии, поддерживающей PIC-контроллеры, так и в версии для AVR. Демо-версия программы работает в Linux в среде Wine (в последних версиях Linux и Wine).

Но об этом позже.

Сейчас вернемся к Ktechlab.

Ktechlab.

Ссылки на документацию - http://www.kde.me.uk/index.php?page=ktechlab-review

Скачать - http://ktechlab.org/

 

Рис. 4. Графическое программирование микроконтроллера в KTechlab

 

Преимущество использования графического языка программирования в интуитивно понятном языке. Как любая программа, программа для микроконтроллера — это некоторая последовательность команд. Если вы точно знаете, что должен делать контроллер, то у вас не вызовет затруднений записать подобную последовательность: установить высокий уровень на выводе RA0, подождать секунду, установить низкий уровень на том же выводе, подождать еще секунду... Программа (с добавленным бесконечным циклом) после подключения к этому выводу светодиода будет мигать светодиодом. Не самая сложная задача, но, например, при отсутствии встроенного в микроконтроллер модуля UART, можно попытаться использовать это решение и для создания сетевого подключения, или для контроллера без встроенного модуля ШИМ. Вместе с тем, трудно отрицать, что в такой программе запись, сделанная для программы на обычном человеческом языке, легко переводится на язык, понятный процессору, без каких-либо дополнительных усилий.

Конечно, я не советую останавливаться на достигнутом. Даже при условии, что графический язык программирования позволяет создавать любую нужную вам конструкцию, умение использовать, хотя бы в первом приближении, другие языки программирования, позволит вам чувствовать себя спокойнее, увереннее. В этом плане программа KTechlab предлагает использовать язык microbe, язык высокого уровня похожий на другие языки высокого уровня. Программа, написанная на этом языке программирования, может быть легко переписана на другом, более привычном языке, как Си или Бэйсик.

Получить готовый код на языке microbe в среде программирования KTechlab можно нажатием на одну-две кнопки графического интерфейса. Аналогично получается и программа на языке ассемблера. И, не выходя из среды разработки, можно, используя подходящий программатор, запрограммировать микросхему.

 

Рис. 5. Программа на языке microbe

 

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

К сожалению, в части отладки KTechlab не самый удобный вариант, отлаживать работу программы придется «живьем».

 

Piklab

Ссылки на документацию и скачать - http://piklab.sourceforge.net/

 

В Linux есть еще одна удобная среда разработки программ для PIC-контроллеров, программа Piklab и отладчик gpsim. Входным текстом программы для Piklab может служить текст на языке Си или ассемблере. А удобным файлом для загрузки в отладчик послужит файл с расширением .cod, создаваемый программой Piklab при трансляции программы в загрузочный файл.

Программа хорошо работает с бесплатным компилятором SDCC (хотя может использовать около двух десятков компиляторов) для языка Си. И перечень моделей, с которым программа может работать, достаточно длинный. Но это важнее для профессионалов, а не для начинающих любителей, которым важнее то, что из программы можно так же загружать код в микросхему, если использовать подходящий программатор. Вполне удачно работает программатор JDM, подключаемый к последовательному порту компьютера. Схема программатора проста и не должна вызывать затруднений в изготовлении даже у начинающего.

 

Рис. 6. Среда разработки программ Piklab

 

Рис. 7. Отладчик gpsim

 

Отладчик, хотя он и не интегрирован в среду разработки, вполне удобен. И не следует забывать, что для того, чтобы научиться что-то делать, нужно терпение, время и труд. Компьютер хороший помощник в этом, но за вас он не может сделать все.

В заключение этой небольшой заметки, хочу добавить, что с дистрибутивом Fedora 10 (я не исключаю и другие) с Wine 1.1.12 можно использовать для изучения программирования микроконтроллеров такие программы, как MPLAB версии 7.11

 

MPLAB версии 7.11

Ссылки на документацию и скачать - http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002

 

Рис. 8. Программа MPLAB в Linux

 

Среда программирования MPLAB тоже поддерживает работу с бесплатным компилятором SDCC, хотя установка этого компилятора несколько сложнее, чем, скажем, PICC Lite фирмы HI-TECH. MPLAB имеет достаточно развитые средства отладки, встроенные в среду разработки, так что этого может оказаться достаточно для работы любой сложности, если программа любой сложности не потребует для своей реализации использования «родной операционной системы». Но для начинающих, я не устаю повторять, самое разумное использовать небольшие фрагменты программы, полученные средствами графического языка программирования, которые затем можно использовать, взяв (если есть) готовый фрагмент на языке Си, или (если нет готового) написав такой фрагмент, используя в качестве «подстрочника» фрагмент программы, например, на языке microbe.

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

В части использования языка Си для начинающих может оказаться полезнее использовать программу FlowCode, демо-версия которой работает (В Linux под Wine 1.1.12) в Linux, но в качестве выходного файла дает и файл на языке Си.

 

FlowCode

Ссылки на документацию и скачать - http://www.electronics-lab.com/downloads/mcu/007/index.html

РУССКИЙ МАНУАЛ (HELP) по программе FlowCode скачать: http://elektron.ucoz.ru/load/12-1-0-111

 

Рис. 9. Графическая среда разработки программ для микроконтроллеров FlowCode

 

Это более мощная среда разработки, чем KTechlab, поскольку имеет встроенные средства отладки, но демо-версия имеет ряд ограничений, что не меняет ценности программы при изучении предмета. Простые фрагменты программы, полученные на языке Си, могут затем использоваться и в Piklab, и в MPLAB, да и, если вам больше приглянулись контроллеры AVR, думаю и в среде AVRStudio, благо FlowCode есть и в версии для контроллеров AVR.

Мало того, программы, созданные для PIC-контроллеров, могут импортироваться в AVR-версию без переделок. Поэтому для начинающих я не советую начинать с выбора производителя, советую использовать доступное программное обеспечение для того, чтобы пройти начало пути. Дальше можно создавать свои устройства на микроконтроллерах, которые можно использовать, например, при создании приборов-приставок к компьютеру. Достаточно написать свою программу обработки сигналов, получаемых от современных АЦП или контроллера со встроенным АЦП. И здесь тоже может помочь графический язык программирования. Его использует среда разработки LabView. Есть вариант этой программы для Linux. И, если вам кто-то скажет, что графический язык программирования чем-то плох, я сошлюсь на то, что LabView используется в ЦЕРНе на большом адронном коллайдере. А что не зазорно использовать в ЦЕРНе, то не зазорно, как мне кажется, использовать и в любительской практике.

21 января 2009 года.

От редакции:

В статье нельзя дать подробное руководство к применению, да это и не было целью. Автор показал, что работы с моделированием, конструированием электронных схем можно успешно выполнять в среде ОС Linux. В результате "белых пятен" для самодеятельных любителей электроники (а может быть и профи), использующих Linux станет меньше.

Ссылки на более подробные материалы даны в заголовках.

Письмо автору можно отправить с сайта или через его сайт или через мой сайт, ниже.

Успехов Вам в освоении Linux!

Яндекс.Метрика

Copyright © 2006 -2012; A.D. Sorokin; http://electrosad.ru

@mail Гостевая книга В начало Раздел OS

При частичном использовании материалов ссылка на "electrosad.ru" обязательна, копирование и использование только с согласия автора.