Программирование AVR Работа с макетной платой metaboard в среде программирования Arduino Thu, November 21 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Работа с макетной платой metaboard в среде программирования Arduino Печать
Добавил(а) microsin   

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

Итак, процесс по шагам (на операционной системе Windows).

1. Если у Вас еще нет среды разработки Arduino, то Вы можете её свободно скачать, см. [1]. Скачанный файл - просто ZIP архив с именем наподобие arduino-0022.zip. Сама система Arduino сделана так, что установки не требуется, нужно просто скопировать из архива папку arduino-0022 (или аналогичную папку с другим именем, в зависимости от релиза) в папку Program Files системы Windows. Запускать нужно файл arduino.exe, можете создать для него ярлык на Рабочем столе или в меню Пуск системы Windows.

arduino-shortcut.PNG 

2. Чтобы начать работу, Вам нужна Arduino-совместимая плата. В качестве такой можно использовать макетную плату metaboard как дешевую альтернативу "родным" платам Arduino. Плату metaboard можно собрать самому или купить (см. [2, 3]). 

metaboard-IMG_1402.JPG 

3. Поставьте перемычку JP5 на макетной плате metaboard в положение 1-2. В этом положении питание на чип ATmega328P будет подаваться от интерфейса USB. Поставьте также перемычку JP6 Upload и подключите плату к компьютеру по USB.

metaboard-JP5-USB-power.jpg metaboard-JP6-bootloader-activate.jpg

После подключения платы нажмите кнопку S1 Reset. На компьютере обнаружится новое устройство USBasp, и операционная система Windows запросит для него драйвер. Драйвер скачайте по ссылке [4], или возьмите его в пакете архива [5] - usbasp-windriver.2011-05-28.zip

4. Нужно настроить IDE Arduino так, чтобы она могла записывать код в плату metaboard через интерфейс USB по протоколу USBasp. Для этого нужно в блокноте (Notepad) или в любом текстовом редакторе открыть файл c:\Program Files\arduino-0022\hardware\arduino\boards.txt, и в конец файла добавить следующие строки для metaboard c чипом ATmega168PA:

##############################################################

metaboard.name=Metaboard ATmega168PA

metaboard.upload.protocol=usbasp
metaboard.upload.maximum_size=14336
metaboard.upload.speed=19200

metaboard.build.mcu=atmega168
metaboard.build.f_cpu=16000000L
metaboard.build.core=arduino

metaboard.upload.disable_flushing=true

Для metaboard c чипом ATmega328PA нужно добавить в конец файла следующее:

##############################################################

metaboard.name=Metaboard ATmega328P

metaboard.upload.protocol=usbasp
metaboard.upload.maximum_size=30720
metaboard.upload.speed=19200

metaboard.build.mcu=atmega328p
metaboard.build.f_cpu=16000000L
metaboard.build.core=arduino

metaboard.upload.disable_flushing=true

Смысл добавленных строк понятен из содержимого - они описывают metaboard для чипа ATmega168PA или ATmega328P. Здесь также указывается частота кварцевого резонатора (обычно в metaboard используется кварцевый резонатор на 16 МГц, но можно применить кварцы на 12, 15, 16.5, 20 МГц). После того, как эти строки будут добавлены, в Arduino IDE появится в меню Tools -> Board пункт Metaboard ATmega168PA или Metaboard ATmega328P. 

arduino-add-metaboard-to-menu.png  

5. В нашем примере работы в среде Arduino мы попробуем помигать светодиодом. Для этого его нужно подключить через резистор к порту 13 Arduino.

metaboard-LED-connection.png metaboard-LED-connection-IMG_1422.JPG

Для макетной платы metaboard порт 13 Arduino будет соответствовать контакту B5 разъема JP2. Светодиод будет подключен катодом к контакту GND разъема JP2, а анодом через резистор 470 Ом - к контакту B5 разъема JP2. Если на порт 13 Arduino выдать лог. 1, то светодиод загорится, а если 0, то погаснет.

6. Теперь загрузим в Arduino IDE готовый проект мигания светодиодом. Это делается через меню File -> Examples -> 1.Basics -> Blink. Выберите в меню плату metaboard (Tools -> Board -> Metaboard ATmega328P). Выполните компиляцию программы Sketch -> Verify / Compile (можно просто нажать Ctrl+R).

7. Теперь нужно закачать нашу программу в плату metaboard. На этом шаге плата должна быть подключена к компьютеру, бутлоадер активирован и для него установлен драйвер (предполагается, что Вы выполнили все действия шага 3). Загрузите программу в плату (File -> Upload to I/O Board, или нажмите Ctrl+U). Через несколько секунд программа загрузится в память чипа платы metaboard, и светодиод начнет мигать (1 секунда - горит, 1 секунда - погашен).

arduino-blink-example.png metaboard-blink-LED.gif

[Ссылки]

1Arduino main software site:arduino.cc - среда разработки Arduino, ссылки на закачку. 
2Что такое Metaboard
3Макетная плата metaboard (AVR микроконтроллер ATmega168PA или ATmega328P).
4USBasp site:fischl.de - программатор USBasp, здесь можно взять драйвер для операционной системы Windows.
5111105metaboard.zip - разводка печатной платы, принципиальная схема и фотографии внешнего вида metaboard, исходный код и прошивки бутлоадера платы metaboard (USBasp), а также драйвер к нему для операционной системы Windows.
6USBaspLoader site:obdev.at - USB бутлоадер USBaspLoader на сайте автора.
7AVR-USB-MEGA16: USB bootloader USBasp для микроконтроллера ATmega32.
8LibUSB site:sourceforge.net - ссылки на закачку релизов библиотеки libusb.

 

Комментарии  

 
0 #6 RBuraev 24.08.2017 07:34
Попробуйте инсталлировать плату MetaBoard в среде Arduino IDE версии 1.6.9 и выше, и окажется, что то, что написано у Вас на сайте по пункту 4, не работает.
Цитировать
 
 
0 #5 RBuraev 25.05.2017 06:54
Сообщите пожалуйста, как настроить правильно плату MetaBoard в среде Arduino IDE версии 1.6.9 и выше, описанная в статье среда уже давно не используется.

microsin: скорее всего принципиальной разницы не должно быть.
Цитировать
 
 
0 #4 RBuraev 10.02.2017 13:58
Не получается установить fuse для Atmega328P metaboard, в файле fuses указаны значения LOW:0xF7, HIGH:0xDA, EXT:0xFC. Программирую с помощью программатора USTinyISP+SinaP rog. Значение EXT:0xFC - невозможно установить, возможно это ошибка.
Цитировать
 
 
0 #3 Владимир 09.11.2011 01:16
Bomond, а не знаете как работать в LV с Мегой?
Напишите мне на почту (nikishin_v[dog ]mail.ru), пообщаемся, чтобы тут не по теме не писать.
Цитировать
 
 
0 #2 Bomond 06.11.2011 14:30
Владимир, LabView эту плату не подхватит в таком виде, для того чтобы с ней работать контроллер должен быть прошит загрузчиком, который идет с LabView. Об этой процедуре можно почитать например вот тут: http://digital.ni.com/public.nsf/allkb/8C07747189606D148625789C005C2DD6?OpenDocument
Цитировать
 
 
0 #1 Владимир 05.11.2011 19:06
Было бы интересно узнать - "подхватит" ли её LabVIEW? Они выпустили бесплатный тулкит для работы с платами Arduino.

microsin: к сожалению, почти не знаком с LabVIEW и тем более с arduino-тулкитом от LabVIEW, поэтому не могу ответить на вопрос. Мне самому очень интересно.
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Top of Page