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, мають Інтернет-магазин. На жаль, в Росії, хоч і з доставкою за кордон. Мова - російська.
Вартують також уваги деякі інші сайти:
- Безліч проектів, в тому числі і на Ардуїно: http://www.instructables.com/. На сайт слід дивитися самому, описати його складно. Хоча мені він чисто суб'єктивно не дуже подобається, цінної інформації і готових рішень там багато. Приклад -- кілька простих, але оригінальних та кумедних роботів. Мова - англійська.
- Circuits@Home -- http://www.circuitsathome.com. Блог, присвячений контролерам та електроніці. Традиційно, є свій магазин. Автор розробив ряд плат, поміж них -- USB-host шилд, з відповідною програмною бібліотекою, безперечно дуже корисна річ!, та USB Isolator board, що забезпечує електричну ізоляцію USB-пристроїв, не заважаючи передавати дані. Приклади статей: серія по взаємодії з GSM-модулем чи телефоном, за допомогю USB-host плати 1, 2; робота з XBee 1, 2, 3, 4, 5; та багато іншого. Мова - англійська.
- Інтернет-магазин http://www.sparkfun.com, містить розділ із навчальними матеріалами, від детального опису, як відбувається прошивка, що таке осцилятор і навіщо він контролеру, до вибору корпуса мікросхем, роботи з датчиками сили тиску, підключення сенсорів, які працюють на 3.3В до контролерів, що люблять 5В та виготовлення USB-мишок і клавіатур із чорт зна чого. Мова - англійська.
- Різноманітні проекти на базі Ардуїно: http://luckylarry.co.uk/arduino-projects/. Приклад, в цілях реклами -- радар на базі Ардуїно та ультразвукового/інфрачервоного дальномірів: 1, 2, 3. Плануєте якусь нетривіальну конструкцію - прогляньте. Принаймні заразитеся ідеями та підходами. Мова - англійська.
- Статті журналу "Радиокот": http://radiokot.ru/articles/. Загально-радіоелектронної направленості, є багато статей, цікавих й ардуїнолюбам. Наприклад: мікросхеми-таймери 1, 2; шина 1-wire, протоколи ІЧ-пультів, 1, 2; стаття про про плати STM32F10x (про них напишу окремо), і багато інших. Містить ввідний курс в цифрову та аналогову електроніку, опис різноманітних (потенційно саморобних ;) пристроїв та технологій. Мова - російська.
- Блог магазину SK Pang Electronics: http://www.skpang.co.uk/blog/. Нічого особливого, але пара цікавих статей є, наприклад "Faster IO on the Arduino", "Using serial LCD in I2C mode", "High Speed ISO9141 Interface" -- швидкий аналог оптопар. Що із себе являє магазин - не знаю, не вникав. Мова - англійська.
- Всього декілька статей є в цьому блозі: http://aterentiev.livejournal.com/tag/arduino , поміж них вартує уваги "Низкоуровневое чтение SD карты". Мова - російська.
- Блог Vanyamba uses Linux. Ряд цікавих статей, наприклад: порти вводу-виводу, таймери, переривання, аналогові компаратори, генерація сигналів, підключення кнопки/діода/динаміка, підключення мікрофона. Мова - російська.
- http://myrobot.ru -- сайт робототехнічної тематики, говорячи канцеляритом. Містить розділ "Шаг за шагом" із всілякими корисними статтями, зокрема приклади простих роботів для власноручного виготовлення та стаття про драйвери двигунів L293D. Щось практично цікаве можна накопати і в розділі статей. Мова - російська.
- Блог людини, що пише книжки на "нашу" тематику: http://smileymicros.com/blog/. Вибірка статей: UART, USB to UART, FT232R: 1, 2, 3, 4, 5, 6, 7 ; SPI: 1, 2 та інші.
- На Хабрахабрі є розділ присвячений Ардуїно та суміжний за тематикою розділ саморобок (DIY). Чисто в рамках реклами, крім опису саморобних квадрокоптерів, механічний дисплей 1, 2; гра "Полювання за качками", і багато іншого. Мова - російська.
- http://www.gaw.ru/. Велика підбірка інформації російською мовою стосовно електроніки -- мікроконтролери, компоненти, даташіти і т.д. Контролери, різноманітні мікросхеми по фірмах-виробниках. Якщо з англійською туго -- просто незамінний ресурс. Ілюстративно, один із кількох тисяч документів -- список 8-бітних контролерів Atmel, з посиланнями на даташіти. Мова - російська.
- http://www.getchip.net -- блог, присвячений різноманітним відносно простим електронним конструкціям. Приклади статей: серія про ІЧ (інфрачервоний)-1WIR: 1, 2, 3; огляд UART, огляд SPI, огляд ATtiny13, програматор для нього. Мова - російська.
- http://www.engblaze.com/. Розділи, присвячені Arduino, AVR. Приклади оригінальних публікацій (не оглядів статей з інших сайтів): переривання 1, 2; режими енергозбереження AVR/Arduino 1, 2, 3; огляд книг, присвячених Ардуїно, використання AVR Studio 5 з Ардуїно. Мова - англійська.
- Розділ прикладів Інтернет-магазину Robot Electronix: http://www.robot-electronics.co.uk/acatalog/examples.html. Уроки роботи з шиною I2C, різноманітними датчиками, наприклад ультразвуковим дальноміром, і т. д. Мова - англійська.
- http://www.virtualbreadboard.net/ -- віртуальна макетна плата з можливістю моделювання та підтримкою Ардуїно і великої кількості периферії. На жаль, платна. Мова - англійська.
- Підручник асемблера мікроконтролерів сімейства AVR: http://www.avr-asm-tutorial.net/avr_en/. Мова - англійська.
- Сайт Peter Fleury, http://jump.to/fleury і http://homepage.hispeed.ch/peterfleury/. Засоби розробки для AVR. Особливо варті уваги бібліотеки I2C Master Interface, LCD library for HD44870 based LCD's, UART library. Мова - англійська.
- Невеличкий тематичний блог: http://arduino-ru.blogspot.com. Приклад статті - пристрій адміна-параноїка. Мова - російська.
- Ще один блог, з певною кількістю статей по темі, помітна частина у формі відеоуроків: http://filear.com. Приклад статей: осцилограф на базі Ардуїно, інтелектуальні двері курятника, та серія "What is": "a Photo Resistor", "a potentiometer", "a diode", "a transistor", "a Peltier Cooler" і т. д. Мова - англійська.
- http://arduiniana.org -- сайт автора ряду бібліотек для Ардуїно. Зокрема, NewSoftSerial, яка зараз входить в "офіційний" комплект, Flash для зручної роботи із FLASH-памяттю контролера (PROGMEM), TinyGPS, потоки в стилі C++ Streaming, які не використовують жодних ресурсів сама по собі(!) та інші. Мова - англійська.
- http://roboforum.ru. Багато інформації для початківців у робототехніці, приклади конструкцій роботів. Зокрема, підбірка готових рішень, від геометрії, через електронні компаси та драйвери двигунів до механіки. Мова - російська.
- "AVR и PIC учебный курс начинающим с нуля". Мова - російська.
- Інтернет-магазин http://www.cutedigi.com, містить трішки забавних статей, наприклад про підключення EEPROM за допомогою I2C. Мова - англійська.
- http://tinkerlog.com/, трапляються цікаві проекти, наприклад Flickr images on a Nokia LCD. Мова - англійська, місцями німецька.
- http://bsvi.ru -- статті, присвячені embedded-розробці. Наприклад "BAM: Альтернатива ШИМу", використання шаблонів програмування в embedde-рстві, offsetof(s, m), "Веселые даташиты", "Обзор stm8", "Тепловые расчеты" та список "халяви" :-). Мова - російська.
- На сайті відомого виробника мікросхем Maxim є розділи Application Notes та Tutorials, що містять багато цікавого матеріалу. Наприклад: "1-Wire Search Algorithm", "Overview of Sensor Signal Paths", "Using a UART to Implement a 1-Wire Bus Master", "Determining Clock Accuracy Requirements for UART Communications", і т.д. і т.п. Мова - англійська.
- http://www.uschema.com -- цифрова радіоелектроніка та суміжні питання. Огляд STM32, власна плата ARM7MODA, і т. д. Мова - російська.
- Цікаві ідеї можна почерпнути і тут: http://microchips-pic.blogspot.com, хоча статті зазвичай дуже лаконічні і розповідають про чужі наробітки (як я нічого не поплутав :). Детальний опис пристроїв зазвичай доступний для скачування. Приклад -- "Digital Camera Interface", "Wireless Graphic LCD", і т.д. Мова - англійська.
- Шпаргалка по Ардуїно: http://robodino.org/resources/arduino. Мова - англійська.
Як бачите, написати щось нове на тему 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?, там же можна навчитися так збочуватися і самому :-)
Так як пост вже доволі великий, посилання стосовно конкретних тем будуть йти окремими нотатками. Якщо бачите помилки та неточності, маєте що додати, або є питання -- пишіть!
Немає коментарів:
Дописати коментар