Wednesday, 24 September 2014

Как была разработана плата расширения АНРУ

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

Одна вещь, что я искал - это способ сделать действительно потрясающий графический пользовательский интерфейс для моих будущих Ардуино проектов. Около 4 месяцев назад я убедил руководство, чтобы включить некоторые из высоких технологий Xped в плату расширения. И спустя 2 месяца у нас были первые прототипы плат, готовых к альфа-тестированию.

Вот картина того, как проект начался. Плата в левом верхнем углу это
плата NFC для разработок которую мы купили. Другие 2 платы  мы использовали от других наших проектов.

  
Мы соединили проводами платы, чтобы получить возможности, которые мы хотели. Вот список основных функций мы придумали для платы расширения:
  •      Ближняя Бесконтактная Связь [NFC] или ББС для краткости. Это та же технология за беспроводных платежей и также известен как PayWave и PayPass. ББС  функционирует во многих смартфонах.
  •      Персональная Сеть или ПС для краткости, использует протокол уровня связи 802.15.4 MAC. Этот вид ПС обеспечивает гораздо больший диапазон, чем Bluetooth.
  •    Чип хэширования для участия в безопасных операциях, таких как обновление встроенного программного обеспечения по радио.
  •     STM32F103R8 ARM Cortex M3 32-разрядный микроконтроллер.
  •      256 Кб  внешней памяти Флеш.
  •      Файловая система для хранения данных и других файлов.

После суетной работы около 2-3 недель мы сделали достаточное количество проверок аппаратуры и программного обеспечения чтобы перейти к разработке специализированной платы расширения. Вот фотография самой первой платы в непаянном состоянии.




 И недолго после этого у нас была полностью собранная плата. Здесь она в сборке с Ардуино Уно.





Так в настоящее время мы пишем библиотеку для платы расширения, что сделает его очень простым в использовании. Вот первый демо-проект который сделали с ним. В этом проекте плата расширения соединяется с покупной платой управления двигателем. Здесь он соединяется с небольшим двигателем постоянного тока, который вращает пластиковые шестерни, которые мы сделали на 3D-принтере.




 Когда браузер устройства не включен подносим смартфон к устройству и его интернет страница открывается в интернет браузере. При этом используется возможности смартфона по ближней бесконтактной связи.



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




 Система АНРУ позволяет установить правила таким образом, что устройства могут взаимодействовать друг с другом для выполнения полезных функций. Это иногда называют M2M (межмашинный интерфейс).




Вы можете использовать более одного контроллера и контроллеры могут быть разных типов. Дисплеи всех контроллеров будут синхронизированы. Это видео показывает три контроллера, все они контролируют одно и то же устройство. Один из контроллеров является программным контроллером и работает на настольном ПК.




 Я не знаю, если вы знакомы со средой разработки Qt и как он строит графический интерфейс (что в некотором смысле подобно тому, как это делается в Java Swing)? Эти системы используют 3 основных типа виджетов: контейнеры, контролеры и элементов дизайна. Наше приложение для телефона разработано с использованием технологии Qt и наш язык XML (мы называем это Язык Разметки Ресурсов или ЯРР) описывает GUI с точки зрения механизмов этих видов виджетов. Я думаю, что я пытаюсь сказать (и делаю это плохо), что используя ЯРР вы можете описать графические интерфейсы любого уровня сложности.

Вот некоторые примеры:

ПРОСТОЙ ПРИМЕР ("Привет Мир" для GUI, например Светодиод включить/выключить):



 <screen name="main-page" margins="4">
    <devicebox title="$(NICKNAME)" layout="horizontal" spacing="4" margins="4" skin="wood">
        <xpcontrolbox bind="on" layout="horizontal" leftmargin="20" rightmargin="20" stretch="1">
            <localetitle><en>LED</en></localetitle>
            <xpsvgtoggleswitch bind="on" skin="Beryl"/>
        </xpcontrolbox>
        <spacer stretch="4"/>
    </devicebox>
</screen>




ПРИМЕР СРЕДНЕЙ СЛОЖНОСТИ:

 


ПРИМЕР ВЫСОКОЙ СЛОЖНОСТИ (с стилистическими листами и мульти-экран):




 Вот текущий список виджетов по типу:
 

Элементы контейнеры
  •      Box
  •      GroupBox
  •      DeviceBox
  •      Signalbox
  •      ControlBox

Элементы разметки:

  •      separator (разделитель)
  •      spacer (прокладка)

Элементы управления:

  •      label
  •      checkbox (флажок)
  •      pushbutton (кнопка)
  •      SVGButton
  •      svgtoggleswitch
  •      svgslideswitch
  •      slider (слайдер)
  •      scrolldial
  •      scrollwheel (Колесико прокрутки)
  •      scrolldialwheel
  •      5waybutton
  •      3waybutton
  •      2waybutton 
  •      rockerbutton
  •      RadioGroup
  •      progress (прогресс)
  •      led (светодиод)
  •      7seg
  •      dialgauge
  •      LineEdit
  •      ListBox

Телефон не обязан иметь NFC чтобы система работала
NFC просто делает это проще и привлекательнее, когда вы можете поднести телефон к устройству и начать взаимодействовать с ним. Система имеет концентратор Hub (центр контроля), который имеет NFC  и обеспечивает 802.15.4 PAN сети, так что вы также можете нажать устройства к концентратору, чтобы соединить их с системой.

Некоторое время назад я искал робот низкой стоимости, который может быть контролируем с помощью Ардуино. Я нашел Zumo Robot и купил пару из них. Несколько дней назад я провел около 20 минут для создания RML и
Ардуино кода для управления Zumo и вот короткое видео о результате.


 Интерфейсы платы расширения любого Ардуино проекта в экосистеме АНРУ, как показано на этой диаграмме:



В это время АНРУ плата расширения находится в стадии альфа испытаний. Вскоре будет вторая итерация платы расширения  и начало бета-тестов.

 
Крис Вуд
Технический директор и соучредитель
 
 
 
  
 Иван Иванов
Сотрудник компании и автор перевода
 

No comments:

Post a Comment