Самодельный Arduino
   
				

Самодельный Arduino

	
	
	

Дата: 13 Мая 2015. Автор: Алексей

	
	
Arduino. Всем известный и полюбившейся многим девайс стал на столько популярен, что даже маленькие дети не успев родится уже пытаются написать скетч. Зы, вот это стеб... Короче и я не хочу отставать и в данной статье расскажу как превратить плату расширения ATmega8A в arduino. Кто не знает что эта за плата, могут почитать здесь. Да, я понимаю, многие скажут, а где тут самодельность. А самодельность заключается в том, что для Arduino нужно всего несколько вещей. Первое - микроконтроллер. Для дешивизны пойдет ATmega8. Второе - кварц на 16МГц. Третье - два керамических кондера на 22пф. И четвертое - преобразователь USB <-> TTL, любой. Для сборки нужно присоединить кварц к ножкам МК XTAL1 и XTAL2. К этим же ножка прицепить два кондера, а другие ножки кондерев на землю и все.

Схема подключения МК

А теперь переходим к практическим действиям. Превращать в Arduino будем отладочную плату, но все действия спроведливы для простого МК, кварца и пары кондеров. И так, поехали.
На плате расширения по умолчанию установлен кварц на 7,3728МГц. Для Arduino это не пойдет. Значит берем и меняем его на 16МГц.

Смена кварца

Далее нам понадобится залить загрузчик в нашу плату. Для этого берем любую плату Arduino. У меня под рукой Arduino UNO. Если у вас еще нет Arduino, то пора ее преобретси. Купить ее можно в магазине Чип Резистор. И так, Arduino UNO у нас есть. кладем перед собой справа на столе Arduino UNO, а слева плату расширения ATmega8A. С правой стороны у этих плат есть разъем ISP с классической Атмеловской распиновкой.

Разъем ISP 6 контактов

Смело берем проводки и соеденяем эти разъемы один к одному за исключением 5 пина.
Разъем на Arduino UNO

Разъем на Arduino UNO

Разъем на плате расширения ATmega8A.

Разъем на плате расширения ATmega8A

Теперь берем проводок и одним концом вставляем в 5-й пин на плате расширения ATmega8A, а второй конец на вывод Arduino UNO Digital 10. Должно получится вот так.

Подключение RES

В итоге после всех манипуляций, у нас должен быть вот такой вид.

Подключение Arduino UNO к плате расширения ATmega8A

Если все отлично, то подключаемся к USB компьютера. При правильном подключении должны загорется светодиоды на Arduino UNO и красный светодиод на плате расширения ATmega8A. (К сожелению на фото провода загородили светодиод, но поверьте он горит)

Подключение Arduino UNO и плате расширения ATmega8A к USB

Переходим к программным процедурам. А вот тут всех любителей МК ATmega8 ждет большая подстава от производителей Arduino. На текущий момент версия IDE 1.6.3 не поддерживает эти МК. Точнее конфигурационные файлы и загрузчик есть, но залить его нельзя. Дело в том что Arduino перешли на минимальный МК ATmega328P, а эта зараза имеет Extended Byte Fuse. А порстая восьмерка нет. Из-за этой дряни загрузчик не заливается, а ругается на отсутствия этих битов. Поэтому нужно загрузчик заливать старой версией IDE. У кого ее нет, можете скачать у меня тут. Это версия 1.0.3 и ее не надо устанавливать. Просто разархивируйте куда-нибудь и все. Далее просто запустите программу из этой папки. А теперь давайте настроим программу для заливки нашего МК. Для начала выбераем из примеров программатор ArduinoISP и заливаем его в Arduino UNO или какую вы сейчас используете.


После заливки, нужно заменить плату Arduino UNO или какая у вас на Arduino NG or older w/ATmega8.


Все. Можно заливать. Нажимаем Сервис -> Записать загрузчик и ждем окончания записи.



Готово. Arduino родилась. Отключаем все провода, а плату расширения вешаем на отладочную плату GSMBOARD 1.1. Далее берем плату расширения USB-TTL и соединяем проводами GND - GND, RXD - TXD, TXD - RXD и подаем питание. Должен загореться зеленый светодиод.


Если все заработало, выключаем старую прогу и запускаем самцю последнюю версию. На сегодня это 1.6.3 и пишем вот такой код.


void setup() {
    pinMode(2, OUTPUT);
}

void loop() {
    digitalWrite(2, HIGH);
    delay(2000);
    digitalWrite(2, LOW);
    while(1);
}


Собственно что тут происходит. Сначала инициализируем пин 2 на выход. Затем выводим на него единицу, ждем две секунды и прижимаем к нулю. Затем вваливаемся в бесконечный цикл. Дабы было понятно, вот картинка во что превратилась отладочная плата.


Как видно второй пин как раз отвечает за включение и выключение модуля. Теперь самое время залить наш скетч в свежеиспеченную Arduino. Для этого перенастроим IDE выбрав пункты как на картинке ниже. И не забудьте поменять порт на USB-TTL.


Все настроили. Жмем залить скетч. Все бы хорошо да ошибка вылезла. Эх. Вот тут что за грабля заволялась. На Arduino используется виртуальный COM порт для загрузки программ. Работает это так. Сначала IDE компилит проект, затем дергает ножку ресета МК, а так как сначала запускается загрузчик, то IDE увидев его начинает лить программу во флеш. А если после компиляции не дернуть ресет МК, то IDE загрузчика не дождется и вывалит ошибку. Для дерганья ресета на всех Arduino заведена ножка COM порта DTR. На плате расширения USB-TTL этой ноги нет, поэтому когда IDE скомпилит проект и напишет Вгружаем.


Судорожно нажимаем и отпускаем кнопку сброса на плате расширения ATmega8A. IDE подцепит загрузчик и зальет программу во флеш. Все, прога потупит немного и включит GSM модуль. Если все сделали правильно, то должно быть как на картинке.


Для счастливых обладателей переходников USB-RS232 можно вывести ножку DTR из порта (естественно через микросхему MAX3232) на ресет МК. Это пин 5 на разъеме ISP через конденсатор 100нф. То есть DTR - конденсатор - RES. И тогда IDE будет сама дергать ресет. В любом случае должна получится вот такая картина. Программа отработала и включила модуль.

 
Теперь можно ковыряться с GSM модулем. Если возникнут вопросы, пишите. Попробуем разобраться. 


АНОНИМ    02.02.16 22:32

Спасибо за статью. Теперь в своей ардуино уно я могу использовать и мегу 8.

niko19    25.12.16 23:03

Нахрена проделывать все это с платой расширения и получить Ардуину, если на столе уже готовая Ардуина лежит ? Вопрос стоит, как сделать самодельную Ардуину, скажем так на макетной плате, из завалявшейся Мега8 и кварца.Что нужно залить в Мегу, буквально по пунктам, а еще лучше готовый файл прошивки, У меня например имеется параллельный программатор, впрочем и последовательный тоже есть, а готовой Ардуины нет...

Алексей    25.12.16 23:40

Ардуино это микроконтроллер фирмы атмел с залитым загрузчиком для работы с IDE от ардуины. Все что нужно так это выстовить фьюзы для загрузчика, из папки прошивок выбрать для своего мк и залить его. Если в краце.




Чтобы вставить ссылку используйте форму вида[url]http://www.адрес.ru[/url][text]текст ссылки[/text]
Чтобы вставить код используйте форму вида[code]код[/code]

Имя:   





  








Вверх


Рейтинг@Mail.ru Яндекс.Метрика