Образовательная галактика Intel®

Блог Участника

Запись блога

"Киберфизика запускает Нейтрино" или "лайфхаки при тестировании нового контроллера"

Мне очень повезло, что, зная мое неравнодушное отношение к Arduino, мой очень хороший знакомый Руслан Тихонов, прислал на тестирование, за что ему огромное спасибо, новый контроллер Нейтрино от компании «Киберфизика», который в скором времени планируется выпускать в тираж.

Внешний вид платы Нейтрино очень стильный: черный лак на плате и белые надписи, как парадный фрак с белой сорочкой у кинозвезд на вручении престижной кинопремии. Цвет разъемов красный и синий несколько отходит от торжественности в сторону повседневной, но практичной «джинсы», однако соглашусь, что очень разумная идея выделить красным цветом колодку с питанием (3.3V, 5V, GND, Vin). На это теперь очень удобно акцентировать внимание ребят при знакомстве с контроллером Нейтрино. По крайней мере, без такого цветового выделения на моих занятиях по микроэлектронике в начале учебного года обязательно найдутся один-два ребенка, которые даже при наличии картинки перед глазами могут перепутать колодки с разъемами при подключении проводов от контроллера Arduino/Freeduino к схеме.

На фото: сверху контроллер Iskra Neo и мезонинная плата от Амперки, внизу - контроллер Нейтрино от Киберфизики.


И конечно, визуально Нейтрино в ряду Arduino-клонов сразу же выделяется наличием 20 дополнительных тройных разъемов (сигнал, +5 Вольт, Земля) справа со стандартным шагом между контактами 2,54 мм для подключения датчиков и модулей. Плата стала чуть длиннее, но теперь при работе с модулями, подключаемыми трехжильными кабелями, такими как сенсоры, датчики, модули реле, светодиоды и т.п., больше не потребуется мезонинная плата. Это не просто удобно, это - очень удобно!

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

Далее приятно удивило меня при рассматривании через увеличительное стекло наличие на плате двух микросхем-стабилизаторов питания на 5 Вольт и 3.3 Вольт серии AMS1117. По datasheet каждый из них выдерживает нагрузку до 1 Ампера, а в пике до 1,5 Ампер!!! Для сравнения: у фирменной Arduino Leonardo на вывод 3.3 Вольт можно подключать нагрузку всего лишь не более 50 милливатт. Это значит, что к Arduino Leonardo нельзя без дополнительного блока питания подключить WiFi-модуль ESP8266, про который я недавно писал серию постов для изучения Интернет вещей, а к контроллеру Нейтрино — можно запросто и еще большой резерв останется. За это — создателям отдельный респект!

Сразу попробовал плату в деле. На моем домашнем нетбуке установлена система Linux Ubuntu 12.04 LTS. При подключении USB провода от Нейтрино к нетбуку, контроллер сразу распознался без установки дополнительных драйверов и без проблем «прошивался» как плата «Arduino/Genuino UNO».

Тест 1



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

Код
const int buttonPin = 2;
const int ledPin =  13;

int buttonState = 0;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);
}

void loop() {
  buttonState = digitalRead(buttonPin);

  if (!buttonState)
      digitalWrite(ledPin, millis() / 1000 % 2);
  else
      digitalWrite(ledPin, LOW);
}


Тест 2



Следующим тестом решил проверить работу 10 битного аналого-цифрового преобразования АЦП, для этого собрал известную схему «Оптический терменвокс», которая нравится школьникам из-за возможности после успешной сборки помузицировать. Для этой схемы применил датчик освещенности и зуммер от Амперки также в формате модулей с трехжильными кабелями. Если рукой по разному прикрывать датчик освещенности, то тон звука меняется. При музицировании можно попробовать извлечь какое-то подобие мелодии, которое способен извлечь зуммер. В скетче использована функция map(), которая пропорционально изменяет значение из диапазона от 0 до 1024 (2^10=1024) в новый диапазон от 0 до 255.

Код
int sensorPin = A0;
int sensorValue = 0;
int f = 0;

void setup() {
}

void loop() {
  sensorValue = analogRead(sensorPin);
  f=map(sensorValue,0,1024,0,255); //пропорциональный перенос из 10 битного АЦП 0..1024 в новый диапазон для tone 0..255
  tone(8,f);
}


Тест 3



Третий тест — это подключение к Нейтрино серводвигателя FS90. Для управляющего сигнала поворотом вала серводвигателя я использовал данные с потенциометра, подключенного к АЦП, а именно к аналоговому порту A0. Распиновка кабелей, как и в предыдущих тестах, подошла. Вращая ручку потенциометра, мы, тем самым, управляем углом поворота вала серводвигателя от 0 до 180 градусов. В скетче тоже есть лайфхак: при резком повороте ручки у потенциометра вал серводвигателя будет поворачиваться плавно, без нагрузок на капроновые шестерни, с паузой 15 миллисекунд на каждый градус поворота. Скетч такой:

Код
#include <Servo.h>

Servo myservo;
int sensorPin = A0;
int sensorValue = 0;

int pos = 0;
int posOld = 0;

void setup() {
  myservo.attach(5);
}

void loop() {
  sensorValue = analogRead(sensorPin);
  pos=map(sensorValue,0,1024,0,180); //пропорциональный перенос из 10 битного АЦП 0..1024 в новый диапазон для servo 0..180
  while(pos != posOld) {
    posOld += pos > posOld?1:-1;
    myservo.write(posOld);
    delay(15);
    }
}


Тест 4



И заключительным тестом была успешная проверка контроллера Нейтрино на совместимость с MotorShield 4DC на шасси трибота, собранного из деталей и моторов LEGO и омни-колес HiTechnic:


Выводы:
1. Плата Нейтрино очень удобная для подключения сенсоров, модулей и серводвигателей посредством трехжильных кабелей без дополнительной мезонинной платы.
2. Стабилизатор питания на плате Нейтрино, благодаря примененным микросхемам серии AMS1117, выдерживает более высокие нагрузки, чем оригинальная Arduino. Это позволит подключать большее число модулей и датчиков.
3. Плата полностью Arduino-совместима и работает с шилдами, разработанными для Arduino.
4. Дизайн платы Нейтрино очень симпатичный.

Комментарии

Новичок

  • Группа: Пользователи
  • Сообщений: 1
  • Регистрация: 4.7.2015
  • Номер участника: 174191
Предупреждение

Очень любопытно. А нельзя ли подключить моторы для подвижного робота без драйвера моторов?

Активный пользователь

  • Группа: Пользователи
  • Сообщений: 115
  • Регистрация: 20.4.2011
  • Из: г.Томск
  • Номер участника: 97119
Предупреждение

Цитата(semionenkov @ 7.3.2017, 1:10)
Очень любопытно. А нельзя ли подключить моторы для подвижного робота без драйвера моторов?

Слабомощные, типа серводвигателя SG90 можно подключить к Arduino без драйвера, но двигатели постоянного тока, такие как у LEGO Mindstorms NXT2.0 нужно подключать к Arduino и Нейтрино через драйвер из-за большой их мощности. Если нужна Arduino-совместимая плата с уже встроенными драйверами для простого подключения моторов без драйверов, то советую посмотреть на Strela от Амперка http://wiki.amperka.ru/%D0%BF%D1%80%D0%BE%...82%D1%8B:strela или на контроллер Трекдуино http://mrtrus.ru/opisanie-kontrollera-trekduino.html от великолепного робототехнического конструктора Роботрек http://mrtrus.ru/robototexnicheskij-kompleks-robotrek.html , превосходящего по некоторым позициям продукцию даже такого известного производителя как LEGO!

Сообщение отредактировал KosachenkoSV - 7.3.2017, 6:02


--------------------
Мир, Дружба, Open Source!

Статьи по этой теме

« Май 2017 »
ВПВСЧПС
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

Последние записи

Мои ссылки в блоге

Последние комментарии

Мое изображение

3 пользователей просматривает
3 гостей
0 участников
0 анонимных участников

Категории

Поиск в блоге


Наверх