Как сделать Arduino
|
|
m_w | Дата: Воскресенье, 03.03.2013, 09:13 | Сообщение # 1 |
 5 Вольт
Группа: Пользователи
Сообщений: 67
Репутация: 2
Статус: Offline
| Изначально я хотел написать о том как самостоятельно сделать Arduino UNO на макетной плате.
Такой как на фотографии.
Оригинал фотографии http://yadi.sk/d/D2vQcvd63-ohQ
Мой блог http://justforduino.blogspot.ru/
|
|
| |
m_w | Дата: Воскресенье, 03.03.2013, 09:17 | Сообщение # 2 |
 5 Вольт
Группа: Пользователи
Сообщений: 67
Репутация: 2
Статус: Offline
| Однако, на макетной плате с расстояниями между отверстиями в 2.54 мм разместить разъемы так как это сделано в оригинальной Arduino UNO невозможно. Поэтому использовать шилдики от Arduino UNO с такой самоделкой будет проблематично. Конечно можно все соединять проводами, но это будет уже не то. Сделано это специально или так получилось случайно я не знаю. Но увы. На макетной плате можно сделать только функциональный аналог ардуино. Если Вы хотите сделать полный аналог Arduino UNO, то придется озадачится изготовлением платы. Но, в этой статье я не собирался рассказывать о домашнем производстве плат.
Здесь стоит упомянуть наборы для самостоятельной сборки arduino. Например, http://dvrobot.ru/shop/i159.nabor_arduino_diy.htm Собрать ардуино из такого набора не сложно. И это не тоже самое, что делать все с нуля самостоятельно. Как минимум, не надо изготавливать плату.
Такого набора у меня нет. Я погрузился в тягостные раздумья. И вот к какому выводу я пришел. Ардуино это прежде всего удобный язык программирования и среда разработки. И если я смогу написать о том как работать с микроконтроллером через Arduino IDE, то можно считать цель достигнутой.
К сожалению одного микроконтроллера не достаточно для полноценной работы с Arduino IDE. Необходим кварцевый резонатор на 16 МГц и пара конденсаторов на 22 пФ для него. Ниже приводится схема. На ней немного больше деталей. Они нужны для повышения надежности работы микроконтроллера и удобства.
Мой блог http://justforduino.blogspot.ru/
Сообщение отредактировал m_w - Воскресенье, 03.03.2013, 09:21 |
|
| |
m_w | Дата: Воскресенье, 03.03.2013, 09:29 | Сообщение # 3 |
 5 Вольт
Группа: Пользователи
Сообщений: 67
Репутация: 2
Статус: Offline
| В оригинальной arduino есть элементы обеспечивающие стабилизацию напряжения. С целью упрощения проекта они исключены. Еще на оригинальных платах arduino есть USB-USART переходник. Но используемые для этого микросхемы настолько малы, что новичку с ними не справится. Нужен опыт.
Чтобы можно было работать с этой "ардуиной" из Arduino IDE, нужен программатор. Например, USBtiny http://dvrobot.ru/shop/i323.Programmator_Arduino.htm или USBasp http://dvrobot.ru/shop/i356.Programmator_AVR-_Atmel.htm Полный список поддерживаемых программаторов можно посмотреть непосредственно в Arduino IDE (Сервис > Программатор).
Фотография собранного устройства:
Оригинал фотографии http://yadi.sk/d/aAPOS6lc3-pAU
Мой блог http://justforduino.blogspot.ru/
Сообщение отредактировал m_w - Воскресенье, 03.03.2013, 09:30 |
|
| |
m_w | Дата: Воскресенье, 03.03.2013, 09:34 | Сообщение # 4 |
 5 Вольт
Группа: Пользователи
Сообщений: 67
Репутация: 2
Статус: Offline
| Как видите я использовал ATmega8. Однако написанное в этой статье применимо к ATmega168 и ATmega328. Разумеется с поправками на конкретный микроконтроллер. Но вид действий и их порядок идентичны.
Драйвер для программатора USBasp можно найти на сайте разработчика http://www.fischl.de/usbasp/
Очень важно ничего не напутать с подключением программатора к микроконтроллеру. Поэтому в дополнение к схеме и фотографии я нарисовал еще и картинку.
Мой блог http://justforduino.blogspot.ru/
|
|
| |
m_w | Дата: Воскресенье, 03.03.2013, 09:40 | Сообщение # 5 |
 5 Вольт
Группа: Пользователи
Сообщений: 67
Репутация: 2
Статус: Offline
| На картинке изображено только подключение микроконтроллера к разъему программатора. Кварцевый резонатор, конденсаторы и пр. я не стал рисовать. Но это не значит, что остальные детальки не нужны. Все должно быть как на схеме.
С набором для самостоятельной сборки arduino проще. У него специальный разъем. Ключ на разъеме программатора должен быть обращен в сторону кнопки RESET. Но лучше уточните в документации.
Для правильной работы ардуино необходима специальная конфигурация fuse bits микроконтроллера. Она отличается от той конфигурации которая устанавливается производителем.
Fuse bits можно представить как специальные переключатели. От них зависит работа микроконтроллера. Они изменяются с помощью программатора. А ошибки в конфигурации fuse bits могут привести к блокировке микроконтроллера.
Ошибкам способствует различный подход к работе с fuse bits в разных программах. Чаще всего работа с fuse bits организована через checkbox. В одной программе установленный флажок означает запрограммированный бит, а в другой программе установленный флажок означает не запрограммированный бит. Поэтому нужно внимательно читать документацию на используемое ПО.
Здесь я не могу не рассказать о своей любимой программе http://yourdevice.net/projekt/avrdudeprog Эта программа может работать с USBtiny, USBasp и другими программаторами. С ее помощью можно изменить fuse bits, можно записать bootloader, можно программировать FLASH и EEPROM. Короче, эта программа может все.
С помощью этой программы можно проверить работоспособность самодельной "ардуины". Для этого нужно попробовать прочитать калибровочные ячейки генератора. Главное не забыть перед этим выбрать из списка свой микроконтроллер и программатор.
Должно получится примерно так:
Мой блог http://justforduino.blogspot.ru/
|
|
| |
m_w | Дата: Воскресенье, 03.03.2013, 09:43 | Сообщение # 6 |
 5 Вольт
Группа: Пользователи
Сообщений: 67
Репутация: 2
Статус: Offline
| Теперь можно прочитать fuse bits:
Это заводские установки fuse bits.
Мой блог http://justforduino.blogspot.ru/
|
|
| |
m_w | Дата: Воскресенье, 03.03.2013, 09:44 | Сообщение # 7 |
 5 Вольт
Группа: Пользователи
Сообщений: 67
Репутация: 2
Статус: Offline
| Только менять их этой программой я не буду. Arduino IDE сама делает это перед записью bootloader (Сервис > Записать загрузчик).
Мой блог http://justforduino.blogspot.ru/
|
|
| |
m_w | Дата: Воскресенье, 03.03.2013, 09:46 | Сообщение # 8 |
 5 Вольт
Группа: Пользователи
Сообщений: 67
Репутация: 2
Статус: Offline
| Само собой разумеется, перед записью bootloader нужно выбрать версию Arduino соответствующую используемому микроконтроллеру (Сервис > Плата > Arduino NG or older w/ ATmega8).
Мой блог http://justforduino.blogspot.ru/
|
|
| |
m_w | Дата: Воскресенье, 03.03.2013, 09:47 | Сообщение # 9 |
 5 Вольт
Группа: Пользователи
Сообщений: 67
Репутация: 2
Статус: Offline
| И программатор (Сервис > Программатор > USBasp).
Мой блог http://justforduino.blogspot.ru/
|
|
| |
m_w | Дата: Воскресенье, 03.03.2013, 09:51 | Сообщение # 10 |
 5 Вольт
Группа: Пользователи
Сообщений: 67
Репутация: 2
Статус: Offline
| На всякий случай еще раз перечислю все действия в правильной последовательности: 1. Выбор программатора (Сервис > Программатор > USBasp). Если используется не USBasp, а другой программатор, то из списка нужно выбрать используемый программатор. 2. Выбор платы для микроконтроллера (Сервис > Плата > Arduino NG or older w/ ATmega8). Если используется не ATmega8, а другой микроконтроллер, то и платку нужно выбирать соответствующую ему. 3. Запись bootloader (Сервис > Записать загрузчик).
Теперь можно посмотреть, что получилось.
Такая конфигурация fuse bits ATmega8 необходима для правильной работы скетчей.
Мой блог http://justforduino.blogspot.ru/
Сообщение отредактировал m_w - Воскресенье, 03.03.2013, 09:54 |
|
| |
m_w | Дата: Воскресенье, 03.03.2013, 09:56 | Сообщение # 11 |
 5 Вольт
Группа: Пользователи
Сообщений: 67
Репутация: 2
Статус: Offline
| Описанный способ изменения fuse bits прост и позволяет избежать ошибок.
Теперь для того чтобы загрузить скетч в микроконтроллер нужно в Arduino IDE выбрать: Файл > Загрузить с помощью программатора (Ctrl+Shift+U).
Правда при этом будет стерт bootloader, но настройки fuse bits сохранятся. Такова специфика прошивки микроконтроллеров AVR через программатор.
Мой блог http://justforduino.blogspot.ru/
|
|
| |
m_w | Дата: Воскресенье, 03.03.2013, 09:58 | Сообщение # 12 |
 5 Вольт
Группа: Пользователи
Сообщений: 67
Репутация: 2
Статус: Offline
| Вообще bootloader нужен для того, чтобы программировать микроконтроллер через USB-USART переходник. Например, http://dvrobot.ru/shop/i176.usb_perehodnik_uart_ttl.htm
Оригинал фотографии http://yadi.sk/d/a1r2_XqW3-pdS
Мой блог http://justforduino.blogspot.ru/
|
|
| |
m_w | Дата: Воскресенье, 03.03.2013, 10:00 | Сообщение # 13 |
 5 Вольт
Группа: Пользователи
Сообщений: 67
Репутация: 2
Статус: Offline
| Только прежде чем подключить USB-USART переходник нужно не забыть снова записать загрузчик.
Теперь можно загружать скетч в микроконтроллер через USB-USART переходник: Файл > Загрузить (Ctrl+U).
Мой блог http://justforduino.blogspot.ru/
|
|
| |
m_w | Дата: Воскресенье, 03.03.2013, 10:01 | Сообщение # 14 |
 5 Вольт
Группа: Пользователи
Сообщений: 67
Репутация: 2
Статус: Offline
| При этом должна быть выбрана платка ардуино соответствующая используемому микроконтроллеру (Сервис > Плата > Arduino NG or older w/ ATmega8).
Мой блог http://justforduino.blogspot.ru/
|
|
| |
m_w | Дата: Воскресенье, 03.03.2013, 10:02 | Сообщение # 15 |
 5 Вольт
Группа: Пользователи
Сообщений: 67
Репутация: 2
Статус: Offline
| Еще необходимо указать порт присвоенный windows USB-USART переходнику (Сервис > Последовательный порт > COM3).
И еще RESET нажимать нужно самостоятельно. Для этого у меня предназначен оранжевый провод. Его нужно на секунду соединить с GND. Опять я на кнопочке сэкономил.
Мой блог http://justforduino.blogspot.ru/
Сообщение отредактировал m_w - Воскресенье, 03.03.2013, 10:04 |
|
| |
m_w | Дата: Воскресенье, 03.03.2013, 10:07 | Сообщение # 16 |
 5 Вольт
Группа: Пользователи
Сообщений: 67
Репутация: 2
Статус: Offline
| Небольшой скетч для тестирования всего этого безобразия.
Код //////////////////////// // // Arduino // //////////////////////// // // Sketch: serial //
void setup() { Serial.begin(9600); }
void loop() { Serial.println( 0 );
delay(1000); } Он просто раз в секунду отправляет 0 через USART. Это можно проверить с помощью монитора порта (Сервис > Монитор порта).
Программирование через USB-USART переходник более безопасно, чем программирование через ISP программатор. Я не знаю, что нужно сделать, чтобы заблокировать микроконтроллер через USB-USART переходник. Но в Arduino IDE работа с программатором организована достаточно безопасно. В любом случае, необходимо быть внимательным и аккуратным.
Мой блог http://justforduino.blogspot.ru/
|
|
| |