Arduino? – Нет! IDuino – Да!(Часть 1)

image
Посмотрев на цены готовых ардуин в нашей стране я пригорюнился.
Но потом задался вопросом… А какого черта?! Ведь там используются обычные AVR микроконтроллеры, доступные россыпью на радио рынке за нормальную стоимость.
А почему бы не собрать свое и не сидеть на готовеньком?
Тем, кому интересен процесс сборки и настройки своей простейшей Arduino, прошу под кат.

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

Для старта я решил выбрать самый популярный контроллер Atmega8.
На нашем радио-рынке его средняя стоимость колеблется в пределах 12-18грн., в зависимости от места покупки (магазин/ларек) и от типа корпуса.
Для меня на тот момент не было проблемой в плане программирования, программатор был и LPT порт в компьютере присутствует. Но хотелось сразу сделать так, чтобы не зависеть от старого железа, поэтому была сразу прикуплена макетная плата, 50 метров провода МГТФ, россыпь мелочи и еще один контроллер ATtiny2313.
Оговорюсь, контроллеров брал сразу по несколько штук, на всякий случай.

Так как в современных ПК и ноутбуках сейчас LPT и COM днем с огнем не отыскать, было решено делать плату с USB интерфейсом. Но сразу скажу, для того чтобы это сделать, нужно все-таки будет найти или переходник с USB-COM, или же компьютер с LPT портом (USB-LPT работать не будет!). Поэтому для этих целей и была взята ATtiny2313.
Данный микроконтроллер в нашей схеме будет выступать в качестве «буфера» между нашим основным контроллером (ATMEGA8) и ПК.

Но хватит болтовни и приступим от теории к практике.

Для начала перед всеми телодвижениями нам нужно собрать программатор.
Я приведу две схемы, которые помогут в том или ином случае.

LPT программатор «5-ть проводков»


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

Нам нужно:

1.LPT разъём типа «папа», а точнее 25-контактный разъём DB-25-male
2.4 резистора номиналом 100 Ом (можно в пределах от 80-250 Ом)
3.5-ти жильный провод длиной не более 20 см и, желательно, с металлизированной экранизацией.
4.Прямые руки.

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

image

О назначении выводов позже.

У вас должно выйти нечто такое.

image

Если компьютер с LPT так и не нашли, или же нашли, но у него уже сожгли порт, то второй программатор поможет вам.

COM – ISP (программатор Громова)


Нам нужно:

1. COM разъём типа «мама» DB-9-F
2. 3 импульсных диода (я брал д220)
3. 7 резисторов номиналом 1кОм
4. 5-ти жильный провод до 1 метра.
5. Прямые руки

Схема такая:

image

Россыпь резисторов и диодов нужна для того, чтобы привести уровни сигналов COM порта (-12В, +12В) к необходимым (0, +5В).
Данная схема программатора достаточно распространена и известна как программатор Громова. Название пошло от автора программы Algorithm Builder Геннадия Громова, который и предложил такую схему.

Для старта это все, в следующей части статьи мы перейдем уже к детальной теории, сборке платы, прошивке и отладке.

Ссылки


— Сайт Громова;
— Часть материала с сайта .

UPD.: На основе ваших замечаний, и предложений будет основана вторая часть
Share post
AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 83

    +1
    Восколько обойдетяс такой IDuino, каковы риски?
      +6
      Мне такой Iduino обошелся весьма дешево:
      Atmega8 — 1,2$
      Макетка — 1$
      Attiny2313 — 2$
      Разсыпуха — 7$
      Итого: ~ 11$ + пару часов времени на зборку
      Риски завист исключительно только от Вас и вашей прямоты рук
        +4
        И смысл? cgi.ebay.com/Arduino-Duemilanove-2009-AVR-Atmega328p-20PU-USB-board-/250842082880?pt=LH_DefaultDomain_0&hash=item3a675a6e40#ht_2818wt_937
        $9.40

        Нет, я не спорю, собрать своими руками интереснее, но точно не из-за цены
        И да, я вижу что доставка, 8 баксов, но давайте посмотрим и на чип это не Atmega8 это Atmega328 — выгодно отличающийся повышенной производительностью и объемом памяти.
          +1
          У меня такое чудо стоит от 30 $ да и не у всех есть возможность покупать в интернете
            +2
            абсолютно у всех есть возможность покупать в сети.
            Вариант №1: Зайдите в любой «Связной» и скажите заветное слово «мастеркард».
            Вариант №2: Подойдите к любому жёлтому роботу и заведите себе одноразовую visa-virtual.

            Единственное, что сейчас может оправдывать нежелание экономить с помощью покупок в интернет — это «хочу прямо сейчас, ну вот вообще немедленно!», тогда вы платите за скорость получения вожделенного товара.
              0
              у QiWi тоже подобное, не ради рекламы, а ради удобства написал.
            0
            Для старта много памяти и производительности не нужно
              0
              а еще $8.50 доставку не считаем? 17,9 через 2 недели или 11$ здесь и сейчас. Ну я даже и не знаю что выбрать.
                +1
                А читать до конца умеем, или не научили еще?
                И да, я вижу что доставка, 8 баксов, но давайте посмотрим и на чип это не Atmega8 это Atmega328 — выгодно отличающийся повышенной производительностью и объемом памяти.
                  0
                  Я прочитал до конца. В статье —
                  «Для старта я решил выбрать самый популярный контроллер Atmega8.»
                  В комменте — «Итого: ~ 11$ + пару часов времени на зборку»

                  Вопрос — заменить ATmega8 (http://catalog.compel.ru/mcu/info/ATmega8-16AU%20(ATMEL) — 1.8$) на ATmega328 (http://catalog.compel.ru/stock/info/ATmega328P-AU%20(ATMEL) — 3.26$) стоит дополнительные 1.5$.

                  Итого — 12.5$ здесь-и-сейчас против 18$ через 2 недели.
                  Вопрос — оно действительно того стоит?
                    –1
                    А слабо собрать все самостоятельно? От изготовления платы то финального результата?
                      +1
                      мне — слабо. я развелся с паяльником в 1996м. теперь только мелкий ремонт бытовой.
                    0
                    Я сейчас еду на радио рынок покупать ATmega1280 за 5$
                      0
                      А можно было нормальный арм за 1-2$ взять ;-)
                        0
                        И спаять свой клон Arduino на ARM-е :)
                +4
                А не лучше ли купить готовую макетку за 500 рублей ($16 долларов), с готовым USB-интерфейсом, макетным полем, и с встроенным USB-бутлоадером (программатор не нужен)? Съэкономить время и силы на пайке того, что уже давно «украдено до нас», и заняться непосредственно программированием микроконтроллера? Правда, это будет не богомерзкий Ардуино, а вполне себе обычный микроконтроллер на макетке.
                  0
                  А где такие макетки есть?
                  0
                  Маловато для старта Atmega8. Кстати, Duemilanove можно купить за ~ 200 грн.
                  Я взял себе ардуину как раз для знакомства с платформой, экспериментов, остальные проекты уже идут на самосборных платах, естественно не совместимых механически с шилдами. Ардуину использую как прошивальщик и для связи с компом.
                +6
                Arduino тем хорош, что он дает единый форм-фактор как для процессорной, так и для периферийных плат. В результате нужную конфигурацию железа можно собрать как кубики.
                По вашему описанию получается, что у Вас получилась просто макетная плата с загрузчиком от проекта Arduino. Надеюсь, что в последующих частях Вы развеете мои сомнения.
                  –1
                  Идея заключается в том что бы сэкономить деньги, и более плотно изучить платформу. В остальном это будет почти клон
                  0
                  А как быть тем, у кого нет COM порта?
                  Можно поподробнее про использование USB? Было бы здорово со ссылками на то, где чего купить можно, если есть переходники в сборе.
                  И есть ли софт под MAC OS?
                  Было бы интересно попробовать, но искать старый компьютер как-то лениво :)
                    0
                    Как я написал выше. Ищите переходник USB-COM. Или же можно купить готовые ISP программаторы которые на просторе интернета навалом. Совместимость с MacOS полная, более подробно можно почитать на официальном сайте
                    • UFO just landed and posted this here
                        0
                        Тем, у кого нету LPT и COM-порта, а также USB-to-COM, надо один раз прошыть микросхему, далее взаемодействие происходин по USB. Причем Arduino можно испрльзовать в качестве такого програматора (т.е. поищите друга/знакомого с Arduino, прошейте у него, а далее уже сами по USB). Я свой первый контроллер (правда PIC) прошывал на радиорынке, там-же где их продают спросил, залили мой код за небольшые деньги.

                        смотрите на Metaboard — Arduino-совместимая плата на ATMega168 (можно поставить ATMega8 или 328). Совместимость в плане шилдов (не полная, так-так остуствует ICS port и линейный регулятор напряжения 3.3В, но большое количество шилдов работать будет), так и в плане возможноси пользоватся Arduino IDE и заливать скетчи по USB-порту без использования дополнительных микросхем адаптеров.

                        PS: Arduino IDE для MacOS есть, arvdude так-же.
                        +2
                        Автор вот тут был когда-нибудь?
                        arduino.cc/playground/
                          +2
                          Был, просто хочется объяснить родным языком и более подробно. А не брать все готовенькое
                            0
                            Тогда начните с того, что сделайте свое IDE, можете язык придумать, загрузчик напишите там, или МК сделайте :-)
                              +1
                              Тэ що занадто тэ забагато
                              +1
                              Определитесь уж, или делать своё или брать готовое. По-моему наиболее правильно было бы повторить плату Arduino, правда не факт что дешевле получится. Хотя, возможно, вам нужно далеко не всё, что есть в Arduino.
                                0
                                То что не нужно сейчас, понадобиться потом. Потому все будет учитываться
                                  0
                                  Согласен. Поэтому, собственно, и лучше сразу распаять всю периферию, а в этом случае уже имеет смысл поискать разводку оригинальной платы.
                                    +1
                                    Ну в данном случае у меня творческий подход, я никому не запрещаю вытравить плату и напаять на не то что нужно
                            0
                            Помимо одного контроллера не стоит забывать об обвязке — как стабилизация питания, конденсаторы, так и резисторы на некоторых выходах.
                              +1
                              В следующей части все это будет
                              0
                              Какого хрена у вас любая макетка на AVR ассоциируется с Ардибилкой?
                              Алсо, без ком порта или лпт прошить МК весьма затруднительно.
                              Китайский шнурок rs232-usb неканает. Надо или FT232, ну или идти к другану с ЛТП чтобы прошить бут.
                                0
                                Почему же. У меня самозборная макетки и на ARM 7 (AT91SAM7X512) есть. Каждому свое.
                                А AVR для холодного старта более чем подходит
                                  0
                                  А и в вдогонку, нормальные недорогие шнурки построены на FT232 и красная цена ему от 3$
                                    –2
                                    Врёшь! Не делают шнурочки на FT232. На PL2303 делают.
                                    А нормальные шнурки от гавна отличаются лишь тем, что в первых стоит максимка, а во вторых какая-нибудь сопля на транзисторе.
                                    FTDI слишком жирно ставить. Фиг ты дождёшься от китайцев такого щястья.
                                    Тем более за трибакса.
                                      +4
                                      У меня пяток шнурков — из них 2 на FTDI, и 3 на PL.
                                      Все 5 успешно используются без проблем для работы с программатором и оборудованием требующим компорты (в том числе для запитки оптронов).
                                      Мне не повезло?
                                        –2
                                        Ойли? FTDI ведь дорогая) Китайцы точно обломаются ставить её в шнурок)
                                        Если программатор работает через UART, то конечно будет работать и через PL — чего бы ему не работать. А вот BB не будет^W будет, но очень херова.
                                          0
                                          Ну если система говорит что FTDI, что я тут могу сказать?

                                          Не все программаторы работают через UART. Первый шнурок который я брал (лет 6 назад), всем был хорош, даже 460800 тянул. Вот только программатор через него не работал. Вообще. Три пром прибора которые я пытался через него завести — тоже молчок. В общем, работал только модем. На чем он был сделан уже не скажу — при первой же возможности, найдя место где он работает, там был оставлен на веки вечные.
                                    0
                                    > Алсо, без ком порта или лпт прошить МК весьма затруднительно.

                                    Ну пихать COM-овый программатор в USB-COM переходник тот ещё изврат. Лучше тогда уж сразу изготовить что то вроде такого: www.ladyada.net/make/usbtinyisp/
                                    Такой программатор один раз можно и у товарища с LPT/COM прошить.
                                      +3
                                      во второй часте он уже будет встроен в плату. для этого и бралась Attiny2313. А сыр бор с этими программаторами для прошивки Tiny и бутлоадера в Atmega
                                      +5
                                      Чего раскричались-то? «Ардибилка»… Обидно за то, что новичкам не нужно так же трахаться с железом, как приходилось вам?
                                      0
                                      либо уже готовая Arduino, которая может выступать в качестве AVR ISP («аналог» STK500) и позволит записать бут
                                      +2
                                      В чем плюс Arduino-подобных плат? Постараюсь объяснить на пальцах. Вы написали свой первый проект, спаяли плату, прошили… И ничего не работает. То ли ошибка в прошивке, то ли в аппаратной части, неизвестно. Отладочная плата позволяет запустить проект на заведомо рабочем железе.
                                      Понятно, что человек, собравший не один десяток устройств на контроллерах, с легкостью соберет макетную плату (как ардуино или даже лучше). Но рекомендовать такой подход новичкам, имхо, следует с осторожностью.
                                      Тот, кому захочется поподробнее разобраться, «как оно там внутри работает», обязательно разберется, всему свое время.
                                        +2
                                        Да согласен.Но бывает что и готовое не всегда работает. Да и на готовом не всегда люди понимают физику процесса.
                                          0
                                          Да и на готовом не всегда люди понимают физику процесса.

                                          Чтобы понять физику процесса, совсем не обязательно сразу бросаться собирать что-либо с нуля. Да, AVR это позволяет (у него низкий порог вхождения, я сам начинал без всяких ардуин), а вот какой-нибудь ARM или развесистая ПЛИСина — едва ли.
                                          Еще часто забывают о том, что макетка многоразовая: собрал прототип, отладил, перенес на нормальную плату, отлаживаешь следующий. Заплатить один раз несколько десятков долларов за удобство макетирования — почему бы и нет? А паять свою собственную макетку скучно и малоценно в образовательном плане. Там 80% работы — разъемы да резисторы.
                                        –3
                                        Зачем делать LPT-программатор на iDuino, если можно просто подключить mini-usb к Ардуино и не думать о программаторах?
                                          +1
                                          затем что если сжечь мк, то купите новый, а что бы зашить бутлоадер придется или покупать программатор или делать
                                          +6
                                          100500я статья по старту на AVR. При чем тут ардуино вообще? Кстати, прошить пятью проводками или через битбанг на COM порт задача тоже не тривиальная, как оказалось. Под 1000+ комментов в статьях про этот программатор явно неспроста.
                                          • UFO just landed and posted this here
                                            • UFO just landed and posted this here
                                                +1
                                                конденсатор на ноги контроллера поставь. тока с длинных проводов хватает чтобы у него id прочитать, а как запись начинается питание на проводах проседает.
                                                  +1
                                                  (на ноги питания я имел ввиду)
                                              +1
                                              Хм, а я Громова когда-то собирал, чисто поприколу)
                                              Работает безотказно, как дубина.
                                              Вот щас, опять же, поприколу подключил к китайсокму шнурочку на PL2303 и MAX212. И юнипроф вполне обнаружил МК и даже пытается что-то шить)
                                              Правда несколько байт в секунду…
                                                +2
                                                у меня тоже он заработал сразу же и везде на ура. Но статистика показывает…
                                                  +2
                                                  Правильно показывает, между прочим. Когда я начинал знакомиться с AVR, то же обломался с этим громопрогом. В результате знакомство продолжилось уже с клоном Arduino, который я впоследствии стал использовать как программатор. Слава FT232RL (:
                                                    +1
                                                    FT иногда начинает жестко тупить — ВНЕЗАПНО отваливается в системе, через пару секунд обноруживется заново, но уже под другим номером порта. Повторяемо на винде (прыгает COM10-COM11) и на линухе (ttyUSB0 / ttyUSB1).
                                                    Из ~50 собранных контроллеров с глюком оказалось 8.
                                                      +1
                                                      Да, видел такое на Linux. Как-нибудь буду разбирать FTDIшные дрова и патч к avrdude — сверю с даташитом правильность реализации. Поди, в софте ж дело.
                                                        0
                                                        От винды отваливается не хуже. Даже еще веселее — там софтина зависает при этом до момента выдёргивания USB. Не прибивается и не обходится никаким образом — так что подозрваю, что проблема всё-же где-то в кристалле.
                                                          –1
                                                          Хм, кстати с CDC под виндой бывает такая же шняга.
                                                        0
                                                        Это непропай.
                                              • UFO just landed and posted this here
                                                • UFO just landed and posted this here
                                                    +3
                                                    Вот уважаемый сам собрал, а мог бы и готовое купить
                                                  +4
                                                  Я не понимаю почему столько споров и агрессии в комментариях. Если вас это не устраивает и не нужно, так и не читайте. Но тем кому статья нужна, сочтут ее полезной. Тем более к чему я начал о программаторах… Они не только с Arduino понадобятся но и при прошивке других девайсов. А будущая плата которая собираться, будет не только ардуинкой но и универсальным устройством для обучения, а также отладки и прошивки других устройств
                                                  • UFO just landed and posted this here
                                                      +4
                                                      Не принимайте близко к сердцу. Просто не вам первому приходит в голову мысль «собрать свой собственный Arduino, с блекджеком и шлюхами». А это обсуждение — далеко не первый срач спор по поводу макетных плат, их нужности и полезности. Пишите продолжение, посмотрим, что получится в итоге.
                                                        –1
                                                        Просто складывается ощущение что присутствует патологический страх паяльника, и высокий процент крикливости рук
                                                          +3
                                                          Это не страх паяльника, это нежелание заниматься изобретением велосипедов.
                                                            +2
                                                            Даже собрав велосипед, повышаешь свое развитие и самооценку
                                                              +3
                                                              Это верно. Главное, не останавливаться на велосипедах и создавать что-то новое.
                                                              • UFO just landed and posted this here
                                                        +2
                                                        Мне думается, народ считает (и тут я с ним согласен), что если хочется ардуино-подобную плату для быстрого старта, то лучше купить ардуино. Много денег вы не сэкономите, а хлопот будет полно. (В том числе и тех, что пишут выше — всё собрали, а оно не работает; в чём дело? Программатор неправильный, в пайке сопля, процессор случайно пожгли?)

                                                        С другой стороны, спроектировать и собрать макетку так, как хочется именно вам — это ваше неотъемлемое право; если бы про это было написано в посте, ругани было бы меньше :)
                                                        0
                                                        Сколько всего будет частей и нельзя ли было добавить побольше контента в эту первую часть? Потому что тут ни слова конкретики о самой плате, только описания тех же самый программаторов (с картинками в тех же самых JPG'ах), как на других сайтах. Но при этом такой кричащий заголовок (вроде бы при написании статьи рекомендуют не злоупотреблять восклицательными знаками).
                                                          0
                                                          А тут как и с подарком. Не знаешь пока не получишь.
                                                            –1
                                                            Статью минусанул исключительно из-за несогласования тела и темы.
                                                            +2
                                                            Это не статья, это — трейлер к сериалу (статей). (:
                                                            +1
                                                            freeduino.ru/arduino/index.html
                                                            Freeduino 2009 — полный аналог Arduino Duemilanove. 800р
                                                            Freeduino Nano v5 — самая функциональная версия в формате Nano. — 800р
                                                            Freeduino Through-Hole Kit — аналог Arduino Diecimila. 700р
                                                            • UFO just landed and posted this here
                                                            • UFO just landed and posted this here

                                                              Only users with full accounts can post comments. Log in, please.