Всем Привет. Особенно Ардуинщики! Да, да. Будущее за Ардуинщиками.
Вы спросите почему? Да легко.
image


P.S.: Кто не любит читать, для тех есть видео версия на Ютуб канале Alex Link.


Начнем с того что я не программист по образованию, и начинал я с процессора Z80 на Спектрум(Лениград или Синклер), названий много а смысл один.
image

Да, действительно на Basic было очень медленно, картинку на экран
выводил за 15-30сек, а на машинном коде(на ассемблере) и глазом моргнуть не успеешь,
как загружалась на экран. И мало того, раньше не было разнообразия компиляторов, да и какой компилятор если у меня только спектрум. На чём компилировать?
Я к примеру брал справочник выписывал на листик коды команд, по заранее составленному алгоритму, и заносил вручную в ячейки памяти, ну или простой писал на Бейсике программу для последовательного ввода данных в память.
image

Я прошел всю эту школу и прекрасно понимаю, что и как работает.
С тех пор многое изменилось, весь спектрум может поместиться в один контроллер.
С каждым днем контроллеры набирают мощности. А вот наши программисты, почему то тормозят.
Они потратили пол жизни мигая светодиодами на первых контроллерах.
Многие люди Attiny13 возносят до небес, так как на нём можно собрать множество различных устройств, я с эти спорить не буду. Но как только возникал вопрос повторить эти устройства, то мы наблюдаем огромное кол-во форумов с криками о помощи… В основе проблемы это правильно выставить фюзы, ну и конечно же проблема собрать рабочий программатор.
image
Это не только c контроллером Attiny13…
Так же на Арену вышел ATmega8. Вау!!! Целых 8кб памяти!!! Это же круто!!! На нем можно такое сотворить!!!
ATmega8 держится на арене долго и уверенно по типа Windows XP.
Но прогресс не стоит на месте и программисты могут позволить себе ATmega328, но не всегда, всегда поражал один момент — на пиво в продуктовом магазине можно потратить 4$ и не задуматься о цене, а в радиомагазине, почему то жалко лишний 1$ на контроллер. К сожалению это практически у всех так.
Что происходит дальше.
Кто не успел, тот опоздал. Кто с детства занимался программированием, тот стал супер программистом, ну а кто бухал и курил, тот может только лицезреть детище Богов (программистов).
Ними все восхищаются, плавно зажигали светодиоды, выводили циферки на 7-ми сегментные индикаторы, Вау!!!
image
А да, еще мерили температуру и чудом удавалось подключить какой-нибудь экранчик от мобилки, долго играясь с регистрами (но это только избранные).
image
Да но что же делать Всем тем людям которые не прошли весь этот путь, но хотят создать что то свое и пускай не сложное.
Вернуться к самому началу? К самым примитивным контроллерам?, что бы понять, как работают регистры и как, к примеру, выставлять флаги, и не мало важно изучить все режимы фюзов, главное это защитить свою программу мигания диода от копирования, прожигая очередной фюз.
Благо с появлением интернета в каждом доме и уже в каждом смартфоне Вы можете читать эту статью, а не мало важно вы можете обучаться, не посещая библиотеку в поисках справочников, а не только смотреть на обнажённые тела. В чём то плюс этого, в чём то минус.
Изучая спрос и желание учится, на арену выходит платформа Arduino на тех же контроллерах ATmega328(ну первый был 168 и ATmega 8).
image
Страшный и непонятный код (скажем так «язык Богов») превращается в доступный и простой для понимания язык программирования.


Благодаря простоте и доступности платформы, сотни тысяч молодых желающих научились и продолжают познавать мир программирования и создания устройств различной сложности. Что говорить, я сам за 1 месяц от мигания светодиодом дошёл до готового устройства на сенсорном цветном экране. Мало того стабильно работает около 3-х лет на производстве.
image
И это только за 1 месяц, в место вечерних, просмотров телевизора.
На то время мой девайс привел в шок старожилов-программистов, которые все ещё игрались с экранами по типу 1602.

Естественно когда программист потратил всю свою жизнь(ну или часть) на изучение архитектур и всех нюансов контроллера, приходит школьник и делает все это с нуля, потратив 1 день.
«Визжания» программистов против Ардуино похожие на посмертные конвульсии.
Они просто понимают что их эра прошла, они уже не те боги которые могут все. Теперь им уже не поклоняются так как раньше, а любой школьник может скачать прошивку для любого девайса и прошить его не имея особых навыков.
Много «визгов» от программистов о «тормознутости» Arduino, но никто не вспоминает или не хочет вспомнить о таких библиотеках как Cyberlib, где уже все ускорили, и все также осталось удобно в оболочке IDE.
image
Многие делают вставки Си в IDE оболочку. но это все ещё та же Arduino, и они предусмотрели эту возможность, для тех гурманов кому нужно ну очень быстро. Хотя обычной Arduino, хватает практически для выполнения всех задач.
И не обязательно вникать в команды, регистры, флаги. Нужно больше скорости?!!! нужна оперативность?!!!
Пожалуйста, многие корпорации как Intel и Google сотрудничают и выпускают свои версии ну очень не слабых контроллеров до 1ГГц.



И тут опытный программист попадет в тупик… ему нужно будет изучать архитектуру процессора, команды, и регистры и т.д. Это еще пол жизни. А согласитесь что там уже регистров и команд на много больше, и архитектура сложнее.
А вот школьник Ардуинщик на таком Arduino соберёт в считанные минуты проект который и не снился программисту.
По Вашей логике нужно изучать ARM Cortex A8(А10 -20) с его графический процессор Mali 400, что бы что-то серьезное написать на Arduino.
image
Пожалуйста изучайте я воспользуюсь готовыми библиотеками и разработками. И поверьте я затрачу меньше времени на создание устройства чем Вы.
Хотя, Вам запрещено пользоваться такими технологиями пока не изучите каждый регистр и флаг, Вам ведь нужно быстродействие. Все сходится к тому же пиву. Если Вам нужна оперативность, то купите контроллер по-шустрее.
Arduino платформа захватила под себя такие контроллеры как STM32 и Wi-Fi модули ESP8266.
image
Да, да!!! школьнику не нужно изучать архитектуры этих всех контроллеров, он просто выбирает нужный контроллер для своих запросов, и без особого «напряга» их программирует, наслаждаясь созданием программы и готовым результатом в короткие сроки, и заметьте там уже не 16МГц.
А Вы бывшие боги… только продолжаете «визжать» в сторону Arduino, тыкая все в тот же примитивный ATmega328.

Посмотрите правде в глаза. Вы устарели со своими взглядами, и вы больше не монополисты в области программирования.
Вам остается говорить как бабкам возле подъезда, -«Вот раньше были времена».
Хотя нет… В связи с ростом популярности Arduino, у Вас все еще есть выбор: — Либо сидеть и визжать как бабульки, либо быть в тренде, и стараться помочь в оптимизации Arduino платформ, внести свой полезный вклад в общество.
Я с уважением отношусь к тем программистам, которые создают и развивают платформу Arduino, которые хоть как то повлияли на развитие и внедрение её в массы. Благодаря им многие люди могут проявить свое творчество, и получить желаемые гаджеты созданные своими руками не прибегая к заказам супер дорогих программистов.

Я сам не раз обращался к программистам, на что мне называли заоблачные цены и кол-во заказа не меньше 100шт.
Всегда поражал ещё один момент… телефоны мы покупаем все круче и круче, от монохромных – кнопочных до цветных сенсорных, восьми-ядерных. Почему вам не жалко купить телефон до и выше 100$, а когда речь заходит о контроллере то мы ищем, где на 10 центов дешевле, а выдавить пытаемся с него все соки. Задумайтесь об этом.

Так что Arduino это круто!!! Помните, под любую задачу есть свой контроллер!!! Не пытайтесь сэкономить 1$ на контроллере, потратив несколько месяцев на изучение команд и регистров, что бы написать более компактный и быстродействующий код.
Сэкономьте лучше на пиве и сигаретах.
На сегодняшний день ATTiny 13 и Atmega8 уже не актуальны, из-за своих цен и мощности. Не живите прошлым, шагайте в будущее.
С Вами Был Alex Link. Удачи ВАМ!!!

Комментарии (73)


  1. kuld
    26.01.2016 12:21
    +8

    Вот именно, что под любую задачу есть свой контроллер инструмент.
    В «быту», разумеется, ардуина — идеальный вариант.
    Для прототипирования — хороший.
    Для серийного производства — нет.


    1. masnart
      27.01.2016 01:11

      Делать серийные штуки на Ардуине это как писать коммерческий софт на Паскале. И это не наброс, просто эти инструменты были специально разработаны для обучения основам.


      1. Mulin
        27.01.2016 01:27
        +3

        Половина бытовых 3D принтеров построено на Arduino. Я как человек занимающийся помимо разработки еще продажей и обслуживанием, ответственно заявляю, что с электроникой практически нет никаких проблем.


        1. kuld
          27.01.2016 10:18
          +1

          Именно Arduino? не просто ATmega а упакованная в плату Ардуино с торговой маркой и прошивкой, разработанной с соответствующими библиотеками?


          1. Mulin
            28.01.2016 01:37
            +1

            Да, конкретно arduino Mega2560. Там даже прошивки заливаются через родную IDE.


      1. kuld
        27.01.2016 10:12
        +1

        А при чем тут Паскаль?
        На дельфях вполне себе коммерческий софт создают. Вы будете удивлены, но коммерческий софт можно писать даже на языке 1С: Предприятия, который у «тру-программеров» вызывает еще больше ненависти, чем Паскаль.
        Ардуину (в смысле железяки) не надо пихать в серийные устройства прежде всего из-за коммерческой нецелесообразности, все остальное, это уже производные от бизнеса. Только бизнес, ничего личного.


  1. tyderh
    26.01.2016 12:23
    +13

    Согласен, делать промышленные устройства сегодня легче, чем расставлять запятые. И это прекрасно.


  1. dcoder_mm
    26.01.2016 12:48
    +8

    Это у вас так после предыдущей статьи про ардуино пригорело? Да ладно вам, она была вполне безобидна.


    1. free_arduino
      26.01.2016 12:55
      -4

      Люди ограничены в своем кругозоре, дальше и чуть больше изучить или по гуглить, это целая проблема. Одно и тоже пережевывают по 100 раз.
      Другие, юные программисты смотрят и у них отпадает желания, так как первое мнение это тормознутость платформы.
      я готовил целую видео постановку(миниатюру)… но меня опередили косячной заезженной темой :)))


      1. dcoder_mm
        26.01.2016 13:03
        +2

        В каких обучающих статьях об ардуине (именно их будут читать «юные программисты» для ознакомления с платформой) есть что-то о ее тормознутости?


        1. free_arduino
          26.01.2016 13:06

          Какая обучающая статья будет портить мнение об обучающем материале? ) Но ютубы и соц сети которые мелькают перед глазами у них, создают им ложное впечатление.


          1. dcoder_mm
            26.01.2016 13:16
            +2

            Вы преувеличиваете. Я конечно не могу гордится тем что начинал свое знакомство с МК, лазая по соцсетям, но на упоминания о тормознутости стандартных функций для работы с GPIO в ардуине натыкался всего пару раз. И там приводились цифры и осциллограммы, и даже более того — выводы о том, в каких случаях это будет важно, а в каких — нет.


            1. free_arduino
              26.01.2016 13:19
              -4

              Я с этим не спорю и понимаю… но все кто кричит Учите С++!!! «Ардуино позор!!!» они не видят что уже все решено с тормознутостю другими библиотеками. И на сегодняшний день пытаются поднять эту тему и опять опустить ардуино. )


              1. dcoder_mm
                26.01.2016 13:27
                +7

                Да, следующий пункт. Про с++.
                У ардуины нет никакого своего языка. Все что там есть это просто библиотеки. То есть незнание С++ одинаково плохо в обоих случаях.


      1. OvO
        26.01.2016 13:09
        +7

        Хотя обычной Arduino, хватает практически для выполнения всех задач.

        Да, продолжайте рассказывать об ограниченном кругозоре.


    1. HWman
      26.01.2016 19:31

      У меня тоже сложилось такое впечатление.


  1. vvzvlad
    26.01.2016 13:14
    +5

    Для того, чтобы писать под что-то, не обязательно «пол-жизни изучать архитектуру процессора, команды, и регистры», порог входа намного меньше. И никто не будет изучать архитектуру процессора intel, чтобы сделать устройство на нем. В 99% случаев, если берется x86-совместимый процессор, это означает, что разработка ведется для какой-то операционной системы.


  1. OvO
    26.01.2016 13:24
    +8

    … только продолжаете «визжать»… Либо сидеть и визжать

    Скажите, а вы таким взволнованным были всегда или стали после использования Arduino?

    Хотя, Вам запрещено пользоваться такими технологиями пока не изучите каждый регистр и флаг

    Вас кто-то обманул.

    Статья просто изобилует перлами и ошибками в орфографии и пунктуации.


    1. dcoder_mm
      26.01.2016 13:28
      +6

      У человека просто пригорело, не стоит это воспринимать серьезно.


      1. free_arduino
        26.01.2016 13:53
        -1

        Да, можно сказать что у меня Бомбит


        1. OvO
          26.01.2016 14:26
          +5

          Тогда, возможно, имеет смысл удалить статью, принять седативное средство, выспаться, прочитать статью еще раз и, если она вам понравится, опубликовать опять. Исправив ошибки, конечно.


    1. free_arduino
      26.01.2016 13:31
      -11

      Склоняюсь перед Вашим познанием в орфографии :)


  1. dimao79
    26.01.2016 13:29
    +9

    Проблема не в Ардуине. Проблема не в скорости работы, проблема не в «юных программистах»

    Проблема в том, что программисты пытаются программы, которые работают идеально внутри симуляторов, применять в реальных устройствах
    не учитывая особенностей реального мира, которые напрочь отсутствуют в симуляторах и средах разработки.

    И в итоге приходится обматывать провода фольгой и ставить железные пластины для борьбы с помехами, как тут Arduino управляет промышленным грузовым лифтом
    или подключать выход тахометра, на котором импульсы размахом 12В приводятся к 5В входу Ардуины с помощью стабилизатора 7805, как тут Динамическая подсветка приборной панели

    А потом, когда оказывается что программа, которая в симуляторе работает идеально, в реальном железе глючит и сбоит, начинается плач по всем форумам, что Ардуино — глюкалово, микроконтроллеры — глюкалово и еще и паять надо, электроника — глюкалово, паять надо и вообще ничего не понятно.

    А беда конкретно Ардуины в том, что она, как в свое время и персональные компьютеры, резко снизили порог вхождения в экосистему, и туда ломанулись «домохозяйки», которым лень разбираться в нюансах, а надо что бы кнопку нажал / проводок прикрутил / написал digitalWrite — и все заработало так, как хочется.


    1. free_arduino
      26.01.2016 13:38
      -3

      Тут я не спорю, уникалов хватает, все нужно тестировать не однократно перед использованием в реальных условиях.
      Ну а будущее я вижу, как и раньше думали, Basic для домохозяек — стиралку запрограммировать и т.д. В ардуино есть все шансы получить внедрение во все бытовые приборы — по типа arduino- совместимые. Да в этом есть много минусов — но это если воспринимать с критикой.


      1. dimao79
        26.01.2016 13:56
        +9

        У Ардуины нет никаких шансов на внедрение в бытовые приборы. Домохозяйкам не надо программировать стиралки, им надо нажать кнопку «Стирать» и всё. Так же, как и разработчикам бытовых приборов, нет никакого смысла ограничивать себя костылями схемотехники и среды разработки Ардуины, при всем богатстве выбора микроконтроллеров.

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


        1. free_arduino
          26.01.2016 14:03
          +1

          Возможно вы и правы, но то было только моё мнение. Так как разнообразность оборудование и контроллеров в бытовой технике на столько обширное, что большинство не поддается ремонту из-за недоступности компонентов. Хотелось что бы все было совместимое, заливая только нужную прогу. Что то по типу универсально micro USB на всех устройствах.


          1. dimao79
            26.01.2016 14:14
            +1

            Вы собираетесь ремонтировать сломанную стиралку, заливая в нее прошивку от работающей микроволновки по «универсальному micro USB»?

            Из всей моей бытовухи, за все время эксплуатации, требовало ремонта:
            1. Кондей и холодильник, отремонтированы заменой предохранителя и варистора.
            2. Стиралка, отремонтирована по гарантии заменой всей платы и статора двигателя (это была самая первая серия LG Direct Drive)
            3. Стиралка, заклинило крыльчатку на сливном насосе.

            Как вы эти проблемы решите «совместимой универсальной с micro USB» Ардуиной? Какие компоненты недоступны? Предохранитель? Варистор?


            1. free_arduino
              26.01.2016 14:20
              +1

              Недавно столкнулся с наболевшей темой для многих обладателей техники «Горенье». Сервис центр не ремонтирует свои контроллеры(а купить их и прошить нет возможности). Любым способом снимают с гарантии и за плату просят около 100$.
              Мне попался такой заказ на ремонт, единственный выход был, это установка Arduino pro mini в место штатного контроллера.
              Обошлось все в 20$. Внешне управление не изменилось от заводского.
              Я о таких случаях и их не мало.


              1. iliasam
                26.01.2016 14:31

                Если в управляющей плате сгорела некая деталь, то никакая прошивка не поможет.
                Установка arduino — это уже полноценный ремонт. Если бы его выполнял мастер из фирмы, 20$ скорее всего бы не хватило (даже если бы речь шла просто про замену сгоревших компонентов).

                И неужели вы думаете, что производители бытовой техники просто так будут выкладывать прошивки в интернет? В лучшем случае, прошивки будут выкладываться как сейчас — некий набор данных для закрытого бутлоадера.


              1. dimao79
                26.01.2016 14:39

                Уж не бойлеры ли?


              1. DIHALT
                26.01.2016 21:53
                +2

                Я решил проблему ремонта стиралки вот так:
                easyelectronics.ru/mister-remont.html

                Читать надо внимательно :)


    1. vvzvlad
      28.01.2016 20:29

      на котором импульсы размахом 12В приводятся к 5В входу Ардуины с помощью стабилизатора 7805

      Там же делитель.

      UPD: пардон, действительно там был стаб для согласования, автор застеснялся и исправил.


  1. neochapay
    26.01.2016 13:56
    +5

    Всегда повторяем себе: «Инструмент под задачу, а не задачу под инструмент!»
    Хочешь поморгать светодиодиком, сделать погодную станцию и прочую веселуху, начинаешь учиться программированию микроконтроллеров — велком ту Arduino.
    Хочешь сделать промышленную железку на 100500 экземпляров — велком ту микроконтролерное программирование.

    В чём проблема?


    1. free_arduino
      26.01.2016 14:05

      Да не вижу проблем ни в программировании ни в производстве. Вижу постоянный стёб с ардуинщиков в соц сетях, грубо тролят их заставляя изучать с++. )


      1. dimao79
        26.01.2016 14:17
        +11

        Их грубо троллят, заставляя изучить хотя бы основы схемотехники. И троллят не сразу, а после того, как устают разжевывать в десятый раз одни и те же ошибки, и выслушивать в ответ сперва добейся я собрал мигалку из трех светодиодов, а что сделал ты?


        1. free_arduino
          26.01.2016 14:34
          -1

          Это вопрос на который нужно ответить? )


          1. dimao79
            26.01.2016 14:43
            +2

            Это риторический вопрос , на который не нужен ответ.


  1. Deranged
    26.01.2016 14:09
    +11

    Ах, всё тот же древний спор, как глубоко нужно разбираться в платформе.
    Аргумент в этом споре всегда один. Закон дырявых абстракций (http://russian.joelonsoftware.com/Articles/LeakyAbstractions.html).
    При прочих равных, конкурентными преимуществами всегда будет обладать разработчик, который понимает как работает то, что он использует. И чем больше школьников которые которые считают, что их Непонимание и Нежелание понимать, как все это работает — это приемущество, тем более ценными специалистами становятся те, кто удосужился разобраться в стеке технологий.
    Ненависть, со стороны программистов, вызывает именно эта выраженная гордость своим невежеством, а не что-то другое. Есть, конечно, контингент мумифицированных старперов, которые уже ничему новому научиться не могут, но это меньшинство. У среднестатистического профессионального разработчика уже давно есть библиотека собственных велосипедов, которая даст фору любым ардуинам. То, что у старперов ушел год, на то, на что у вас месяц — это их недоработка, а не ваша заслуга. Плохие, значит, специалисты.


    1. Rascko
      26.01.2016 14:28

      Тут просто есть еще такой забавный момент, что ардуина стоит ровно посрединке между решениями, требующими именно вот закопаться в конкретный микроконтроллер и решениями, основанными на «полноценных» армовских отладочных платах, типа распберрипи и всяких биглбордах сотоварищи. В итоге с одной стороны люди видят какую-то причудливую прослойку между микроконтроллером (к тому же достаточно древним и бедным, как за его цену) и машинным кодом, а с другой — необходимость геморроиться с экзотическим операционным окружением, в которое нельзя притащить без проблем весь мешок библиотек, которые нарабатывались десятилетиями. Т.е. решение может выглядеть действительно хорошим для тех, кто ещё не зарылся в ту или иную разработку (т.к. порог вхождения-то низкий), но причудливым и бедным для остальных.


  1. viktorpanasiuk
    26.01.2016 14:49
    +6

    Я вообще проблемы не вижу в изучении регистров, ядра и инструкций тем более AVR. Там же детский сад. И когда смотрю на ардуину, вижу в ней прежде всего AVRку. Проблема ардуинщиков как раз скрыта за всеми этими DigitalWrite. И когда нужно сделать шаг влево или вправо, то всё, приехали. Я сам частенько поглядываю в ассемблерный листинг, чтобы понять что мне там компилятор накомпилировал и бывает диву даешься. Так что ассемблер наше все))) Еще, обычно, для ардуинщиков аналоговая схемотехника вызывает серьезный батхерт. Вы предложите ему собрать что-нибудь на операционниках, миксерах, сделать нормальную защиту от ЭМП или правильно развести плату. Повесится наверное)
    Ардуинщики покупают готовый дом. Программисты строят его с нуля. Да, купить дом быстрее и легче, но только построенный с нуля будет похож на тот о котором вы мечтали.


    1. dimao79
      26.01.2016 14:52
      +6

      Ардуинщики покупают готовый дом. Программисты строят его с нуля. Да, купить дом быстрее и легче, но только построенный с нуля будет похож на тот о котором вы мечтали.


      Программисты выбирают материалы для отделки и расставляют мебель. С нуля строят схемотехники.


  1. VBKesha
    26.01.2016 14:56
    +5

    По моему программисты ненавидят не саму ардуину, а часть тех кто ей пользуется, и свято верят что они собрав что то из готовых блоков и написав что то на готовых библиотеках, стали инженерами, схемотениками и эмбедед программистами. Но как только сталкиваются c отсутствием нужного шилда или библиотеки оказываются в тупике и не могут решить задачу.


  1. alexhott
    26.01.2016 14:59
    +1

    купил УСБ программатор за 2 бакса
    по сути среда ардуины недалеко ушла от атмел студии
    почти тоже си

    но когда у тебя на плате помимо контроллера питание. индикатор и силовые элементы
    а не куча проводов на макетной плате — работать удобнее
    для первого раза посмотреть на контроллер — ардуина идеальный вариант
    или нано вместо ДИП корпуса вставить в несирийное устройство


  1. potan
    26.01.2016 15:42

    А я начинал с БЗ-34, и мигал индикатором, так как светодиоды подключать было некуда.
    Да, программировать в жестких ограничениях весело. Но роботами и умными домами заниматься было бы веселее на системе с предустановленными Linux и ROS, и на современных языках программирования с адаптированными библиотеками — путь это и дороже в несколько раз, не такие уж и большие деньги.
    За 8-битный стоить браться, если предполагается со временем серийный выпуск устройств. Здесь было бы уместным использовать Arduino, особенно если бы была доступна его промышленная версия, выполненная по соответствующим стандартам надежности, но совместимая с любительской.


    1. iliasam
      26.01.2016 16:07

      За 8-битный стоить браться, если предполагается со временем серийный выпуск устройств.

      Linux и ROS — это всегда достаточно большое потребление энергии и отсутствие realtime. Именно в этих нишах микроконтроллеры заменить нечем, и не важно, какая серия требуется.
      Если скорости (того самого realtime) не хватает, приходится использовать ПЛИС.


      1. potan
        26.01.2016 18:55

        Там, где справляется AVR, справится и ARM с ROS в реальном времени. К тому же в Linux есть поддержка realtime.

        Энергопотребление для любительских устройств не критично. Даже если это мультикоптер — двигатели сожрут гораздо больше. Только в носимой электронике стоит заморачиваться.


        1. viktorpanasiuk
          26.01.2016 19:04
          +1

          Стоит отметить что прерывания AVR очень быстры и с их частотами в 16 МГц выполняются примерно столько же, если не быстрее, прерываний ARM. А RTOS и реал тайм вещи немного не совместимые. Разве что использовать прерывания и bare metal программирование или же вклинивать обработчики прерываний в ROS.


  1. ncix
    26.01.2016 15:58
    +2

    Не совсем понял о каких «программистах» идет речь. Я например пришел к Ардуино из энтерпрайзного программирования (Delphi, C++, Java, 1C etc). Отсутствие необходимости паять и вспоминать электротехнику очень радует.


    1. Alexeyslav
      26.01.2016 17:10
      +2

      Радовать будет недолго, до первых спалённых портов на ровном месте из-за ЭМ-наводок(что такое тиристорное защелкивание входов надеюсь загуглите) и совершенно необъяснимых аппаратных глюков, после чего придется все-таки взяться за электротехнику.


      1. ncix
        26.01.2016 17:16
        +1

        Если серьезно заниматься и постоянно повышать свой уровень — конечно довольно быстро вырастешь из Ардуины и вспомнишь и элтех и курс микроэлектроники и паять и травить научишься.
        Плюс Ардуины в том что можно начинать с наглядных работающих вещей буквально за минуты.


  1. San66
    26.01.2016 17:09
    +1

    «А вот школьник Ардуинщик на таком Arduino соберёт в считанные минуты проект который и не снился программисту.»
    О каком таком проекте может идти речь? Да и что значит «соберет»? Любое изделие имеет функцию, которую реализуют не тупой набивкой модулей, нужно их еще увязывать и согласовывать. А если он просто скачает и загрузит готовый проект то чем это отличается от установки готовой программы на тот же планшет в магазине?

    Ну орфография не соответствует олдскульности автора.


  1. JerleShannara
    26.01.2016 17:59
    +3

    Ардуина раздражает тем, что снизив порог вхождения она влила к микроконтроллерщикам домохозяек, которые при малейшей ошибке начинают плакаться и вопрошать «какэтасделатьнадапамагите». В результате, когда пытаешься выяснить, это бага в компиляторе, кандидат в эррату, кЕтайская микросхема, или сам олень, натыкаешься на толпу ардуинщиков, т.е. к полезной информации, благодаря ардуине, была вылита тонна мусорной. Далее некоторые погроммисты-ардуины умудряются пропихнуть свои решения на этой самой ардуине в продакшен, не заботясь об быстродействии/оптимизации. И приходится расхлёбывать «ну почему эта тварь так медленно работает, вон аналог на почти томже железе в 7 раз быстрее». Плюс имеем кучу народа, который начинает лезть с простейшими вопросами везде (ну где на форуме надо задать вопрос, почему светодиод не горит — конечно-же везде, кроме раздела «для новичков», яж не новичёк, я вон, осилил три строчки кода). Плюс некоторые такие товарищи умудряются взяться за какой-либо проект, а за неделю до дедлайна понять, что нипалучаицца. Следом таковые пытаются спихнуть свою работу на коллег, которые итак загружены. В результате человек, которому эта ардуина была полностью пофигу (ну есть она, и что, мне вот пофигу, есть фирма MIPS со своими процессорнымы ядрами и есть, мне от этого фигалетово и ничем не мешает), начинает плеваться от неё — т.к. даже из унитаза звучит волшебное слово «ардуино», и поиск информации о слоне превращается в муку по убиранию из выдачи предложений купить этого самого слона.


  1. rotor
    26.01.2016 18:57
    +1

    Хватит называть электронщиков программистами. Электронщик освоивший базовый синтаксис «С» настолько же программист, насколько я, программист, освоивший Ардуино и познавший транзисторы — электронщик.
    Программист — это все же немного другой уровень. Никого не хочу обидеть, но электронщики все же больше электронщики, чем программисты.


    1. viktorpanasiuk
      26.01.2016 19:08
      +3

      Я электронщик, писал на ассемблере, С, для AVR и ARM, сейчас системное программирование на С++. Согласен с вами полностью. Не хватает мышления программиста, но элетронщину на программирование не променяю ни за что))


  1. Rockerman
    26.01.2016 19:40

    Ну вообще, ардуина и правда крута в том, что можно очень быстро собрать прототип. Я свою телегу c телеуправлением по Wi-Fi дольше собирал механику. Однако есть и другие задачи, типа виртуальной реальности, которой занимаемся последний год уже. И вот там, конечно STM32…
    Даже у него память заканчивается, а без операционки типа free RTOS иногда всё плохо заканчивается… Ну, и конечно, всё упирается в себестоимость готового изделия и их кол-ва.


  1. DIHALT
    26.01.2016 21:47
    +8

    Хорошо у вас бомбануло. А вся суть статьи сводится к тому «я делаю что то, я не понимаю как оно работает, но оно работает!»

    Самое интересное начинается когда оно вдруг не работает, хотя вроде бы должно. Или работает как то не так :) Потому как «я не понимаю» никуда не делось.


    1. Anvol
      27.01.2016 13:19

      del


    1. Anvol
      27.01.2016 13:28
      +1

      + упущены из виду инструменты вроде stm32 hal и mbed, которые дают все преимущества абстракции от железа не мешая отладке, выбору МК/платы и запуску масс производства


  1. Bluewolf
    26.01.2016 22:31
    +6

    1. Те, у кого нашлась неделя времени освоить Atmel Studio и основы «голого» программирования Atmel, все также могут использовать и библиотеки ардуино целиком, и куски кода из них, и писать свой код, поглядывая в исходник библиотеки ардуино, но у них при этом есть еще и нормальная отладка с точками останова, просмотром памяти и всей периферии контроллера, логом переменных и много чем еще, а также куда больше контроля над компиляцией, ее результатами, компоновкой кода и остальным. Но и писать программы на wiring-библиотеках все еще можно.

    2. Те, кто знает электронику в большем объеме, чем подсоединение проводков по картинке, все также могут использовать модули ардуино и периферийные модули для изучения\прототипа, но они также могут сделать и более компактную\надежную\дешевую\энергоэффективную плату со всеми модулями сразу, использовать контроллеры и микросхемы, которых нет в виде модулей, полнее использовать возможности применяемых чипов и много чего еще. Но и купить ардуино-нано, припаять к макетке вместе с двумя реле для единичного устройства всё еще можно.

    Поэтому я не совсем понимаю противопоставления «ардуинщиков», «программистов» и «электронщиков», также, как и не считаю ардуино чем-то плохим. Просто есть несложные задачи, где ардуино вполне хватает, есть даже какие-то промышленные задачи, где дешевле и проще впаять ардуино-нано в малосерийное устройство, а есть еще множество задач, где ардуино уже подходит не очень. Но какого-то прямо антагонизма нет же.

    Ну и есть другой момент. Часто все-таки эффективнее изучить чуть более сложный, но гораздо более мощный инструмент, чтобы потом себе же упростить работу\хобби и получать больше удовольствия и меньше проблем. И те, кто этот инструмент изучили, смотрят на тех, кто принципиально не вылезает из Arduino IDE как на… ну не знаю, людей, которые упорно ездят на трехколесном велосипеде, не желая потратить два дня и пересесть на взрослый.


  1. GarryC
    27.01.2016 11:45
    +2

    Никого не желая обидеть (ага, конечно), тем не менее позволю себе высказывание — лично у меня Ардуинщики не вызывают ненависти, это слишком сильное чувство, я его приберегаю для равных, а скорее чувство тягостного недоумения от того, что человек сознательно ограничивает свое развитие. Причем не просто сознательно ограничивает, но еще и гордится своей ограниченностью, ставит ее в основу и подводит теоретическую базу, и все это для того, чтобы оправдать свою лень — по моему, результат совершенно не оправдывает усилий, что и вызывает недоумение.

    А что касается равенства (в смысле возможности дискуссии), то позволю себе привести одну строку из программы автора, демонстрируемую как высшее достижение свободного полета человеческой мысли

    int v = 13; // создаем переменную v со значением 13 (номер вывода микроконтроллера) 
    Да, вы правы, данная строчка меня именно что приводит в шок, но, думаю, если я озвучу, по какой именно причине программы ТАКОГО класса меня приводят в вышеуказанное состояние, Вы не будете очень довольны услышанным.

    Давно думал о том, что надо бы написать об Ардуино платформе (но, конечно, серьезно, а не так), но теперь, с одной стороны, не хотелось бы оказаться в компании авторов подобных опусов, но, с другой стороны, данные произведения могут прочитать дети, и оставлять их в неведении относительно истинного положения вещей было бы бесчеловечно. Так что продолжаю пребывать в раздумьях, писать иль не писать?


    1. Anvol
      27.01.2016 13:30

      это очень плохая идея сравнивать молотки с микроскопами и мастерство владения ими. Не уподобляйтесь)


      1. GarryC
        27.01.2016 13:34

        Не уподобляйтесь, это Вы правильно, но ведь ДЕТИ могли прочитать).


        1. Anvol
          27.01.2016 13:37

          для детей нужна двухходовка:
          1. Завоевать авторитет
          2. Показать собственный пример

          В общем, ждем статьи о прелестях новой атмел студии и ее функционала импорта ардуино скетчей ;) Я его пока так и не попробовал (


  1. olekl
    27.01.2016 13:37

    Однажды мы заказчику предлагали на выбор микроконтроллер для проекта, обоснованно предлагали. Но он выбрал Атмел. Т.к. до этого игрался в Ардуино (и это не шутка!). В итоге мы на этом проекте СТОЛЬКО проблем огребли из-за этого выбора… А если посчитать зря протраченное время на поиски обходных путей и общение с техподдержкой, и перевести это в деньги…


    1. GarryC
      27.01.2016 13:49

      Как говорили в одном хорошем фильме «Самая дорогая вещь на свете — это глупость, потому что за нее дороже всего платить приходится.»


    1. Bluewolf
      27.01.2016 14:17

      Atmel довольно дорогие контроллеры, а старые семейства tiny\mega имеют некоторое количество пронаследованных от самых ранних контроллеров ограничений, вроде невозможности переключить источник частоты на лету или жестко привязанную к выводам периферию, но в остальном у них нет каких-то прямо огромных проблем по сравнению с PIC\MSP430\STM8. Они вполне стабильно и предсказуемо работают, имеют неплохую документацию, удобную и бесплатную IDE с компилятором C++, сделанную из Visual Studio, энергопотребление и набор периферии тоже на уровне конкурентов (8/16 битных), доступно множество готового кода\примеров для почти любой обвязки. У xmega же практически все эти проблемы исправлены (но стоят они еще более недешево, да).


      1. olekl
        27.01.2016 14:27

        Исправлено, да. ATMEGA165PA. Если тронуть фьюз, который защищает EEPROM от стирания (а по умолчанию EEPROM по команде chip erase стирается, при этом chip erase — единственная возможность очистить флеш перед перепрошивкой), то примерно у 50% контроллеров после следующего chip erase сотрется «read-only» CPUID вместе с калибрацией частоты. Калибрация частоты тоже «только для чтения», да. После чего при работе от внутреннего клока частота во-первых будет в два раза выше ожидаемой (16 МГц вместо штатных 8), а во-вторых, иногда будет отличаться на плюс-минус несколько процентов, и иногда «несколько» = 20. А у вас в паре мест критически важны точные временные интервалы…


        1. Alexeyslav
          27.01.2016 15:34

          CPUID это печалька, программаторы которые проверяют чип перед прошивкой не смогут его прошить…
          А вот калибровку можно обойти, её можно задать программно на старте но конечно же потребует определённого количества дополнительных операций.
          В этом контроллере же не заявлена точность и температурная стабильность внутренего RC-генератора поэтому странно было бы вообще опираться на это значение как на точное… даже плохой керамический резонатор что в пультах используют и тот будет выдавать частоту стабильней.
          Плохо конечно и то что тайминги записи EEPROM зависят от внутреннего генератора… т.е. программатором со сбитой калибровочной константой EEPROM будет прошиваться со сбоями и/или ненадёжно.


          1. olekl
            27.01.2016 15:58

            Смогут, если применить грязный хак :) описанный на avr freaks. Но нам и не надо было, мы его сами шили через spi. Со стороны «большого» атмела. А вот частота да. Кстати, после заводской калибрации точность вполне была на уровне. А после того как калибрация слетала, приходилось самому его калибровать на старте, передавать измеренное значение и корректировать частоту. Но это ж все непредвиденные накладные расходы на разработку, плюс баг еще обнаружить надо было и убедить техподдержку в его наличии (а они два года дуплились, пока не признали). Внешний кварц решил бы проблему, но его ж надо было туда поставить, а контроллеров было 5 в каждом девайсе, оптимизация расходов еще на этапе дизайна…


            1. Alexeyslav
              27.01.2016 16:38
              +1

              Можно было все остальные затактировать от одного главного, который никогда не уходит в глубокий сон.


        1. Bluewolf
          27.01.2016 21:09

          Исправлено в xmega, я же написал. Там и управление источником частоты нормальное, и интерфейс программирования другой, и чудовищный debugWire выкинули, и много чего еще. Про использование внешнего кварца, хотя бы одного, писали ниже. Проблемы Atmel Studio 5 — не совсем проблемы контроллера (у STM8, например, вообще нет нормальной бесплатной, а тем более, родной, среды), и они тоже в 6 и тем более 7 студии исправлены. У нас вот, к примеру, в серии из 3300 штук плат прошилось и правильно заработало 3300, в меньших сериях то же самое, каких-то других проблем именно с контроллерами и за пределами Errata — не было.

          Да, у Atmel mega\tiny есть недостатки:
          1) дорого, особенно на фоне STM8
          2) debugWire (впрочем, есть варианты с нормальным JTAG)
          3) наличие фьюзов и то, что многое настраивается только через них и не в рантайме
          4) нет серийного номера и еще некоторых приятных штук, которые уже есть у других

          Но в остальном это вполне нормальные контроллеры, сравнимые с остальными и имеющие некоторый набор преимуществ. Не идеал, конечно, но идеала тут вообще нет.


      1. olekl
        27.01.2016 14:29

        Больше веселостей, с которыми пришлось столкнуться, тут: habrahabr.ru/post/147025


  1. Jmann
    28.01.2016 10:49

    Валяется на работе Ардуино, поигрался с SIM900 шилдом. Да просто, за часик слепил прогу на готовых примерах и бибках, позвонил с шилда друзьям и по отсылал мессаджи… Но! Как оно там все работает так и не понял… Второй раз взял эту платку, что бы поиграться с Flowcode, из под этой среды заливал алгоритмы в ардуино (на easyelectronics выкладывал описание), на этом все… Все-таки для каждого изготавливаемого девайса необходим свой форм — фактор, свои ресурсы. Удобнее сделать печатную плату под себя, вывел все необходимое и работай на здоровье. Программирование железа… ммммм, ну тут не обойтись без изучения регистров ибо не будешь знать, как девайс работает, когда уходит в прерывание, как дергаешь ножку и тд. ИМХО Arduino хорошая штука для метеостанций и инкубаторов. Если бы я был заказчиком, то никогда бы в жизни не купил подобный «бутерброд» собранный на разноцветных шлейфах… PS: из этой серии мне больше по нраву STM32Nucleo ну и Малинка конечно же.