Arduino своими руками с usb портом

Arduino своими руками

Источник: http://microboard.at.ua/publ/opisanija/arduino_svoimi_rukami/2-1-0-6

Arduino своими руками

Часть I.Как быть, если надо поэкспериментировать с Arduino, но покупать (по каким-то неуважительным причинам) совершенно не охота? Если вы умеете держать в руках паяльник, не составит большого труда соорудить его самостоятельно. Продвинутые пользователи, имеющие опыт травления печатных плат, могут воспользоваться Severino.

Но для начала вполне можно ограничиться “макеткой”.”Сердце” всех плат Arduino – это микроконтроллер ATmega (точнее, ATmega8, ATmega168 или ATmega328P), который требует прошивки, поэтому для начала надо обзавестись программатором.

Готовый программатор стоит недорого, но ведь его еще надо заказать и дождаться! Давайте соорудим простейший – на LPT-порту:

Девайс предназначен для программирования контроллера прямо в родной схеме (т.н.

In Circuit Serial Programming или ICSP ) – надо организовать на плате гребенку 2×3 контакта, подключить к ней этот программатор и один раз зашить bootloader – специальную короткую программу инициализации, которая принимает по последовательному порту микропрограмму (sketch), прошивает ее в свободную память ATmega, а затем запускает.

Стоимость деталей:

  • разъем DB25 – 10 руб.
  • корпус разъема – 10 руб.
  • три резистора – 1 х 3 = 3 руб.
  • три колодки PBS02 – 2 х 3 = 6 руб.
  • проводки – ну добавьте еще 10 руб.

Итого, 39 рублей. Наверное, вы спросите: где подвох? Не скрою, не без него: на вашей машине должен быть LPT-порт.

Процесс сборки программатора подробно описан в статье на сайте Arduino. Вот что получилось у меня:

Отдельного внимания заслуживает история одинокого желтого проводка.

Как видно из первого рисунка, на оригинальной схеме pin2 разъема ICSP “висит в воздухе”. На самом деле, там должно быть Vcc +5В, которое отсутствует в LPT-порту в виде отдельной питающей шины. Авторы предлагают запитать программируемую схему отдельно (я взял +5В с разъема USB того же компьютера, к которому были подключен LPT).

В таком варианте схема работать отказалась, из порта программирования систематически читались 0xff.

Когда я снял питание, то с удивлением обнаружил, что контроллер все равно умудрялся что-то высасывать из активных пинов LPT-разъема и – о чудо! – даже начал проявлять признаки жизни: пытался осмысленно отвечать на Power-up sequence.

Однако, дальше дело не шло: avrdude удивленно сообщал о том, что обнаруженный процессор имеет нестандартную сигнатуру – 0, 1, 2.

Это натолкнуло меня на мысль покопаться в конфигурационном файле avrdude.conf и внимательно изучить секцию, посвященную моему дешевому программатору:

programmerid = “dapa”;desc = “Direct AVR Parallel Access cable”;type = par;vcc = 3;reset = 16;sck = 1;mosi = 2;

miso = 11;

Все элементарно: слева – название сигнала, справа – номер контакта на LPT. Таким образом, предполагается, что программатор использует третий контакт для подачи питающего напряжения Vcc.

Так и появился желтый проводок. Как только я соединил им шину +5В микроконтроллера и DB25 pin3, bootloader для ATMEGA8 прошился на “ура”.

Признаюсь, было несколько стремно (перед включением я мысленно помолился за здоровье своего LPT-порта), но, видимо потребность в питании одного-единственного МК в данном случае вполне допустима.

(продолжение следует, Часть II)

Источник: http://mk90.blogspot.com/2008/11/arduino_26.html

Arduino своими руками — Shrimp

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

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

Для создания Shrimp нам потребуется:

  • микроконтроллер ATMEGA328P-PU;
  • резистор 10 кОм;
  • конденсатор 10-100 мкФ, электролитический;
  • конденсатор 22 пФ, керамический — 2 шт;
  • конденсатор 100 нФ, керамический — 4 шт;
  • кнопка тактовая;
  • кварц 16 МГц;
  • макетная плата;
  • набор перемычек для макетной платы;
  • USB — UART конвертер на основе FT232R, CP2102 или CH340.

1. Копирование загрузчика на чистый микроконтроллер

Обычно, чтобы записать программу в микроконтроллер требуется использовать отдельное устройство — программатор. Ардуино же хороша тем, что программатор ей не нужен. Вместо него, используется особая микропрограмма, называемая загрузчиком (bootloader). Этот загрузчик умеет принимать программы из вне и записывать их во флеш-память микроконтроллера.

Так вот, загрузчик записывается в микроконтроллер на заводе. И чтобы заставить наш Shrimp работать, мы должны повторить эту процедуру. Вот здесь-то нам и потребуется другая плата Ардуино, о которой упоминалось в самом начале. Процедура установки загрузчика состоит из трёх шагов.

Шаг 1. Установка на рабочую плату Ардуино специальной программы — OptiLoader

Открытая программа OptiLoader позволяет прошить загрузчик optiboot в микроконтроллер нашего Shrimp. На момент написания статьи OptiLoader поддерживал микроконтроллеры: ATmega8, ATmega168, ATmega168P, ATmega168PB, ATmega328, ATmega328P, ATmega328PB.  Качаем архив по одной из ссылок:

Распаковываем архив и открываем скетч в Arduino IDE. Загружаем скетч в рабочую плату Ардуино. Отключаем Ардуино от питания USB.

Примечание. Если скачать программу с github, то нужно будет переименовать папку «optiLoader-master» в просто «optiLoader»

Шаг 2. Подключение чистого микроконтроллера

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

Принципиальная схема

Внешний вид макета

Шаг 3. Прошивка загрузчика (bootloader)

Теперь подключим Ардуино к питанию через USB. Сразу после включения, программа начнет копирование загрузчика на чистый микроконтроллер. При это будут активно мигать светодиоды RX и TX. Как только светодиоды перестанут мигать — копирование окончено.

Если что-то пошло не так и светодиоды не мигают, можно открыть COM-монитор. OptiLoader отображает весь процесс копирования загрузчика. В случае успеха, отчет о процедуре будет выглядеть следующим образом.

2. Загрузка программ на Shrimp

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

После того как схема собрана, подключаем её к компьютеру через USB — UART модуль. Выбираем в Arduino IDE тип платы «Arduino Uno» и правильный COM-порт, а затем загружаем программу мигания светодиодом. Готово!

Примечание. Если у вас не получается загрузить программу, попробуйте поменять местами провода RX и TX на USB-UART мосту.

Полезные ссылки

Если используется UCB-UART мост на основе CP2102 — устанавливаем драйвера с официального сайта silabs:
http://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx

Если FT232R, то отсюда:
http://www.ftdichip.com/Drivers/VCP.htm

Если CH340, то качаем китайские драйвера:
http://arduino-project.net/CH341SER.ZIP

Изменено: 27 Фев, 2017 01:16

Источник: http://robotclass.ru/articles/arduino-handmade-shrimp/

Arduino USB сделай сам (DIY)

Опубликовано 12.02.2013 11:36:00

Плата улучшена. Смотрите Z-DIYino FT232RL

Держа в руках оригинальную плату Ардуино, в голове зародилась мысль о сборке её клона.

Посидев, подумав над проектом, было решено уместить все на односторонней плате, а для связи с компьютером снабдить плату микросхемой FT232RL.

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

Итак, дорогие читатели, представляю вашему вниманию нашу версию клона Ардуино. Встречайте Paduino FT232RL

Как уже говорилось выше, плата имеет недостаток – лишена возможности питания от юсби порта. Однако, благодаря использованию микросхемы FT232RL, на плате присутствует выход 3.3В. Также к доп.

функционалу хочется отнести наличие джампера автоматической загрузки ( ENABLE ), а также джампера ( JP LED13 ), позволяющего отключить не всегда используемый светодиод подключенный к пину под номером 13. 

Также, вдобавок к уже имеющемуся выходу Vin на Arduino, был добавлен выход VTG INPUT . На мой взгляд, стандартный вывод Vin имеет ряд недостатков, хотя с другой стороны плюсов. К недостаткам можно отнести потерю напряжения на диоде (0.6-0.

8 вольта), также при запитывании Arduino не от разъема питания, а непосредственно от гребенок мы теряем защиту от переполюсовки т.к. выход Vin на схеме расположен после защитного диода.

На выводе VTG INPUT мы же всегда имеем напряжение равное входному без каких либо потерь, а также при запитывании Arduino через гребенки функционал защиты от переполюсовки сохраняется т.к. на схеме выход расположен перед защитным диодом.

К достоинствам вывода Vin можно отнести то, что при правильно поданном питании на нем всегда будет плюс, в противном же не будет ничего, в то время как на VTG INPUT либо минус либо плюс.   

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

Далее привожу принципиальную схему данного устройства. Принципиальная схема ( кликабельна ).

Так, как ФТшка в данной сборке использует только землю и сигнальные линии USB порта, то, полистав даташит, повесим на неё обвязку в следующей конфигурации:

В этот раз все этапы изготовления я пропущу. Из процесса изготовления приложу только фото протравленной и залуженной платы до начала монтажа элементов. 

Пару слов об FT232RL. Микросхемка довольно таки мелких размеров. Для того чтобы вы смогли оценить свои силы, привожу фото ФТшки на десятикопеечной монетке.

Приставляем Фтшку к плате, отцентровываем, смачиваем ножки флюсом, берем на жало паяльника припой в очень малом количестве, и быстро проходимся по каждой ножке. Если вы в пайке новичок, и еще не научились паять быстро, в одно касание, советую делать интервал в 10-15 секунд после каждой ножки.

Про изготовление печатных плат и распайку деталей, как я уже говорил в предыдущих статьях , можно прочитать у DIHALTа на http://easyelectronics.ru  

Что касается размеров, то Paduino выходит не на много больше оригинальной Arduino.

Все, с изготовлением разобрались. Для работы в среде Arduino в память контроллера осталось лишь залить bootloader.

Про заливку бутлоадера, через LPTport написано уже огромное множество статей, наиболее полная на мой взгляд сделана парнями с сайта robocraft. Мы же пойдем альтернативным путем и зальем бутлоадер через самодельный программатор Громова, статья об изготовлении которого находится здесь, либо же зальем через программатор USBasp.

После заливки бутлоадера, нам уже ничто не мешает приступить непосредственно к программированию.

Для начала необходимо скачать среду Arduino. Скачать последнюю версию можно на сайте производителя.

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

Если при подключении драйвер на FT232RL не уcтановился в автоматическом режиме, тогда скачаваем драйвер на свою ОС с сайта производителя FTDI.

В комментариях к статье, человек указал на возможность конфликта новых драйверов на FT232RL с сайта производителя. В связи с этим лучше установить драйвер из среды Arduino IDE ( arduino-1.0.5-windowsarduino-1.0.5driversFTDI USB Drivers )

.Открываем скачанную идешку и выбираем плату. Плата будет отображаться как Arduino NG or older w/ATmega 8 при использовании контроллера ATmega 8, либо как Arduino NG or older w/ATmega 168 при использовании ATmega168.

Затем выбираем COMport к которому подключена плата. У меня кабель определился под девятым номером.

Для проверки работоспособности зальем в контроллер тестовую программку-мигалку, выполнив следующие действия

Далее жмем кнопку “Загрузить”

После успешной загрузки вы должны увидеть следующее

Если все заработало, то поздравляю вас. Вы собственноручно собрали полноценный клон USB Arduino.

В архиве лежит шаблон под ЛУТ и список деталей.

Открываем изображение => Печать => Во всю страницу

Для облегчения распайки smd компонентов с обратной стороны платы, где нет маркировки, приведу картинку. 

Хочется отметить, что на smd конденсаторах нет маркировки номиналов, но для облегчения распайки на картинке я их нанес. 104 – 0,1 мкФ, 22 – 22пФ.

В данный момент еще реализованы не все элементы нашего сообщества. Мы активно работаем над ним и в ближайшее время возможность комментирования статей будет добавлена.

Источник: http://zelectro.cc/DIY_Arduino_Usb

Минимальная Arduino своими руками

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

Собирая робота на гусеничном шасси, я столкнулся с тем, что бутерброд из Arduino + MotorShield + Sensor Shield плюс ко всему аккумулятор и прочие компоненты обросли проводами и стали с трудом помещаться на не самом крошечном шасси. Городить еще кучу шилдов, чтобы избавиться от лишних проводов не хотелось. Появилась идея избавиться от всего, что в Arduino не требуется в готовом девайсе.

Попутно хотелось снизить стоимость робота. Многих интересующихся электроникой отпугивает еще и стоимость Arduino в магазинах. С ebay и китайских магазинов посылка идет долго, изобретательский пыл успевает остыть, поэтому приобретение откладывается «на потом», «когда сын подрастет». Поэтому я решил собрать Arduino-совместимую плату из деталей, которые всегда можно купить в городе.

В итоге я получил Arduino-совместимую плату, стоимостью в 210 рублей на макетной плате и в ~270 рублей в готовом для наращивания функционала виде.
«Minimalist Arduino» С нуля до полной готовности собирается с дешевым 40Вт паяльником за 1 выходной без каких-то особых навыков.

Лазерного принтера у меня нет, печатные платы самостоятельно никогда не разводил, поэтому решено было использовать не ЛУТ, а макетную плату с односторонней металлизацией (максимально дешевая, всегда есть в продаже).

Сначала я хотел купить Atmega328P в DIP корпусе, чтобы воспользоваться статьей Arduino on a Breadboard и собрать Arduino на беспаечной макетке.

Но оказалось, что в DIP28 ее в Москве крайне трудно найти, да к тому же в этом корпусе она существенно дороже. Зато в наличии навалом Atmega168 в любом корпусе. Но цена DIP28 и TQFP-32 отличается тоже довольно существенно. Для робота на гусеничном шасси и домашней автоматизации возможностей Atmega168 более чем достаточно, поэтому поборов страх, я решил сэкономить и использовать 168ю в TQFP-32 корпусе (шаг ножек — 0.8мм)Все компоненты кроме эпоксидной макетки я купил в Москве, в одном магазине (макетки продаются в любом радиомагазине или на рынке, просто у меня уже было 5 штук, купленных ранее на ebay). Итак, для начала нужно припаять микроконтроллер размером 9х9 мм на DIP переходник, чтобы более комфортно с ней было работать. mkpochtoi не работал, поэтому купить готовую макетную плату не получилось, купил макетку MP-QFP, от которой ножовкой по металлу отпилил кусок под TQFP-32.
Просмотрев видеоурок по пайке от DIHALT я водрузил микруху на макетку с помощью обычного 40Вт паяльника, потратив на это чуть больше 5 минут (опыта пайки таких мелких компонентов и вообще SMD компонентов у меня не было). В качестве флюса использовал несколько капель глицерина (попросил у девушки, она занимается мыловарением). Отмыл горячей водой и высушил феном.

«Atmega 168PA-AU» 40-ногую линейку PBS-40 кусачками настрогал на кусочки по 4 ножки и впаял с обратной стороны. Я взял гнезда, а не штырьки, чтобы микроконтроллерную плату можно было подключать к макетке проводками без пайки.

Дальше все как в статье — собрал на макетной плате схему, использовав datasheet от семейства Atmega 48/88/168 (номера ножек на DIP28 и TQFP-32 различаются).

Поскольку процессор я взял чистый, то предстояло прошить его бутлоадером от Arduino. Тут меня поджидала засада: Arduino IDE знает только Atmega168 и ничего не знает об Atmega168P (точнее Atmega168PA-AU) — более свежей версии микросхемы. Прошивать она его отказалась.

А еще раньше я выяснил, что Freeduino Nano v5.0 почему-то не хочет работать ISP программатором. Пришлось разобрать робота и достать Freeduino 2009. с помощью скетча ArduinoISP и примера на Freeduino.ru удалось заставить avrdude игнорировать различие в сигнатуре (ключ -F) и прошить бутлоадер, фьюзы и лок.

У меня сработал такой вариант:

::Прошиваем bootloader (порт COM9 нужно поменять на Ваш) avrdude -F -C avrdude.conf -p m168p -c avrisp -P COM9 -b 19200 -e -U flash:w:optiboot_diecimila.hex ::Прошиваем fuse и lock биты

avrdude -F -C avrdude.

conf -p m168p -c avrisp -P COM9 -b 19200 -Uefuse:w:0x00:m -Uhfuse:w:0xdd:m -Ulfuse:w:0xff:m -Ulock:w:0x0F:m

На официальном сайте есть описание подключения для прошивки:

Как вариант, можно обновить файл avrdude.conf, прописав правильную сигнатуру, но нужды в этом особой нет. Все, Arduino на макетке готова. Можно подключать любой USB — serial TTL (или RS-232-TTL) адаптер и зашивать скетч из Arduino IDE, выбрав Board->Arduino Diecimila, Duemilanove or Nano w/Atmega168.
«Breadboard Arduino» Убедившись в работоспособности, я занялся переносом на макетную плату. Сложнее всего оказалось оптимально разместить элементы. Для этого наиболее простым бесплатным инструментом оказался Fritzing. Правда нагромождение картинок и проводов выглядит страшно, но позволяет при сборке не запутаться в проводах:
«Minimalist Arduino» Я старался уменьшить количество отдельных проводов, припаивая где возможно выводы воткнутого компонента к нужному контакту просто сгибая его ножки и обрезая излишек. Добавив примерно 65 р на запчасти я получил вот такой результат:
«Minimalist Arduino» Для удобства я добавил шину питания и землю (2 гребенки справа внизу), кнопку питания, гнездо RX, TX, DTR для загрузки скетчей и ICSP разъем для прошивки микроконтроллера программатором прямо на плате.
«Minimalist Arduino в сборе» Воткнув микроконтроллерную плату с Atmega328P-AU, можно прогапгрейдить девайсик для задач, где 16 кб под скетч не хватает. Оставшееся на макетке место я собираюсь использовать под сенсоры, драйвер мотора и прочие нужные вещи. Вот список компонентов и цен:

НаименованиеЦенаКол-воСтоимость

    С платами arduino я познакомился ещё в то время, когда в ходу была модель Arduino Duemilanove, с преобразователем usb-com на микросхеме FT232 и распиновкой контактов pinout r2 (без дополнительных SCL и SDA, и без вывода IOref). Что-либо программировать я не собирался, но обратил внимание, что на всю линейку контроллеров arduino, схемы и чертежи печатных плат находятся в открытом доступе. И мне стало интересно повторить эту плату по-своему.

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

Таким образом при подключении к USB порту и, одновременно, к внешнему источнику питания 5V от USB и 5V стабилизатора подключаются параллельно.

 Стабилизаторы применил регулируемые, из серии 1117 в корпусе SOT-223, и установил штыревой разъём для батарейки, которым воспользовался пару раз всего-то.

    Микросхему FT232 боялся как огня: из-за мелкого шага выводов и цены. По-этому для конвертера USB-COM взял проект AVR-CDC радиолюбителя из Японии. Этот преобразователь может быть выполнен на МК mega8/48/88, tiny45/2313. Т. к.

у меня была ATmega8, на ней и собрал, немного изменив схему, руководствуясь аналогичными конструкциями из сети: самодельная arduino с преобразователем на ATtiny2313, и, только конвертер на отдельной плате. Работал на Windows XP sp3 и Windows 7.

На одном из ПК с Windows 7 система требовала цифровую подпись драйверов, это мне обойти не удалось.

    Итоговая схема источника питания и преобразователя USB-COM показаны на схеме.

Кроме сигналов RX, TX и DTR конвертер обеспечивает ещё два – CTS и RTS, все они выведены на дополнительный разъём. Для индикации обмена на линиях RX/TX установлены светодиоды.

    В этой части платы (источник питания и конвертер) при проектировании допущено несколько ошибок: неверно разведён разъём для батареи; неверная полярность светодиода на линии TX; не предусмотрены резисторы на сигнальных линиях USB; перепутаны местами RX и TX от конвертера к микроконтроллеру; неверно разведены токоограничивающие резисторы на линиях RX/TX; не предусмотрен электролитический конденсатор по 3.3V. Всё это было исправлено уже после изготовления платы, всё кроме конденсатора.

    Остальная часть схемы с микроконтроллером atmega328 аналогична плате Arduino Duemilanove. Единственное изменение которое я внёс – автоматический сброс сделал отключаемым джампером, а не разрезной перемычкой.

    Разъём ICSP используется некоторыми шилдами для подключения к сигналам SPI (например ethernet shield), мною это не учтено, и колодка для ICSP установлена так, как мне понравилось. Также кнопку RESET применил угловую и установил её на краю платы. При сборке катод светодиода подключённого к pin13 пропаивается с обеих сторон платы.

    Все ошибки и недочёты о которых сказано выше исправлены при проектировании новой платы. В архиве два варианта: с “большим” разъёмом USB, и с разъёмом mini-USB. Ту, что с mini-USB я не собирал.

Платы в Sprint-Layout 5

Схемы в png

    Через какое-то время после изготовления этой платы, на одном из сайтов (название которого уже и не вспомню) прочёл новость о том, что electronics-lab предлагает изготовить для Вашего проекта 5 печатных плат.

Всё, что было нужно – это выслать им либо готовый проект, либо его идею (со схемой и чертежом печатной платы).

Со своей платой к тому времени я немного поработал, и мне хотелось чтоб на ней, кроме двух микросхем и разъёмов, были какие-нибудь элементы и/или датчики для первых шагов с arduino.

    Начертил плату в SL5, схему в RusPlan и выслал, приложив несколько фото своей arduino. Там проект приняли, опубликовали и через месяц прислали 5 печатных плат.

    Этот вариант платы тоже не обошёлся без ошибок. О ней расскажу позже.

Mакетная плата MP-QFP 64 1 64
Glass-Epoxy Board Prototyping PCB 9×15 FR4 43 1 43
PBS-4 4 8 32
PBS-6 4 2 8
PLS-40 4 1 4
ATMega168PA-AU 62 1 62
LM7805 1A 5V Positive Voltage Regulator 15 1 15
16.000MHz Clock Crystal 10 1 10
22pF Capacitor 1 2 2
10uF Capacitor 5 2 10
100nF Capacitor 1 1 1
10kOhm Resistor 1 1 1
150 Ohm Resistor 1 2 2
DTS-61 кнопка 2 1 2
PS-22E85L 7 1 7
WF-02 вилка на плату 1 1 1
Red 3mm LED 2 1 2
Green 3mm LED 2 1 2
Итого 268р.

Источник: https://habr.com/post/131589/

Watchdog на arduino для майнига . Делаем watchdog своими руками на ардуино UNO –

Предлагаю вариант устройства автоматически перезагружающее компьютер при зависании.

В основе лежит известная плата Arduino с минимальным количеством внешних электронных компонентов. Транзистор подключаем к плате согласно рисунку ниже. Коллектор транзистора подключаем вместо кнопки «Reset» компьютера на материнскую плату, на тот контакт который НЕ соединен с GND.

Вот и вся схема  :

Функционирует устройство следующим образом: на компьютере запускается скрипт, который периодически шлет в порт компьютера данные. Ардуино подключается к USB  и слушает этот порт.

Если в течении 30 секунд данных нет Ардуино открывает транзистор, который соединяет Reset c землей, тем самым имитируя нажатия кнопки сброса.

После сброса ардуино делает паузу в 2 минуты дожидаясь загрузки всех программ и вновь начинает слушать порт.

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

Изготвление устройства требует минимальных навыков работы с паяльником и програмирования ардуино.

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

Компонентты для сборки я покупал на Алиэкспресс :

Провода для макетной сборки  http://ali.pub/22k78b

Ардуино УНО (точно подходит )  http://ali.pub/22k7dd

Arduino uno с кабелем http://ali.pub/22k7go

Скетч  Ардуино

Code:

int LedPin = 13;
int ResetPin = 12;
int val = 0;
int count = 0;
void setup()
{
Serial.begin(9600);
pinMode(LedPin,OUTPUT);

//пауза на запуск 2 мин
delay (120000);
}

void loop()
{
count++ ;

if (Serial.available() > 0)
{
val = Serial.read();
if (val == ‘H’)
{
digitalWrite(LedPin,LOW);
digitalWrite(ResetPin,LOW);
count = 0;
}
else
{          count++ ;
}
}

delay (1000);

if (count > 10)
{
digitalWrite(LedPin,HIGH);
digitalWrite(ResetPin,HIGH);
}
}

Скрипт отправляющий в порт данные:

(Get-Date).ToString(‘dd.MM.yyyy   HH:mm’)  | Out-File c:UsersminerDesktop
eboot.txt  -append

while($TRUE){
Start-Sleep -s 3
$port= new-Object System.IO.Ports.SerialPort COM3,9600,None,8,one
$port.open()
$port.WriteLine(«H»)
$port.Close()
}

Сразу после запуска скрипт записывает в файл reboot.txt текущую дату и время. По этому файлу можно судить о количество и времени перезагрузок. Путь к файлу и номер порта необходимо отредактриовать в соответствии с вашими данными системы. Код  пишется в обычном блокноте и сохраняется с расширением *ps1.

Т.к. в Windows политикой безопасности отключено выполнение скриптов по двойному клику и из автозагрузки делаем финт ушами и запускаем шелл из батника следущего содержания:

start  PowerShell.exe -ExecutionPolicy ByPass -File «c:путь к вашему файлуваш файл.ps1»

Файл сохраняем с расширением *.bat и ставим его в автозагрузку.

Радуемся , теперь у нас все автоматизированно . Устройство испытано на своем ПК и польностью работает .

Источник

Подписывайтесь на Bitnovosti в telegram!

Делитесь вашим мнением об этой новости в комментариях под статьёй.

Источник: https://bitnovosti.com/2017/12/21/watchdog-na-arduino-dlya-majniga-delaem-watchdog-svoimi-rukami-na-arduino-uno/

Arduino uno своими руками | Технохрень

Схему Arduino UNO r3 можно найти здесь.

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

Тут все вообще без гемора – просто 1 микросхема и кварц. Правда, в отличие от Arduino UNO, нет защиты по питанию и USB – соответственно заливка скетчей немного сложнее. Давайте разбираться.

Копируем Arduino uno –  питание

Во-первых в этой схеме только одно напряжение – то, которым питаешь микроконтроллер. В arduino uno есть стабилизатор – ей подаешь 5 вольт, она еще и 3.3 выдает на соседний пин. За всю мою практику мне ни разу не понадобилось сразу и 5, и 3.3 вольта в одной схеме. То есть используется либо 5, либо 3.3, но никогда вместе.

Все девайсы, экраны и датчики, рассчитанные на 3.3, всегда втыкались 5 вольт и все работало. Естественно надо прочитать даташит (документацию) на эти самые датчики, возможно у вас что-то мегачувтсвительное к входному напряжению и ему реально нужно 3.3 вольта. Тогда можно поставить стабилизатор напряжения и снизить до 3.3 вольт.

Как обычно есть пара способов:

  1. Поставить LM3940 или любой аналог:

    Это вариант без гемора, но нужно смотреть документацию, сколько можно подключить нагрузки. Т.к. лишние вольты эта штука преобразует в тепло, использовать их не очень-то оптимально в плане энергопотребления (например, если ты делаешь что-то на солнечных батарейках).. Зато просто.

  2. Поставить MAX1626 или любой аналогКрутая штука. Больше деталей, больше КПД.
    Схему найдешь в даташите на выбранный преобразователь. Вон пример для LT1073:

Вообще с питанием много всяких извращенных схем, но это основные подходы.

USB для нашего UNO

Тут тоже есть два подхода. Есть такая штука, называется ISP:

Это такой разъем )) Для того, чтобы заставить работать наш новый UNO, нужен микроконтроллер.

Если ты просто пойдешь в магаз и купить Atmega326 ты конечно будешь молодец, но работать сразу это все не будет – в нее надо зашить загрузчик Arduino. для этого как ни странно нужна вторая Arduino.

Уже рабочая Хз где ты ее достанешь, купишь в Китае или попросишь у друга погонять. В принципе подойдет любая. Назовем ее условно программатор. А подключать надо так:

pin name:    not-mega:         mega(1280 and 2560)reset:       10:               53MOSI:        11:               51MISO:        12:               50SCK:         13:               52

Если вы достали где-то в качестве программатора Arduino Mega то используйте для подключения последний столбец. Если программатором служат другие ардуины – тогда второй. В первом столбце указаны ноги вашей новой купленной атмеги. Далее в рабочую ардуино (программатор) заливаем скетч из образцов с названием ArduinoISP:

И вот тут у нас два варианта:

  1. Можно прошить загрузчик и тогда в дальнейшем наш микроконтроллер можно прошивать через Serial порт и вторая ардуина-программатор нам больше не нужна.
  2. Либо можно прошивать через программатор сразу наш скетч без загрузчика – и тогда у нас после запуска будет все работать быстрее на пару секунд. Это делается с помощью меню файл –> загрузить через программатор

Если с вторым вариантом все ясно.. То первый требует разъяснений. Жмем Инструменты – Программатор – Arduino. А потом Инструменты – Записать загрузчик.

После этого отключаем Arduino и теперь нам понадобится USB to ttl serial Converter. После того, как мы его достали, его надо подключить к reset, d0 (rx), d1(tx) нашей только что прошитой атмеги.

  1. Можно купить готовый например на PL2303 (или на аналоге, например CP2102) и вот так доработать – воткнуть между ногой DTR_N у PL2303 и Reset у Atmega конденатор 0.1 мкФ:
  2. Можно собрать самим из подручных средств – обычно из прошивочного кабеля от старого телефона типа сименса. Их можно достать во всяких телефонных мастерских рублей по 20. И так, вот как выглядит плата внутри такого кабеля:

Суть та же, только не забудьте добавить резистор и конденсатор на reset (см. первый вариант).

После этого все будет прошиваться точно так же, как и обычная ардуина.

Источник: http://skproj.ru/arduino-uno-svoimi-rukami/

Arduino. Своими руками

(P.S. Писал эту же статью на www.nnm.ru, решил, синхронизировать версии).
Как-то (пару месяцев назад) просматривая новости в инете, наткнулся на очень лестные отзывы о мега-популярном проекте Arduino.

Писалось, что чуть ли не домохозяйки любят и могут с ним возиться и делать с его помощью всякие интересные вещи.  Ну… что же. Почему бы и мне не попробовать, руки и мозги вроде как имею… Однако прикупить готовую плату – ни финансы, ни природная скрягость не позволило. Сами с усами, сделаем.

Вот инструкция с оф. сайта: http://arduino.cc/en/Main/ArduinoBoardSerialSingleSided3Там вы найдете и список деталей и рисунки печатки….  Короче все, что нужно для изготовления. Я сделал две таких платы и остался очень доволен.  

Но есть одно но.

В официальной версии в качестве преобразователя RS232 выступал блок на транзисторах…. и это приводило к нестабильному обмену информацией.

Но не я первый столкнулся с такой проблемой. Вот вариант на реальном преобразователе MAX232

http://spiffie.org/electronics/archives/microcontrollers/Build%20a%20MaxSerial%20Freeduino.html

Его и стоит делать.Вот мой процесс реализации этого варианта.Собираем все до кучи Детали и разъемы – обходятся менее 10 у.е..

Нам понадобиться:

— кусок одностороннего стеклотекстолита (95х65мм)— микроконтроллер ATmega8 (или ATmega168)— микросхема MAX232 (можно интегралловскую ILX232N)— 7805 (регулятор напряжения 5В)— 4-ре светодиода (лучше разные цвета)— кварц 16 Mhz— кнопка (с четырьмя контактами)— разъем СОМ-порт (мама) под запайку— разъем под питание (2.1мм)— конденсатор 22пФ (маркировка либо 22, либо 220)- 2 шт.— конденсатор 0.1 мкФ (маркировка 104) — 3 шт.— резистор 1к (0.125 Ватт) — 5 шт— резистор 10к (0.125 Ватт) — 1 шт— диод 1N4004 (или 1N4007) — 1шт.— элетролит. конденсатор 10мкФ х16В — 5 штук (минимальные по высоте, иначе шилды не становятся)— элетролит. конденсатор 100мкФ х16В — 2 штук (тоже невысокие)— колодки под микросхемы (16 ножек-1шт, 28 ножек узкая — 1 шт)

ну и пару полосок штырьков и соответ. им мам.

Самое ответственное — изготовление печатки. ( готовый Word-овский файл для печати и а).

Еще раз повторюсь, от качества изготовления печатки зависит ВСЕ!!!

Готовую (вытравленную) плату необходимо залудить. Хотите красоты — воспользуйтесь сплавом Розе. Думаю, без труда в инете найдете описание этого метода. Ну а можно по старинке флюсом и припоем.

Для красоты и удобства на лицевую сторону можно нанести (тем же лутом) расположение элементов и надписи.

Осталось аккуратно запаять элементы. Начинайте с перемычек, потом пассивные элементы (резисторы, конденсаторы, кварц), далее светодиоды, разъемы, колодки. Все паяем без “соплей” и “коротышей” 🙂

Вид со стороны пайки.

А от и результат. Мой вариант — далеко не эталон, но вполне работоспособен 🙂

Итак, 2/3 дела сделано. Осталось “вдохнуть жизнь” — прошить плату загрузчиком. 🙂

Для этого нужно изготовить небольшой программатор.
Вот схема:

А вот реализация в “железе”:

С официального сайта скачиваем софт. Устанавливаем. Запускаем.

Идем по пути: [TOOLS] -> [BOARD] -> [ARDUINO NG or older w/ ATmega8]

Подключаем программатор к Arduino, разъем в LPT, на Arduino подаем питание

и в программе запускаем [TOOLS] -> [PROGRAMMER]

Выбираем тип программатора (для нашего кабеля — Parallel Programmer):

Ну, с богом 🙂 Запускаем [TOOLS] -> [BURN BOOTLOADER]Не унывайте, если с первого раза получите сообщение об ошибке. Повторите пока не получите заветную надпись:

Вот и все! Теперь можно приступать к экспериментам! У Вас на руках настоящий (100%) Arduino!

Для заинтересовавшихся пару полезных ссылок по теме Arduino:

http://arduino.cc/

Источник: https://ghost-d-oleg.livejournal.com/20432.html

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}