Как сделать Arduino - ФОРУМ ДВ Робот dvrobot.ru
Пятница, 27.04.2018, 11:04
Главная Мой профиль Регистрация Выход
  • НАШ МАГАЗИН
  • Вы вошли как Гость | Группа "Гости"Приветствую Вас, Гость
    [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
    • Страница 1 из 1
    • 1
    Модератор форума: GRACH, Serg  
    ФОРУМ ДВ Робот dvrobot.ru » DV ROBOT » Библиотека Проектов » Как сделать Arduino (Подробное описание)
    Как сделать Arduino
    m_wДата: Воскресенье, 03.03.2013, 09:13 | Сообщение # 1
    5 Вольт
    Группа: Пользователи
    Сообщений: 67
    Репутация: 2
    Статус: Offline
    Изначально я хотел написать о том как самостоятельно сделать Arduino UNO на макетной плате.

    Такой как на фотографии.



    Оригинал фотографии http://yadi.sk/d/D2vQcvd63-ohQ
    Прикрепления: 5568279.jpg(269.3 Kb)


    Мой блог 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 пФ для него. Ниже приводится схема. На ней немного больше деталей. Они нужны для повышения надежности работы микроконтроллера и удобства.

    Прикрепления: 7157125.gif(23.6 Kb)


    Мой блог 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
    Прикрепления: 1473254.jpg(215.2 Kb)


    Мой блог 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/

    Очень важно ничего не напутать с подключением программатора к микроконтроллеру. Поэтому в дополнение к схеме и фотографии я нарисовал еще и картинку.

    Прикрепления: 4855687.gif(18.4 Kb)


    Мой блог 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. Короче, эта программа может все.

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

    Должно получится примерно так:

    Прикрепления: 8712024.png(86.0 Kb)


    Мой блог http://justforduino.blogspot.ru/
     
    m_wДата: Воскресенье, 03.03.2013, 09:43 | Сообщение # 6
    5 Вольт
    Группа: Пользователи
    Сообщений: 67
    Репутация: 2
    Статус: Offline
    Теперь можно прочитать fuse bits:



    Это заводские установки fuse bits.
    Прикрепления: 4875657.png(86.0 Kb)


    Мой блог http://justforduino.blogspot.ru/
     
    m_wДата: Воскресенье, 03.03.2013, 09:44 | Сообщение # 7
    5 Вольт
    Группа: Пользователи
    Сообщений: 67
    Репутация: 2
    Статус: Offline
    Только менять их этой программой я не буду. Arduino IDE сама делает это перед записью bootloader (Сервис > Записать загрузчик).

    Прикрепления: 0611389.png(58.5 Kb)


    Мой блог http://justforduino.blogspot.ru/
     
    m_wДата: Воскресенье, 03.03.2013, 09:46 | Сообщение # 8
    5 Вольт
    Группа: Пользователи
    Сообщений: 67
    Репутация: 2
    Статус: Offline
    Само собой разумеется, перед записью bootloader нужно выбрать версию Arduino соответствующую используемому микроконтроллеру (Сервис > Плата > Arduino NG or older w/ ATmega8).

    Прикрепления: 3938853.png(86.9 Kb)


    Мой блог http://justforduino.blogspot.ru/
     
    m_wДата: Воскресенье, 03.03.2013, 09:47 | Сообщение # 9
    5 Вольт
    Группа: Пользователи
    Сообщений: 67
    Репутация: 2
    Статус: Offline
    И программатор (Сервис > Программатор > USBasp).

    Прикрепления: 2181718.png(58.9 Kb)


    Мой блог 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 необходима для правильной работы скетчей.
    Прикрепления: 5260429.png(98.5 Kb)


    Мой блог 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 через программатор.
    Прикрепления: 5324631.png(55.8 Kb)


    Мой блог 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
    Прикрепления: 5689896.jpg(207.3 Kb)


    Мой блог http://justforduino.blogspot.ru/
     
    m_wДата: Воскресенье, 03.03.2013, 10:00 | Сообщение # 13
    5 Вольт
    Группа: Пользователи
    Сообщений: 67
    Репутация: 2
    Статус: Offline
    Только прежде чем подключить USB-USART переходник нужно не забыть снова записать загрузчик.

    Теперь можно загружать скетч в микроконтроллер через USB-USART переходник: Файл > Загрузить (Ctrl+U).

    Прикрепления: 6979710.png(55.8 Kb)


    Мой блог http://justforduino.blogspot.ru/
     
    m_wДата: Воскресенье, 03.03.2013, 10:01 | Сообщение # 14
    5 Вольт
    Группа: Пользователи
    Сообщений: 67
    Репутация: 2
    Статус: Offline
    При этом должна быть выбрана платка ардуино соответствующая используемому микроконтроллеру (Сервис > Плата > Arduino NG or older w/ ATmega8).

    Прикрепления: 2140894.png(86.9 Kb)


    Мой блог http://justforduino.blogspot.ru/
     
    m_wДата: Воскресенье, 03.03.2013, 10:02 | Сообщение # 15
    5 Вольт
    Группа: Пользователи
    Сообщений: 67
    Репутация: 2
    Статус: Offline
    Еще необходимо указать порт присвоенный windows USB-USART переходнику (Сервис > Последовательный порт > COM3).



    И еще  RESET нажимать нужно самостоятельно. Для этого у меня предназначен оранжевый провод. Его нужно на секунду соединить с GND. Опять я на кнопочке сэкономил.
    Прикрепления: 1147678.png(55.1 Kb)


    Мой блог 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 работа с программатором организована достаточно безопасно. В любом случае, необходимо быть внимательным и аккуратным.
    Прикрепления: 9477603.png(92.2 Kb)


    Мой блог http://justforduino.blogspot.ru/
     
    ФОРУМ ДВ Робот dvrobot.ru » DV ROBOT » Библиотека Проектов » Как сделать Arduino (Подробное описание)
    • Страница 1 из 1
    • 1
    Поиск:

    ДВ Робот - Чат