Для досвідченого програміста Ардуїно чи чогось іншого?


11

Моє передумови:

Я працював програмним забезпеченням досить довго, і я більш-менш знаю на C, C ++, Java, Ruby, Erlang, Haskell, Lua та Python. Я також взяв клас з лабораторії електроніки, але крім однієї короткої лабораторії з насосом, це було все про отримання сигналу в / в / в, а звідти в x86 з LabView ( не мій вибір середовища програмування), я хотів би щоб повернутися до майстерності обладнання з оглядом до домашньої автоматизації. (Я думаю, що я можу зробити краще, ніж це за менше $ 500)

Питання:

Я збирався різати зуби на Arduino, але чим більше я читаю, тим більше відчувається, що головна перевага цієї системи полягає в тому, що це просто програмувати. Це гарне місце для програмного забезпечення (якому ще потрібно придбати паяльник) хлопця, щоб почати чи є щось, що мені більше підійде?

(PS У мене більше часу, ніж гроші)

Відповіді:


4

Що стосується мікроконтролерних плат eval, готових до використання поза воротами, то, звичайно, є сім'я arduino. але також розглянути можливість запуску msp430 за $ 4,30. хороший набір інструкцій та схожість у виконанні на avr із нахилом до низької потужності / вартості. За 20 доларів ви можете отримати відкриття stm32f4 (не плутати його з відкриттям рядка значень stm32 або сімейством stm8), яке, як правило, менше, ніж ви б заплатили за придатний ардуїно ($ 35 - $ 50), але працює по колу навколо плавучої точки Arduino 168 МГц. одиниця, кеші тощо. У верхньому кінці цінового діапазону ардуїно є ще один кронштейн mbed (mbed.org), який, мабуть, є найближчим до досвіду пісочниці ардуїно.

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

Ви можете отримати набагато більше продуктивності, пограбувати своїм доларом тощо, якщо візьмете на себе трохи більше відповідальності та знань про те, що відбувається. Я рекомендую всі три платформи (avr, msp, arm / thumb) та кілька постачальників (avr і msp заблоковані, але рука продається всіма з різною периферією та входом / виводом). Наприклад, ви можете бути використані на платформі, яка не має підтягувань на лініях gpio, і вам доведеться використовувати зовнішні компоненти, коли інший чіп або постачальник забезпечує це на чіпі за порівнянною ціною / продуктивністю. Так само, можливо, вам подобається трохи бити послідовний порт або шину spi, але виявите, що за ті ж гроші, потужність, розмір тощо інший постачальник має обладнання для надання допомоги в цьому інтерфейсі.

якщо нічого іншого вам не цікаво як програміст і хтось, хто хоче зайнятися електронікою хобі, щоб дізнатися більше про те, що відбувається поза пісочницею. Як спосіб потрапити в цей світ хобі-електроніки, ардуїно - це дуже комфортний перехід від прикладного програмування на операційній системі. Тепер у sparkfun є кілька комплектів, які включають серійний інтерфейс і кілька периперхалів, є набір lilypad (платформа arduino) і, можливо, про комплект, і те, і інше, не є фактором форми arduino щита, якщо це має значення. sparkfun продає роздрібні коробки та багато інших ароматів arduinos, uno тощо. (St та msp дошки, згадані вище, ви повинні почати на веб-сайті ti або st або перейти на github.com/dwelch67, і у мене є посилання на різні дошки в моєму приклади).


8

Я також програмний хлопець по днях. Близько десяти років тому я почав працювати з марками BASIC від Parallax, і після довгого проміжку я нещодавно повернувся до вбудованих проектів. Спочатку я подивився на Arduino та його різні частини і зрозумів, що я можу просто пропустити повз цінник борту Arduino та захопити деякі ATMega168 та почати знову. Це працювало здебільшого, однак я часто стикався з питаннями, коли мати попередньо складену дошку було б добре, оскільки я не міг закрутити основну збірку.

Зрештою я замовив Arduino і люблю все, що стосується дошки та бібліотек. Я не прихильник "IDE", тому натискаю "Використовувати зовнішній редактор" і використовую IDE виключно для компіляції та прошивки програмного забезпечення на дошці. Зазвичай я починаю проект або ідею з дошки Arduino, а потім переношу її в мега-чіп. Це допомагає зменшити витрати, використовуючи лише необхідні деталі для проекту, але це все ще дозволяє мені швидко придумати прототип.

Удачі!


6

Arduino - це чудовий вступ до програмування мікроконтролера.

Існує велика різниця між написанням програмного забезпечення для ПК та написанням мікропрограми для мікроконтролера.

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

Але, як я кажу, це вступ.

Почніть з Ардуїно, потім переходите до більших і кращих речей.

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


6

Оскільки "Arduino" містить декілька речей, я думаю, може бути корисним подивитися на них окремо:

  • З боку обладнання апарат, сумісний з Arduino, - це в основному мікроконтролер ATMega з певним завантажувачем. Зазвичай готові плати, сумісні з Arduino, також включатимуть іншу підтримку електроніки, наприклад, інтерфейс USB або послідовного порту, регулятор напруги, штифтові заголовки для легкого доступу до штифтів і т. Д. Апаратні пристрої досить доступні, якщо ви хочете функціонувати через USB та разом із заздалегідь запрограмованим завантажувачем, це позбавить вас від необхідності придбати окремого програміста для завантаження програмного забезпечення. Отже, так, Arduino (і сумісні клони) корисні як апаратні пристрої під час прототипування; для остаточної збірки ви, можливо, захочете створити свою власну лише частину, яка вам потрібна, тому вам не потрібно вводити по одному повного Arduino у кожен проект.

  • Що стосується програмного забезпечення, то бібліотека Arduino - це як будь-яка бібліотека програмування, і її корисність залежить від ваших потреб. Особисто мені здається, що це іноді корисно для швидкого прототипування (наприклад, функціональність послідовного порту), але як досвідчений програміст мені не подобається багато спрощень (особливо нумерація штифтів). У будь-якому випадку ви можете легко використовувати оригінальні бібліотеки AVR замість бібліотеки Arduino, або на додаток до них, навіть якщо ви програмуєте пристрій Arduino та / або використовуєте ID Arduino IDE. Отже, використовуйте будь-які бібліотеки Arduino, які вам здаються корисними, особливо при прототипуванні, але вивчайте базовий AVR, коли ви йдете разом (див. Аркуш джерел Arduino & ATMega).

  • Нарешті, IDE Arduino - це графічне середовище програмування з простим редактором, консоллю послідовного порту, системою складання «make» (прихованою від користувача) та (передній для) інструментами для завантаження програмного забезпечення на фактичний пристрій . Особисто я ненавиджу IDE і ніколи не використовую його, вважаючи за краще працювати в командному рядку, але очевидно, це лише питання особистої переваги.


1
Я не знаю, як вони можуть називати це чудовисько IDE. Це найжахливіший фрагмент [експлікативно видаленого], який можна уявити. У мене Анжута майже налаштований зробити все для мене зараз, коли це (не дуже) IDE Arduino.
Маєнко

4

Ваше запитання занадто відкрите, щоб отримати пряму відповідь, тому все, що ми можемо зробити, - це показати вам компроміси.

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

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

Тільки ти можеш сказати, що для тебе краще. Ви хочете, щоб прийняти свого внутрішнього дебіла, щоб вас блаженно провели через сад, навіки відмовляючись сказати "так?", "Що?" Та "О, це так мило!" до речей електронних? Або ви б швидше пішли довгою темною стежкою, щоб з’явитися з одним миготливим світлодіодом після великих зусиль і неприємностей? Ви просто хочете керувати автомобілем або дізнатися, як працює двигун, щоб ви могли отримати максимальну продуктивність і налаштувати його самостійно?


1
Олін, ти стара школа! Я абсолютно маю на увазі це як комплімент ... Але я з повагою не згоден з вами з цього приводу. Справа з посередньо розробленим програмним забезпеченням в непродуманій операційній системі додала нуля моєму розумінню електроніки. Насправді зайняли цінні дні, коли я міг би навчитися корисним речам від знаючих людей, як ти. Я кажу "Хай живе Ардуїно!"
Каелін розбір

2
@KaelinColclasure Ваш коментар - це те, що мене бентежить. У вас виникають проблеми з поганим програмним забезпеченням та ОС, але Олін взагалі не вирішує цього питання. Якщо що-небудь, ви можете розглянути, що ардуїно робить для вас шаром абстракції, як, наприклад, ОС - це абстракційний шар. Навчитися використовувати ардуїно дуже мало, щоб допомогти стати кращим інженером, оскільки накладні витрати призведуть до додаткових витрат, які не потрібні. Зважаючи на це, я думаю, що Arduino - це чудова платформа, але її не слід вважати заміною справжнього розуміння світу вбудованої електроніки.
Kellenjb

Так, автомобільні аналогії! Олін, для багатьох людей справа не в тому, щоб намагатись і вивчати тонкий запах електроніки та стати інженером. Дуже багато людей просто хочуть вибрати інструмент, який дозволяє їм досягти своєї мети та вирішити свою проблему. Навчання електроніці є засобом для досягнення мети у багатьох випадках, і не є самою метою. Не всі в цій грі з тих самих причин, що і ви.
nemik

2
Так? Тоді що це за розмова про "обійняти свого внутрішнього дебіла"? Давай Чи використовуєте ви свого внутрішнього дебіла під керуванням Windows або Linux або OS X замість того, щоб писати власну ОС, як Real Man ™? Це операційні системи з цукровим покриттям, що скидаються на маси.
nemik

1
@nemik: Прийняття внутрішнього дебіла було жартом, подібно до того, як йдеш по довгій темній стежці ... Звичайно, є і правда в обох.
Олін Латроп

4

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

У єдиному бортовому комп'ютерному світі Arduino зводить руки до найпопулярніших з найбільшою подихом підтримки. Це відмінний вибір для вашого першого мікрокомп'ютера.

Враховуючи, наскільки дешеві ці речі (більшість коштує менше 50 доларів), ви можете розглянути можливість отримання декількох типів.

Для когось, знайомого з Microsoft Visual Studio та C #, Netduino - це відмінний вибір, оскільки він має ланцюжок інструментів, про яку ви вже будете знати.

Якщо вам більше подобається середовище Unix, вам може сподобатися дошка, як Raspberry Pi, яка виходить у січні 2012 року:

Що таке Raspberry Pi? Raspberry Pi - це комп'ютер розміром із кредитною карткою, який підключається до телевізора та клавіатури. Це маленький здібний ПК, який можна використовувати для багатьох речей, які робить ваш настільний ПК, таких як електронні таблиці, текстова обробка та ігри. Він також відтворює відео високої чіткості. Ми хочемо, щоб його використовували діти у всьому світі для вивчення програм.

Коли пристрій буде доступний для придбання? Ми сподівались, що Raspberry Pi буде доступна для замовлення до кінця 2011 року. Ми все ще очікуємо, що до кінця року будемо продавати деякі наші перші партії бета-дощок (слідкуйте за сайтом після Різдва); ми перейдемо до основного виробництва в січні.

Скільки це буде коштувати? Модель A коштуватиме 25 доларів, а модель B 35 доларів.

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

Нарешті, є Texas Instruments MSP-430 Launchpad, який доступний за $ 4,30 з безкоштовною доставкою. При такій дешевій ціні, як це не купити?


4

Почніть з Arduino, щоб викласти свою ідею і скласти мінімальний робочий прототип, і просто навчіться взаємодіяти з основами, які знадобляться для вашого продукту (двигуни, датчики, серійні для зв'язку).

Пізніше, коли вам потрібно більше функціональності (USB-пристрої, Ethernet), перейдіть на мікросхеми серії ARM Cortex M. 32-бітний ARM означає, що вони дуже потужні і тепер часто дешевші та мають більше периферійних пристроїв, ніж 8 або 16 бітові чіпи вищого класу, такі як AVR та PIC. Mbed NXP (http://mbed.org) - це дуже ніжне вступ до цієї платформи, якщо ви приїжджаєте з Arduino.


2

Коли люди кажуть, що Ардуїно "простий у програмі", те, що вони насправді мають на увазі, це те, що ланцюжок інструментів в основному просто працює. Він працює на Mac, він працює в Windows, і він працює в Linux. Ви підключаєте до своєї дошки, пишете свій код, завантажуєте його і він іде.

Щоб запропонувати невеликий анекдотичний контраст, я сам лише "перейшов" на STK600 Atmel та їхнє середовище розробки AVR Studio 5. Він працює тільки в Windows, тому мені довелося встановити VMware і працювати на моєму Mac. Тоді мені довелося встановити прискіпливий драйвер USB Jengo USB, який займав день читання метушливих дописів на форумі. Тоді мені довелося з’ясувати, чому я можу поговорити з дошкою розробників з IDE, але не з дочірною карткою ATmega2560, яка постачається разом із STK600 ... (Кабель JTAG був підключений неправильно, тому що я слідував ілюстрованому навчальному посібнику на В Інтернеті виявилося зображення, на якому зображений кабель, підключений назад.)

Поки що я не написав рядок коду з AVR Studio 5, але, мабуть, я провів більше часу, обмінюючись ним, ніж усього часу, використовуючи ID Arduino IDE. І я написав десятки ескізів Ардуїно.

Мова, якою ви програмуєте, в основному є C ++ з невеликим бітом попередньої обробки. Зі своїм фоном у вас виникнуть нульові труднощі, щоб з'ясувати, як пересадити будь-які ескізи, які ви хочете пізніше, в "профі" середовище, якщо виникне потреба. Для мене потреба виникла лише одного разу, коли я вийшов за межі майстерності з обладнанням Arduino і почав розробляти власну дошку. YMMV, звичайно ...

Сподіваюсь, це допомагає. :-)


3
Щоб не вибирати вас ... але я знову не згоден з вами. Причина, по якій люди кажуть, що Arduino проста в програмі, полягає в тому, що вони по суті додали шар абстракції, який ви не отримали б інакше. Ви також виховуєте C ++, це дуже рідко можна побачити у вбудованому світі. Іноді це потрібно для конкретних проектів, але це також додає певних накладних витрат, яких у вас просто не може бути, коли ви намагаєтеся скоротити кожну копійку.
Kellenjb

@Kellenjb, я можу кодувати C ++ майже без накладних витрат, іноді розділи можуть мати аж 10%, але багато розділів з 0 накладними витратами. Але так, це рідко, тому що вам потрібно приділяти більше уваги тому, що ви робите зі своєю мовою, але зачекайте, те ж саме є і в C. Я бачив, як користувачі намагаються malloc () в c раніше, коли вони вбудовували не великі результати.
Кортук

1

Arduino робить гнучку платформу для відключення, що забезпечує A / D, D / A (принаймні як ШІМ) безліч цифрових вводу-виводу, програмований світлодіод на платі, послідовний USB-модуль і готові модулі, доступні для багато іншого обладнання. Якщо ви хочете зробити свою власну для навчання, то вона вам не потрібна. Якщо ви хочете, щоб платформа щось почала працювати і працювати лише для задоволення, або під час проектування апаратної версії цього недорогого обладнання, тоді ви готові працювати, коли ви є. Це дизайнерські, стратегічні та економічні рішення, які цілком справедливо приймати будь-яким способом, який відповідає вашим цілям. Немає нічого "придумливого" в тому, щоб робити компроміси - ось що інженери роблять - і повинні робити - щодня.


1

Досвід Джона майже точно відповідає моєму 15 років тому, коли я пішов з викладання комп’ютерних наук (в основному мовного програмування Асамблеї та C) для студентів. Тоді я зрозумів, що йти в ногу з досягненнями в обчислювальній роботі буде надмірно дорого, тому моя дружина запропонувала повернутися до електроніки як хобі, як мені подобалося бути інженером-електриком у 1950-х. Це я і зробив, хоча я лише на короткий час зустрічався з транзисторами, і ніколи не бачив підсилювача, тому мені довелося зробити багато приємного навчання. Я зберіг свою любов до Асамблейської мови, і коли Microchip Pics з'явився в середині 90-х, я зачепився за них.

Я не можу порівнювати їх з Arduino, про який я нічого не знаю, але перевага використання Pics полягає в тому, що налаштувати його дешево, оскільки Microchip надає всю інформацію безкоштовно, з блискучим IDE, і ви можете навчитися ними користуватися. , як я це зробив, з того, що вони публікують. Ви можете почати з домашнього програміста, безлічі дизайнів в Інтернеті, так що для кількох фішок Pic варто було б коштувати лише кілька фунтів. Але я б рекомендував PicKit 2, який має багато вбудованих функцій, щоб полегшити розробку програми. Можливо, не PicKit 3, однак див .:

http://www.eevblog.com/2009/10/21/eevblog-39-pickit-3-programmerdebugger-review/ Хоча це було оновлено, див. примітки до цієї посилання.

Існує велика кількість книг про фотографії, але деякі - сміття, будьте обережні. Для легкого початку, відмінним ознайомленням із Pic є:

"Проектування вбудованих систем з мікроконтролерами PIC: принципи та застосування" [М'яка обкладинка] Тіма Вілмсхерста, 22-66 фунтів стерлінгів на Amazon, куди входять і Assembler, і C. Я уникав C на деякий час, оскільки, здавалося, це забирає інтимність з апаратним забезпеченням що дає Ассемблер, але за допомогою компілятора C, що постачається Microchip, ви можете бачити код, що генерується також.

Для загального, хорошого, технічного (не боюся поставити математику) висвітлення сучасної електроніки я рекомендую: "Практична електроніка для винахідників" 2 / Е [М'яка обкладинка] Пола Шерца, 19-95 фунтів стерлінгів на Amazon.

Я заплатив 26-99 фунтів стерлінгів і 22-99 фунтів стерлінгів відповідно за ці книги в магазинах, і зовсім не шкодую про це.

Я не можу тут досить висвітлитись, я би радий листуватися електронною поштою на цю тему: 417weston@gmail.com (і, про всяк випадок, я дуже обережно ставлюсь до того, що я читаю, завантажую чи відповідаю.)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.