Обычное дело: мы используем cookie. Здесь можно узнать зачем
Хорошо

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

Хотя смартфоны повсюду, графические калькуляторы по-прежнему незаменимы у студентов и преподавателей. Для клиента из образовательной сферы, который мечтает оснастить учебные учреждения современной техникой, мы создали мощный и удобный калькулятор с улучшенными характеристиками.
Собственный язык IS Basic, поддержка MicroPython и естественный ввод формул
Высокая точность вычислений и успешная сертификация FCC
Экзаменационный режим и интеграция с ПК для обмена данными

Введение

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

Запрос

К нам обратился заказчик из сферы образовательной электроники с амбициозной целью – разработать графический калькулятор, который бы успешно конкурировал с лучшими устройствами, существующими на рынке.
Расширенные функции: естественный ввод формул, работа со статистическими функциями, матрицами, графиками, а также возможность программирования.
Интеграция с ПК, объединение в сеть для обмена данными и проверки заданий.
Кроссплатформенное ПО для управления и обновления устройства.
Эмулятор калькулятора для выполнения вычислений без физического устройства.
Удобный интерфейс, а также большой яркий цветной дисплей, чтобы легко интегрировать приборы в учебный процесс.
Специальный экзаменационный режим, исключающий несанкционированный доступ к некоторым функциям.
Высокая точность вычислений и надежность работы – обязательные условия для использования в учебном процессе.
Соответствие стандартам электромагнитной совместимости для сертификации FCC.

Требования

Решение

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

Мы выбрали надежную компонентную базу и технические решения, изначально планируя использовать микроконтроллер STM32F4 с Cortex-M4. Пандемия COVID-19 внесла свои коррективы: перебои с поставками заставили искать альтернативы. Вместе с заказчиком наши специалисты выбрали GD32F470ZKT6 – китайский микроконтроллер, близкий по характеристикам к STM32.
Аппаратная архитектура графического калькулятора, созданного командой КЕДР Solutions.
Блок-схема аппаратной платформы калькулятора.
Наш калькулятор получился компактным и удобным: 190х80х12 мм, с 2,8-дюймовым цветным дисплеем. Питание от литий-полимерного аккумулятора обеспечивает длительную автономность. Мы сознательно исключили Bluetooth, Wi-Fi и игры, чтобы не отвлекать студентов. Для экзаменов предусмотрен специальный режим с ограничениями, который включается на устройстве, а отключается только через компьютер преподавателя.

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

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

Инженеры КЕДРа разработали эмуляторы для Windows, Linux, macOS и веб-версию, чтобы пользователи могли решать задачи без физического калькулятора. Веб-версия будет размещена на сайте заказчика с надежной защитой и платным доступом, что позволит охватить более широкую аудиторию.

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

Устройство графического калькулятора.
  • Ошибка округления чисел с плавающей запятой
    Команда столкнулась с классической проблемой округления чисел с плавающей запятой, которая часто приводит к неточностям из-за двоичного формата хранения. Для графического калькулятора это было недопустимо, и мы решили использовать библиотеку decimal из Boost, обеспечивающую точные десятичные вычисления, пусть и с небольшим снижением скорости.
  • Множество математических функций
    Реализация широкого спектра математических функций – от простых вычислений до сложных интегралов и производных – стала масштабной задачей. Особое внимание уделялось удобству ввода формул и стабильной работе калькулятора без ошибок, что критично для обучения.

    Глубокие знания в области высшей математики и всестороннее модульное тестирование прошивки позволили нашей команде создать надежный и точный калькулятор.
  • Язык IS Basic
    Создание собственного языка программирования – отдельный вызов. Мы разработали гибкий и удобный язык IS Basic, на котором можно писать любые программы в рамках возможностей калькулятора.
  • Переход на микроконтроллер GD32
    Когда мы приступили к работе с GD32, заменившим STM32 из-за ограничений поставок, команда столкнулась с необходимостью изучить новую платформу. Особенность GD32 – разделение флеш-памяти на быструю и медленную области – потребовала пересмотра архитектуры прошивки.

    Мы решили хранить наиболее часто используемый код в быстрой памяти, а остальной – в медленной, чтобы сохранить производительность и обеспечить стабильную работу калькулятора. Такой подход позволил нам эффективно использовать возможности микроконтроллера.
  • Соответствие стандартам FCC
    В процессе сертификации по стандарту FCC мы столкнулись с проблемой: первая версия платы не прошла испытания по электромагнитному излучению.

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

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

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

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

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

Итоги

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

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

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

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

Разработка графического калькулятора оказалась интересной и сложной задачей, которая потребовала глубоких знаний. Этот проект не только украсил наш портфолио, но и стал примером успешного партнерства с КЕДР Solutions – мы реализовали все задуманное и помогли клиенту выйти на новый уровень с инновационным продуктом, готовым к серийному производству.
  • Размер устройства: 190x80x12 мм
  • Разрешение экрана: 320x240 пикселей
  • Тактовая частота процессора: 240 МГц
  • Флеш-память ROM: 8 МБ

Обратная связь по проекту:

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

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