пʼятницю, 6 квітня 2012 р.

Arduino – огляд посилань

Arduino -- платформа надзвичайно популярна, не писав про неї хіба що зовсім лінивий. Тому я в деталі не вдаватимуся. Для тих, хто раніше не чув, це така відкрита апаратна платформа, для побудови власних "інтелектуальних" саморобок. Цитуючи офіційний сайт: "It's an open-source physical computing platform". Вона включає цілий асортимент плат (див. праворуч), що містять недорогі, але потужні мікроконтролери сімейства AVR, фірми Atmel; "мову програмування" Wiring, яка фактично являє собою C/C++ з спеціальною ардуїнівською стандартною бібліотекою (компілятор -- звичайний gcc для AVR) та набором зручних для початківця додаткових бібліотек; оболонку-IDE; і, що особливо важливо -- цілу субкультуру розробників, фанатів, прихильників, що породжує безліч апаратних та програмних рішень, зокрема готових бібліотек для роботи з найрізноманітнішою периферією. Для полегшення розробки розширень плати мають стандартизовані параметри, і для них існують плати розширення -- "shields", що додають певні можливості -- доступ до Ethernet-мереж, читання SD-карток, тощо. На загал -- ідеальна платформа для початківця у світі мікроконтролерів та embedded-програмування чи програмістів, яким захотілося побавитися із "залізом".

Писати щось конкретне про цю платформу я не поки не буду, лише зроблю невеликий огляд посилань, якими користуюся, і які доводиться регулярно розшукувати. В першу чергу - для себе, бо останнім часом починаю блукати у колекції посилань. За компанію може придасться ще комусь :-) Посилання пов'язані не тільки (і не стільки) з Ардуїно безпосередньо, скільки з багатьма задачами, що виникають в процесі роботи, програмними, схемотехнічними, вибором і закупкою обладнання, тощо.

Основні джерела інформації

  • Офіційний сайт -- http://arduino.cc. Зокрема -- основні види плат, програмне забезпечення, офіційна документація і приклади вирішення типових задач, блог та де можна купити (хоча, краще знати свої, більш вигідні, місця :). Мова - англійська. Крім того -- переклад офіційної документації та інших матеріалів на російську (наскільки якісний, автентичний та актуальний - фахово не скажу): http://arduino.ru/.
  • http://easyelectronics.ru/ та http://we.easyelectronics.ru/. Проект, охарактеризувати який трохи бракує слів. Кількість інформації порівняна із помітною частиною інших згаданих тут сайтів разом взятих. При тому гарно, просто і зрозуміло поданої інформації. Взагалі, про Arduino там майже не згадується. Однак охоплено практично всі суміжні теми. Перераховувати тут немає ні сенсу ні можливості. Лише вибірково: курс AVR, курс ARM, в основному по серії STM32; керування потужним навантаженням: 1, 2, 3, 4; електронний компас-акселерометр LSM303DLH, виготовлення плат в домашніх умовах ("ЛУТ"), різні радіомодулі, опис роботи шини I2C, список халяви в Інтернеті -- виробників, що розсилають різноманітні безкоштовні зразки, ПЛІС, і багато-багато іншого. Велика кількість літератури. Невеликий власний Інтернет-магазин. Увага, на сайті багато матьорих електронщиків-снобів, слово Ардуїно -- мало не матюк, однак лякатися їх не слід :-) Мова - російська.
  • Так як Ардуїно - продукт із відкритими джерельними "кодами", існує багато більш чи менш сумісних клонів, їх список можна подивитися тут: List of Arduino compatibles. Поміж них вартує глянути, зокрема, на Freeduino, Seeeduino, та CraftDuino від російських розробників. 
  • Заслуговує окремої згадки підрозділ офіційного сайту -- "The Arduino Playground", з безліччю прикладів використання Ардуїно та вирішення конкретних задач. Якщо потрібно під'єднати LCD-дисплейчик, стерти EEPROM, налагодити спілкування двох плат через той чи інший канал чи ще щось подібне, пошук інформації варто починати там. Хоча, здебільшого виклад надміру лаконічний, і закінчити пошук теж там вдається не завжди :-) Мова - англійська.
  • Достойний блог, присвячений, в тому числі, Ардуїно -- mk90.blogspot.com. Мова -- російська. Приклад (далеко не вичерпний!) висвітлених тем: огляд Ардуїно-сумісних плат, огляд кращий шилдів, різноманітні новини світу Ардуїно, уроки для новачків: Урок 1. Из чего состоит ArduinoУрок 2. ArduinoIDEУрок 3. Из чего сделан скетч?http://mk90.blogspot.com/2010/06/wiring-4.htmlУрок 5. Нажми на кнопку!Урок 6. Что за ШИМ? . Крім того, автор має власний, доволі пристойний Інтернет-магазин, на жаль в Росії. (Доставка за кордон є, але купити безпосередньо в Україні простіше). Випускає власні варіанти Ардуїно-подібних плат, наприклад: мікроплатку на базі ATmega8U2, варіації на тему Freeduino, Angelino, тощо.
  • Англомовний "Enjoying Arduinos and their Clones" -- http://sheepdogguides.com/arduino/artut.htm. Детальний навчальний курс: ARDUINO COURSE -- блимання світлодіодами 1, 2, 3, 4 (типовий "Hellow world" світу мікроконтролерів); аналогово-цифрові перетворювачі (АЦП, ADC) 1; послідовна ("серіальна") комунікація: 1, 2; кнопки 1, 2, 3, 4, і багато іншого. (Мій опис уроків дещо довільний, деякі з них охоплюють кілька тем, намагався підібрати найбільш точну відповідність з точки зору людини, що шукатиме інформацію). Різноманітні How-To, наприклад: як підключити LCD-дисплей, ультразвуковий "радар",  інфрачервоний дальномір, 7-сегментний LED-індикатор, робота з інфрачервоним пультом, веб-сервер з Ардуїно 1, 2;і багато іншого. На загал, коли я починав, це був незамінний сайт, та й зараз часто повертаюся до нього. 
  • Уроки роботи з ардуїно: http://tronixstuff.wordpress.com/tutorials/. Англомовний.  47 уроків! З фото і відео. Повний список занадто великий, щоб перераховувати тут. Вибірково, в рекламних цілях: Урок 14, робота з радіомодулем XBee, Урок 15, "хак" RFID-ключів (вони якраз останній час популярні в "домофонах"), уроки 17, 19 -- робота з GPS; уроки 26, 27 -- робота GSM-модулями. Це все -- не говорячи про базові знання, та менш ефекті, але дуже потрібні речі, такі як шини I2C та SPI, робота з зовнішньою пам'яттю, регістри-фіксатори (latch), TFT, LCD, LED-дисплеї.  
  • Славнозвісний сайт LadyAda: http://www.ladyada.net. Англомовний, і доволі популярний в англомовному світі. Містить багато різноманітних проектів, зокрема присвячених Ардуїно і суміжним питанням. Уроки Ардуїно (куди ж без них :), уроки AVR, контролерів, що використовуються в Ардуїно, використання різноманітних компонент -- LCD, світлодіодів, сенсорів нахилуІЧ-детекторів, термопар, сенсорів сили тиску. Опис багатьох шилдів, способів працювати з ними та, за потреби, виготовити самостійно --  GPS Shield, шілд журналювання, Ethernet Shield, Motor Shield, для контролю двигунів постійного струму, крокових двигунів, сервомашинок, аудіо-шилд (Wave Shield),  та навіть прото-шилд, макетна плата для виготовлення саморобних шилдів. Власниця сайту має свій Інтернет-магазин -- http://www.adafruit.com/, більшість компонент, про які пише на http://www.ladyada.net можна зразу і купити. Популярний на Заході, ціни цілком адекватні, (з поправкою на те, що більшість ЇХ цін для нас троха завеликі), правда як із оплатою з України та доставкою в Україну -- не знаю.
  • Сайт любительської робототехніки -- RoboCraft.ru. Багато цікавих статей, як в загальному по Ардуїно, його бібліотекам, так і по більш вузьких темах -- шини SPI та I2C, сервомашинки, датчики, програматори. Темою Ардуїно, природно, не обмежується -- є статті про ARM, зокрема  STM32-плати (про них напишу окремо) і Raspberry PiСomputer Vision, і огляду різних цікавинок світу саморобних роботів. Як вже згадувалося, розробляють власний клон Ардуїно, CraftDuino, мають Інтернет-магазин. На жаль, в Росії, хоч і з доставкою за кордон. Мова - російська.

Вартують також уваги деякі інші сайти:

Як бачите, написати щось нове на тему Arduino вже доволі тяжко :-)
Багато із згаданих вище проектів мають також свої форуми, де можна знайти вирішення багатьох проблем, або й запитатися щось.

Магазини відповідного обладнання теж, як бачите, тема популярна. Ймовірно, як і в інших подібних сферах, наприклад любительській астрономії, хоббі стимулює на пошук коштів для нього, в тому числі і продажем з консультаційною підтримкою відповідного обладнання.

Щодо покупки. Безпосередньо із закордонними магазинами я поки не працював, однак відгуки, в тому числі і з перших рук, в основному цілком позитивні. STM32VLDiscovery та купу всілякого необхідного при возні з контролерами дріб'язку, типу регістрів-фіксаторів, твердотільних реле, фото/світло діодів, транзисторів, модулів пам'яті, і т.д. і т.п. я купляв на "Космодромі", харківському магазині.  Враження хороші. Ціни, в порівнянні з іншими українськими Інтернет-магазинами, помірковані. Замовлення із 57 позицій, практично всі - в одному екземплярі, більшість вартістю порядку гривні, комплектувалося, щоправда, дня чотири. З одного боку, довго, з іншого, не дивно. Кожна позиція була окремо упакована в целофановий пакет, разом утворюючи своєрідний захисний "клубок", на манер ватяного, все це разом - в картонній коробці. Повеселило те, що в одному пакетику було 75 копійок -- якраз вартість відсутнього світлодіода :-) Очевидно, не виявилося на складі. Їхало "Новою поштою", добу. Робота із сайтом, правда, вимагає певного "навику". Наприклад, пошук відрізняє великі та малі букви, однак шукає по підстрічках, це навіть зручно, проте слід звикнути. Корзина не без косяків: час життя невеликий; в домені з www і без нього вона різна, при тому частина внутрішніх посилань ідуть так, частина по іншому, слід бути уважним. Мінімальне замовлення було 100 грн, до 200 грн додається комісія 15 грн. На загал, попередньо (бо тільки раз замовляв) -- рекомендую.

На завершення -- в околицях першого квітня, (тому довелося перевіряти, чи це не жарт), Дмітрій Грінберг запустив на контролері лінійки AVR Linux. Ще раз: умудрився запустити Лінукс на комп'ютері, із 8-бітним процесором, частотою 24МГц, 16 кілобайт оперативної пам'яті (ATmega1284P). При чому, проблему 8-бітності вирішив просто -- написав для нього емулятор ARM, з яким у Лінукса проблем немає... Пам'ять розширив за допомогою старенького, епохи 286-х, SIMM-модуля, оновлюючи його самостійно, кожних 62 мілісекунди (нагадую, RAM слід з певною частотою оновлювати, він "забуває", на наших звичних комп'ютерах цим займається контролер пам'яті). В ролі жорсткого диска звичайна SD-картка. Ефективна частота такого "процесора" складала 6.5кГц до оптимізації, 10 -- після. Лінукс, якщо його попросити зразу запустити bash ("init=/bin/bash") завантажувався дві години, повне завантаження Ubuntu в консольному режимі -- годин 6. Реакція на прості консольні команди -- порядку хвилини. Детальніше можна почитати тут: Photos Linux on an 8-bit micro?, там же можна навчитися так збочуватися і самому :-)

Так як пост вже доволі великий, посилання стосовно конкретних тем будуть йти окремими нотатками. Якщо бачите помилки та неточності, маєте що додати, або є питання -- пишіть!  

Немає коментарів:

Дописати коментар