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

Графический калькулятор Numworks для студентов.
Numworks

...Physically, Numworks is much smaller than most scientific calculators, weighing just 5.9 ounces with a thickness of 10 millimeters (0.4 inches). It's rechargeable via a micro USB port (a cable, but not a charger, is included), and can go 20 hours between charges under normal operation. When not in use, it can hold a charge for "years" in deep sleep mode. The 2.8-inch diagonal (2.2 x 1.7 inch) screen can display over 262,000 colors.
...
The keyboard is split into three distinct areas: navigation, advanced calculations and a numeric keypad with widely spaced keys to reduce entry errors. There's also a home, back, and standard On/Off button.

nw2

Комментарии

Занятное изделие, судя по экрану - энергоемкое. А какова цена?

P.S. У тебя в опция стоял язык English, поэтому пост был не виден на главной странице с русским языком.

Как в комментариях пишут, дизайн выглядит как сделано в Европе, или by Apple или by ... Fisher Price :D

Экран 320x240, чудес особых ждать не нужно, на сайте утверждается, что

Autonomy
20 hours in use, several years in standby

Но выглядит хорошо. И то, что Python уже бета в прошивке, тоже неплохо.

Онлайн-симулятор, на уровне.

Руки зачесались уже прихватить за шею жабу и подушить ее немножко. Но после покупки DM42 в бюджете на калькуляторную статью у меня дыра...

20 часов - да, ожидаемо, у HP Prime столько же заявлено было.

бюджетный вариант

Интересно. Операционка этого калькулятора на Гитхабе.

Epsilon is a high-performance graphing calculator operating system. It includes eight apps that cover the high school mathematics curriculum.

Тут они рассказывают о выборе инструментов и решений для своего калькулятора:

C++
The choice of a programming language is a controversial topic. Not all of them can be used to write an operating system, but quite a few can. We settled on C++ for several reasons:

It is a system programming language, which is something we need since we have to write some low-level code.
It has excellent tooling: several extremly high-quality compilers
It is used for several high-profile projects LLVM, WebKit, MySQL, Photoshop, etc... This ensures a strong ecosystem of tools, code and documentation.
It easily allows Object-Oriented Programming, which is a convenient abstraction.
Of course knowing a tool means knowing its limits. C++ isn't exempt of defaults:

It is a complicated language. The C++ 11 specification is 1300 pages long.
It allows for a lot of abstractions, which is a double-edged sword. It can allow for some very tricky code, and it's very easy to have complex opeartions being run without noticing.
If you want to contribute to Epsilon, you'll need to learn some C++.

C++ это хорошо. Но для портабельности хотелось бы запилить некую виртуальную Форт машину, которая будет 1) на всех платках работать единообразно 2) код можно собирать прямо на самой машинке, что важно для концепции минитерминал <-> контроллеры. Здесь какой то Питон приделан, его будет очень неудобно набирать на такой клавиатуре. Кстати ещё ожидается релиз WP-34s на платформе DM-42 !!! Замечаете, калькуляторы то попёрли, оживает рынок наладонных штуковин типа ПМК. CASIO выпустило новый fx-CG50 продолжение Prizm, TI хвастает микропроекторами в применении с их калькуляторами !!!

А я тут fx-CG50 прикупил, дизайн мне понравился и давно хотел пощупать, а стоит он дороже. А тут 256К, всё лучше, открытая схема, понятный STM32 вместо странного SH-4. То есть для экспериментов с программированием вроде как больше подходит, особенно как заготовка для своего калькулятора. Но всё равно цель - создать свою отечественную заготовку и "референсный" калькулятор типа МК-163С с символьным программированием (в математическом смысле) и поддержкой режимов для всяких старых советских программ. Если забить на излишний глянец, то себестоимость в 3000 рэ для полного набора вполне реальна для мелкой партии. Если брать компоненты бОльшими партиями и разработать свою печатную плату для всех составляющих, то можно упасть ниже этого числа. Может тогда и СЕМИКО со своими 14 тысячами за штуку придёт в чувство.

это вполне привлекательно, если качество компонентов будет не сильно хуже Numworks.

Процессор STM32F412VGT6 не мобильный. Потребление на 20%-30% больше на мегагерц, чем у серии STM32L4, в ожидании потребление НА ДВА ПОРЯДКА больше !!!

Экран не энергосберегающий, но FPS хороший и цветность миллионы цветов (кстати как можно это использовать на калькуляторе ???).

Под впечатлением от 256Kb памяти на этой штуке, я к своей коллекции платок заказал ещё NUCLEO на STM32L496ZG, у которого 320Кb SRAM и у китайцев - экранчик 264x176, 2.7inch E-Ink display HAT for Raspberry Pi, двухцветный (умеет чёрным и красным поверх белого показывать). Думаю можно будет собрать топовый аппарат. Скоро приедут SMD мембраны, попробую скомпоновать стоковые платки в напечатанном корпусе.

Конечно при такой единичности у меня цена топового экземпляра не сильно меньше их 99 баксов (без учёта доставки) будет. Зато есть плюс - можно будет брать стоковые отладки в любой пропорции и получить от устройства с корпусом, экранчиком и клавиатурой (+ всякие прибамбасы вроде Wifi, BT) до платки контроллера, который без корпуса, клавиатуры и экранчика делает свою работу. Причём устройства с корпусами будут на серии STM32L4, а устройства контроллеров могут быть на STM32F103 (ядро системы должны быть портативным и маленьким).

[quote=3ГГ0Г]264x176, 2.7inch E-Ink display HAT for Raspberry Pi, двухцветный (умеет чёрным и красным поверх белого показывать). Думаю можно будет собрать топовый аппарат. Скоро приедут SMD мембраны, попробую скомпоновать стоковые платки в напечатанном корпусе.[/quote]
Вот это было бы очень интересно посмотреть в скомпонованном виде!

Снова вы мне помогли. Я тут ломал голову, для некого общекалькулятора какая должна быть клавиатура, в смысле назначения кнопок. Так у этого Numworks самая общая, вроде бы должно для всего подходить. И главное корпус технологически не сложен. Я тут пилил со всякими скруглениями и то сложнее вышло. В общем возьму их набор кнопок за основу (может чего от HP 50g добавлю). Правда отверстие под экранчик и сами кнопки надо будет проектировать под конкретные платки. Их плоский дизайн кнопок и корпуса по идее упрощает нанесение шелкографии. В плане питания приобрёл мелкие платки защиты LiPo от перезаряда, по идее можно питать 3.7В мелкими аккумуляторами, если таблеточных станет мало, отсек будет примерно одинаковый по глубине. На стоковых платках Nucleo ещё всяких разъемов много торчащих, как-то выпаивать их придётся. А так они плоские, думаю даже если не делать спец. материнку всё влезет как минимум в корпус fx-CG50 (он довольно толстый из-за батареек).

Цена 99 баксов или эквивалентно сколько то там в евро. Но у этих ушлёпков нет России в Европе (и Украины тоже нет). Так что напрямую выслать не получится. Цена ИМХО слегка завышена. Этой заготовке красная цена баксов 50-60. К тому же 20 часов просто в режиме ожидания (видимо в режиме активной работы вряд ли продержится дольше 4 часов) - сильно сужает область его применения до настольного или хоббийного. Имхо математической штуковине нужна большая автономность, в режиме ожидания нажатия клавиши, если нет фоновых задач, потребление должно падать до наноамперов (25 нА у STM32L496 + e-ink от 5 мкА до полного нуля) !!! Т.е. с пары таблеточных батареек оно должно годами не "выключаться", чтобы можно было обдумать и записать результат не спеша !!!

Numworks Python (MicroPython 1.9.1) в симуляторе:
pythonpython1python2python3

Интересно. Но что не нравиться, так это то что девайс в конец осмартфонился, выпилить клавиши F1-F6, которые давно стали классикой - странная идея. Когда я на своем Casio/HP/TI могу спокойно нажать F2-F3 и, к примеру, отмасштабировать график, тут надо продираться крестовиной через менюшки. А ведь клавиатура - одно из преимуществ железного калькулятора для меня.

Есть два пути развития: интуитивные интерфейсы и продуктивные интерфейсы. Продуктивные интерфейсы требуют некой экосистемы. Таковая была в калькуляторах HP. Все эти софт-меню и функциональные клавиши - замечательная идея. Позволяет быстро организовать вещи. Второй удобной штукой является RPN стек, он позволяет разложить нужное в другой плоскости, затем клавиши для операций над этим всем. Нажатия клавиш можно записывать в последовательные программы, сами программы являются также вещами над которыми можно проводить операции. Чудесная среда и они её практически уничтожили в HP Prime превратив в дурацкий смартфон с тачскрином. Сам по себе тачскрин штука неплохая, но если убрать всё остальное получается не инструмент для удобной и продуктивной работы, а бесполезная видеоигра. Так что мы можем сделать ПМК снова великими, доделав то что не захотел сделать HP :-)

Попробовал сбилдить Numworks SDK для симулятора (под Ubuntu).
NumworksNumworks 2Numworks 3

Код из симулятора для запуска под обычным Питоном с pygame:

# This program draws a Mandelbrot fractal set
# N_iteration: degree of precision
import pygame
import sys

N_iteration = 10
screen_w = 320
screen_h = 240
screen = pygame.display.set_mode((screen_w, screen_h))

pygame.display.set_caption('Mandelbrot fractal')
running = 1
pygame.font.init()
screen.fill((0, 0, 0))

def pixel(surface, color, pos):
    pygame.draw.line(surface, color, pos, pos)

for x in range(screen_w):
    for y in range(screen_h):
        # Compute the mandelbrot sequence for the point c = (c_r, c_i) with start value z = (z_r, z_i)
        z_r = 0
        z_i = 0

        # Rescale to fit the drawing screen 
        c_r = 2.7 * x / (screen_w - 1) - 2.1
        c_i = -1.87 * y / (screen_h - 1) + 0.935
        i = 0
        while (i < N_iteration) and ((z_r * z_r) + (z_i * z_i) < 4):
            i = i + 1
            stock = z_r
            z_r = z_r * z_r - z_i * z_i + c_r
            z_i = 2 * stock * z_i + c_i
    
            # Choose the color of the dot from the Mandelbrot sequence
            rgb = int(255*i/N_iteration)

            # Draw a pixel colored in 'col' at position (x,y)
            pixel(screen, (int(rgb), int(rgb*0.75), int(rgb*0.25)), (x, y))


pygame.display.flip()
while running:
    event = pygame.event.wait ()
    if event.type == pygame.QUIT:
        running = False  # Be IDLE friendly
pygame.quit()
sys.exit()

Numworks управляет роботом из Микропитона.
Интересно, что провода USB можно переконфигурировать в прошивке - они становятся полноценным "железным" UART. Надо будет на SwissMicro форуме про такое рассказать. Полноценного UART не хватает в DM42