четверг, 26 мая 2011 г.

MicroPascalPRO

Неделя была омрачена полным отказом материнской платы основного домашнего ПК. Долгие муки выбора - Что делать? - разрешились покупкой нового системника. Соответственно пришлось переустанавливать кучу программ. В качестве эксперимента решил обновить MicroPascal от Mikroelektronika. Зайдя на официальный сайт обнаружил совсем новую версию пакета, предназначенную в первую очередь для разработки программ на EasyPIC6. Тем не менее скачал и установил. Подключив свою плату EasyPIC5 успешно откомпилировал и загрузил простую управляющую программу. Проблем не возникло.

Теперь про отличия MicroPascalPRO. В первую очередь поменялся интерфейс. Он стал более современным, все необходимые панели расположены по бокам и легко убираются. Добавилось несколько новых модулей. Например появился терминал HID-устройств. Но больше всего понравился преобразователь систем счисления, позволяющий легко получить данные в двоичной, шестнадцатеричной и других системах с нужной разрядностью и знаком. Также добавились библиотеки периферийных устройств.
Про объем и качество получаемого кода пока ничего сказать не могу. Максимальный объем демо-режима остался прежним - 2 кБ. При желании получить полнофункциональную версию понадобиться 199 долларов.

суббота, 21 мая 2011 г.

Дисплейный шилд. Печатная плата.

Набросал в SprintLayout предварительный эскиз печатной платы. По габаритам вылез с одной стороны за пределы контура Arduino. Разводка выполнялась под односторонний текстолит и технологию ЛУТ. Поэтому некоторые моменты не нравятся, но без них никуда не деться. Для повышения универсальности предусмотрел два разъема для индикаторов разного типа.
Недостатком стало расположение батарейки резервного питания и подстроечного конденсатора под дисплеем. Сейчас думаю, может отказаться от второго разъема, и вывести все более доступно.
Также на плате есть место под микросхему памяти с шиной I2C. Хотел установить термометр DS1621, но передумал, так как возможный нагрев элементов исказит показания.

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

среда, 18 мая 2011 г.

Дисплейный шилд - следующий проект.

Закончив предыдущий проект, долго думал что делать дальше. Есть желание разработать какую-нибудь плату под 32-разрядные микроконтроллеры, но пока нет определенности с задачей. Поэтому пока остановился на дисплейном шилде для Arduino и Amicus18. Использовать его можно будет во многих проектах, а также создавать готовые пользовательские устройства.
Шилды для Arduino являются отличительной особенностью этого проекта. К сожалению в России не самый большой выбор таких плат, а заказывать за границей не всегда удобно. Остается разрабатыватьтакие платы самостоятельно.
Одним из самых необходимых шилдов, является дисплейный модуль. Его использование возможно в большом количестве разнообразных проектов. На плате шилда планируется установить двухстрочный ЖК-дисплей, микросхему часов реального времени с резервной батареей и минимум 4 кнопки. Подобная конфигурация, теоретически, должна позволить создавать устройства операторского интерфейса.
В качестве часов реального времени мне нравится микросхема PCF8583, оснащенная шиной I2C. Реализация этой шины в проекте, позволит подключать дополнительные устройства, например датчики температуры или расширители портов. Также возможно использование специализированных микросхем радиоприемников или обработки аудиосигналов. Так как дисплейный шилд в любом проекте будет самым верхним устройством, он не требует установки дублирующих разъемов. Все свободные линии планируется вывести на отдельный штыревой разъем. 

понедельник, 16 мая 2011 г.

Термометр на 8-ми выводном микроконтроллере.


Идея сделать термометр на микроконтроллере без динамической индикации зрела давно. Хотелось использовать очень маломощный процессор и создать компактное устройство. Для индикации в таком случае очень удобно было использовать регистры сдвига. Результатом стал двухточечный термометр на PIC12F629. Еще одной особенностью данной конструкции является широкое использование элементов поверхностного монтажа. Это позволило выполнить весь термометр на печатной плате размерами 30х64мм.
Термометр на PIC12F629 
Так как данная разработка первая, выполненная с использованием поверхностных элементов, было изготовлено два прототипа, на которых отрабатывалась конструкция и устранялись ошибки. В дальнейшем эти платы подверглись демонтажу, а элементы использованы в последнем варианте.
В качестве датчиков применены широко распространенные DS18B20. Первый же вариант конструкции показал склонность датчиков к саморазогреву, поэтому в дальнейшем их питание было выполнено от одного из выходов микроконтроллера, включаемого на время измерения.
Программа МК отрабатывалась с использованием отладочной платы EasyPIC5. Для этого PIC12F629 был установлен на EasyPIC5, и соединен перемычками с пустой панелькой на плате термометра. В качестве языка программирования выбран MicroPascal.
Одна из особенностей термометра получена благодаря сдвиговым регистрам. Последовательный сдвиг информации приводит к отображению на дисплее изменяющейся «абракадабры», из которой вдруг появляются цифры, отображающие температуру.
Файлы проекта можно скачать на сайте "Микроконтроллеры". 


понедельник, 9 мая 2011 г.

Arduino – клоны наступают.


Одним из признаков популярности в любой области, является появление двойников. Такая ситуация произошла и с платформой Arduino. Правда, следует отметить, что немаловажную роль в этом сыграла ориентация на бесплатное программное обеспечение. Устройств, в той или иной степени, реализующих идеологию Arduino хватало и раньше, есть они и сейчас.
Сегодня существует три основных вида плат Arduino: Uno, Mega, Nano. Существуют и другие варианты, но они менее распространены. Наиболее массовым можно считать вариант Uno и его предшественника Duemilanove. Эти платы и стали наиболее копируемыми во всем семействе. При этом копии могут серьезно отличаться от базового варианта.
Главным достоинством Arduino является очень простой язык программирования, не требующий серьезного знания аппаратной базы микроконтроллеров и очень простая плата. Многие любители изготавливают эту плату самостоятельно, даже не смотря на то, что стоимость ее очень низка. Единая среда программирования позволяет реализовывать все необходимые функции на любой плате. Именно она является связующим звеном для всех вариантов устройства. Отличия начинаются при попытке загрузки программы в Arduino. В фирменных вариантах для этого используется порт USB и установленный на плате переходник USB-COM. Этот переходник представляет собой микросхемы в корпусе для планарного монтажа, что делает весьма сложным его установку в любительских условиях. Поэтому многие самодельные, а иногда и промышленные варианты используют для загрузки COM-порт.
Второй причиной, породившей множество клонов, стала регистрация товарного знака Arduino. В итоге все остальные производители могут выпускать подобные платы, но под другими именами. Так появились Freeduino, Carduino и много чего еще. Не стесняются использовать фирменное название только китайцы, во множестве плодящие разнообразные подделки.
Отдельным особняком стоят клоны Arduino, реализованные на других процессорах. Такие платы не используют микроконтроллеры Atmel, а работают с элементами других производителей. При этом аппаратная часть практически полностью копирует Arduino. Например, проект Amicus18, реализован на PIC18F25K20. Разработчики несколько отошли от стандартов Arduino, с целью полной реализации возможностей микропроцессора. Программируется Amicus18 на языке ProtonBASIC. Еще один вариант на PIC называется Chipino. В нем полностью отсутствуют элементы, отвечающие за загрузку. Предлагается выполнять ее с помощью программатора PICKit2. Программирование Chipino выполняется в стандартной среде MPLAB, или любой другой, предназначенной для МК Microchip.
Отдельно стоящим, уникальным вариантом является платформа Netduino. Взяв у Arduino, принципы построения аппаратной части, она использует для программирования возможности среды .NET от Microsoft. Естественно, что микроконтроллер используется совсем другой, а именно 32 разрядный ARM от ATMEL.
Несмотря на старания других производителей, реальной альтернативы Arduino пока не создано. Большая популярность и простота, низкая стоимость плат и обилие программ, сделали его практически неуязвимым перед конкурентами, во всяком случае, в ближайшее время.

воскресенье, 1 мая 2011 г.

Amicus18 - аналог Arduino на контроллере PIC18

Одной из самых популярных платформ для разработки электронных устройств является Arduino. Но данная платформа ориентирована в первую очередь на использование микроконтроллеров Atmel. Фанатам других производителей оставалось довольствоваться изучением Arduino. Но, тем не менее, имеются аналоги, использующие контроллеры других производителей. Одной из таких платформ стала Amicus18, построенная на базе процессора PIC18F25K20 от Microchip.
Отладочная плата Amicus18 
Производитель -   английская фирма Crownhill Associates.Сайт проекта - http://www.myamicus.co.uk/
Amicus18 копирует основные решения Arduino. Точно такая же по размерам плата и расположение разъемов позволяют использовать одни и те же  шилды. При этом, благодаря использованию другого процессора, Amicus18 имеет большее количество линий ввода вывода.
Основное отличие заключается в среде программирования. Amicus18 использует собственную IDE и язык программирования ProtonBASIC. Данный язык прост в изучении, но сильно отличается от современных языков высокого уровня. IDE распространяется бесплатно, компилятор может быть интегрирован в MPLAB и имеет оптимизатор кода.
Достоинством платформы Amicus18 можно считать поддержку программатора PICKit2, выпускавшегося Microchip. Фактически это позволяет создавать готовые устройства любого конструктива, предварительно отработав их на отладочной плате.
К сожалению, производитель Amicus18 выпускает только один вариант платформы, по возможностям примерно соответствующий Arduino Uno. Также количество шилдов для Amicus18 пока не велико.
Хочется надеяться, что данная платформа постепенно наберет популярность сравнимую с Arduino.