1.3, Аноним (-), 02:10, 03/12/2011 [ответить] [﹢﹢﹢] [ · · · ]
| +10 +/– |
Наверное хорошо, конечно, что развивается, но опишу свой опыт.
Раньше делал свои платки на PIC контроллерах, еще под оффтопиком, сейчас занимаюсь разработкой прикладного ПО. Купил ардуино на "побаловаться". В общем, схема нормальная (как для отладочной/демонстрационной платки), но ПО - товарищи! - это полный абзац! После KDevelop и QtCreator - я не знал, плакать или смеятся.
В общем, я молчу, что Java на десктопе - идиотизм. Я молчу что у них там непонятно зачем C++ для разработки (я сам на плюсах разрабатываю, но нафик оно для контроллеров-то?). Так вот, эта их IDE - даже до Kate не дотягивает, обычный блокнот, но тупит - в разы больше чем навороченный KDevelop, достаточно по меню поклацать (ява?). Как в таком можно разрабатывать что то большее, чем "Hello world" - ума не приложу. В общем, более-менее нормально смог настроить только Eclipse (благо статейка есть, http://habrahabr.ru/blogs/arduino/111908/ , - ребята там всё подробно разжевали). Хоть он тоже на яве, но и то не так тормозит, и хотя бы настроить получилось как полноценный IDE.
Ну и вывод: если вам действительно для разработки, а не побаловаться на пару дней, и есть опыт, - лучше делать самостоятельно плату для конкретного устройства, и писать на чистом Си (avr-gcc). Хотя даже если для обучения - лучше сразу самому проектировать, благо есть http://easyelectronics.ru/ и http://we.easyelectronics.ru/ . Библиотек в сети полно и без ардуино, так что проблем не должно возникнуть. Ну и также советую посмотреть в сторону более современных контроллеров, как MSP430 или STM32, или вообще сразу BeagleBoard закупить - в общем, от задачи зависит. AVR уже ничем кроме цены не может удивить. А для обучения, как я знаю, вообще зачастую используют MCS51 - классическая архитектура там какая то, что ли... Так что дважды подумайте, прежде чем приобретать такую штуку.
P.S. Я знаю, что куча плат-модулей есть для ардуино, и типа это MC-конструктор - но IMHO всё тоже самое можно и самому повторить, будет и полезней и лучше - кроме того, никто не запрещает передирать части схем :)
| |
|
2.8, Аноним (-), 09:11, 03/12/2011 [^] [^^] [^^^] [ответить]
| +3 +/– |
Итого: ардуино нужно чтобы
1) посмотреть
2) набив руку выбросить нахрен это недоразумение.
3) взять уже наконец любимый текстовый редактор.
4) а также avr-gcc.
5) писать на простом си без этих турбокостылей, с минимумом либ. Ну да, придется даташит на атмегу почитать, но это в любом случае надо делать если заниматься этим всерьез :)
| |
2.14, антоним (?), 14:35, 03/12/2011 [^] [^^] [^^^] [ответить]
| +1 +/– |
Основная фишка ардуинки и иде к нему - это возможность в одно касание написать программку, скомпилить и залить в МП. Этим убирается весьма заметный порог вхождения, наличие бибилиотечек тоже помогает в этом деле. Потыкав в МП, написав пару простых программок, покдлючив какую то элементарную перефирию новичок получает легкий и быстрый старт - дальше можно переходить хоть на С хоть на асм хоть на пик хоть на стм32. В свое время пики отвоевали рынок у 8051 не в последнюю очередь потому что прошивать пики было гораздо легче - пики были одними из первых МП которые прошивались парой проводков из лпт-порта, в отличие от х51 которым требовался параллельный программатор. Атмега навряд ли бы имела успех если бы не повторила такой же трюк с последовательным перепрограммированием. Нынче иногда даже второго источника напряжения не требуется при прошивке. Так что не надо ля-ля, кто то выбирает убунту, кто-то дебиан, кто то генту, но всегда найдется сноб-полуидиот который заявит "зачем это все, если есть лфс? есть же make/make install? да и зачем что-то качать и компилить - есть С, все можно написать самому. а кто не умеет - тот просто лошара, я вот в 1995 так делал и до сих пор делаю". В общем, как то так.
| |
|
3.15, Аноним (-), 15:55, 03/12/2011 [^] [^^] [^^^] [ответить]
| +/– |
> Основная фишка ардуинки и иде к нему - это возможность в одно касание написать программку, скомпилить и залить в МП.
Это-то и непонятно, почему и в каком наркотическом угаре тогда им пришло в голову использовать C++? Возможности C++ раскрываются на больших проектах, а для этих целей только лишний оверхэд и дополнительные способы выстрелить себе в ногу на ровном месте, тем более что рантайм нестандартный. Тут C подошел бы, а то и что-нибудь вообще академическое.
| |
|
4.16, антоним (?), 17:01, 03/12/2011 [^] [^^] [^^^] [ответить]
| +/– |
так там от плюсов только пара плюшка и то вполне уместно использованных. что плохого в этом? библиотечка выделена в свой неймспейс да и к периферии объектный доступ - очень даже логично.
Serial.begin(9600)
Serial.println("Hello World")
| |
|
5.19, Аноним (-), 21:01, 03/12/2011 [^] [^^] [^^^] [ответить]
| +/– |
> к периферии объектный доступ - очень даже логично.
> Serial.begin(9600)
> Serial.println("Hello World")
Плохое начинается когда люди начинают хотеть 3 лапки вот так, а 2 вот этак. Что логично, особенно если лапок мизерное количество.
| |
5.20, Ytch (?), 21:07, 03/12/2011 [^] [^^] [^^^] [ответить]
| +/– |
> так там от плюсов только пара плюшка и то вполне уместно использованных. что плохого в этом?
Сравните map и листинги одного и того же на чистом С и на плюсах (даже если там всего лишь "пара плюшек"). Сами все увидите. Для того, чтоб демострация смотрелась эффектней компилируйте под что-нибудь имеющее, например 4к памяти программ и байт 128 для данных.
Году в 2000-м проделывал подобное. Функционал для теста выбрал примитивный (типа подергать "ножкой" в прерывании таймера, попихать данные из одного интерфейса в другой). Результат был примерно такой (точных цифр, естественно, не помню): АSM - кода байт 150, данных байт 50, С - кода байт 400, данных байт 70, C++ (естественно без всяких динамических объектов, наследований и т. п. - фактически та же "пара плюшек") - кода 1.5к, данных байт 120. Собственно, функционал еще не начался, а 40% памяти уже нет, а для данных и того хуже. При этом, заметьте, от "плюсов" я не получил никаких особых плюсов (т. к. не использовал почти ничего из его возможностей) по сравнению с чистым С.
| |
|
6.21, антоним (?), 23:50, 03/12/2011 [^] [^^] [^^^] [ответить]
| +/– |
Да вы собственно сами себе и отвечаете - имело это смысл лет 10 назад. Сейчас на борту памяти гораздо больше, и прежде чем новичок уткнется в пределы по памяти он становится профи. И будет писать в чистом С/асм если так уж приперло. А когда памяти избыток - то какая вам разница 10 кбайт пустует или 15? Повторюсь еще раз - речь идет о новичках, для них этот набор ардуинки самый что ни на есть RAD. Касательно сравнения - да, писал, сравнивал - у С++ больше код, но на некоторую определенную величину. Поэтому на большой программе разница между С и С++ сходит на нет.
| |
|
7.27, Crazy Alex (ok), 16:45, 04/12/2011 [^] [^^] [^^^] [ответить]
| –1 +/– |
C++ - сложный язык. Единственные, кому есть выгода от его поддержки ардуиной - те, кто его на декстопе знает. И то начинать с ассемблера лучше - в нём работа с железом как на ладони, а потом уже (если надо) уходить на высокоуровневые языки.
А если плюсы использовать как "продвинутый C с неймспейсами для тех, кто программировать не умеет" - то лучше уж какой МикроПаскаль брать или что-то аналогичное, а еще лучше - средства визуального проектирования. В этом плане нынешняя идея ардуиновцев сделать свой язык не выглядит так уж бредово, хотя их "IDE" - это жуть какая-то.
Понимаете, контроллер - он достаточно мал, чтобы основная проблема, на борьбу с которой нацелены плюсы - проблема сложности программы - в нём не возникала. Там скорее нужно что-то с продвинутой кодогенерацией, чтобы аналог того чуда, ссылку на которое я приводил выше (с семиэтажными шаблонами) можно было как-то попроще сделать.
| |
|
6.24, Crazy Alex (ok), 04:35, 04/12/2011 [^] [^^] [^^^] [ответить]
| +/– |
Вот по этой ссылочке: http://easyelectronics.ru/rabota-s-portami-vvoda-vyvoda-mikrokontrollerov-na- товарищ решает весьма нетривиальную задачу, получая при этом код, который на ассемблере не каждый напишет. Причем там не просто неймспейсы, а шаблоны семиэтажные и библиотека Loki от Александреску. Так что плюсы надо уметь готовить. Но начинать программирование контроллера с высокоуровневого языка - это я даже не знаюкакой степени идиотизм. АССЕМБЛЕР! И только он - чтобы толком понимать, что происходит. ЧТобы уметь посомтреть, что накуролесил сишный компилятор. И так далее, и тому подобное.
| |
|
7.35, Аноним (-), 10:41, 05/12/2011 [^] [^^] [^^^] [ответить]
| +/– |
> семиэтажные и библиотека Loki от Александреску.
На что только не пойдет народ чтобы не сделать мизерную вставку на асме :)). Вообще, чем больше этажей - тем сложнее потом все это разгребать и обезглючивать.
| |
|
|
|
|
3.17, Аноним (-), 20:59, 03/12/2011 [^] [^^] [^^^] [ответить]
| +/– |
> Основная фишка ардуинки и иде к нему - это возможность в одно
> касание написать программку, скомпилить и залить в МП.
На практике, несколько знакомых скорее выглядели так:
1) Пишем программу.
2) Понимаем что вот так по простому вон то сделать нельзя.
3) Эпично обламываемся.
4) Ломаем мозг как же это оверрайднуть из ардуины. А поскольку чайник, даташит не читал и вообще - вот тут то мы и узнаем про закон 20/80, наблюдая как оставшиеся казалось бы жалкие 20% работы на раз выжрут 80% времени на борьбу с яп ардуины.
Ну вот пример: знакомый хотел чтобы часть аналоговых лапок была аналоговыми, а часть цифровыми. Насколько я понял с его слов, так в ардуине не предусмотрено (лично не проверял, влом мне 100М явы ставить). Можно всем скопом их в аналог или всем скопом в цифру. А так чтобы часть так а часть сяк... хм, ну понятно что проц так умеет, достаточно маску правильно по регистрам загнать. Но при этом ардуино уже больше мешает. А учтя что там на все I/O условно говоря полторы лапки, их и так то по жизни не хватает, а тут еще и сюрпризы.
| |
|
4.22, антоним (?), 23:57, 03/12/2011 [^] [^^] [^^^] [ответить]
| +/– |
а вы меньше верьте знакомым, а то они такого напоют.
кстати, передайте своему знакомому что все нормально оверрайдится, достаточно не дергать библиотеки ардуиновские и писать самому инициализацию регистров, их использование и тд. поскольку программа на ардуино это фактически программа на avr-gcc (по некоторому шаблону и с библиотечками) то заявления что он чего то там ограничивает просто бред. все что можно сделать с помощью avr-gсс можно сделать и на ардуине, обратное точно так же верно, потому что фактически это одно и то же.
| |
|
5.32, Аноним (-), 10:25, 05/12/2011 [^] [^^] [^^^] [ответить]
| +/– |
> а вы меньше верьте знакомым, а то они такого напоют.
> кстати, передайте своему знакомому что все нормально оверрайдится, достаточно не дергать
> библиотеки ардуиновские и писать самому инициализацию регистров, их использование и тд.
Вот тут то и заканчивается простота ардуины. А если вопрос в том чтобы почитать документацию, самому запрограммить регистры и прочая - так без ардуины это проще и не надо использовать турбоугребищный ява-редактор.
> поскольку программа на ардуино это фактически программа на avr-gcc (по некоторому
> шаблону и с библиотечками) то заявления что он чего то там
> ограничивает просто бред.
Логично, просто вся простота в миг испаряется, а если уж программить регистры лично - лучше вообще от ардуинских библ избавиться. Учиться как с ними уживаться чтобы у них ничего не отъехало и прочий лишний гемор - на ровном месте.
> все что можно сделать с помощью avr-gсс можно сделать и на ардуине,
> обратное точно так же верно, потому что фактически это одно и то же.
Просто это во первых будет уже нифига не просто, всякими ламерскими serial.begin(100500) как у яваскриптеров уже не отделаешься. Во вторых придется скурить нормальный даташит. В третьих, придется греть мозг как не вызвать своими кастомными действиями отвал башки у ардуинских либ. В четвертых окажется что если выбросить ардуину и делать без нее - будет даже проще. И кислотные ява-редакторы не понадобятся :)
| |
|
6.36, антоним (?), 13:36, 05/12/2011 [^] [^^] [^^^] [ответить]
| +/– |
неужели еще не дошло - для простой задачи простое решение, для сложной - сложное. не расчитана ардуина на сложные задачи и никто ее туда не рекомендует! она расчитана на простые самоделки! все возражения против ардуины сводятся примерно к тому что велосипед никуда не годный вид транспорта потому что грузоподъемность и дальность авто во много раз больше, хотя речь идет просто о прогуляться.
| |
|
7.37, Аноним (-), 14:29, 05/12/2011 [^] [^^] [^^^] [ответить]
| +/– |
> неужели еще не дошло - для простой задачи простое решение, для сложной
> - сложное.
Крайне тупое деление в свете того что камень один и тот же. Тем более что простая программа проста даже на гольном асме, а сложная на этих огрызках си++ просто не влезет. А вот иметь мозг при нужде заоверрайдить придется прилично. А не имея при этом в голове базовых знаний из даташита и просто о предмете - получаются опаньки.
> не расчитана ардуина на сложные задачи и никто ее туда не рекомендует!
> она расчитана на простые самоделки!
Все атмелки по определению на них рассчитаны, просто без использования ардуины можно научиться делать это по человечески, а не по ламерски.
> все возражения против ардуины сводятся примерно к тому что велосипед никуда не годный вид
> транспорта потому что грузоподъемность и дальность авто во много раз больше,
> хотя речь идет просто о прогуляться.
Скорее, проблема в том что некоторые моменты сделаны откровенно криво.
- Зачем с нахрапом сватать угребищный эдитор да еще на яве?
- Зачем сватать огрызки от си++ на которых почти никто не пишет?
- Дав старт не грех бы показать потом как все это делать по людски.
Так что это похоже на рассуждения о том что кетайский велосипед из ближайшего ларька за 2000 рублей является кривым фуфлом. Прогуливаться на менее поганом велике - приятнее :P
| |
|
|
|
4.23, Аноним (-), 02:35, 04/12/2011 [^] [^^] [^^^] [ответить]
| +/– |
Даташит на Атмел всегда хорош (как, в принципе, и на, наверное, любой МК). Юзайте парни ассемблер для критических задач (авээровский под АВР, к примеру). Все у Вас будет так, как Вы хотите (хотите ввод на этих входах - будете иметь ввод, хотите вывод - тоже нет вопросов). Тини 2313 2 кБайта памяти программ. А многое сможет. Если с умом и без всяких С и С++. Главное, наверное, не заганяться.
| |
|
5.28, Crazy Alex (ok), 16:48, 04/12/2011 [^] [^^] [^^^] [ответить]
| +/– |
Воистину. Не говоря о том, что объем кода в тини ни фига не требует чего-то высокоуровневого. Эдак с меги16 - да, пожалуй уже выгоднее C использовать.
| |
5.33, Аноним (-), 10:29, 05/12/2011 [^] [^^] [^^^] [ответить]
| +/– |
> Если с умом и без всяких С и С++.
Проблема в том что
1) Не портабельно. Вот снимет атмель серию с производства и вы не сможете реюзнуть ни 1 бита из ваших программ.
2) На асме долго и медленно. И на программе крупнее пары кило компилер пожалуй лучше вас регистры раскинет.
Итого: на асме имеет смысл писать только критичные кусочки. Си - это такой удобный и кроссплатформенный "почти ассемблер". В одном из вариантов его использования.
> Главное, наверное, не заганяться.
Заганяться? Это от слова gun чтоли? Ну да, если программить atmega128 на асме - пушка вам понадобится, чтобы застрелиться - так мучений меньше будет :)
| |
|
6.39, Crazy Alex (??), 14:46, 07/12/2011 [^] [^^] [^^^] [ответить]
| +/– |
Эмбед для МК вообще-то редко нужен портабельный - даже библиотеку часто лучше писать с учетом возможностей даже не семейста, а конкретного чипа или их группы.
И как раз регистры компилятор хуже раскинет - потому что понятия не имеет, что как часто будет вызываться, а для контроллера это может быть критичным. К прмиеру, я люблю изменяемые в прерываниях счетчики засовывать в младшие регистры - никакого тебе доступа к памяти и часто можно сэкономить push/pop, что дает байт 8 выигрыша в размере.
| |
|
|
|
|
|
3.38, Аноним (-), 14:30, 05/12/2011 [^] [^^] [^^^] [ответить]
| +/– |
> DiHalt, уходи.
Дихалт - перец мозгастый, хоть и с виндой головного мозга. Так что если б он пришел - радоваться надо, а не гонять его :P
| |
|
|
|
2.18, Аноним (-), 21:00, 03/12/2011 [^] [^^] [^^^] [ответить]
| +1 +/– |
> юхайте PSoC, зачем етот Arduino вообще я так и не понял
Нюхать надо б STM32 ;). А у кого еще ARM cortex M3 за 1 доллар найдешь? :P
| |
2.29, Crazy Alex (ok), 16:54, 04/12/2011 [^] [^^] [^^^] [ответить]
| –1 +/– |
Затем, что водить начинают учиться с легковушек, а не с белазов. AVR крайне прост в инициализации, подключении и в понимании, что где происходит. Базе научиться - самое то. При этом берешь любую мегу - и все основные возможности у тебя на борту есть, можно экспериментировать. Вообще - сложное надо брать, когда эта сложность либо востребована (для обучения это не так - нет там обычно сложных проектов) либо ничего не стоит (тоже не так - больше взаимосвязей - значит сложнее и дольше разбираться, вместо изучения простого минималистичного ядра).
Впрочем зачем ардуино - я тоже не понимаю. Лезть в микроконтролеры, не будучи способным спаять элементарную готовую схему - это в любом случае нарываться на проблемы. А минимальная обвязка к AVR и программатор (если жаба задавила купить) - куда уж элементарнее!
| |
|
3.30, Бобазали (?), 00:14, 05/12/2011 [^] [^^] [^^^] [ответить]
| +/– |
Ardurino, он вообще то больше на детишек расчитан, на школьников 4-7 классов. Им паяльник доверить пока нельзя. Они эти штучки к конструктору типа "лего" прикручивают и очень радуются когда моделька светодиодами моргает. Ну взрослые ещё на нем забавные приколы делают.
| |
|
4.31, Crazy Alex (ok), 02:56, 05/12/2011 [^] [^^] [^^^] [ответить]
| +/– |
Ну если для детишек как игрушка - тогда ладно. Хотя что 10-летнему ребенку нельзя паяльник доверить - для меня новость... сам примерно в этом возрасте чего-то паяльником ковырять начал. Ну да ладно, это уже вопрос конкретной культуры. Но тогда там точно не плюсы нужны, а что-то более человекочитаемое - паскаль или бейсик какой...
| |
|
|
|
|
2.34, Аноним (-), 10:34, 05/12/2011 [^] [^^] [^^^] [ответить]
| +/– |
> а как PSoC в линуксе? удобно?
Да хрен его знает. Чем оно вообще лучше остальных? STM32 - вполне нормальненько, если руки из правильного места. И номенклатура камушков и цены на них - лучше чем у остальных.
| |
|
|