Boys and their toys

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

Arduino Uno.

“Arduino — это электронный конструктор и удобная платформа быстрой разработки электронных устройств для новичков и профессионалов. Платформа пользуется огромной популярностью во всем мире благодаря удобству и простоте языка программирования, а также открытой архитектуре и программному коду. Устройство программируется через USB без использования программаторов.

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

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

Народ делает на основе ардуино-подобных плат порой какие-то совершенно фантастические вещи, ну а я пока по-простому хочу робота а-ля “машинка”, чтобы сам ездил, уворачиваясь от препятствий. А для начала, т.к. никакой механики пока нет, балуюсь с разнообразными “hello world” – т.е. заставляю его мигать светодиодами, пищать пищалкой и выпрашиваю разрешение потратить бабло на разные клевые сенсоры (к примеру, более-менее хороший фотодиод стоит полтыщи! ИК обошелся чуть подешевле, рублей триста. Моя встроенная жаба негодует).

Макетная достка для прототипирования – мегахрень!

Позволяет НЕ ПАЯТЬ ) Чур не ржать, у некоторых тут нет технического образования и ваще хоть каких-то знаний в этой области, так что для меня это маленькое, но важное открытие. Не, у меня был электронный конструктор, но тут все по-врослому )
На доске можно собрать схему, поэкспериментировать с ней, с софтом, а уж потом, если все зашибись, и необходим хардварный вариант девайса, уже распаять все на плате, запихнуть в красивый корпус и т.д.

Далее. Чтобы записать на микроконтроллер (т.е. мозг и сердце ардуино, далее – мк) свою прогу, нужен программатор. Ура, в ардуино он уже встроен, а также встроен юсб-порт, поэтому этап заливки нового софта сводится к подключению девайса к компу и нажатию на кнопку “Upload” в IDE (т.е. проге для разработчки софта для ардуино).
Собственно, сам софт пишется на С-подобном языке, в котором взаимодействие с компонентами платы облегчено наличием спецбиблиотек и функций.
Например, чтобы считать показания с аналогового порта, нужно сделать analogRead(<номер порта>), а чтобы послать сигнал на порт – analogWrite(<номер порта>,<нужная циферка>). Аналогично – с цифровыми портами (некоторые из которых умеют имитировать аналоговые, какая прелесть). Послать что-нибудь на ком-порт (ну да, с юсб он виртуальный, но какая разница) – Serial.println(‘hello world!’). И тут же на экране компа в мониторе ком-порта увидишь посылаемое.
И т.д.
Как мне пока кажется, с софтверной точки зрения тут проще, а вот собрать работающую схему и чтобы ничего не спалить при этом… Впрочем, тут легче- я главный разработчег, а не главный инженер, так что есть на кого все свалить, есличо ) А если серьезно – надо тоже вспомнить хоть азы физики и электричества. А то на одной только интуиции далеко не уедешь. Это сегодня я удачно “починил” фотосенсор, наугад вытащив из схемы нужный резистор, после чего эта фотоскотина наконец-то начала нормально реагировать на изменение освещенности. А чуть позже, опять же удачно, не спалил светодиод, вытащив второй резистор (стало интересно, что будет, ага) – просто светодиод к тому времени был заменен на пищалку, которой, как оказалось, пофиг то напряжение, которое бы светодиод непременно спалило бы.

Сейчас главная задача, кроме “поиграться со светом” – настроить ИК-сенсор. Насколько удалось понять, нужен генератор на 30 кГц. Или софтовый, или аппаратный.

Мало того, что для ардуино можно покупать кучу всякой хрени из ассортимента “Чип и Дип”, так еще и есть куча разных плат расширений – ethernet, bluetooth, gps и т.д. Короче, еще один способ потратить кучу денег на всякую интересную хрень (((

А еще, как оказалось, текущая прошивка Arduino Uno и debian-based линукс имеют один весьма неприятный баг, при неумелом или невнимательном обращении способный превратить плату в кирпич, игнорирующий попытки перезалить кривой софт, но про это надо отдельный пост, а то щас уже заколебало писать ) Пойду еще поиграю в электрика, а вы хоть кто-нибудь напишите, что завидуете, а то чувствую себя последним задротом эльфом 80-го уровня и ботаником )))


You can read this post at tygernach.livejournal.com.