Программатор своими руками. Программатор для PIC своими руками :: SYL.ru
Программатор для PIC или про то как мне захотелось самодельных электронных часов
Старым стал наверное, стал испытывать проблемы, при попытке разглядеть, сколько там времени на дисплее ресивера за тюлевой занавеской. Хотелось что либо сколхозить. А так как на столе, уже около года, валялись пара сегментных дисплейчика, была выбрана схема на PIC (простейшая, с возможностью регулировки хода) А для программирования PIC требовался как раз программатор Чтоб узнать что из этого получилось, добро пожаловать под кат В выбранной мной схеме часы собирались на основе PIC16F628A В списке поддерживаемых программатором микроконтроллеров — был указан и мой Это и повлияло на выбор Список поддерживаемых микроконтроллеров
10 Серия: PIC10F200 * PIC10F202 * PIC10F204 * PIC10F206 * PIC10F220 * PIC10F222 * 12C серии: PIC12C508 PIC12C508A PIC12C509 PIC12C509A PIC12C671 PIC12C672 PIC12CE518 PIC12CE519 PIC12CE673 PIC12CE674 12F серии: PIC12F509 PIC12F629 PIC12F635 PIC12F675 PIC12F683 16C серии: PIC16C505 PIC16C554 PIC16C558 PIC16C61 PIC16C62 PIC16C62A PIC16C62B PIC16C63 PIC16C63A PIC 16C64 PIC16C64A PIC16C65 PIC16C65A PIC16C65B PIC16C66 PIC16C66A PIC16C67 PIC16C620 PIC16C620A PIC16C621 PIC16C621A PIC16C622 PIC16C622A PIC16C71 PIC16C71A PIC16C72 PIC16C72A PIC16C73 PIC16C73A PIC16C73B PIC16C74 PIC16C74A PIC16C74B PIC16C76 PIC16C77 PIC16C710 PIC16C711 PIC16C712 PIC16C716 PIC16C745 PIC16C765 PIC16C773 PIC16C774 PIC16C83 PIC16C84 16F серии: PIC16F505 PIC16F506 PIC16F54 PIC16F57 * PIC16F59 * PIC16F627 PIC16LF627A PIC16F627A PIC16F628 PIC16LF628A PIC16F628A PIC16F630 PIC16F631 PIC16F631-1 PIC16F636 PIC16F636-1 PIC16F639 * PIC16F639-1 * PIC16F648A PIC16F676 PIC16F677 PIC16F677-1 PIC16F684 PIC16F685 * PIC16F685-1 * PIC16F687 * PIC16F687 *-1 PIC16F688 PIC16F689 * PIC16F689-1 * PIC16F690 * PIC16F690-1 * PIC16F72 PIC16F73 PIC16F74 PIC16F76 PIC16F77 PIC16F737 PIC16F747 PIC16F767 PIC16F777 PIC16F83 PIC16F84 PIC16F84A PIC16F87 PIC16F88 PIC16F818 PIC16F819 PIC16F870 PIC16F871 PIC16F872 PIC16F873 PIC16F873A PIC16LF873A PIC16F874 PIC16F874A PIC16F876 PIC16F876A PIC16F877 PIC16F877A 18 Серия: PIC18F242 PIC18F248 PIC18F252 PIC18F258 PIC18F442 PIC18F448 PIC18F452 PIC18F458 PIC18F1220 PIC18F1320 PIC18F2220 PIC18F2320 PIC18F2321 PIC18F4210 PIC18F2331 PIC18F2450 PIC18F2455 PIC18F2480 PIC18F2510 PIC18F2515 PIC18F2520 PIC18F2550 PIC18F2580 PIC18F2585 PIC18F2610 PIC18F2620 PIC18F2680 PIC18F4220 PIC18F4320 PIC18F6525 PIC18F6621 PIC18F8525 PIC18F8621 PIC18F2331 PIC18F2431 PIC18F4331 PIC18F4431 PIC18F2455 PIC18F2550 PIC18F4455 PIC18F4580 PIC18F2580 PIC18F2420 PIC18F2520 PIC18F2620 PIC18F6520 PIC18F6620 PIC18F6720 PIC18F6585 PIC18F6680 PIC18F8585 PIC18F8680
Заказ был сделан 19. 08.2016, а уже 15.09.2016 был у меня Фотографии упаковки не сохранилось, но комплектация соответствовала фото продавца, всё упаковано в отдельные пакетики, пакетики в общем большем пакете, а тот в свою очередь в почтовый жёлтый пакет с пупыркой
Внешний вид платы программатора — спаяно аккуратно, но плата не отмыта от слова СОВСЕМ
Но, плата оказалась вполне рабочей Для работы с ним потребуется программа и драйвера, скачать их можно например тут Программа интуитивно понятная, выбираем микроконтроллер, указываем путь к файлу прошивки, прошиваем Как установить микроконтроллер в разъёме программатора — программа подскажет Мой необходимо было установить первой ногой во второй контакт Обычно я жму считать чип, чтоб убедиться, что программа видит микроконтроллер, потом заливаю прошивку
В общем-то программатор вполне работоспособный и прошить мой PIC мне удалось Фузы я не выставлял — заводские, по умолчанию, — вполне прокатили
Короче, плата программатора грязная, элементы впаяны нормально, комплектация точно как указана продавцом и представлена на его странице на картинках, упаковано нормально, доставлено относительно оперативно Минус за грязь Скорее всего рекомендую к покупке, чем нет
Теперь о том для чего я всё это затеял
Самодельные часы
Проект взят отсюда Схема:
Там-же описание, прошивка, рисунок платы
Попытка найти подходящий корпус привела к товарищу, у которого завалялся корпус, в виде домика Под него была нарисована односторонняя плата
И получились часики:
В качестве питания — зарядка от мобилки Часы показывают попеременно время и температуру, уличный датчик — не задействовал Так-же были изготовлены ещё одни маленькие под самодельный корпус:
плата
Конструкция — простейшая, минимум деталей, запускаются без каких либо танцев с бубном Но, если честно, мне они не понравились, т. к. с этой прошивкой они работают только если не вносить коррекции времени Как только вносишь коррекцию — часы виснут, и помогает только передёргивание питания По этому захотелось чего ни будь большего Так что ПРОДОЛЖЕНИЕ СЛЕДУЕТ…
USBasp программатор AVR микроконтроллеров делаем сами
В инете сказано, что USBasp — один из наиболее простых для повторения AVR USB программаторов. + требует минимум внешних компонентов, имеет несколько готовых вариантов разводки печатной платы и оболочек для программирования, а также может работать под Linux и MacOS.
То что нужно! Делаем )))
Процесс изготовления
1. Нашел схемку программатора на контроллере Mega8. Требуется минимум навестных элементов
2. Модифицировал печатную плату под свой корпус. Пришлось немного попотеть, чтоб впихнуть в корпус от сплиттера в одну линейку и МК, и USB-разъем и IDC-10. Результат превзошел мои ожидания )
3. Переносим рисунок с чудо-бумаги на плату. Дорожки немного расплылись — не беда. Исправим это с помощью иголки (булавки, или еще чего острого).
4. Процесс травления уже позади. Плата промыта и просушена.
5. Стираем растворителем тонер — получаем готовые дорожки для будущего устройства
6. Далее слесарно-монтажные работы — пилим, сверлим, точим, лудим (последовательность выбирайте сами)
7. Получилась компактная плата, пока еще без элементов.
8. Пичкаем плату нужными элементами. Пока без светодиодов и разъем IDC-10 слишком длинный (торчит из корпуса)
9. Выпаиваем Г-образный IDC-10 разъем. Вместо оплетки для лужения (и прочих премудростей) использовал обычный многожильный провод. Получилось аккуратно и быстро )))
10. Припаиваем SMD-компоненты. Вид со стороны дорожек. Все делалось паяльником на 60Вт с жалом 5мм в диаметре. Таким нужно еще наловчиться…
11. Не все резисторы получилось перевести на SMD. Вид со стороны компонентов. Как видно, контроллер — USB — IDC-10 плотно расположены… Кварц взял обычный, благо высота корпуса позволяет.
12. А вот и корпус, куда будет помещен программатор. Очень полезная штука )
13. Устройство благополучно внедрено в “шкурку сплиттера”. Компактно вышло.
14. Размер платы по сравнению с 5 рубленными “монетками”
16. Конечный итог…
Доработанная печатная плата USBasp программатора:
Программирование микроконтроллера Mega8
1. Прошиваем микроконтроллер с помощью этого программатора: Простой LPT программатор AVR микроконтроллеров (5-ть проводков)
Заливаем файл прошивки под названием “usbasp.atmega8.2007-10-23.hex” из архива в конце статьи…
Подключаем к программатору адаптер для программирования микроконтроллеров.
Данные для самостоятельного изготовления можно взять здесь…
Печатная плата адаптера в формате lay для Sprintlayout
При подключении USB будет постоянно светиться зеленый (красный) светодиод
Установка драйвера для USBasp
1. Можно было запрограммировать и в самом USBasp программаторе, подключив к нему простой программатор согласно распиновке. Если все собрано и запрограммировано верно, то устройство при подключении к ПК определится и “попросит” установить двайвер.
2. На что ему вежливо ответим выбрав папку со скаченными и разархивированными двайверами.
3. Драйвера успешно установятся, если схема собранна верно и МК тоже прошит верно.
4. В диспетчере устройств определится программатор как: LibUSB-Win32 Device
. Радуемся, и тестируем )
Проверка работоспособности программатора
1. В качестве програмки использовал avrdude
в оболочке
Sinaprog1.5.5.10.
Можно использовать и приложенное к архиву оболочку
USBASP_AVRDUDE_PROG
Для проверки доступа к Attiny13A привожу пошагово такую инструкцию. Контроллер опознан, можно заливать прошивку в Attiny13A .
Необходимые данные для повторения устройства находятся в этом архиве:
Прошивка, программа, печатка, драйвер
Всем удачи!
Автор: Садовой А.В.
Материал взят с журнала РАДИО 2007, №10
Ну вот и настало то время, когда и мне пришлось взяться за изучение МК. К этому подвинула статья Автоматическое ЗУ на Atmega16A Тут и без всякого раздумья стало понятно, что нужно срочно собирать программатор. Листая журнал РАДИО, нашел приемлемую схему для себя. Ниже приводится описание с журнала.
Предлагаемый программатор работает под управлением программы PonyProg [1], распространяемой бесплатно. Если ограничиться программированием МК PIC и микросхем памяти, можно воспользоваться также программами IC-Prog и WinPic800, распространяемыми на тех же условиях. Программирование 18-выводных МК PIC и 20-выводных AVR производится без каких-либо коммутаций. Достаточно установить МК в предназначенную для него панель и выбрать его тип в меню используемой программы. От установки панелей для всех МК этих семейств автор сознательно отказался, так как в любительской практике они используются редко. При необходимости нужные панели можно установить дополнительно или подключать требующиеся для программирования выводы МК к предусмотренному в программаторе разъему. Этот же разъем используется при внутрисхемном программировании. Кроме МК, устройство позволяет программировать микросхемы памяти с последовательным интерфейсом, имеющиеся в меню используемых программ. Для подобных программ с интерфейсом I2C в программаторе предусмотрена панель. До начала процесса программирования и по его завершении напряжение питания программируемой микросхемы отключено, что дает возможность безопасно установить микросхему в панель, а затем извлечь ее. Прежде чем рассматривать работу программатора подробно, вспомним некоторые особенности программирования МК семейств PIC и AVR. Номера упоминаемых далее выводов МК различных можно найти в технической документации. Чтобы перевести в режим программирования МК семейств PIC, требуется подать на его вывод MCLR напряжение +12…14 В. Обмен информацией с устройством, управляющим программированием, происходит через двунаправленный вывод DATA. Синхронизирующие импульсы обмен импульсы поступают на вывод CLOCK. МК семейства AVR повышенного напряжения не требуют. Они переходят в режим программирования при низком логическом уровне на выводе RESET. При этом необходимо, чтобы к соответствующим выводам МК был подключен кварцевый резонатор. Информация принимается через вывод MOSI, а передается через вывод MISO. Вход синхронизирующих импульсов – вывод SCK. Схема программатора изображена на рис. 1. Ее наиболее существенное отличие от прототипа [1] заключается в использовании для связи с COM-портом компьютера микросхемы МАХ232СРЕ (DA2) – специализированного преобразователя уровней RS232 – ТТЛ. Это позволило выполнить все требования по уровням передаваемых сигналов и нагрузочной способности линий порта и значительно улучшило надежность работы устройства.
Чтобы излишне не нагружать COM-порт, предусмотрено питание программатора и программируемой микросхемы только от внешнего источника. Его постоянное напряжение (15 В) или переменное (10…12 В) напряжение поступает в программатор через диодный мост VD1, служащий выпрямителем переменного напряжения или приводящий постоянное к правильной полярности. Интегральный стабилизатор DA1 питает напряжением 5 В преобразователь уровней DA2. Светодиод HL1 сигнализирует о включении питания. Стабилизатор DA3 на 12 В – управляемый. Он включен при высоком логическом уровне напряжения на управляющем входе 4 и выключен при низком уровне. Это свойство использовано для управления напряжением, переводящим МК семейства PIC в режим программирования, и напряжением питания программируемой микросхемы, которое получают из 12 В с помощью интегрального стабилизатора DA4. О включенном питании программируемой микросхемы сигнализирует светодиод HL2. Очень важен правильный выбор емкости конденсатора С7 на выходе стабилизатора DA3. При слишком большом значении напряжение, переводящее МК семейства PIC в режим программирования, после включения стабилизатора будет нарастать недостаточно быстро, что приведет к сбою. Устанавливать конденсатор С7 слишком маленькой емкости или вовсе отказаться от него нельзя – это приведет к самовозбуждению стабилизатора и сделает программирование невозможным. Диод VD2 ограничивает до безопасного значения отрицательное напряжение, которое может поступить на управляющий вход стабилизатора DA3 с контакта 3 разъема XS1 (линии TXD COM-порта). Узел на транзисторе VT2 формирует сигнала RESET для МК семейства AVR. Узел на транзисторах VT1 и VT3 разделяет имеющуюся в МК семейства PIC двунаправленную линию DATA на две однонаправленных для компьютера. Под названиями MOSI и MISO эти же однонаправленные линии используются при программировании МК семейства AVR. Для аналогичного преобразования в [1] был применен логический инвертор на одном транзисторе. Однако его практическое использование выявило довольно большое число сбоев, причина которых, по мнению автора, — недостаточная задержка информационного сигнала на линии DATA относительно синхронизирующего на линии CLOCK. Добавление второго инвертора увеличило задержку и устранило сбои, однако «лишнюю» инверсию приходится компенсировать соответствующей настройкой управляющей программы, о чем будет сказано далее. Используя для управления программированием программу PonyProg, следует выбрать в соответствующем ее окне программатор «SI Prog I/O» и задать инверсию сигналов в соответствии с табл. 1. Программа WinPic при работе в ОС windows XP позволяет программировать только МК семейства PIC и микросхем памяти. Однако в ОС Windows 98 МК этой программой не программируются. С программой IC-Prog ситуация обратная. При настройке обеих программ должен быть выбран программатор “JDM Programmer”. Инверсию сигналов задают в соответствии с табл. 2. (для WinPic) и табл. 3. (для IC-Prog).
Наличие нескольких во многом равноценных управляющих программ дает возможность пользоваться программатором даже при возникновении проблем в работе с одной из них. Например, МК, отсутствующий в списке доступных одной программе, может быть найден в списке другой. Так случилось при попытке запрограммировать МК PIC16F628A. В списке программы PonyProg имеется лишь PIC16F628 на экране монитора появляется сообщение «Неизвестный тип микроконтроллера». Даже если проигнорировать это сообщение, попытки не только запрограммировать, но и просто прочитать содержимое памяти МК положительного результата не дают. Однако в списках программ WinPic800 и IC-Prog нужный МК есть, его программирование с помощью этих программ выполняется без замечаний.
ЛИТЕРАТУРА
1. Lanconelly C. PonyProg – serial device programmer 2. Gijzen B. IC-Prog Prototype Programmer 3. Font S. Software for PIC programming Windows 95/98/NT/2000/ME/XP compatible
Все ясно и понятно как «божий день», остается за малым, а может быть не малым, воплотить все дела паяльником. Далее привожу фото-обзор как я создавал программатор:
Разметил размер будущей платы, использую так называемые «макетные платы» , как то еще не приспособился к печатным платам, поэтому пользуюсь макетками.
При сборке предыдущей статьи Светодинамическое устройство «LED-подарок девушке» как то подумал «а что если покрасить плату в черный цвет?» смотрится креативненько))) плату покрасил и в этот раз.
Вот и собрал. В отличии от оргинала, не стал впаивать панельки под МК, а впаял разъем в виде «штырьков» без понятия как они называются правильно))) Разъем для подключения адаптера с переменкой 15 В использовал от модема TP-Link и выключатель питания от него же. Диодный мост взял КЦ407.
Подписал разъем
Настало время проверить. Установил прогу PonyProg, запустил ее, появилось окно в котором требуется «…произвести калибровку». Жмем «Yes»
«Калибровка завершена»
«Настройка платы программатора» находится в верхнем меню «Установка». Жмем «Проверка» если все нормально, то появится окошко «Тест Ок»
Теперь можно записывать или считывать прошивку с МК или микросхем памяти. Как раз на работу принесли усилок фирмы BBK вот понадобилось проверить микруху памяти 24С02. Подключил микруху к соответствующим выводам на разъеме, подключил программатор к COM-порту компа, включил питание, считал/записал прошивку вот и все. Так же проверил микруху 24С04 все работает. МК PIC и AVR еще не проверял, но т.к. нужно потихоньку собирать ЗУ на Atmega16A скоро будем «шить» )))
Внутрисхемный USB-программатор-отладчик PICkit2
28 ноября 2007
Для начала освоения и практического применения микроконтроллеров разработчику необходим доступный инструментарий. Компания Microchip Technology Inc. выпускает недорогой программатор начального уровня PICkit2, схема и программное обеспечение в исходных кодах которого выложены на сайте www.microchip.com/pickit2. Рассмотрим особенности и возможности этого USB-программатора.
Программатор PICkit2 соединяется с компьютером по широко распространенному интерфейсу USB (программатор построен на базе контроллера PIC18F2550 USB 2.0). Через USB-порт так же осуществляется обновление прошивки программатора, т.е. при необходимости PICkit2 может обновить свое программное обеспечение без применения дополнительных программаторов. Использование интерфейса USB позволило программатору отказаться от дополнительного источника питания и получать питание непосредственно от USB-порта компьютера. PICkit2 имеет простую схемотехнику, что позволяет уместить его в небольшом брелке (см. рис. 1).
Рис. 1. Внешний вид программатора PICkit2
Программатор PICkit2 служит для внутрисхемного программирования большинства Flash микроконтроллеров Microchip и с появлением новых микроконтроллеров список поддерживаемых устройств постоянно расширяется. Типовая схема подключения приведена на рис. 2.
Вывод | Назначение |
1 | Vpp/MCLR -напряжение программирования, сигнал сброса |
2 | Vdd — напряжение питания для программируемой схемы |
3 | Vss — «земляной» вывод |
4 | ICSPDAT/PGD — сигнал данных |
5 | ICSPCLK/PGC — сигнал тактирования |
6 | AUX — вспомогательный вывод, как правило не используется |
Рис. 2. Типовая схема внутрисхемного программирования
Программатор PICkit2 работает под управлением своей собственной оболочки или под управлением среды разработки MPLAB IDE. При работе программатора под управлением оболочки «PICkit2 Programmer» (рис. 3) PICkit2 позволяет выполнять все стандартные операции: стирать, программировать и проверять память программ и EEPROM, устанавливать защиту кода, редактировать содержимое Flash и EEPROM. Помимо этих стандартных функций, программатор PICkit2 позволяет осуществлять ряд дополнительных и интересных действий.
Рис. 3. Программа «RICkit2 Programmer»
Программатор PICkit2 является внутрисхемным программатором, т.е. подключается к плате или разрабатываемому устройству, в котором установлен микроконтроллер. Поэтому такое устройство может иметь свой источник питания или получать питание извне. Для устройств с внешним питанием PICkit2 может формировать напряжение питания в диапазоне напряжений от 2,5 до 5 В с шагом 0,1 В. Это полезная особенность, т.к. вы можете отлаживать различные устройства, не отсоединяя программатора, а питание устройства будет осуществляться от самого программатора.
Внимание! USB-порт компьютера может выдавать ток до 100 мА. Если подключенное к PICkit2 устройство потребляет больший ток, то USB-порт автоматически выключится. Если вам нужно получить ток больше 100 мА, то используйте внешний источник питания.
Как правило, напряжение шины USB составляет 5 В. Однако для некоторых компьютеров и ноутбуков напряжение может отличаться. Для приложений требующих высокую точность, программатор PICkit2 имеет возможность калибровать напряжение, выдаваемое во внешнюю схему.
Для устройств с внешним сбросом оболочка программатора позволяет управлять сигналом сброса микроконтроллера.
В меню «Tools» появилась возможность включить опцию «Use VPP First Program Entry», это может понадобиться для контроллеров, конфигурация которых и настройка портов не позволяет войти в режим программирования (например, для контроллеров PIC12F675 с включенным внутренним сбросом и портами, подключенными к PGD и PGC, настроенными на выход). Попробуйте включить эту опцию, если программатор выдает ошибку проверки конфигурации («Verification of configuration failed»).
Некоторые микроконтроллеры PIC12F и PIC16F имеют внутренний RC-генератор, калибровочная константа для которого определена на заводе-изготовителе и хранится по последнему адресу в памяти программ микроконтроллера. Как правило, «правильные» программаторы при программировании таких микроконтроллеров сначала считывают калибровочную константу, затем стирают микроконтроллер, а затем программируют его пользовательской программой с запомненной константой. Если по каким-либо причинам константа утеряна, то PICkit2 (версии ПО 1.хх) поможет восстановить калибровку генератора. Для этого в микроконтроллер записывается специальная программа, которая генерирует на выводе микроконтроллера меандр, программатор PICkit2 измеряет частоту и рассчитывает калибровочную константу, которая затем может быть записана в микроконтроллер.
Рис. 4. Окно «UART Communication Tool» программы «PICkit 2 Programmer»
Если ваше устройство должно общаться с другими устройствами по UART, то вы можете использовать PICkit2 как средство отладки последовательных протоколов. UART Communication Tool (см. рис. 4) позволяет задавать скорость до 38400 бод, и так же позволяет:
- Получать отладочную информацию из микроконтроллера;
- Вести лог данных, получаемых от микроконтроллера, в текстовом файле;
- Разрабатывать и отлаживать последовательную передачу по интерфейсу UART;
- Посылать команды микроконтроллеру на этапе отладки.
Для того чтобы использовать UART Communication Tool, нужно соединить выводы микроконтроллера UART и программатора PICkit2 согласно табл. 1.
Таблица 1. Соединение выводов UART-микроконтроллера и программатора PICkit2
Выводы программатора PICkit2 | Выводы микроконтроллера UART |
(1) VPP | — |
(2) Vdd | Напряжение питания |
(3) GND | GND |
(4) PGD | TX UART — логический уровень |
(5) PGC | RX UART — логический уровень |
(6) AUX | — |
В версии оболочки 2.40 появилась возможность программирования микросхем последовательной памяти с интерфейсом I2C и SPI (24LCxxх, 25LCхxx и 93LCхxx) и ключей KeeLOQ.
Работа под средой разработки MPLAB IDE.
Обычно разработчики, работающие с PIC-контроллерами, используют в качестве среды разработки MPLAB IDE, так как MPLAB IDE — это мощный бесплатный инструментарий разработки и отладки программ для PIC-микроконтроллеров. MPLAB IDE включает в себя редактор, программный симулятор, позволяет подключать Си-компиляторы различных производителей, работает совместно с программаторами и эмуляторами Microchip. Среда разработки MPLAB IDE (см. рис. 5) также поддерживает программатор PICkit2 и выполняет те же стандартные функции, что и под оболочкой PICkit2: можно записывать и считывать отдельно память программ и EEPROM, стирать память микроконтроллера и проверять ее на чистоту. Однако список поддерживаемых микроконтроллеров не такой обширный, но зато появляется возможность внутрисхемной отладки некоторых популярных микроконтроллеров.
Рис. 5. Окно среды разработки MPLAB IDE, использование программатора PICkit 2 в качестве внутрисхемного отладчика
Для внутрисхемной отладки используются те же самые выводы микроконтроллера, что и для программирования, поэтому никаких переделок в схеме не нужно*. Для включения режима отладки нужно в меню Debugger ® Select Tool выбрать PICkit2.
После соединения с отлаживаемым микроконтроллером можно устанавливать точки останова, выполнять программу по шагам, наблюдать за изменением переменных в окне Watch (см. рис. 6).
Рис. 6. Окно среды разработки MPLAB IDE, отслеживание изменения переменных
Варианты поставок PICkit2
Компания Microchip Technology Inc. поставляет программатор PICkit2 в разных комплектациях (см. табл. 2).
Таблица 2. Комплектация PICkit2
Код заказа | Описание |
PG164120 | программатор PICkit2 |
DV164120 | программатор PICkit2 + демонстрационная плата с PIC16F690 |
DV164121 | PICkit2 Debug Express (программатор PICkit2 + демонстрационная плата с PIC16F887) |
Комплект DV164120, помимо программатора, содержит демонстрационную плату с установленным контроллером PIC16F690 и, за счет совместимости по выводам, позволяет работать с любыми PIC-контроллерами в корпусах DIP-8, DIP-14 и DIP-20 (см. рис. 7).
Рис. 7. Совместимость по выводам контроллеров в 8-, 14- и 20-выводных корпусах
Программатор-отладчик PICkit2 является весьма мощным и универсальным отладочным средством для микроконтроллеров Microchip, но в то же время имеет доступную цену и даже, при желании, может быть легко повторен по документации, предоставляемой Microchip. Программатор PICkit2 активно поддерживается двумя платформами: оболочкой PICkit2 и средой разработки MPLAB IDE, причем с каждым апгрейдом добавляются все новые и новые функции, а способность программатора обновлять свое ПО дает возможность произвести обновление меньше чем за минуту. Помимо функций программирования микроконтроллеров и микросхем памяти, PICkit2 может использоваться как отладочное средство, а именно — как внутрисхемный отладчик или как отладчик протоколов UART, и, надеемся, в следующих обновлениях Microchip порадует нас новыми функциями!
* — Для внутрисхемной отладки желательно иметь новую версию PICkit2 с красной кнопкой. Если у вас предыдущая версия PICkit2, то для обновления нужно слегка модифицировать схему, или добавить подтягивающие резисторы к GND на линии PGD и PGC в схеме, так как PICkit2 изначально планировался только как программатор. Инструкцию по обновлению PICkit2 можно скачать с сайта www.gamma.spb.ru.
Получение технической информации, заказ образцов, поставка — e-mail
•••
Наши информационные каналы
Программатор микроконтроллеров PIC
В настоящее время появилось много принципиальных схем с использованием различных микроконтроллеров, в том числе и микроконтроллеров PIC фирмы MicroChip. Это позволило получить достаточно функциональные устройства, несмотря на их простоту. Но работа микроконтроллера невозможна без программы управления, которую необходимо записать. В данной статье мы рассмотрим универсальный программатор EXTRA-PIC позволяющий программировать PIC контроллеры и память EEPROM I2C. Список поддерживаемых микросхем, при использовании с программой IC-PROG v1.05D:
PIC-контроллеры фирмы Microchip: PIC12C508, PIC12C508A, PIC12C509, PIC12C509A, PIC12CE518, PIC12CE519, PIC12C671, PIC12C672, PIC12CE673, PIC12CE674, PIC12F629, PIC12F675, PIC16C433, PIC16C61, PIC16C62A, PIC16C62B, PIC16C63, PIC16C63A, PIC16C64A, PIC16C65A, PIC16C65B, PIC16C66, PIC16C67, PIC16C71, PIC16C72, PIC16C72A, PIC16C73A, PIC16C73B, PIC16C74A, PIC16C74B, PIC16C76, PIC16C77, PIC16F72, PIC16F73, PIC16F74, PIC16F76, PIC16F77, PIC16C84, PIC16F83, PIC16F84, PIC16F84A, PIC16F88, PIC16C505*, PIC16C620, PIC16C620A, PIC16C621, PIC16C621A, PIC16C622, PIC16C622A, PIC16CE623, PIC16CE624, PIC16CE625, PIC16F627, PIC16F628, PIC16F628A, PIC16F630*, PIC16F648A, PIC16F676*, PIC16C710, PIC16C711, PIC16C712, PIC16C715, PIC16C716, PIC16C717, PIC16C745, PIC16C765, PIC16C770*, PIC16C771*, PIC16C773, PIC16C774, PIC16C781*, PIC16C782*, PIC16F818, PIC16F819, PIC16F870, PIC16F871, PIC16F872, PIC16F873, PIC16F873A, PIC16F874, PIC16F874A, PIC16F876, PIC16F876A, PIC16F877, PIC16F877A, PIC16C923*, PIC16C924*, PIC18F242, PIC18F248, PIC18F252, PIC18F258, PIC18F442, PIC18F448, PIC18F452, PIC18F458, PIC18F1220, PIC18F1320, PIC18F2320, PIC18F4320, PIC18F4539, PIC18F6620*, PIC18F6720*, PIC18F8620*, PIC18F8720*
Примечание: микроконтроллеры, которые отмечены звездочкой (*) необходимо подключить к программатору через ICSP разъем.
Последовательная память EEPROM I2C (IIC): X24C01, 24C01A, 24C02, 24C04, 24C08, 24C16, 24C32, 24C64, AT24C128, M24C128, AT24C256, M24C256, AT24C512.
Непосредственно сама схема программатора EXTRA-PIC:
Рисунок печатной платы в формате Sprint LayoutА теперь инструкция как запрограммировать микроконтроллер.
В виде примера возьмем микроконтроллер PIC16F876A.
Соберите программатор и подготовьте блок питания с напряжением на выходе не менее 15В
Распакуйте программу в отдельный каталог. В созданном каталоге должны находиться три файла:
icprog.exe – файл оболочки программатора;
icprog.sys – драйвер, необходимый для работы под Windows NT, 2000, XP. Этот файл всегда должен находиться в каталоге программы;
icprog.chm – файл помощи (Help file).
Настройка программы IC-PROG v1.05D.
Для Windows95, 98, ME | Для Windows NT, 2000, XP |
(Только для Windows XP ): Правой кнопкой щёлкните на файле icprog. exe. «Свойства » >> вкладка «Совместимость » >> Установите «галочку» на «Запустить программу в режиме совместимости с: » >> выберите «Windows 2000 «. | |
| |
«Настройки » >> «Программатор«. Проверьте установки, выберите используемый вами COM-порт, нажмите «Ok «. | |
Далее, «Настройки » >> «Опции » >> выберите вкладку «Общие » >> установите «галочку» на пункте «Вкл. NT/2000/XP драйвер » >> Нажмите «Ok » >> если драйвер до этого не был установлен в системе, в появившемся окне «Confirm » нажмите «Ok «. Драйвер установится, и оболочка программатора перезапустится. | |
Примечание: Для очень «быстрых» компьютеров возможно потребуется увеличить параметр «Задержка Ввода/Вывода «. Увеличение этого параметра увеличивает надёжность программирования, однако, увеличивается и время, затрачиваемое на программирование микросхемы. | |
«Настройки » >> «Опции » >> выберите вкладку «I2C» >> установите «галочки» на пунктах:«Включить MCLR как VCC » и «Включить запись блоками «. Нажмите «Ok «. | |
Программа готова к работе. |
Установите микросхему в панель программатора, соблюдая положение ключа.
Подключите шнур удлинителя, включите питание.
Запустите программу IC-PROG.
В выпадающем списке выберите контроллер PIC16F876A.
Если у вас нет файла с прошивкой – подготовьте его:
откройте стандартную программу «Блокнот»;
вставьте в документ текст прошивки;
сохраните под любым именем, например, prohivka.txt (расширение *.txt или *.hex).
Далее в IC-PROG Файл >> Открыть файл (! не путать с Открыть файл данных ) >> найти наш файл с прошивкой (если у нас файл с расширением *.txt , то в типе файлов выберите Any File *.* ). Окошко «Программного кода» должно заполнится информацией.
Нажимаем кнопку «Программировать микросхему» (загорается красный светодиод).
Ожидаем завершения программирования (около 30 сек.).
Для контроля нажимаем «Сравнить микросхему с буфером».
Программатор Spi Flash своими руками — ABC IMPORT
Содержание статьи:
- Выбор: SF & SD
- Флэш-память SPI
- Утилита для идентификации
- DIY: универсальные программы создания
- Микроконтроллер PIC18F2550
- Программирование через OpenProg
- Дизайн печатной платы
- Завершение процесса создания
- Последовательная SPI AT45DB161D
- USB- накопитель EEPROM
- Устранение сбоев работы микроконтроллеров
Микропрограммное обеспечение предварительно установлено в устройства флэш-памяти перед изготовлением печатной платы, поддерживая высокую пропускную способность. Тем не менее есть преимущества в программировании флэш-памяти уже после ее выпуска, то есть до того, как она была припаяна к плате. Программатор Spi Flash (SF) с дискретной флэш-памятью имеет существенные преимущества перед обычными SD. Его цена обычно не превышает 1/10 стоимости флешки, использует гораздо меньший форм-фактор и требует небольшого количества специального оборудования.
Выбор: SF & SD
Вам будет интересно:Как включить режим планшета в Windows 10 и настроить?
Существует множество причин для выбора дискретной флэш-микросхемы вместо подсистемы SD или, наоборот, поэтому пользователю необходимо выбирать компромиссы перед приобретением устройства. Приведенный ниже список содержит несколько аргументов, которые нужно знать, перед выбором DIP-чипа или полноценного SD-решения:
Флэш-память SPI
Вам будет интересно:Workflow — это… Описание, применение, функции
Флэш-память SPI- это тип энергонезависимой памяти, основанный на технологии MOSFET.
Вам будет интересно:Как распознать текст с картинки в Word: лучшие способы и ресурсы
Запрограммированный флэш-бит имеет значение 0, а стертый бит имеет значение 1, стертый флэш-байт равен 0xFF в шестнадцатеричном формате. В настоящее время флэш-память может хранить несколько битов на ячейке, с использованием уровней напряжения. С учетом роста требований к объему памяти это становится все более сложным выполнить конструкционно.
Преимущество Spi Flash программаторов USB заключается в простоте программного обеспечения, код в основном сдвигает данные выводов DI и DO, соответственно по переднему фронту тактовой частоты.
Утилита для идентификации
Flashrom — это утилита для идентификации, чтения, записи, проверки и удаления флеш-чипов. Она предназначена для прошивки образов BIOS/EFI/coreboot/firmware/optionROM на материнских платах, картах контроллера сети/графики/хранения и на различных других устройствах программирования. Функциональные возможности:
DIY: универсальные программы создания
Вам будет интересно:Как настроить Microsoft Remote Desktop — пошаговая инструкция. Удаленный доступ к компьютеру через Интернет
Это лучший для микроконтроллеров PIC и AVR программатор Spi Flash, своими руками, может быть, его создать не получится, но устройство не дорогое, стоит меньше 10 $ и выполняется из легко доступных компонентов.
Преимущества:
Микроконтроллер PIC18F2550
Основные три последовательных заголовка (J1, J2 и J3) используются для связи с ведомым устройством микроконтроллера. Использование выводов различно в разных микроконтроллерах. Переключатель сброса добавлен к блоку контроллера для установки сброса программатора. PIC18F2550 мигает с помощью шестнадцатеричного кода прошивки, можно использовать другие последовательные или параллельные программаторы Spi Flash PIC.
Он проверяет связь между микроконтроллером и ПК. Требуется провести тестирование HID-обнаружения (Human Interface Device), которое устранит много ошибок, таких как проблемы с микроконтроллером, кристаллами и USB. Перед началом использования программы убеждаются, что мигает светодиод LED, который затем замедляет процесс мигания. Если программатор не обнаружен, проверяют перекрестные соединения и инструкции. Если он обнаружен, переходят к следующему шагу.
Программирование через OpenProg
Устанавливают программу OpenProg на ПК, запускают и проверяют подключенное устройство. Последовательность прошивки программатора Spi Flash:
Дизайн печатной платы
Эта печатная плата разработана в Eagle 7.2. Размер пластины 7,5 х 7 см, она выполнена на автоматическом травильном станке. Печатная плата также может быть изготовлена с помощью химического травления в домашних условиях.
Компоненты JA, JB, JC являются перемычками. По схеме тщательно проверяют это и сначала, во время сборки компонентов, устанавливают перемычки. Для обеспечения безопасности PIC18F2550 во время пайки используют 28-контактное основание IC.
Плата расширения связывает программатор с микроконтроллером. Различные серии микроконтроллеров имеют разные контакты и конфигурацию для программирования. Это дает пользователям преимущество в простоте программирования микроконтроллера.
Плата расширения может быть легко сделана с использованием перфорированной доски или в специальных заготовок для плат, приобретенных в торговой сети. Для серий микроконтроллеров используется разные платы расширений. Для LVICP от 5 В до 3,3 В необходим регулятор напряжения, такой как LM1117 или аналогичный ему.
Устройство 3.3 В должно быть запрограммировано только с использованием платы расширения 3.3 В, в противном случае может произойти необратимое повреждение. Некоторые из плат имеют вариант 5 В. Если нужно запрограммировать на 5 В, можно выбрать опцию «Не требовать платы низкого напряжения». Также не рекомендуется размещать 24F-33F в гнездо 30F, которое работает при 5 В.
Завершение процесса создания
После изготовления части контроллера и платы расширения, можно сразу перейти к программированию устройства:
Вам будет интересно:Как пользоваться Total Commander? Достоинства и недостатки файлового менеджера
Последовательная SPI AT45DB161D
Простой Spi Flash программатор SPI (AT45DB161D) представляет собой 16-мегабитную (2 МБайт) 2,5 В или 2,7 В флэш-память с последовательным интерфейсом, идеально подходящего для широкого спектра приложений, предназначенных для хранения программного кода и данных.
Всего 2097152 байта (0x1FFFFF) организованы в 4096 страниц с 512 байтами на страницу. Несмотря на то, что чип предлагает различные варианты стирания, библиотека программного обеспечения поддерживает стирание блоков, причем один блок содержит 4 Кбайт.
Чтобы перезаписать существующие данные, сначала необходимо удалить соответствующий блок. Чтение и запись данных осуществляется довольно простым способом, в основном путем предоставления адреса чтения/записи (от 0 до 0x1FFFFF) и информации о длине данных. Используя существующие базовые функции, можно расширить код для поддержки обширной системы доступа к файлам.
USB- накопитель EEPROM
Программатор Spi Flash EEPROM серии 25 с программным обеспечением и поддержкой драйверов и 25-SPI флэш-память 8-контактный/16-контактный имеет следующие функциональные возможности:
Устранение сбоев работы микроконтроллеров
Когда пользователь начинает работать с микроконтроллерами, он, вероятно, столкнется с проблемами при программировании, на решение которых потребуются часы или дни, а иногда они просто неразрешимы. Опытные программисты поделились своими наработками устранения различных нарушений, вот некоторые из них:
После выполнения своими руками USB программатора Spi Flash пользователь получит SF, выполненную собственноручно для системного программирования. Она будет легко управляться компьютером через шину USB благодаря удобному интерфейсу и мощным функциями.
Источник
Программатор микроконтроллер в Украине.
Цены на Программатор микроконтроллер на Prom.uaPICPRO USB программатор K150 ICSP для PIC микроконтроллеров
На складе в г. Кропивницкий
Доставка по Украине
355 грн
Купить
Sxemki.com
USB программатор отладчик для микроконтроллеров STM8 STM32 Cortex-M, ST-LINK V2
На складе в г. Ровно
Доставка по Украине
300 грн
Купить
Double-Shop
USB ISP AVR внутрисхемный программатор для AVR микроконтроллеров фирмы ATMEL USB ASP
Доставка по Украине
378 грн
Купить
Интернет-магазин «Smart-company»
USB программатор K150 ICSP для PIC-контроллеров PIC USB ICSP L4 Поддержка микроконтроллеров
Доставка по Украине
630 грн
Купить
Интернет-магазин «Smart-company»
ЮСБ Программатор микросхем автоматический HNV с микроконтроллером MCU STC USB 51, 3,3 v и 5 в
Доставка по Украине
323 грн
Купить
Интернет-магазин «Smart-company»
Программатор микроконтроллеров AVR USBasp
На складе
Доставка по Украине
139. 10 грн
Купить
Магазин «Солдер»
USB AVRISP XPII программатор AVR ISP PDI, клон Atmel mkII, STK500
На складе
Доставка по Украине
990 грн
Купить
KRONS интернет- магазин
Программатор PIC контроллеров K150 ICSP
Доставка из г. Днепр
358.20 грн
Купить
Radio Store
Программатор EEPROM USB SP200SE / SP200S с интерфейсом ISP для SCM 336 и SCM серий 24 и 93 для arduino
Доставка из г. Днепр
427.60 грн
Купить
Radio Store
Модуль программатор Atmel COM-портовый 5В, M156.
На складе в г. Софиевская Борщаговка
Доставка по Украине
105 грн
Купить
«SashaMika»
USB программатор Ch441A FLASH EEPROM
На складе в г. Умань
Доставка по Украине
122 грн
Купить
Интернет-магазин «FreeBuy.in.ua»
Программатор AVR USBASP ATMEGA8A 3.3/5В
На складе в г. Умань
Доставка по Украине
136 грн
Купить
Интернет-магазин «FreeBuy.in.ua»
USB программатор K150 ICSP для PIC-контроллеров
На складе в г. Умань
Доставка по Украине
401 грн
Купить
Интернет-магазин «FreeBuy.in.ua»
Программатор Ch441A 24 25 FLASH EEPROM с прищепкой SOP8 SOIC8
На складе в г. Харьков
Доставка по Украине
300 грн
Купить
Интернет-магазин «RTI-AUTO»
Программатор Ch441A 24 25 FLASH EEPROM с прищепкой SOP8 SOIC8
На складе в г. Харьков
Доставка по Украине
300 грн
Купить
Интернет-магазин «RTI-AUTO»
Смотрите также
Программатор Ch441A 24 25 FLASH EEPROM с прищепкой SOP8 SOIC8 и 1.8V адаптер
На складе в г. Харьков
Доставка по Украине
370 грн/комплект
Купить
Интернет-магазин «RTI-AUTO»
USBASP программатор USB AVR ATMEGA8 ATMEGA128
На складе в г. Ровно
Доставка по Украине
160 грн
Купить
Double-Shop
Адаптер ZIF панель для PICkit
На складе
Доставка по Украине
90.20 грн
Купить
Магазин «Солдер»
Переходник для программатора AVRasp 10pin<->6pin
На складе
Доставка по Украине
20.50 грн
Купить
Магазин «Солдер»
USB программатор K150 ICSP для PIC-контроллеров
На складе
Доставка по Украине
556 грн
389 грн
Купить
Магазин ДОМ КОМФОРТА
USB Программатор SP200SE SP200S EEPROM 24 , 93
На складе в г. Умань
Доставка по Украине
365 грн
Купить
Интернет-магазин «FreeBuy.in.ua»
USB программатор ST-LINK V2 STM8 STM32 Cortex-M
Доставка из г. Львов
403 грн
393 грн
Купить
ІНТЕРНЕТ-МАГАЗИН «ЗАКУПИСЬ»
USB программатор K150 ICSP для PIC-контроллеров 5 В
Доставка по Украине
518 грн
507 грн
Купить
ІНТЕРНЕТ-МАГАЗИН «ЗАКУПИСЬ»
Новый Микроконтроллер R5F100FEA. оригинальный R5F100. LQFP44
Заканчивается
Доставка по Украине
500 грн
Купить
Механик
Микроконтроллер Freescale MC908JL3ECP, MC68HC908JL3E
Доставка из г. Черкассы
500 грн
Купить
Механик
USB программатор Ch441A FLASH EEPROM
На складе в г. Умань
Доставка по Украине
118 грн
Купить
Интернет-магазин «FreeBuy.in.ua»
Программатор Ch441A 24 25 FLASH EEPROM с прищепкой SOP8 SOIC8 и 1.8V адаптер
Доставка из г. Харьков
660 грн/комплект
Купить
Интернет-магазин «RTI-AUTO»
Программирование интегральных микросхем
Услуга
от 30 грн
Craft Electronics
Преобразователь USB-UART (Ch440 USB to TTL)
Доставка из г. Днепр
43.90 грн
Купить
Radio Store
Хотите научиться программированию и микроконтроллерам? – EEJournal
Самое смешное в том, что ты знаешь что-то сам, так это то, что ты склонен предполагать, что это знают и все остальные. Это особенно верно для такого сайта, как EEJournal, который привлекает инженеров-электронщиков и разработчиков встраиваемых систем из всех слоев общества. Но самое смешное в том, что когда вы действительно садитесь и болтаете с людьми, вы начинаете понимать, как мало они обычно знают за пределами своей области знаний.
То же верно и в обратную сторону, конечно. На самом деле, хотя я не люблю хвастаться, я думаю, справедливо будет сказать, что люди часто удивляются, обнаружив, как мало я знаю почти о любой теме, которую они хотят затронуть. Не то чтобы это мешало мне говорить об этих предметах, понимаете; как я уже неоднократно говорил, как и моя дорогая старая мама, настоящая хитрость заключается в том, чтобы заставить нас прекратить
Меня часто спрашивают, как лучше всего научиться писать программы (программное обеспечение) и использовать микроконтроллеры (аппаратное обеспечение). Часто это вызвано желанием выполнить какую-то конкретную задачу. Несколько лет назад, например, один из моих друзей, который строил гигантскую диораму-модель железной дороги в своей комнате отдыха наверху («человеческая пещера», если я когда-либо ее видел), имел в виду именно такую задачу. Он хотел управлять диорамой таким образом, чтобы, когда он выключал основной свет в комнате, уличные фонари включались на каждой улице, а комнатные огни в зданиях случайным образом включались и выключались.
Ну, как я всегда говорю: «Покажи мне мигающий светодиод, и я покажу тебе человека, пускающего слюни». Достаточно сказать, что диорама моего друга теперь превратилась в фестиваль огней — чтобы войти в комнату, нужно быть почти в темных очках.
Самое смешное, что я знаю людей, которые пишут умопомрачительно сложные прикладные программы для использования на рабочих станциях и серверах, но им неудобно крутить входные и выходные контакты микроконтроллера, чтобы воспринимать и контролировать реальный мир. Я также знаю людей, которые являются гуру в области проектирования электронного оборудования, но которые никогда не удосужились окунуться в воду программирования.
Что мне посоветовать? Ну, это немного сложно, потому что все зависит от того, что люди пытаются делать. Конечно, существуют всевозможные системы разработки микроконтроллеров. Лично мне очень удобно пользоваться платами Arduino и их клонами. Мне также нравится относительная простота интегрированной среды разработки (IDE) Arduino, с помощью которой вы записываете свои программы, компилируете их и загружаете на макетную плату.
Что касается языков программирования, то на протяжении многих лет я пробовал их самые разные, включая различные языки ассемблера, BASIC, FORTRAN, Pascal, C и Python. У меня есть друзья, которые являются страстными сторонниками Python, и мне самому он очень нравится, но когда дело доходит до работы с микроконтроллерами, я в значительной степени придерживаюсь языка программирования C вместе с любыми вызовами функций, которые мне нужно использовать в любой работе. Библиотеки C++, с которыми мне довелось работать в то время.
Что касается конкретных макетных плат, это зависит от того, чем я занимаюсь в данный момент — все, о чем я прошу, это чтобы они были совместимы с Arduino и чтобы их можно было запрограммировать с помощью Arduino IDE. Например, некоторое время назад я создал массив шариков для пинг-понга размером 12×12, каждый из которых содержал трехцветный светодиод в форме WS2812B (он же NeoPixel). На самом деле, я недавно загрузил это видео, показывающее, как мой массив работает с игрой Conway’s Game of Life (GOL).
В данном случае я выбрал недорогой (примерно 5 долларов) Seeeduino XIAO от Seeed Studio, который, хотя и размером с обычную почтовую марку, может похвастаться 32-разрядным процессором Arm Cortex-M0+, работающим на частоте 48 МГц с 256 КБ флэш-памяти и 32 КБ SRAM (см. Также «Скажи привет Seeeduino XIAO»).
Seeeduino XIAO размером с небольшую почтовую марку
(Источник изображения: Seeed Studio)
Для сравнения, еще один из моих проектов — легендарный Prognostication Engine (не спрашивайте). Как мы видим в этом видео, эта безрассудная красавица может похвастаться изобилием старинных переключателей, ручек и аналоговых счетчиков. В нижнем корпусе есть 116 трехцветных светодиодов, связанных с ручками, переключателями и кнопками; 64 трехцветных светодиода в топке в верхнем шкафу; и 140 трехцветных светодиодов, связанных с большими вакуумными трубками, установленными в верхней части двигателя.
Я начал с нескольких плат Arduino Mega, но заставить их всех общаться друг с другом было головной болью, а это не лучшее место для боли. Совсем недавно я начал использовать ShieldBuddy TC375 от Hitex (см. также Вздох в восторге от ShieldBuddy TC375).
ShieldBuddy TC375 (Источник изображения: Hitex)
Несмотря на то, что ShieldBuddy имеет тот же форм-фактор, что и Arduino Mega, он невероятно мощнее, начиная с того факта, что у него три 32-битных процессорных ядра, каждое из которых работает. на частоте 300 МГц, каждый со своим собственным модулем с плавающей запятой (FPU), и каждый с большим объемом памяти, чем вы можете бросить! Хотя ядра работают независимо, они могут обмениваться данными и координировать свои действия, используя такие методы, как разделяемая память и программные прерывания.
Одна из замечательных особенностей использования Arduino заключается в том, что у вас есть доступ к огромному количеству съемных плат, называемых шилдами, которые выполняют всевозможные полезные функции. Эти платы также поставляются с примерами программного обеспечения, которое поможет вам быстро и легко приступить к работе. Например, недавно я хотел начать играть с датчиками MEMS (микроэлектромеханические системы), поэтому я выбрал Fusion Breakout Board (BOB) с 9 степенями свободы (9 степеней свободы) от Adafruit.
Разделительная плата Fusion с 9 степенями свободы (Источник изображения: Adafruit)
На этой плате установлен датчик MEMS BNO055 от Bosch. В свою очередь, этот датчик имеет 3-осевой акселерометр, 3-осевой гироскоп и 3-осевой магнитометр. Кроме того, он оснащен 32-разрядным процессором Arm Cortex M0+, который выполняет слияние датчиков и возвращает значения в форме, которую вы можете понять, не выходя из ушей. Как мы видим в этом видео, я прикрепил один из этих датчиков к моему набору шариков для понг-понга 12×12. Идея заключалась в том, чтобы использовать датчик для измерения наклона массива и использовать эти измерения, чтобы «катать» «шар» по массиву.
Используя пример кода, предоставленный Adafruit, мне буквально потребовалось всего пару минут, чтобы начать доступ к показаниям датчика. Не более чем через 15 минут я использовал датчик для управления своим массивом.
Итак, предположим, что вы абсолютный новичок и у вас есть соблазн попробовать Arduino, какой из них выбрать? Если я учу кого-то новичка, я обычно советую начать с Arduino Uno или Arduino Nano, потому что оба они легко укладываются в голове.
Обе платы используют 8-битный процессор ATmega328 (хотя и в разных корпусах), работающий на частоте 16 МГц и предлагающий 32 КБ флэш-памяти и 2 КБ ОЗУ. С одной стороны, это немного с точки зрения памяти или производительности. С другой стороны, удивительно, что вы можете сделать с этими маленькими негодяями, и работать в рамках ограничений полезно для вас, когда вы только начинаете.
Хорошо, каков ваш следующий шаг? Что ж, в Интернете доступно огромное количество бесплатных ресурсов. Кроме того, на Amazon есть несколько замечательных стартовых наборов Arduino. Сказав это, в этих наборах обычно используются макетные платы, что может быть как благословением, так и проклятием. Взгляните на следующее изображение, которое имеет сверхъестественное сходство со многими моими собственными прототипами.
Типичный сценарий прототипирования Arduino Uno (Источник изображения: Dr Duino)
Здесь мы видим все элементы, которые я обычно использую в своих проектах — некоторые кнопочные переключатели мгновенного действия, некоторые потенциометры, несколько традиционных светодиодов с сопутствующие токоограничивающие резисторы, «палочка» из трехцветных светодиодов NeoPixel и, конечно же, куча летающих проводов. Это сплошное развлечение и игра, пока один из супругов не попросит вас «убрать свой электронный мусор с обеденного стола» (просто чтобы выбрать случайный пример из воздуха), и один или несколько ваших проводов отсоединяются в процессе, и вы можете не помню, кто куда идет.
Но смените хмурый взгляд на улыбку, потому что мой приятель Гвидо Бонелли решил что-то сделать, чтобы решить эту проблему. Гвидо представляет собой интересный случай в том смысле, что еще в глубине веков он использовал на работе сложные платформы для разработки микроконтроллеров и наборы инструментов на основе Eclipse, но ему хотелось чего-то более дешевого и простого для использования в своих хобби-проектах дома, и именно так он пришел, чтобы начать играть с Arduino.
Совсем недавно Гвидо создал комплект под названием Dr. Duino Pioneer Shield, который поставляется с Arduino Uno. Pioneer, который подключается к верхней части Uno, предоставляет пользователю обычные светодиоды, планку из восьми NeoPixels, кнопочные переключатели, потенциометры, светозависимый резистор (LDR), пьезозуммер и разъемы для подключения I2C. датчики на основе. Кроме того, на этом изображении не показан тот факт, что Pioneer поставляется с ультразвуковым датчиком измерения расстояния и соответствующим кабелем для его подключения к экрану.
Dr. Duino Pioneer (Источник изображения: Dr Duino)
Следующий шаг — тот, что стоит у меня на столе — это комплект Dr. Duino Explorer. В нем есть все функции Pioneer, дополненные рогом изобилия других вкусностей, включая дисплей на органических светодиодах (OLED), мощный регулятор напряжения для питания ваших проектов, небольшую макетную плату и небольшую область для прототипирования.
Dr. Duino Explorer (Источник изображения: Dr Duino)
Как вы помните, Pioneer поставлялся с Arduino Uno. Что ж, Explorer поставляется с Arduino Nano, который вы можете видеть подключенным к середине нижнего края на фотографии выше. Однако, если вы хотите, вы можете удалить Nano, а затем подключить Explorer в качестве щита к Uno (вы можете видеть заголовки Uno, окружающие небольшую макетную плату).
Существует также пакет расширения, который можно использовать как с Pioneer, так и с Explorer. Это включает в себя плату звуковых эффектов, пассивный инфракрасный (PIR) датчик, датчик 6-DOF (шесть степеней свободы) с 3-осевым акселерометром и 3-осевым магнитометром, атмосферный датчик (температура, влажность, атмосферное давление), и так далее.
ОЧЕНЬ ВАЖНО! Я только что вспомнил, что должен сказать вам, что и Pioneer, и Explorer поставляются в виде наборов деталей, которые вы должны собрать сами. С другой стороны, если вы планируете действительно заняться микроконтроллерами для проектов «сделай сам», вы будете делать много всего, и это самое хорошее место для начала, как и везде.
К счастью, когда вы покупаете Dr. Duino Pioneer или Explorer, вы также получаете доступ к Dr. Duino Labs. Здесь вы будете работать с Мастером, который проведет вас через процесс сборки (в том числе порекомендует инструменты и научит вас паять) в одном из лучших пошаговых руководств, которые я когда-либо видел, и это не то, что я мягко сказать.
После того, как вы собрали свой комплект, система проведет вас через процесс загрузки и установки Arduino IDE и запуска некоторых простых программ (также известных как «эскизы» в мире Arduino). Все это приводит к некоторым умным небольшим проектам, таким как сканер Ларсона, который является своего рода эффектом, наблюдаемым в KITT из «Рыцаря дорог» или Сайлонов из «Звездного крейсера Галактика». Следуя предоставленным инструкциям, вы можете реализовать собственную версию этих культовых велосипедных фонарей на вашем Pioneer или Explorer.
Где Гвидо действительно сделал «лишнюю милю», так это в партнерстве с компанией под названием Programming Electronics Academy (PEA). PEA предоставит вам доступ к множеству бесплатных видеороликов, которые научат вас программировать Arduino.
Прошу прощения — еще раз вопрос? Боюсь, я немного увлекся. Я мог бы печатать часами, но я только что понял, что мне почти пора закрыть свой офис и отправиться домой к моей жене (Великолепной Джине), потому что я, конечно, не хочу опаздывать к ужину, чтобы не сияние ее улыбка перестает падать на меня. Все, что я хочу сказать в заключение, это то, что для всех, кто хочет научиться программировать и использовать микроконтроллеры в своих хобби-проектах, есть много вариантов, но Arduino — отличное место для начала. Кроме того, если вы начинаете с нуля, то комплекты Dr. Duino Pioneer и Explorer предоставляют вам действительно хороший способ войти в дверь, так сказать. Как всегда, буду рад вашим комментариям, вопросам и предложениям.
Введение в аппаратное обеспечение для программирования на Python — Real Python
Смотреть сейчас Это руководство содержит соответствующий видеокурс, созданный командой Real Python. Посмотрите его вместе с письменным учебным пособием, чтобы углубить свое понимание: Начало работы с MicroPython
Вас интересует Интернет вещей, домашняя автоматизация и подключенные устройства? Вы когда-нибудь задумывались, каково это построить бластер, лазерный меч или даже собственного робота? Если да, то вам повезло! MicroPython может помочь вам сделать все это и многое другое.
В этом руководстве вы узнаете о:
- истории MicroPython
- различия между MicroPython и другими языками программирования
- Аппаратное обеспечение , которое вы будете использовать для создания устройств
- Процесс для настройки, написания кода и развертывания вашего собственного проекта MicroPython
Бесплатный бонус: 5 Thoughts On Python Mastery, бесплатный курс для разработчиков Python, который показывает вам дорожную карту и образ мышления, которые вам понадобятся, чтобы вывести свои навыки Python на новый уровень.
Все идет вверх Python
Популярность Python резко возросла в последние годы. В наши дни он используется везде, от DevOps до статистического анализа и даже в настольном программном обеспечении. Но долгое время существовала одна область, в которой использование Python явно отсутствовало. Разработчики, работающие с микроконтроллерами, еще не приняли этот язык.
Все изменилось в 2013 году, когда Дэмиен Джордж запустил кампанию на Kickstarter. Дэмиен, студент Кембриджского университета, был заядлым программистом роботов. Он хотел перенести мир Python с машин, работающих с гигабайтами, на килобайты. Его кампания на Kickstarter была попыткой поддержать его разработку, в то время как он превратил свою концепцию в готовую реализацию.
Многие разработчики ухватились за шанс не только использовать Python на микроконтроллерах, но и получить раннюю версию собственного эталонного оборудования Дэмиена, которое было создано специально для этой задачи! Фактически, к концу кампании Дэмиен преодолел свою цель в 15 000 фунтов стерлингов. Благодаря более чем 1900 спонсорам он достиг чуть менее 100 000 фунтов стерлингов.
Удалить рекламу
Python Beyond the Desktop
Наконец, Python ушел от настольных компьютеров и серверов в мир датчиков, приводов, двигателей, ЖК-дисплеев, кнопок и схем. Хотя это создавало много проблем, было также много возможностей. Для настольного и серверного оборудования требуются гигагерцовые процессоры, гигабайты оперативной памяти и терабайты дискового пространства. Им также нужны полноценные операционные системы, драйверы устройств и настоящая многозадачность.
Однако в мире микроконтроллеров MicroPython — это операционная система. По сути, он находится на вершине процессоров с тактовыми частотами, восходящими к 1980-м и 90-м годам. MicroPython не может справиться со всеми тонкостями выполнения кода, операций ввода-вывода, хранения, загрузки и т. д. Если вы хотите взаимодействовать с оборудованием, вам нужен весь код, чтобы включить это.
Каким-то образом Дэмиену удалось втиснуть мощную, высокопроизводительную и компактную реализацию Python в эти миниатюрные компьютеры. Это открыло целый новый мир возможностей. Если вам интересно узнать больше о различиях между CPython и MicroPython, вы можете ознакомиться с полной разбивкой в официальном репозитории GitHub.
Электроника как хобби и карьера
MicroPython поддерживается разнообразным сообществом Pythonistas, которые глубоко заинтересованы в успехе проекта. Наряду с тестированием и поддержкой самой кодовой базы разработчики предоставляют учебные пособия, библиотеки кода и аппаратные порты, выводя проект далеко за рамки того, чего Дэмиен мог бы достичь в одиночку.
На протяжении многих лет MicroPython привлекает профессионалов и любителей с других платформ, которые видят потенциал и удобство языка. Эти разработчики могли прийти с более зрелых платформ, таких как Arduino или PIC. Многие осознали преимущества использования MicroPython, а также совместного определения Python и MicroPython, не в последнюю очередь для быстрого прототипирования и более быстрого выхода на рынок.
Итак, готов ли MicroPython к серьезной, критически важной работе? ЕКА, Европейское космическое агентство, кажется, так думает! Они помогли финансировать работу Дэмиена над MicroPython, потому что хотели использовать Python в космосе. Вы будете все чаще видеть критическую массу любителей и учащихся, переходящих в академические круги, а оттуда в профессиональный мир электроники. В этот момент MicroPython действительно взлетит.
Python и STEM
предмета STEM находились под образовательным микроскопом в течение нескольких лет, что привело к взрыву проектов и продуктов, предназначенных для обучения в классе. Python и MicroPython удобны как для учителей, так и для учащихся. Базовый синтаксис и встроенный интерпретатор делают эти языки эффективной средой обучения. Тот факт, что среда разработки не требуется, является лишь дополнительным бонусом!
Несколько лет назад BBC запустила проект Micro:Bit , чтобы привлечь больше детей к компьютерным технологиям, выходящим за рамки офисных приложений. Их целью было дать микроконтроллерную плату каждому школьнику в Великобритании. Дэмиен через своего соседа приобрел одну из этих плат и быстро запустил свой код. Тысячи классных комнат внезапно получили возможность использовать Python на своих уроках!
Совсем недавно Edublocks взяла Micro:Bit и включила возможность перетаскивания Python в стиле Scratch. Это позволило еще большему количеству детей впервые познакомиться с программированием микроконтроллеров и робототехники. Пожертвования Patreon поддерживают дальнейший рост проекта.
Физические вычисления
Когда речь идет о MicroPython, что означает физические вычисления ? Обычно ваш проект будет состоять из трех элементов:
- Ввод: Кнопка, сигнал, интернет-событие или показания датчика принимают данные.
- Обработка: Микроконтроллер обрабатывает ввод и обновляет вывод.
- Выход: Это может быть отправлено в виде вращения двигателя, загорания светодиода, изменения счетчика, отправки сообщения или какого-либо подобного события.
Эти элементы обычно соединяются проводами и питаются от какого-либо источника питания.
Что такое микроконтроллер?
Возможно, вы знаете, что микроконтроллер маленький и не такой мощный, как компьютер на вашем рабочем столе или в серверной стойке. Чего вы можете не знать, так это того, что микроконтроллеры окружают вас повсюду, добавляя интеллекта и контроля вашим устройствам. Они встроены во все: от бытовой техники и систем домашней безопасности до кардиостимуляторов, систем отопления, вентиляции и кондиционирования воздуха и многого другого.
Микроконтроллеры изо дня в день выполняют относительно простые задачи, надежно и компактно. Они сжимают ЦП, память и ввод-вывод в один чип общего назначения, а не требуют целой платы чипов, которые объединяются для выполнения задачи. Код, который они запускают, называется прошивкой, которая прошивается или записывается в записываемую память перед выполнением.
Хотя те, кто вырос на ранних микрокомпьютерах (таких как ZX81 и Commodore Vic20), могут найти эти чипы невероятно мощными, технически ваши умные часы обладают гораздо большей мощностью. Тем не менее, микроконтроллеры чрезвычайно полезны, даже если их вычислительная мощность и возможности памяти ограничены. С этими маленькими ребятами можно сделать очень многое!
Удалить рекламу
Почему MicroPython?
Если эти микроконтроллеры распространялись задолго до появления MicroPython, то какие преимущества дает вам MicroPython по сравнению с традиционными методами?
Во-первых, язык более доступен для начинающих, чем конкурирующие языки, но при этом достаточно мощный для промышленного использования. Вы можете быстро перейти от изучения основ к реальной работе.
Во-вторых, Python обеспечивает быструю обратную связь. Это потому, что вы можете интерактивно вводить команды и получать ответ, используя REPL. Вы даже можете настроить свой код и запустить его сразу, вместо того, чтобы повторять код-компиляция-загрузка-выполнение циклов.
Наконец, богатство кода Python и имеющийся опыт означают, что вы можете делать некоторые вещи быстрее и проще, будучи программистом Python. Я считаю, что библиотеку запросов Python, обработку строк и инструменты для работы с JSON гораздо проще использовать в мире MicroPython, чем, например, C++.
Что насчет C++?
C++ быстр, компактен и доступен везде. Существует множество программистов на C++ и богатое сообщество разработчиков Arduino и PIC, готовых вам помочь. Поэтому не лучше ли использовать C++?
На мой взгляд, MicroPython превосходит C++ по простоте использования и удобству . Синтаксис C++ не так прост для понимания сразу. Более того, код необходимо скомпилировать, а затем перенести на вашу плату, прежде чем вы сможете получить результат, поэтому вам нужен удобный компилятор.
Сейчас, очевидно, инструменты становятся лучше, но MicroPython по-прежнему имеет преимущество. В то время как C++ может иметь преимущество в скорости, MicroPython достаточно быстр для большинства целей. Кроме того, если вам действительно нужен C++, вы даже можете вызвать свой код C++ из MicroPython!
Что насчет Ассемблера?
Для сырой производительности нет лучшего Ассемблера. Однако это не исключает и MicroPython.
Опять же, MicroPython, как правило, достаточно быстр. Если вам нужна мощность самого низкого уровня, вы можете добавить встроенных ассемблера в свои проекты MicroPython.
Что насчет БЕЙСИКА?
Если бы вы включили один из тех старых микрокомпьютеров прошлого, то они почти наверняка загрузились бы в БАЗОВЫЙ . По крайней мере, у них был бы под рукой диалект Бейсика. Этот язык послужил введением в программирование для целого поколения. Сюда входит Илон Маск, который, по-видимому, научился программировать на Vic 20.
Сегодня блеск Бейсика несколько потускнел. Python и другие языки, основанные на блоках, заменили его в образовательных пространствах, и он вряд ли окажет влияние на технологическую отрасль. Python обладает всеми преимуществами BASIC без каких-либо ограничений.
А как насчет Raspberry Pi?
Raspberry Pi , на котором работает Python, также широко используется в сфере образования. Он нашел свою нишу в электронике и физических вычислениях благодаря своим выводам ввода-вывода общего назначения. Raspberry Pi также является полноценным настольным компьютером Linux общего назначения. У него много процессорной мощности, памяти и емкости для хранения, и даже есть графический процессор.
Тем не менее, этот последний аспект на самом деле может быть причиной того, что вы не выбираете Pi и вместо этого выбираете плату с микроконтроллером! Возможность запуска настольных приложений и мультимедиа просто фантастическая, особенно когда вашим проектам может понадобиться эта необузданная мощность. Это может иметь место, например, для ИИ, видеопотоков и проектов баз данных.
Но это может вызвать проблемы, если ваш вариант использования требует обработки в реальном времени . Если вам нужно очень точное время, то вы не хотите, чтобы ваш код ждал, пока он догоняет десятки различных процессов, которые все хотят выполняться одновременно.
Если вам нужен аналоговый вход, то для Pi потребуется дополнительное оборудование. Напротив, большинство микроконтроллеров, способных работать с MicroPython, имеют по крайней мере один аналоговый вход, а может быть, и больше. Кроме того, Pi не так надежен и может быть дороже. Из-за этого может оказаться более выгодным с финансовой точки зрения оставить в вашем проекте микроконтроллер, а не целый Pi.
Вам не нужно выбирать одно или другое. Возможно, соединение Raspberry Pi с микроконтроллером — лучшее решение для вашего проекта. Например, вы можете использовать Pi для вычислительной мощности и микроконтроллер для взаимодействия с оборудованием.
Удалить рекламу
Оборудование MicroPython
Если вы хотите попробовать MicroPython, то это здорово! Вам понадобится совместимое оборудование для установки MicroPython. К счастью, есть много вариантов, от недорогих до продуктов премиум-класса. Есть что-то для каждого кошелька и варианта использования, поэтому найдите время, чтобы выбрать решение, которое подходит именно вам.
Создан для Python
Kickstarter, который запустил MicroPython, также запустил связанное с ним оборудование. Версия MicroPython Pyboard теперь соответствует версии 1.1.
Плата Pyboard — одна из наиболее хорошо разработанных плат. Он основан на STM32 и имеет множество GPIO. Также есть слот SD, акселерометр и RTC с частотой 168 МГц. Если вы можете найти его в наличии, то он будет стоить вам около 40 долларов США.
ESP8266 или ESP32
На другом конце ценовой шкалы находятся доски на основе ESP8266 . Эти платы имеют только один аналоговый вход, а контактов не так много, как у Pyboard. Тем не менее, они имеют возможность WiFi. Вы можете найти их в макетных платах (таких как NodeMCU) за 10 долларов или меньше.
ESP32 — старший брат ESP8266. Это увеличивает мощность и возможности, добавляя Bluetooth к набору функций за небольшую дополнительную плату. Одной из лучших версий этих плат является стек M5. Это устройство поставляется с динамиком пейзо, аккумулятором, устройством для чтения карт и цветным экраном.
BBC Micro: Бит
Micro:Bit — это компактная плата на базе микроконтроллера Nordic nRF51822. Он имеет встроенный Bluetooth LE и датчик температуры, а также акселерометр, пару кнопок действий и светодиодную сетку 5×5.
Если вы находитесь в Великобритании, возможно, у вас уже есть одна из этих плат. Их раздавали школьникам в надежде вдохновить новое поколение программистов. Начинает появляться множество досок, вдохновленных Micro:Bit, так что его популярность обязательно возрастет!
Платы на базе Adafruit и CircuitPython
Вскоре после того, как MicroPython начал набирать обороты, Adafruit выпустила ответвление, которое они назвали CircuitPython . Однако между ними есть несколько основных различий.
Во-первых, CircuitPython предлагает поддержку оборудования Adafruit. Еще одно отличие заключается в том, что в большинстве реализаций Adafruit плата выглядит как USB-накопитель. В этих случаях добавить свой код так же просто, как перетащить его на диск.
Самая многофункциональная плата в премиальной линейке Adafruit — CircuitPlayground Express с дополнительным дополнением Crickit. Когда вы объедините эти две платы, у вас будут контакты, датчики, драйверы двигателей, светодиоды RGB и многое другое. Если вы ищете универсальное решение, то это то, что вам нужно.
К сожалению, Adafruit отказалась от совместимости с ESP8266 даже для своей собственной платы Feather на базе ESP8266. Вместо этого они решили использовать ESP32 исключительно в качестве сопроцессора WiFi в будущих выпусках.
Рабочий процесс MicroPython
Если вы знакомы с программированием для Arduino или PIC, то вы можете сначала поговорить о компиляторах, средах разработки и цепочке инструментов. Однако на первый взгляд MicroPython немного отличается.
ЗАМЕНА
С MicroPython, как и с Python, язык может поставляться с вашим оборудованием, и у вас есть возможность работать с ним в интерактивном режиме. Получить интерактивную сессию можно двумя способами:
- Используйте последовательное терминальное соединение: Это часто делается через командную строку или, возможно, IDE.
- Использовать WebREPL: Это вариант для плат с WiFi.
Чтобы получить серийный REPL, например, на Mac, вы можете запустить прилагаемую терминальную программу Экран и указать ваше устройство и скорость передачи:
$ экран /dev/tty.wchusbserial1430 115200
Вы можете найти свое устройство, перечислив подключенные последовательные соединения:
$ лс /dev/tty.*
Этот процесс аналогичен тому, что вы делаете в терминале Linux.
В Windows PuTTY — популярное терминальное приложение. Есть также один под названием Tera Term. В любом случае просто подключитесь к COM-порту, который появляется при подключении устройства, и выберите 115 200 в качестве скорости передачи данных.
После подключения REPL вы можете вводить команды точно так же, как в интерактивном сеансе Python. В MicroPython этот интерфейс также используется для выполнения простых операций в стиле ОС, таких как удаление файлов или создание папок.
Удалить рекламу
Инструменты командной строки
RShell Дейва Хайленда — это набор инструментов с широкими возможностями для работы с вашими проектами MicroPython.
Существует еще один отличный инструмент командной строки для взаимодействия с платами MicroPython под названием Ampy. Первоначально это было разработано Adafruit, но теперь его взял на себя член сообщества, поскольку Adafruit фокусируется исключительно на собственном оборудовании.
IDE MicroPython
Существует подключаемый модуль PyCharm, добавляющий поддержку MicroPython в вашу IDE. Он доступен прямо на рынке плагинов:
Для плат Micro:Bit и CircuitPython лучшим редактором на данный момент является Mu Editor от Николаса Толлерви. В противном случае следите за uPyCraft, который выглядит многообещающим и уже довольно полезным.
После подключения правильного последовательного порта и выбора типа устройства вы сможете просматривать устройства:
Тип вашего устройства: ESP8266, ESP32 или Micro:Bit. Теперь вы можете взаимодействовать в REPL!
Настройка MicroPython на вашей плате
У выбора uPyCraft есть одно преимущество — возможность легко записать прошивку MicroPython на плату без использования инструментов командной строки. Вы можете выбрать прошивку uPyCraft по умолчанию или прошивку, которую вы загрузили:
BBC Micro:Bit отображается как дисковод. Когда вы используете Mu или веб-редактор, они будут создавать файлы, которые вы можете поместить прямо на этот диск. Если вы используете плату ESP8266 или ESP32 с uPyCraft, вы также можете установить Python ESPTool с помощью pip и настроить прошивку своей платы с его помощью.
Другие платы могут поставляться с установленным MicroPython или CircuitPython или даже использовать установщик с помощью перетаскивания. Однако такие доски могут быть повреждены или зацикливаться. Обязательно найдите время, чтобы изучить документацию вашей платы, чтобы узнать, как заменить прошивку.
Создание и развертывание вашего кода
Чтобы выполнить свой код, в большинстве случаев вы будете создавать текстовые файлы .py
и запускать их на своем устройстве MicroPython. Этот процесс аналогичен тому, что вы делаете с CPython. Вы перенесете файлы на свою доску одним из двух способов:
- Используйте свою IDE. Это может быть Mu, uPyCraft или что-то подобное.
- Используйте инструмент командной строки. Это может быть RShell, Ampy или что-то подобное.
Когда устройства, на которых работает MicroPython, загружаются, они будут искать файл с именем boot.py
. Если этот файл будет найден, устройство запустит его автоматически. Вы также можете выполнить файлы .py
из приглашения REPL:
exec(открыть('my-program.py').read())
На самом деле это похоже на то, что делает uPyCraft, когда вы запускаете отредактированный Python. Он передает файл на вашу плату, а затем выполняет его через REPL.
Удалить рекламу
Написание кода MicroPython
Вы начнете с традиционного «Hello, World!» проект. Вы можете сделать это в REPL, подключившись к правильному последовательному порту и введя следующее:
print("Привет, мир!")
Вы должны увидеть следующий вывод:
Вы подтвердили, что ваша установка работает.
Создание цифрового выхода
Теперь давайте изменим тип вывода. Используя следующий код, вы можете заставить мигать встроенный светодиод:
время импорта импортная машина blueled = машина.Контакт(2, машина.Контакт.ВЫХОД) # Моргнуть 10 раз для я в диапазоне (1,11): blueled.value (0) время сна (0,5) blueled.value(1) время сна (0,5) распечатать("ГОТОВО!")
Вы импортируете время
, что позволяет вставлять временные задержки. Вы также импортируете машина
, модуль, который дает вам легкий доступ к контактам ввода-вывода на вашей плате. Вы используете этот модуль для настройки объекта с именем blueled
, который вы определяете как Pin 2
. (На других платах это может быть Pin 16
). Затем вы устанавливаете его как выходной контакт. Вы должны увидеть следующий вывод:
Вы можете заметить, что на ESP8266 светодиод загорается, когда он выключен, и гаснет, когда ему присваивается положительное значение. Странно, но факт!
Примечание: Большинство плат имеют один или несколько встроенных светодиодов. Ознакомьтесь с документацией для вашей конкретной платы для получения дополнительной информации.
Что делать, если у вас нет встроенного светодиода или вы хотите зажечь светодиод, которого нет на вашей плате? Вам понадобится резистор подходящего размера, например резистор на 220 Ом. Вам нужно будет подключить его к земле и к короткой ножке вашего светодиода. Положительная длинная ножка вашего светодиода будет подключена к контакту 2 GPIO. На плате Wemos D1 Uno GPIO 2 называется цифровым контактом 9. на лицевой стороне платы. Под ним есть номер GPIO.
В случае внешнего светодиода он загорается при значении 1 или на :
Вы можете видеть, что булавка загорелась.
Тускнеющие светодиоды
В предыдущем примере вы использовали цикл для
, но ваше оборудование может фактически мигать светодиодом. Для этого установите выходной вывод как PWM
, что означает Широтно-импульсная модуляция (PWM) .
Позволяет создать сигнал на и на импульсах. Когда вы включаете и выключаете светодиод очень быстро много раз в секунду, кажется, что светодиод настроен на определенную яркость из-за того, как работают наши глаза. Вот как будет выглядеть ваш код:
от штифта импорта машины из машинного импорта PWM время импорта # Установите наш контакт 2 на PWM ШИМ = ШИМ (вывод (2)) # Яркость от 0 до 1023 pwm.duty(700) # Частота в герцах ШИМ.частота(1)
В этом новом коде вы устанавливаете яркость и частоту мигания в герцах, а затем позволяете оборудованию взять на себя управление.
Вы также можете использовать ШИМ для плавного включения и выключения светодиода:
от штифта импорта машины из машинного импорта PWM время импорта # Установите наш контакт 2 на PWM ШИМ = ШИМ (вывод (2)) # Частота = 100 Гц ШИМ.частота(100) пока 1: # Яркость от 0 до 1023 для яркости в диапазоне (0, 1023, 100): pwm.duty (яркость) печать (яркость) время сна (0,1) # Яркость между 1023 и 0 для яркости в диапазоне (1023, 0, -100): pwm.duty (яркость) печать (яркость) время сна (0,1)
Этот код дает приятный мягкий эффект:
Если вы используете встроенный светодиод, то свет может исчезнуть, а затем снова появиться.
Удалить рекламу
Заключение
Программирование роботов, микроконтроллеров, электроники и другого оборудования еще никогда не было таким доступным для вас. Традиционно для программирования этих устройств приходилось использовать языки низкого уровня, такие как ассемблер или C++, и жертвовать многими функциями. Все изменилось с появлением 9.0123 MicroPython , версия Python 3, втиснутая в крошечную емкость небольших физических вычислительных устройств!
В этом руководстве вы погрузитесь в MicroPython и мир электронного оборудования . Вы узнали об истории MicroPython и ее сравнении с другими платформами. Вы также прошли через рабочий процесс MicroPython, развернули код на своей доске и добились реального эффекта.
MicroPython продолжает расти. Разработчики в сообществе всегда добавляют новый код, инструменты, проекты и руководства. Никогда не было более захватывающего времени, чтобы быть разработчиком MicroPython!
Смотреть сейчас Это руководство содержит связанный с ним видеокурс, созданный командой Real Python. Посмотрите его вместе с письменным учебным пособием, чтобы углубить свое понимание: Начало работы с MicroPython
Все о микроконтроллерах — код, схемы и конструкция
См. также заметки Дэна О’Салливана о микроконтроллерах. Мои заметки во многом основаны на заметках Дэна.
Микроконтроллер — это небольшой недорогой компьютер, обычно используемый для получения данных из реального мира и управления устройствами на основе этих данных. Большинство электронных устройств, которые вы используете сегодня, имеют микроконтроллер в той или иной форме. Микроконтроллеры просты в использовании с простыми датчиками и устройствами вывода, и они также могут довольно просто взаимодействовать с настольными компьютерами. Когда вы создаете какой-либо настраиваемый датчик или устройство вывода, использование микроконтроллера — отличный способ отделить настраиваемую часть вашего проекта от той части, которую лучше всего выполнять на настольном компьютере. Они также очень полезны, когда вы разрабатываете простое интерактивное устройство, которому не нужна полная мощность настольного компьютера, но которое должно быть меньше или дешевле.
Как и любой другой компьютер, микроконтроллер должен иметь входные порты для обнаружения действий пользователя и выходные порты, через которые он выражает результаты своих программ. Штыри, торчащие из микроконтроллеров, являются входами и выходами. Другие устройства, такие как датчики света, тепла или движения, двигатели, источники света, наши звуковые устройства, подключаются к этим контактам, чтобы позволить микроконтроллеру быть чувствительным к миру и самовыражаться.
Существует несколько различных уровней микроконтроллеров и микроконтроллерных систем. Некоторые из них представляют собой очень маленькие устройства размером с чип, к которым вы должны подключить свою собственную электронику. Другие крупнее, состоят из нескольких компонентов и портов для ввода-вывода, готовых к прямому подключению к другим устройствам.
Микроконтроллеры более высокого уровня будут иметь простой аппаратный интерфейс с другими устройствами (обычно штекер или пара проводов) и более простой язык программирования, если вообще будут. Они также, как правило, будут самыми дорогими из микроконтроллеров, потому что кто-то другой сделал всю работу за вас. Контроллеры более высокого уровня должны быть подключены к персональному компьютеру через последовательный порт или USB для работы. Микроконтроллеры более низкого уровня потребуют больше работы, как в с точки зрения аппаратных соединений (вам придется создавать свои собственные схемы для их взаимодействия с другими устройствами) и с точки зрения программирования (вам нужно будет использовать язык программирования более низкого уровня, такой как C или ассемблер). Однако процессоры более низкого уровня, как правило, самые дешевые и наиболее гибкие с точки зрения того, что вы можете заставить их делать.
Некоторые типичные примеры микроконтроллеров различных уровней:
Высокий уровень: гейнер
контроллер гейнераЧто это: интерфейсный модуль микроконтроллера, который позволяет создавать собственные интерфейсные схемы датчиков и приводов и управлять ими из обычная мультимедийная среда программирования.
Язык программирования: ActionScript, Max/MSP, Processing. Сами модули предварительно запрограммированы и используют последовательный протокол с открытым исходным кодом. К ним можно обращаться через ряд интерфейсов прикладного программирования (API) для различных языков программирования.
Аппаратный интерфейс: USB
Стоимость: Стоимость стартовых комплектов варьируется от 130 долл. США за базовый комплект интерфейса до 530 долл. США за заводской
Высокий уровень: Phidgets
a Серия контроллеров Phidget 91 910204 Что это2: