Почему многие не любят Arduino
HTML-код
- Опубликовано: 23 янв 2016
- Купить Arduino Pro Mini:
ali.pub/dqgsh
Больше Arduino:
ali.pub/8u3jr
Статья на Geektimes по теме видео:
geektimes.ru/post/255422/
Оптимизируем код в Ардуино:
nuzhen-sovet.ru/content/optimi...
------------------------------------------------
Не задумывались ли вы, почему специалисты/профессионалы в области микроконтроллеров и автоматизации относятся к тем, кто работает с Arduino примерно так, как будто они занимаются чем-то не серьёзным, вроде игры в песочнице?
Собственно для этого я и сделал видео, где наглядно, при помощи осциллографа, покажу и расскажу, с моей точки зрения почему так. Постараюсь высветлить явные плюсы и минусы темы Ардуино.
------------------------------------------------
Моя партнёрка:
goo.gl/HkCkH3
Паблик ВКонтакте:
goo.gl/p8Z9YB
Мой live каннал:
goo.gl/6p1PFt
Подписка на основной канал:
goo.gl/VPytbj Наука
видео скорее про кота и осциллограф.
+Alexey B ну, в каком-то смысле - да.
+Alexey B а еще про жовто-блакытные провода тх-рх)))
на которых усё и творыться
+Сергей Иванов добавил кнопку "пропустить болтовню" где вся эта ненужная хрень про провода.
Почему многие не любят кушать вилкой? Потому что в ложку больше помещается, значит ложка более оптимальна.
+Victor Bo как-то так получается ;)
я только суп ложкой ем... все остольное вилкой
+Victor Bo я руками ем, в вилке и ложке нет нужды
+Серега Серега и суп?))
+георгий бекоев его пью, из чашки
Блин, за столько времени не объяснил что же происходит в функции digitalWrite... Типа:"вот тут что-то понаписано, поэтому и дольше выполняется". Кэп!)
С такой смысловой нагрузкой можно было на 40сек. ролик снять, а не 16 минут нудить и гадать...
+youenik пожалуйста. Вперёд.
Автор тормозит как Ардуино, информацию минутного содержания размазывает на четверть часа
Сложилось ощущение что автор впервые взялся за ардуино, да и за МК вообще..
1. "язык среды Arduino IDE" - ну вообще то причем тут язык и среда разработки? пишите на эклипсе! Язык называется Wiring. Уж если решились делать ролик на тему, то хотя бы терминологию должны знать, а тем более как язык называется
2. "вот тут творится на ножке" - прям такие чудеса там творятся.. сказал бы "сигнал на этом порте вот такой формы, вот такой частоты"..
3. "Ардуинщики" и "не ардуинщики" - что это за деление по религиозному признаку?)) каким то холиваром пахнуло.. на тему почему один язык лучше другого, причем обозревает железяки!! а сравнивает языки программирования.. Тогда называй чем хорош Си против Wiring, Ардуино тут не причем вообще..
4. Автор понимает чем digitalWrite отличается от прямой записи в порт.. отсюда и накладные расходы, в том числе и на проверку состояния порта, только вот причем тут ардуино, если это защита от дурака именно уровня конкретной стандартной библиотеки? Обсуждаем конкретную железяку Ардуино, язык вайринг, библеотеки или что вообще? Автор смешал все вместе, котлеты с мухами. Сделано так в digitalWrite что бы начинающие порты не палили и багов поменьше делали + привести в божеское состояние читабельность кода (что важно), совместимость опять же, которую автор упомянул.. сказал даже про двести с чем то там строк кода, только вот видя директивы компиляции #if забыл упомянуть как они работают (может не знает), и в итоговую компиляцию попадет только кусок для конкретной меги, то есть не двести с чем то, а десяток!! разница в разы
5. Перекинулся на шилды для Ардуины, зачем? сравнивал же ведь языки\библеотеки? или все таки железо? если железо то можете атмегу взять, прогать на Сях, и использовать шилды от Ардуины.. причем тут шилды (конкретные мини-платы разных датчиков и устройств ввода\вывода).. ??? они никаким боком к Ардуино или к языку Wiring не относятся!
Редко ставлю дизлайки под техническими видео, но тут явный заслуженный дизлайк.. автор не в курсе о чем говорит совершенно
*****
угадайте что произойдет если подать высокий сигнал на порт и попытаться прочитать из него - вот это и есть защита от дурака, то что вы видимо назвали "конфигурация на выход"
+Alexei Belousov спасибо.
Wiring.., спасибо за инфу, будем знать))) Это как Pascal и Dephi, также и тут Wiring и Си...
на самом деле - это обыкновенный эгоизм (типа: мы учились годами (считали конденсаторы, резисторы, транзисторы, делали печатные платы (пол дня на мультивибратор)), а тут ардуино - и любой делает то, что ему нужно - хочешь мигалку, хочешь управление воротами, освещением) (вот и вся причина) а то - сигнал не идеальный, производительность маленькая - в некоторых проектах достаточно пару тактов в секунду и больше не нужно...
+JenyaHW цель видео - показать что ардуино это далеко ещё не придел того, что дают микроконтроллеры. Жаль что мне не удалось это донести.
+Mr ПоделкинЦ Просто вы сами не поняли почему профессионалы негативно относятся к ардуино... (а потенциал ардуино и атмеги 328 - огромен)
JenyaHW я постарался оценить со своей точки зрения, я так же написал в статье:
geektimes.ru/post/255422/
ну и?!!! вывел на осциллограф сигнал с одной ардуинки где есть задержка в секунду, и с другой где НЕТ ПРОГРАММНОЙ ЗАДЕРЖКИ!!! и 15 минут доказываешь что код ардуино работает медленей!!! ты покажи результат работы второй ардуино на С с добавленной (на этой отметке времени 9:56 )после демонстрации задержкой!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
короче безполезное видео из которого единственное верное утверждение, это то что код на С занимает меньше места!
+Oleg k нет никакой задержки.
Ардуино- это как Лего, только в мире электроники. Никто ведь в трезвом уме не станет собирать себе вещи для жизни из лего. Так и ардуино- отличная платформа для моделирования. Можно легко, быстро и недорого собрать и практическую вещь в одном экземпляре. Но никто ведь не предлагал перевести всю электронику на эту платформу.
В своё время любители линукса кичились своими познаниями и презирали Windows, не понимая, что людям комп нужен для для того, чтобы с ним трахаться, а решать СВОИ профессиональные задачи: вести бухучет, писать стихи, продавать товары. Этим людям плевать, сколько строчек кода при этом выполняется.
То, о чем говорил автор, можно было рассказать за 1-2 минуты.
Да не такое уж и "лего"! Просто Ардуино впервые дала УДОБНЫЙ инструмент для вполне обычной работы программера. А так есть все серьёзные штуки - модули, шины, пины, прикручиваются сотни сенсоров/кнопочек, всё компактно... Просто кому-то надоел анал и бардак с ARM и он сделал вещь для людей. :)
Прошу прощения, но либо я ослеп и отуп, либо у вас код на С (который демонстрировал "высокую частоту") был без delay??? Если бы в реальности были бы такие "тормоза", какие вы демонстрировали на асцилке, то Blink с delay(1000) мигал бы раз 10 секунд.
P.S.: Не хватило терпения скроллить все комментарии, прошу прощения, если об этом упоминалось ранее.
Да, в первом случае тормозит из за библиотеки в которой можно ставить любые значения и все будет работать, во втором случае изменение задержки будет увеличивать код программы.
Так он забыл его вставить, лол.
Аналогичное впечатление сложилось: вот смотрите, тут код с библиотечными вызовами на 96кгц, а тут типа чистый код на 2.6мгц... ой, я тут забыл задержку вставить. Весь тест нерепрезентативен из-за этих забытых delay.
А не кого не смущает, что с его задержками в 1000мс, светодиод мигал бы с частотой 0.5гц?
смотрел до конца и ни хрена не понял. мужик ты чё хотел? чтобы все бросились травить платы . паять полевики .мотать трансы и вдыхать аромат канифоли ? в правый нижний угол монитора посмотри. ардуино-это палочка выручалочка для начинающих и не только. ну какого лешего к примеру я буду заморачиваться с платами и поиском деталей чтобы проверить какую то схему? взял доску .перемычки . залил скетч и попробывал. понравилось-начертил схему.достал текстолит. вскрыл загашник с деталькамии и твори !! моему сыну 14 и я рад что он втыкает перемычки в доску и пишет проги а не колется и курит дурь в подвале.
Я ничего не имею против ардуино, просто высветил кое какие недостатки.
+Андрей Елизаров А ты как хотел ?? Ничего не паять и ни нюхать ? Установи вентиляцию , то есть оборудуй свой угол для пайки .А насчёт ардуино , это не пример для программирования . Потому что в высших учебных заведениях преподают в основном язык асемблер , то есть низкого уровня . А здесь это просто игрушка для умственных отсталых людей . Да, можно править скетч , но тогда нафига нужно тогда ардуино . Конечно можно использовать платы с последующим стиранием это говна и закачать свою прогу. Надо учится и паять , травить плату и ремонтировать аппаратуру . А программировать начинать новичку лучше с языка си , благо есть много видео материала и литературы . А насчёт того что ты писал " я рад что он втыкает перемычки в доску и пишет проги а не колется и курит дурь в подвале."- свинья всегда грязь найдёт !
vladimir melnikov прочтите пожалуйста мой коммент до конца. я не против пайки. просто зачем сразу же память если сначала можно собрать на борде и посмотреть.
хотя вас это не интерисует по большому счету . Троль он и в Африке троль.
Андрей Елизаров Кстати я не как Вас не обзывал !!!Это первое !! А втрое ,изложил линию по которой советуют многие опытные программисты и электронщики . Если у Вас есть свое убеждение , да ради бога , а так ляпнуть типа нафига мне трахаться с пайкой и вони , да ещё мозги напрягать , да лучше взять ардуино и не парятся ! Так ведь !! Да нет мой товарищ ! Если хочешь научится , тогда надо как нужно . Хотя что тебе доказывать , мне по барабану , хочешь в гору лезть , лезь . А я гору обойду.
Кто на чем начинал тот и любит то . Давайте поговорим за что Любят ардуино ? !). лично я люблю ардуино за то что можно за несколько минут бесплатно ! ипользуя уже готовые библиотеки, сделать готовый, нужный мне проект. А не лазить часами в описании (даташиташите) к МК и вычитывать нужные мне регистры. и не факт что получится лучше . Последний проект для сравнения на писал на С и на Ардуино пользовательский функционал получился абсолютно одинаков. Пришел к выводу что больше не язык важен на котором пишешь а характеристики самого МК . И в то же время кода пишешь на ардуино ничего не мешает подправить код для оптимизации языком низкого уровня .
+SergeyD в обще тема уже натоптаная ! давайте лучше проговорим о новых идеях и интересных проектах ?
+SergeyD и всё же я считаю что народ должен знать. Не все это знали, к сожалению.
+SergeyD Открою тайну, Это один и тот же язык! и там и там С. Просто ардуиноIDE идет в комплекте с библами которые подготовил разработчик. Можете взять библы из дуньки и скомпилировать проект в любом компиляторе.
я это знаю, это же и написал выше, Асемблерные вставки тоже компилирует . Я предлагал не обсуждать язык лучше-хуже а делится новыми идеями, а уже на чем реализовывать эти идеи, пусть каждый для себя решает .
не судите строго)) на 14:02 было сравнение что на С++ былобы значительно больше кода... а вот ТУТ все компактно. так вот вопрос, какой там язык? спасибо за ответ
приветствую, а осциллограф у вас как в работе? хантек лучще или сиглент?
Проблема не в Ардуино. а в кривости рук и недостатке опыта.
+nucha201111 может и так.
"Много кода" не равно "медленный код". Вы бы почитали что-нибудь про С и как работает компилятор. Например, ifdef выкидываются препроцессором компилятора и не компилируется вообще, если это не нужно.
Это раз.
Оба примера кода - это не "разные языки", это один и тот же язык, но разные инструменты. Можете пользоваться предоставляемым SDK ардуино либо API базовых библиотек либо еще чем-то. Тут не может быть противопоставления одного другому. Нужна скорость кодинга/прототипирования - SDK: быстро программировать, долгий код. Нужно биться за оптимизацию - спускаетесь до ассемблера: ппц как долго и сложно программировать, но быстрый (иногда) код.
Это два.
Хороший оптимизирующий компилятор Си генерирует ассемблерный код настолько эффективный что "руками" конкретно задолбаешься написать более быстрый ассемблерный код. Особенно если процессор под который ты пишешь этот код существенно сложнее рассматриваемого 8-ми битного МК. Поэтому уже лет двадцать (минимум) как имеет смысл писать на АСМ-е только собственный "стартовый код" (для Си компилятора) максимально оптимизированный под конкретное применение и собственные функции на инлайн АСМ-е для прямой работы с регистрами конкретного процессора, а основной алгоритм программы намного проще и не менее эффективно писать на Си. Если инлайн АСМ не поддерживается конкретным компилятором, тогда придется и свои "примитивы" для работы с регистрами написать на чистом АСМ, конечно...
Видео на самом деле очень не точное если мягко говоря. Уже были комментарии по поводу того, что на осциллографе так сильно различаются частоты - и ведь всё это ввиду того, что автор попросту забыл добавить delay в цикл одного из контроллеров, тем самым вводя в заблуждение новичков.
Про экономию памяти - да конечно разница есть и будет, но так ли это критично?!
Для большинства небольших проектов где не используются библиотеки для так называемой визуализации данных (подключение дисплеев LCD/TFT с использованием своих наборов символов, иконок, курсоров например) не думаю, что стоит вообще заморачиваться над подобной оптимизацией.
Если код программы и переменные умещаются в памяти контроллера - вот мое (и не только мое) мнение - НЕ нужно тратить время!
Порой на многие другие вещи-то не хватает времени (собрать прототип в готовое устройство, оформить это всё как положено, ну не на макетке же прикручивать на место), вот поэтому использование библиотек от Arduino (и сторонних) просто помогает экономить это время и сконцентрироваться на основной цели, иными словами на логике работы системы в целом, на результате и это позволяет в кратчайшие сроки подготовить прототип будущего устройства.
Рефакторинг в программировании никто не отменял и если уж дело дойдет от прототипа до готового (может даже серийного) устройства, то конечно стоит подумать как и что можно оптимизировать (опять же можно ведь и кусочно проводить эти вещи).
Ну а практика показывает - если хочешь собрать устройство с HMI (будь то OLED, LCD 128x64 или подобное) то писать на C всё это будет не то чтобы мучительно, но в разы дольше!
Памяти программа конечно будет занимать в разы меньше, но повторюсь - если написанная на Wiring программа помещается в памяти, если не используются разные "паразитные" задержки (delay и прочее), то в большинстве случаев и быстродействия достаточно.
Ну и если вдруг вы взяли Arduino NANO/MINI/UNO и получилось так, что необходимый код (написанный на Wiring) попросту не уместился в памяти, то всегда можно для такого проекта взять мегу :) - это конечно выход что называется "в лоб" или использовать несколько NANO/MINI (благо в Китае их можно купить за 150 р. - я так и покупаю!)
Так что многие не любят Ардуино не понятно почему! - видимо просто пытаются доказать то, что низкоуровневый подход к программированию более оптимальный с точки зрения быстродействия и использования ресурсов - это всегда было и будет так! НО ВРЕМЕННЫЕ ЗАТРАТЫ НЕ СОИЗМЕРИМЫ! а иногда время как раз таки - решающий фактор!
+Юрий Агапов Полностью согласен с комментарием, безграмотность автора видео и его ляпы поражает.
Поставил лайк к видео только, за то, что узнал про возможность писать код в IDE Arduino на других языках. Но для себя, только вчера залившего свой первый скетч, считаю такие пробелы простительными.
+Юрий Агапов спасибо.
ia vetom dele novihok xahu zakazat . mne kupit ili nekupit ? ili ishio kakoinibud savet uvas iest ?
+giorgi parkaia спасибо.
Еще один больной манией величия. Не позорься, не выкладывай всякую чушь. 16 минут ни о чём.
+Сергей Городнов спасибо.
Вопрос у меня, если сделать из ардуино программатор avrisp, то можно потом вернуть ардуино в обычный режим?
+Алексей Бивень ну да, это по сути обычный скетч, захотел сменил. Если я правильно Вас понял.
+Mr ПоделкинЦ спасибо, наверное поняли, я про тот скетч что лежит в примерах и называется по моему arduino Isp
Алексей Бивень тогда - да.
Автору - ты полный "позор".
Ты городишь чушь.
На ардуино поднимается аппаратный ШИМ до 62,5 кГц легко одной строчкой.
Просто надо читать и думать головой.
А если всё писалось бы на ассемблере, то ты бы сейчас сидел и печатал на спектруме.
Спасибо.
Что такое этот аппаратный шим? где можно найти разжеваную инфу по этим сложным и непонятным словам?
***** easyelectronics.ru/avr-uchebnyj-kurs-ispolzovanie-shim.html максимально просто и максимально доступно.
Ты прав, но у микроконтроллеров задачи другие, с которыми они справляется лучше всего с кодом на ассемблере.
*****
аппаратаный - это тот, который реализован скажем так на уровне железа контроллера. А программный - это тот который программист сам создаёт используя таймер и порты ввода вывода.
А осцилограмму после правки кода можно?
Для подавляющего числа задач "Бытовой Автоматизации" лучше чем Arduino просто нет!! Конечно на них не получится сделать высококачественных систем управления и навигации !! Но вы оцените сложность проектов на Arduino и STM32 , на порядок же проще на Arduino получается!! Более того а сколько библиотек на Arduino написано и проверенно??!!! вы любой датчик или экран подключите не заморачиваясь!!!
И самый главный вопрос , а нужна ли вам дома сверх точность , сверх скорость и экономия 10 байт ОЗУ?????
!!!!1111
"лучше чем Arduino просто нет!! " К счастью, есть!
Примеры в студию!! Ждем!!
Зачем???
Что бы ни быть голословным, слова это ни что, факты и только факты
так препроцессорные команды вроде не должны в сборку попадать?..
я имею в виду там где 293 строки - это только исходники, а собирается реально десяток строк по определённую платформу
или я не прав?
+Andrey Kucher если так, то почему присутствует падение производительности?
+Mr ПоделкинЦ не знаю посмотрите сборку
вы же взялись за тему, не я )
Andrey Kucher окей.
Подскажи где такую макетку приобрести? Понравилась что белая и с отверстиями.
+Александр Кузьминов ali.pub/t8s72 выбирайте.
+Mr ПоделкинЦ Таких как у вас, там нет.
+Mr ПоделкинЦ пардон, вот же она они ru.aliexpress.com/af/Syb%25252d46.html?ltype=wholesale&d=y&origin=n&isViewCP=y&catId=0&initiative_id=SB_20160307043504&SearchText=Syb-46
Я только учусь, и много чего не понимаю, но если Вы во 2м модуле забыли поменять задержку и потом поменяли, то на осциллографе показания не поменялись?
+RGrus нет, никаких задержек я не менял.
+RGrus в описании видео есть ссылка на статью, почитайте, там всё есть.
Приветствую,классный макетный полигон у тебя,где такой же найти?
Макетная плата "breadboard solderless"
ali.pub/t8s72
Идеально подходит для макетирования небольших проектов. Arduino Nano занимает примерно треть всего размера макетки. Так же идеально подходит для макетирования схем на базе ATtiny или ATmega . Может складатся в целые блоки по несколько штук, для этого есть специальные крепления по бокам.
P.S. макетная плата по буржуйски - бредборд.
Сергей спасибо за публикацию! Комментарии на гиике великолепны :)
+Kozyrev Slava пожалуйста. Ставьте лайк если понравилось, а ещё лучше репост.
Некорректно сравнивать графики полученные кодом с задержками на языке ардуино и кодом без задержек языка C (9:57)
Некорректно считать число строк в коде c препроцессором, в котором только часть кода идет в компиляцию (12:00)
С и С++ разные языки (13:50)
а зачем делать програмный вкл выкл, можно 3.6.9 .11 дорожку использовать же. там же есть шим генератор на этих номерах внутренний
Хочешь побольше просмотров - увеличь плотность информации. Убрать лишнее, оставить важное.
Знаток нашелся! корифей
ааа красавчик! все наглядно и понятно. спасибо за видосы! как насчёт сделать видео при sim900 gsm модуль? с нетерпением жду новых видео, привет кошаку :)
+Владимир Толстухин sim900 дорогой, и надо не попасть на 900А, а народный M590 вроде бы уже был?
могу прислать тебе sim 900 только снимай))))
+Владимир Толстухин увы, но не хватает времени на всё это.
Так а в чем позор? Досмотрел до конца. Ответа так и не дал, но хотя бы пришел к выводу что инструмент надо выбирать по мере потребностей.
+vasyna007 спасибо.
Конечно тема интересная для общего развития. Но мне интересна тема библиотек как самому создать или править?
+dima bel пока что не задумывался над этим. Но не думаю что там есть что-то сложное.
это отношения не имеет, это не важно... для начинающего ардуинки это находка!
Железячки удобны, а программировать сразу же надо учиться правильно, не подсаживаясь на скетчи.
Если при таком раскладе ресурсов микроконтроллера хватает на решение задач по автоматизации и эта автоматизация может быть выполнена чайником , то вообще какой смысл задумываться о целесообразности и эффективности языка программирования?
И это только начало, вычислительная мощь постоянно дешевеет, например та же Pi Zero или Orange Pi PC стоят относительно не дорого, а производительности за глаза рядовому пользователю.
В конце 80-х кодил на ассемблере на БК-0010-01, в 16кБ памяти ухитрялся запихать игрушки с графикой и звуком, при этом количество трудозатрат было обратно пропорционально мощности ПК. Но нынче нет проблем в скорости процессора или объеме памяти для повседневных задач, поэтому результат может быть получен наиболее простым и доступным для пользователя образом.
+Vladimir Maister ну, с 80-х готов много чего изменилось.
Именно так, поэтому нынче правильнее будет для бытовых проектов максимально упростить разработку ПО, пусть за счет роста размера программы итп. В этом популярность Arduino IDE.
Vladimir Maister популярность ардуино в первую очередь благодаря низкого порога вхождения. Помню как только купил себе ардуинку сразу же сделал мигалку которая азбукой морзе говорила "Hello". И это при том, что я ничего не знал.
Автор показывает 2 кода, где в Arduino коде стоит задержка delay в 1000 милисекунд, а во втором коде Си этой задержки нет. Естественно на осциллографе будут разные частоты переключения выходов.
Оптимизация кода актуальна тогда, когда используется устройство, работающее на аккумуляторе, но и здесь можно аппаратно ускорить работу программы более производительным процессором, тем самым уменьшив время выполнения программы и уменьшив этим потребление. Также большую роль играет сама логика программы, где она может либо постоянно грузить контроллер, либо выполняться только в определенное время.
В остальных же случаях лично я выберу более удобочитаемый код на Arduino, нежели нагромождения простых функций с нечитаемым кодом и объемными строчками кода на Си или Ассемблере.
Arduino позволяет создать любой проект самой развернутой системы автоматизации с десятками тысяч параметров, используя профессиональное железо с обменом по RS-485 по Modbus или любому другому протоколу.
Главное - грамотно распределить нагрузку, например используя дисплей с видеоконтроллером, если такой используется, обмениваясь с ним по СОМ порту, или используя несколько контроллеров, каждый из которых выполняет свои локальные задачи, но связаны они в одну систему, где всю информацию передают в Скаду, и т.д.
Я не много не согласен с автором этого видео. Вот по каким поводам:
1) Компилятор в среде Ардуино тот же, что и в AVR-studio. Это AVR-GCC и AVR-G++. Клепайте хоть в линуксе, все будет работать если скомпилировалось.
2) Если пользоваться директивами компилятора #define и #ifdef то можно и 500 строчек написать, а на выходе будет всего 3. Все зависит от параметров компиляции для различных случаев. Просто необходимо обеспечивать кросс платформу.
3) Одно из не несомненных достоинств ARDUINO, это встроенный загрузчик. И программатор по сути не нужен. Но сейчас нет проблем что либо приобрести.
4) Я сам конструировал плату для отладки устройств на базе Atmega16. Короче получился тот же велик. Задачи и требования примерно одинаковые. А тут и паять не надо заказал и работай.
5) Хотя грабли то есть. Поскольку для программирования используется тот же порт что и для коммуникаций, то каждый раз при обращении к устройству оно сбрасывается что иногда создаёт проблемы. Это правда решается дополнительным RS 232 (USB) to ttl.
6) Можно полностью отключить библиотеки ARDUINO и пользоваться своими. Уже проверено.
7) Многие вещи приходиться дорабатывать и подгонять под свои требования. Тут я думаю у автора нет проблем. Голова и руки на месте значит все OK.
+Евгений Поздняков спасибо.
А что по твоему делает код delay(1000)?
Это программная задержка в 1 секунду. Отсюда разница в частотах. Отсюда
занятые 9 байт и такой длинный код.
+Сергей Юдин ну, может и так
Как называется текст ридер, в котором вы смотрите Си код????
Си код можно посмотреть и в блокноте а автор видео использовал Notepad++
Cпасибо, я уже разобрался. Кстати, он даже компилировать умеет
Пишите на C+ чтобы было продуктивност, а если у вас не хватает процесорная мощ, то тогдо ефективная оптимизация кода только через "асемблер". Не случайно драйвера пишут на него и до "машиного" кода он стаит на один шаг.
+DigitalWorld ;)
Arduino - это просто отладочная плата с "боевым" микроконтроллером на борту. Никто не мешает отказаться от wiring и программировать на си/asm. Для быстрого прототипирования - самое оно. Имхо.
+Максим Ротенко ну, и всё же я посчитал нужным немного раскрыть эту тему.
+Максим Ротенко , прототипирования чего? уже какие-нибудь средние проекты потребуют другую обвязку контроллера.
+nRADRUS Мдаа....
+nRADRUS какой конкретно обвязки вам не хватает, которую вы бы не смогли подцепить к ардуино, но подцепили бы к чистой атмеги?) там же все порты голые наружу смотрят!! а из обвязки на "отладочной плате" как назвали выше, пару кондеров, частотозадающий кварц, да и и стабилизатор питания (его можно не считать, так как можно питать в обход него)
Alexei Belousov
"порты голые наружу смотрят" т.е. там нет RS232/422 даже?
Напомнило прогноз погоды в смешном переводе "здрасте, я ведущий праграммы, это круги..."
По своему опыту скажу. Когда учился пользовался Arduino, Discovery и еще разными платками. Сейчас мне проще под разные проекты развести и протравить свою плату (красивее выходит с разъемами и доп. обвязкой). И прошивку писать на СИ. Даже LQFP64 протравить и запаять не проблема.
Да, но такой результат более затратный по времени, надо много времени чтобы освоить трассировку, ЛУТ...
я начинал с GW basic. кто постарше помнит этот предельно простой язык программирования. когда занялся микроконтроллерами - искал нечто похожее. в итоге остановился на алгоритмической надстройке над с++ которая по графическим алгоритмам формировала текст программы, и нужно было допилить руками..
есть люди которые начинали сразу с ассемблера.. и это как начать писать приложения под виндовс на уровне профи.. (был в инете пример фразы hello world на разных языках и интерпретаторах)
так вот.. на мой взгляд, ардуино это легко для старта, но сразу приучает к рамкам шаблонности.. и в не совсем стандартных ситуациях это может сыграть злую шутку с программистом.
если хотите реальное быстродействие и мегафункционал - запасайтесь терпением и учите ассемблер. тяжко будет. но это того стоит. а если вам нужно мигать диодиком.. то и ардуино много.. в электронике есть тьма решений намного дешевле и проще.
не спорьте люди. каждый выбирает себе дорогу самостоятельно.
успехов, добра, и поменьше багов.. тока фичи ))
Задержку между переключением портов нужно ставить, в программный код. Тогда скорости выравняются. И станет ясно, что Си с синтаксическим сахаром, в Ардуине не так уж и страшен, но позволяет МНОГИМ войти в мир микроконтроллеров, как разработчикам. Я понимаю, автору видео обидно, что сидел учил Си, пытался въехать в адресную арифметику, в булеву алгебру, в сдвиги и битовые операции. Но многим это не дано понять, но заставить открыть жалюзи, с помощью Ардуино(или открыть кран, при пожаре, или форточку по датчику углекислого газа) могут миллионы людей на планете.
Та да...
Можно ссылку на USB-UART преобразователь?
+WaleraRigid vk.com/photo-72445335_405071908
+MrПоделкинЦ Спасибо
+WaleraRigid goo.gl/cczY1A вот за 65 центов.
Мне уже приехали, полностью работоспособны, как-то в следующих роликах покажу.
Спасибо, мне как начинающему Arduin-щику, полезная информация
+ZikValera да у меня уже давно крутилась мысль сделать такой ролик, но осциллограф появился совсем недавно.
не любят только те у кого не хватает количества серого вещества адекватно и правильно воспользоватся всеми возможностями Arduino ! Очень много дорогих контролеров собраны на на Атмеге.
Про завалы на спаде , автор ты калибровку щупа делал? Потому как было у меня такое убралось после калибровки)) И частота имеет значение в данном случае. На низких частотах всё в общем случае хорошо.
+Xxx Xxx разумеется делал.
Благодаря распространению ардуино и как следствие массовым производством, некоторые платы ( пример ардуино про мини) стало соизмерима с ценой атмеги328 в дип корпусе. Тоже самое и про шилды и различные модулю ардуино - они дешевеют, и как следствие прежде чем мне что-то затравить, я интересуюсь есть ли готовое ( пример посмотрите сколько стоит шилд драйвером двигателя L298)
Пускай люди професионалы смотря на ардуино как на игрушку, но это полезная игрушка обеспечивает точку входа в мир микрокотроллеров и программирования и позволяет быстро смоделировать на макетке и получить результаты
Так что в будущем она получит все большее распространение, удешивление, и как следствие большее количество людей захотят изучать МК подробней, и создавать и выкладывать в сеть интересные проеткы
Полностью с Вами солидарен, Константин.
В принципе как и Знаток. Хоть это и детский набор для обучения, если ты бог электроники или электромант, то ты можешь сделать ЮТ-88 на нем. Без пайки и прочего.
Кстати, я правильно понял что под ардуино можно на обычно си писать без лишних танцев с бубном? Просто есть опыт работы в Atmel Studio и отдельными микроконтроллерами, если еще и ардуиновский язык не надо будет учить, то здорово, можно использовать как удобную плату для макетирования.
Ну как видите - да, можно.
Приветствую. После дописания двух задержек в СИ код - частоты 100% сравняются. Перепроверь еще раз осцилографом. Так что начальное сравнение скорости двух программ не корректное.
И Вам доброго времени суток.
Именно это и была цель показать ;)
Если там стоит delay(1000) - то они и займут все время, и чего тогда беспокоится о скорости. То, что это соображение не сделано, очень портит все впечатление.
Лучше бы показали тот код, который давал вам графики в осциллографе.
А то, что digitalRead and digitalWrite медленные узнал на собственном горьком опыте.
И вообще ваш пример скорее повод любить ардуино, а не наоборот - там можно спокойно программировать прямо с портами, если надо..
+mishagam Статья на Geektimes по теме видео:
geektimes.ru/post/255422/
Надеюсь ты калибровки свой осциллограф
Ответ прост. Я бы не сел в самолет электроника которого была бы сделана на Ардуино )))
Очень познавательное видео!!!
Ардуино получается является фреймворком, облегчающим написание кода, это примерно как в WEB программировании JQuery фреймворк JavaScript.
Спасибо.
Ну и что, что там 293 строки, там же большая часть работать не будет. А та часть, которая обрамлена директивами компилятору для других микроконтроллеров, даже скомпилирована не будет.
+Vitaliy Tsirkunov ага, спасибо.
ардуно-язык - это просто упрощенный для понимания язык си, никто не мешает писать на полноценном
+Ваня Крейк согласен.
+Ваня Крейк В каком месте он упрощенный? Обычные плюсы. Wiring - вообще библиотека, а не язык.
Может фьюзы разные выставлены? :)
+MultiAlex312 нет, полностью идентичные платы.
ВОПРОС НЕ ПО ТЕМЕ. транзисторы TIP31 и TIP31C чем то отличаются?
+Артём Лоскутов C версия до 100 В.
Конечно отличаются. Буквой С
Master Lom (с) Кэп
"многие не любят..."
ты просто так ляпнул или знаком с ними лично?
у меня такойже котофей был. с такимже окрасом, и тоже василий.
ну и блохи у него тоже были (кошки легкого поведения, были его слабостью).
а вообще, коты очень компанейские, в отличии от кошек. и часто присутствуют и наблюдают, что делает хозяин.
ruclips.net/video/x1wRkEC_-7U/видео.html
Всё это доказывает лишь недостаточное качество внутренних библиотек. В любом С++ компиляторе до черта настроек для оптимизации. В Arduino IDE же и ее библиотеках этого просто не предусмотрели, иначе бы результирующий код был размеров в те же 176 байт или близко к этому. Сырой продукт и есть куда рости. Библиотеки не совершенны и при разработке часто возникают конфликты, особенно если уходишь в частные нестандартные случаи.
+Albert Fazlî потому нужно не останавливаться на ардуино и двигаться дальше.
Думаю, что появятся в IDE и оптимизированные библиотеки, и настройки тонкой оптимизации. С++ компиляторы тоже не за пару лет вырастали. У Ардуино, как у единой среды для различных контроллеров есть великолепное будущее, им только программеров нормальных набрать нужно. Оптимизированные бутлоадеры уже появляются.
+Albert Fazlî искренне на это надеюсь.
+Mr ПоделкинЦ Куда двигаться то? STMки программировать на сях?) Ардуино это конкретная платформа (железяка), не путать с языком программирования Wiring!
+Alexei Belousov ага.
Посмотрел половину, так и не понял о чем это.
Mr ПоделкинЦ,
ссылка на статью про оптимизацию битая(
+Алексей Дерендяев исправил, спасибо.
Вот ещё можете почитать статью по теме видео:
geektimes.ru/post/255422/
+Mr ПоделкинЦ статью почитал, спасибо
Вопрос, а можно провести оптимизацию выкинув из исходников весь мусор(например куски кода для плат которые ты явно не используешь и подобное) и эти всякие защиты для дураков?
Алексей Дерендяев думаю что да. Всё в Ваших руках.
+Алексей Дерендяев Не надо ничего выкидывать. Всё, что обрамлено #ifdef-ами, выкидывается автоматически компилятором, если условие не выполнено. То есть из сотен строк скомпилируется всего пара, которая соответствует условию.
в общем не зря старалась команда ардуинщиков - продукт получился на славу. Лёгкий и доступный, а кто против него - старые хрыщи, которые потратили годы на освоение, по сути того же.
Меня ардуинка спасает, почти всегда, нет такой проблемы, которая не решилась при помощи неё
+Alex Norton ардуино это есть хорошо, как минимум за то, что она даёт отличный старт для всех у кого есть желание.
Автор, по-моему ты ошибаешься. На примере функции analogwrite: всё что в блоке директив компилятору #if defined не транслируется в машинный (или какой там) код. На то они и директивы компилятору. Он транслирует только тот код, который соответствует условию директивы. Да это и так понятно, ведь команды контроллера с более сложной архитектурой могут отсутствовать в более простых контроллерах. Так что никаких 293 строчек там нет. Кстати, ты забыл добавить (или я пропустил), что вызов процедуры с параметрами также отнимает такты и стековую (читай оперативную) память. В примере на Си коде никаких процедур не вызывается, поэтому чуть быстрее. А если ещё в каждой процедуре вызывается несколько процедур, да ещё и с параметрами, то замедляется ещё больше. Вообще, Си неплохой компилятор, но на ассемблере можно ускорить программу, заменив переменные в памяти на регистры в критичных участках, где оптимизатор транслятора, по твоему мнению, работает не оптимально.
+Владимир Иванов спасибо.
В программировании сейчас везде так. Есть ортодоксальные программисты, готовые писать веб-сервер на ASM'е, а есть куча новых фреймворков, которые на каждом языке пачками как после дождя обросли. Я ведь если правильно понял, ардуиний трансформируется в С++, после чего стандартно компилируется под контроллер при этом особо не задавая вопросов (все заранее отстроено под нужную плату).
Например многие веб-программисты пишут код под JQuery при этом вообще не зная JS. Естественно у гуру JS от этого бомбит, мол зачем грузить здоровенную библиотеку и вообще не по феншую ... По факту же вопрос: а) времени; б) необходимости.
Полностью с Вами солидарен.
Я собственно не до конца понял ... частота ведь разная из-за того что забыл delay дописать?
Нету никакого делей.
geektimes.ru/post/255422/
Принято.
сумбурненько получилось... и интересно, как изменилась осцилограма после добавления делеев?
Понятно, как. Наверняка получился красивый и медленный меандр. Что, стобственно, и должно быть. Сравнение быстродействия выполнено вполне корректно. Хотя да - аффтор как собака: всё понимает, а вот излагает свои мысли с трудом. Ничего, освоится со временем.
Давай, продолжай в том же духе. Теперь расскажи нам всем о глобальной политике, о космосе, о нейронах спинного мозга. Ты ж такого о себе мнения - всё знаешь и всё умеешь, и видишь самую суть. Все остальные же дураки, ничего не смыслят (вообще). Детский сад.
Разве, когда делал это видео задавался совсем другой целью.
arduino создано для того, чтобы было легче работать с микроконтроллерами
Круто. Давно хотел понять где собака зарыта
1:15 вот эта вот дорожка называется наверное "шиной". не ?
+nRADRUS да да, шина.
Как начинающий Ардуинщик, вставлю свои 5 копеек.
Кому какая разница, на объемы занимаемого кода и избыточность библиотек?
Если Ардуино через 15-20 лет даст поколение вполне себе инженеров, которые познакомились с "типа робототехникой" не в институте, а в начальной школе? Если эта Ардуина привьет интерес к роботам, у хотя-бы 1/5 тех пацанов и девчонок, которые сейчас ее юзают. И эти 20% пойдут учиться по специальности, а потом и работать, то только представьте, какой БУМ нас ждет! Сколько умных голов сейчас шмыгает носом, выпрашивая у папы с мамой новый датчик или контроллер? Да, они в начале пути. Но он начался не в 18-25 лет, а в 10-15!
на самом деле то что ты описал это не существенные недостатки ардуины.Есть такой микроконтроллер pic дак у него только недостатки - плюсов нет вообще.Ну может быть один плюс - переполюсовка питания не убивает контроллер:)
+RioesanIsidro у атмел тоже если переполювоска то не горят. Правда если ограничивать ток до сотни миллиампер.
ардуино это те же ATMEGA всех серий с теми же отличиями, для atmega покупают программатор отдельно, у ардуино сразу есть и ATMEGA и программатор в одном, кварц, разьёмы и выходы, как и ATMEGA легко шить ардуино .hex как обычные ATMEGA начиная от ATMEGA8, 16, 32, 64, 128, 2560
новички желающие работать с ATMEGA (не имеет значение им нужна лишь микросхема и т.д.) купив ардуино покупают сразу программатор (учиться) если им нужно много микросхем прошивать - ардуино им не подойдёт, хоть и дёшев, а порой дороже если отдельно микросхему брать на 1$ !!! даже ATMEGA2560 отдельно 4.5$, вместе с платой (ардуино) 7.5$ и шнуром ! и паять не нужно под микроскопом. Ардуино если нужна лишь 1 микросхема для обучения либо для обучения как стенд, даже если есть программатор и atmega любые, при цене дешевой ATMEGA сразу в подарок даёт программатор, кварц 16мгц, все это не нужно паять, стыковать каждый раз, и можно .hex загружать в 1 клик в ардуино как в ATMEGA хоть на 256кб в отличие от обучения просто на ATMEGA, где всё новичку, часто чайнику полному придётся паять с нуля, кварц, докупать доски за 4$ с проводами соединить с программатором, питание обвязывать, включать для всего этого паяльник, часто наполовину отламывать ножки у atmega, выбор ардуино выйдет не только дёшев, причем в несколько раз дешевле, чем программаторы, паяльники и т.д., также полностью даст возможность .hex файлы загружать в 1 клик. Используем ардуино для испытаний .hex которые нужно в нескольких ATMEGA в дальнейшем использовать, намного быстрее чем без ардуино. От ардуино только название напоминает что это может быть как то не ATMEGA, это обычная ATMEGA,
Ardino xxx - стандартный размер, 20входо-выходов, полная совместимость со всеми шилдами.
ArdinoMega xxx - увеличенный размер, 70входо-выходов, совместимость не со всеми шилдами.
ArdinoNano xxx - уменьшеный размер, 22входо-выхода, не совместима с шилдами.
ArdinoMini ххх - ещё меньший размер, 20входо-выхоов, не совместима с шилдами, не имеет USB.
спасибо было интересно
+хер собачий рад стараться.
а сделать би преобразователь кода
понятный но тяжелый В сложный и лёгкий
а плюс ардуино что его не можно залочить и у почти всех моделей не нужен программатор
А мне нравится. Нравится гибкость и универсальность. Если раньше я сидел и паял всякие железяки, а потом вспоминал куда какой порт приделал, искал библиотеки, не находил, а если находил то многие переделывал. То сейчас я заказываю пачку плат, за небольшие деньги и собираю лего. А в какой среде писать, это уже кому как нравится. И если раньше я так же нос воротил из за чрезмерно большого кода, то сейчас перестал, поскольку для большинства задач ресурсов контроллера вполне хватает. А не хватает открываю CodeVision и чешу репу. Единственное, что мне не нравится это множество кривых библиотек для Arduino, причем стандартных, которые устанавливаются вместе с программой. Но поскольку информации по Arduino полно, то и это не беда. А настроить регистры можно и в ардуине.
А где вы заказывает печатку плат, очень интересно если это Китай, где делают под заказ красивые, по виду как видео карты на компьютер, даже многослойные делают и всё это очень дёшево! Дайте ссылочку.
Полностью с Вами солидарен, Роман.
+Юрий GSMNeXus "Пачка плат" - это не "печатка плат". Очевидно, под первым имеются в виду просто платы Ардуинок.
Понятно и информативно объяснил, но я толко к середне видео понял о разнице.
Сам противник Ардуино, пишу на С не использую их платы)
Да нет, не то чтобы я был противником, наоборот, я только за популяризации темы микроконтроллеров.
Просто целью данного видео было показать, что ардуино это далеко не предел.
Словесный понос, что хотел сказать.....?
Спасибо.
там же ифдефы, препроцессор еще до компиляции один блок оставит, остальные выкинет
+Rashad Faridov хз, может и так.
Советую почитать про принцип работы #if defined и компилятора.
Спасибо.
"забыл дописать дилэй" скопировал, вставил ))) спасибо поржал. вы весь код так пишите?
Planerful +100.Полностью поддерживаю.Абсолютная правда.
Неплохое видео, пойду искать остальные камни в огороде у Arduino! :)))
+СМИ радиоэлектроники спасибо.
Кот это хорошо а вот ардуина это плохо.
Вы когда-нибудь слышали про такую новую модную штуку как УСЛОВНАЯ КОМПИЛЯЦИЯ в си?
Я - нет.
Наконецто Новое Видео!!!
+Иван Борисов ага, сам не нарадуюсь.
Лол. А ничего, что там стоят директивы для компилятора?
Такие как #if и #endif, т.е. при компиляции, если не выполняются условия(директивы), то компилятор тупо не вносит в программу эти строки кода, и они никак не используются.
+DimaIrkutsk ага
Чёрт, давно уже у меня не было столько комментов. Надо почаще делать такие ролики.
Такие противоречивые и "резонансные"? я думал ради просвещения трудитесь? )))
+Юрий Агапов и ради просвещения тоже.
+MrПоделкинЦ патпешитесь патпешитесь патпешитезь!... мля не надо так унижаться пожалуйста! (-: имейте гордость.
Сергей Роговой спасибо.
+MrПоделкинЦ вы сами сказали в данном видео, что этот код "защита от дурака" "больше подходит для любителей", а вот теперь сам вопрос... для кого по вашему предназначена ардуино?
за кота лайк, остальное все знакомо :)
+ice3dfx больше кота у меня на лайв канале
ruclips.net/p/PLfdcln1D8nBimjylQOp9HMVO7XyzP_EOL
Установка низкого уровня на ножке PB5 выглядит так
CBI PORTB , 5
Длится эта операция один такт процессора.
После просмотра видео, передумал изучать язык высокого уровня для работы с микроконтроллером
+foo52ru и правильно делаете. Нечего ресурсами разбрасываться на право и налево.
+foo52ru асм сила, сомнения нет, теперь напишите прошивку на чистом асме которая будет управлять квадрокоптером ) лишь бы жизни хватило! ну думаю вы через пару месяцев мытарств поймете зачем нужны высокоуровневые языки, а зачем низкоуровневые.. кстати, на высокоуровневых никто асмовые вставки не отменял ;)
скачай sony vegas там просто, а то очень вяло и уныло и куча пауз по 20 минут
а давай теперь напишем код на ассемблере и получится лучше, чем тот на Си и что же, писать теперь всем на ассемблере, нахрен нужен другой компилятор?
Говоря словами автора, это видео, к этому видео никакого отношения не имеет :)
Котана просто зверь))) Обожаю его) Ардуино отдыхает)
Пиши на ассемблере! Кто мешает? Производительность будет - ого-го! Круче чем С, процентов на 10-20, зависит от мастерства программера.
У меня пока нет ардуинки...и я тут подумал, - а почему бы не купить сразу крутую платку? Что-нибудь типа ардуино уне, кажется, где 32 разрядный процессор стоит, там и вещи покруче можно собрать и жк дисплей хороший прикрутить!!!
+K5072014 Fox Лучшая ардуина на мой взгляд это Arduino DUE:
ali.pub/53zdq
+Mr ПоделкинЦ Ошибаешься, лучшая - это ардуино нано!!! Если что не так сделал- не жалко, так как гроши за него проплачены!
K5072014 Fox Arduino DUE может значительно больше нанки.
+K5072014 Fox Intel Edison посмотри ..
+Alexei Belousov >> Спасибо за совет, но если покупать что-то крутое, то покупайте Banana, он уже выпускается с 8-ми ядерным процессором, а всякие там интелы...все равно все платы на базе их процессоров!!! Ардуинка мне интересна тем, что наконец я сам смогу собрать именно то, что сам хочу...покупал раньше к примеру mp3 плеер, а теперь - сам соберу именно с тем экраном и теми функциями, которые сам захочу в нем видеть! Разве это не круто?