Графический калькулятор

КЕДР Solutions разработала аппаратное и программное обеспечение для графического калькулятора. Прибор предназначен для сложных вычислений, построения диаграмм, графиков и программирования.
Графический калькулятор – этот прибор, обладающий расширенными функциями по сравнению с обычным калькулятором. Он позволяет строить графики, работать с таблицами, вычислять интегралы, логарифмы и производные, программировать и многое другое, что пригодится при изучении высшей математики.

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

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

Согласно статистике Verified Market Research, рынок графических калькуляторов переживает непростые времена и в настоящее время демонстрирует отрицательный рост.

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

Запрос

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

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

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

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

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

Задачи специалистов КЕДР Solutions заключались в следующем:

  • Научно-исследовательская часть:
- собрать функциональные и аппаратные требования,
- провести тщательное исследование существующих моделей конкурентов,
- дать комплексную оценку;


  • Разработка аппаратной части;
  • Разработка прошивки (учитывая математический ввод данных, естественный ввод данных, создание графического интерфейса, внедрение языков программирования IS Basic и MicroPython);
  • Разработка кроссплатформенного настольного приложения под Windows, Linux и macOS для управления устройством;
  • Разработка программы-эмулятора калькулятора под Windows.

Решение

Изначально в нашем устройстве предполагалось использовать микроконтроллер серии STM32F4 с процессором Cortex-M4.

Но пандемия COVID-19 внесла свои коррективы в производство и логистику электронных компонентов, поэтому совместно с заказчиком было принято решение использовать китайский микропроцессор GD32F470ZKT6, имеющий схожие с STM32 характеристики.

Наше устройство имеет размер 190x80x12 мм, экран с диагональю 2.8 дюйма с разрешением 320x240 пикселей и 140 DPI.

Калькулятор питается от литий-полимерной аккумуляторной батареи и может работать длительное время без подзарядки.

Аппаратная архитектура устройства показана ниже.
Аппаратная архитектура графического калькулятора, созданного командой КЕДР Solutions.
Блок-схема аппаратной платформы калькулятора.
В калькуляторе нет Bluetooth, Wi-Fi, доступа в Интернет, игр и других отвлекающих от учебы факторов.

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

Наше устройство поддерживает естественный ввод: выражения, символы и дроби отображаются так, как это принято в математике.

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

Наш калькулятор позволяет программировать и поддерживает язык программирования MicroPython, а также собственную разработку команды КЕДР Solutions – язык IS Basic. Устройство может получать программы, написанные на MicroPython и IS Basic, с ПК через USB-кабель и сохранять их во внутреннюю Flash-память.

Пользователь может писать свои программы, используя внутренний редактор, открываемый клавишей «prgm». Мы разработали руководство, по которому любой желающий может научиться программировать на MicroPython и IS Basic.

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

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

Мы также разработали десктопное кроссплатформенное приложение для Windows, Linux и macOS, используя язык C++ и фреймворк Qt.

Приложение позволяет студентам извлекать файлы из калькулятора, загружать собственные программы написанные на MicroPython и IS Basic, а также обновлять прошивку.

Сложности проекта и их решение

Устройство графического калькулятора.
Основной сложностью при разработке устройства был огромный объем работ, связанный с большим количеством математических функций калькулятора. Реализация функция естественного ввода также была трудоемкой и сложной задачей, требующей глубоких знаний высшей математики.

Во время работы над проектом мы поменяли микроконтроллер STM32F4 на новый для нас китайский GD32F4, что, конечно, потребовало дополнительного времени на изучение документации.

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

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

Еще одной сложной задачей была разработка своего собственного языка программирования IS Basic. Мы создали гибкий язык, на котором можно писать любые программы в рамках функционала калькулятора.

Выполненные работы

  • Создание принципиальной схемы
  • Проектирование и сборка печатной платы
  • Тестирование прототипа
  • Отладка
  • Разработка прошивки
  • Разработка кроссплатформенного десктоп приложения и программы-эмулятора

Использованные технологии

  • Для создания принципиальной схемы и проектирования печатной платы команда использовала Altium Designer.
  • Прошивка написана на C++ с помощью среды разработки Visual Studio IDE, кроссплатформенной утилиты CMake и набора компиляторов GCC.
  • Для проекта мы использовали микроконтроллер GD32F470ZKT6 на основе ядра Arm® Cortex®-M4 с тактовой частотой 240 МГц от компании GigaDevice.
  • При написании прошивки была использована библиотека для небольших встроенных систем FatFs.
  • Устройство питается от перезаряжаемой батареи LiPo (3,7 В, 2000 мА·ч).
  • Для создания графического интерфейса мы использовали графическую библиотеку LVGL.
  • Кроссплатформенное десктоп приложение написано на C++ с использованием фреймворка Qt.
  • Калькулятор имеет флеш-память объемом 8 МБ для архивирования данных и хранения приложений.

Итоги

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

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

Вот как клиент описал свои впечатления о работе команды КЕДР Solutions:

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

Команда КЕДР Solutions разъясняла мне ключевые моменты разработки, и, таким образом, я не оставался в неведении относительно того, на каком этапе мы находимся.

Разница во времени не мешала нам быть на связи, я всегда получал исчерпывающую информацию в удобное для меня время».

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

Мы благодарны нашему клиенту за доверие и надеемся, что наше решение полностью оправдает его ожидания.
Размер устройства:
190x80x12 мм
Разрешение экрана:
320x240 пикселей

Тактовая частота процессора:
240 МГц
Флеш-память ROM:
8 МБ