Перехожу на Arduino M0

Тема в разделе "Arduino & Shields", создана пользователем teddyfox, 29 авг 2016.

  1. teddyfox

    teddyfox Нерд

    Братцы, хочется посоветоваться.

    Весь мой предыдущий ардуино-опыт - это работа с Uno и Mega (8-битные AVR). Всю весну провозился с Амперковским IMU-модулем на 10 степеней, делая стабилизатор положения. Получилось. Использовал Мегу. Даже несмотря на кучу расчетов с плавающей точкой (фильтры Калмана при расчете углов и угловых скоростей) вычислительной мощности Меги хватало с запасом.

    Теперь решил сделать нечто подобное балансирующему кубу Cubli - http://robohub.org/swiss-robots-cubli-a-cube-that-can-jump-up-balance-and-walk-across-your-desk/. Естественно, начну с 2D-варианта. Там расчетов с плавающей точкой еще больше плюс идет куча прерываний (которые могут "испортить" не-однотактные плавающие вычисления).

    Решил задействовать 32-битную ARM Ардуину М0. Операции с плавающей точкой - однотактные (это главное). Скорость много выше (хоть это и не критично). Все используемые модули - 3-вольтовые (IMU, драйвер шаговика, WiFi ESP8266). Причем всех потребителей 3,3В можно запитать через М0 (М0 по цепи 3,3В тянет аж 1000 мА). Купил М0 и модули, начал знакомиться с М0. Использую "родную" IDE 1.7.10 от arduino.org.

    Вопросы:
    - вроде бы мои рассуждения по переходу на М0 логичны. Поддержите-покритикуете?
    - про библиотеки: родная амперковская библиотека troyka-imu.h для работы с IMU будет работать на М0 в IDE 1.7.10 от arduino.org?
    - начав играться с М0, уперся в глупую ситуацию: М0 не выводит текст в окно IDE монитора, причем загруженная программа работает - мигает 13-м пином в нужном темпе. Ниже код. В IDE плата выставлена как "Arduino M0". Что здесь не так?
    Код (C++):
    #define LEDpin 13

    void setup()
    {
        SerialUSB.begin(9600);
        pinMode(LEDpin,OUTPUT); digitalWrite(LEDpin,LOW); delay(1000);
        SerialUSB.println("=== This is a test ===");
    }
    void loop()
    {
        digitalWrite(LEDpin,HIGH); delay(1000);
        digitalWrite(LEDpin,LOW); delay(1000);
    }
     
    Спасибочки.
    UPD: Работаю на Mac OS X - никаких драйверов для М0 не нужно.
     
    Последнее редактирование: 29 авг 2016
  2. 9xA59kK

    9xA59kK Гик

    Поиграйся со скоростью Serial порта.
     
  3. ANV

    ANV Гуру

    В М0 нет однотактной плавающей точки