Я розумію Ардуїно: тепер що?


18

Гаразд, я досить добре зіграв з Ардуїно, щоб мені було дуже комфортно. Все, що зараз робиться, - це більше навчання електроніці, ніж її ардуїнська сторона.

Який наступний крок для мого навчання? Arduino - це комбінований програміст / контролер, тому, мабуть, мені потрібно перервати це посилання та почати працювати з мікросхемою контролера, окремо від контролера? Чи може хтось вказати мені в правильному напрямку?


Ви маєте на увазі певну мету чи проект?

Я згоден. Для мене це все, що стосується конкретних речей. Arduino - це просто інструмент, як і все інше.
Дірк

Я зараз працюю над мультиплексованим світлодіодним масивом. Не так складно в Ардуїно, але я хочу позбутися тренувальних коліс. Я маю на увазі, зрештою, на платі Arduino є чіп ATmega168. Якби я міг зрозуміти, як безпосередньо з цим працювати, я думаю, що це задовольнило б те, що я намагаюся досягти.
Кріс Б. Беренс

Ви насправді досить прямі до фішки з Arduino. У ньому не так багато драйверів або що-небудь прикріплене до шпильок. Заголовки прямують туди. Можливо, хлібний бардуїно?
AngryEE

@angryee - Я думаю, що Кріс означає, програмуйте чіп ATmega безпосередньо, без бібліотек Arduino IDE +, які можна розглядати як навчальні колеса.
Дж. Полфер

Відповіді:



12

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

Почніть з робочої програми та замініть виклики бібліотеки Arduino власними версіями однією функцією. Ви дізнаєтесь багато про регістри управління, терміни, бітові операції тощо, якщо у вас вже цього немає. Читайте таблицю даних ATMega328 глибоко - все, що вам потрібно, є там.

Спробуйте інший IDE, наприклад AVR Studio або Code :: Blocks. Вивчіть ланцюжок інструментів GCC. Спробуйте більш вдосконалені методи кодування - тестові одиниці, покриття, профілювання, перевірка ворсинок / шини. Покладіть RTOS на Arduino.

Комбінований програміст / контролер не є ознакою слабкості - це лише вибір дизайну. Єдина «слабкість», яка може бути наслідком цього, - це відсутність налагодження в ланцюзі. Купіть AVR Dragon, і вам доведеться це облизати за 50 доларів.


9

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

Ось деякі недоліки Arduino:

  • Тематика, тобто виконання двох розділів коду, переплетених так, що, здається, вони виконуються одночасно
  • Інтернет-матеріали середньої або високої пропускної здатності, як-от потокове аудіо
  • Серйозні обчислення або завдання, які вимагають швидких обчислень для швидкого реагування
  • Все, що полегшується, маючи навколо себе файлову систему, наприклад обробка даних або обробка зображеннями

Я можу уявити два напрямки:

  1. Більш потужні вбудовані дошки з невеликими операційними системами, наприклад, Beagleboard або Gumstix
  2. Стиснення більшої продуктивності з дрібних мікросхем Atmega за допомогою апаратних переривань.

Я можу додати більше деталей, якщо ви прокоментуєте, який напрямок є більш привабливим. (Другий, безумовно, дешевший.)


Це смішно ... програмування подібного чіпа робити те саме, але з більш складними засобами - це саме те, що я маю на увазі :). Трохи досвіду - я архітектор програмного забезпечення з багаторічним досвідом. Програмне забезпечення, обчислення, файлова система ... все це для мене найлегше. Що мені насправді потрібно відбити головою, - це електроніка. Причина, чому я хочу вийти за межі Arduino, полягає в тому, що я хочу мати можливість виробляти пристрої єдиного призначення, які не мають фізичних (і цінових) витрат на плату Arduino. Я думаю, що з того, що ти сказав, №2 - це те, що я шукаю.
Кріс Б. Беренс

Нічого ... цей коментар звучав справді егоїстично. Я цього не мав на увазі ... так чи інакше, я просто мав на увазі, що я хочу позбутися колеса тренувань з обладнання, яке мені дає Arduino. Зокрема, я працюю над світлодіодним масивом, подібним до LOLShield, хоча я думаю, що замість цього я мультиплексую. Я можу це зробити з Ардуїно, але без цього мені потрібен певний напрямок. ТІА.
Кріс Б. Беренс

Ах, більше електронних речей замість програмного забезпечення-у ... речі. Можливо, ви отримаєте хороший досвід роботи з датчиком взаємодії / обміну даними. Це не гламурно, але для інтерфейсу датчиків до вашої плати вам потрібно буде дізнатися ще кілька речей про обладнання. У Arduino насправді не так багато навчальних коліс для апаратного забезпечення - звичайно, не так багато, як програмного забезпечення. Можливо, робот, який включає в себе кілька різних типів датчиків - ультразвуки, ІЧ-відстань, кодер вала тощо. Безумовно, це можливо лише за допомогою Arduino та багато іншого обладнання.
AngryEE

7

Дізнайтеся I2C, SPI, 1wire і спробуйте з'єднати датчики з такими інтерфейсами. Прочитайте багато таблиць даних таких датчиків і спробуйте зрозуміти все, що в них. Задавайте питання, коли застрягли. Дізнайтеся про MODBUS (RTU / ASCII / TCP) або подібний протокол, який може відкрити ваш пристрій у світі, як тільки ви вставите його в пристрій. Вивчіть загальну електроніку та спробуйте встановити інтерфейси реле, триаки, що підтягується та штовхає, що шукає та тоне, як малювати схеми та підключати основні драйвери до MCU.


6

Для початку ви можете перейти від Arduino як платформи до AVR як платформи. Тобто, навчіться програмувати / використовувати незайманий мікроконтролер AVR для своїх проектів замість Arduino. Таким чином, вам не доведеться купувати іншу дошку Arduino для кожного з ваших проектів або для роботи з друзями. Це досить простий крок (Arduino - це лише звичайний мікроконтролер Atmel AVR, але зі спеціальною платою та завантажувачем), але він є великим для продажу / надання проектів друзям. Пакет інструментів також схожий: ви використовуєте avr-gcc або avr-g ++ з make в поєднанні з утилітою програмування для встановлення програми.


Досить просто завантажити завантажувач на мікросхему і припаяти власну дошку, якщо ви хочете подарувати проект. Або замовити комплект RBBB за 12,50 доларів ( goo.gl/0yqr ) не потрібно купувати плату за 30 доларів + для кожного проекту Arduino.
Даворак
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.