Ардуино-BASIC недокомпьютер
- UPDATE #3: Исходные тексты Arduno Nano BASIC с pushbutton клавиатурой и JPEG схемы клавиатуры.
- UPDATE #2: Файлы (исходные тексты и схема в формате KiCAD) stm32BASIC c PS2 клавиатурой в зип.архиве. Схема stm32BASIC c PS2 клавиатурой в JPEG файле (наспех склеенная, так как некогда было искать stm32 bluepill KiCAD библиотеку).
А здесь форкнут мой старый Гитхаб проект stm32BASIC с pushbutton клавиатурой.
====================================================================================
UPDATE #1: переход на платформу stm32f1.
====================================================================================
Около-калькуляторный недокомпьютерный шилд для Ардуино-Наны. Питание от одной АА батарейки через бустер, SPI SRAM память на 128 кБайт, I2C алфавитноцифровой дисплей 20x4, 8x5 матрица кнопок.
Далее идут фото со старым дисплеем 16х2:
Проект на гитхабе.
Forums:
Крутой макет!
Permalink
Как видно нормальная клавиатура самодельщикам нужна как воздух !!! Платка с MSP430 ??
Кстати, если выровнять кнопки, то можно и для этой платы напечатать корпус с толкателями :-)
Макет
Permalink
Нет, не msp430, это Ардуино-Нано с алиэкспресса, на Atmega-328 чипе
Клавиатура нужна как воздух! Я заколебался руками эту матрицу распаивать :)
Распаивать то придётся, хотя SMD будет попроще ???
Permalink
Я кстати вот подумываю заставить 3D принтер печатать мне плёночки с трафаретами для намазывания пасты..хе хе. Для таких контактных площадок вроде не очень страшные допуски. А всякие TQFP можно и вручную напаять ???
TQFP, но до 0,5 мм
Permalink
TQFP можно и вручную запаивать, но лучше под бинокуляром или в очках, я вполне успешно перепаивал микросхемы со 128 выводами и шагом 0,5мм, но выпаивать только воздухом.
Сайт
Клавиатурный тест Basic-NANO работает
Permalink
Клавиатурный тест Basic-NANO работает.
Почти МК-85
Permalink
Почти МК-85 в макете :)
Ну, МК85 была 16-ти разрядная, а это 8 :)
Permalink
Следующий этап - портирование TinyBasicPlus. Надо переделать менеджер памяти Basic для работы с внешней SRAM. Чтобы при старте было что-то вроде:
.
Если TinyBasicPlus сюда не влезет, то переделаю этот шилд на stm32f103 - перепайка будет минимальная.
Очень интересно!
Permalink
Представляю такой девайс с две визитки :-)
Все возможно! :)
Permalink
Главное - софт отладить, а железо можно развести какое надо
Тяжёлые времена
Permalink
Когда более мощное железо дешевле и проще использовать, чем слабое и низкопотребляющее.
Казалось бы прилепи Raspberry Pi Zero и вот тебе комп с любыми штуками, даже системы компьютерной алгебры вроде Максима пойдут. Всё это подрубает стимул мучиться с контроллерами и писать на голую.
Распберри - это слишком легко
Permalink
Воткнул - и тебе честный линукс, и графика, и Octave с Питоном и Матплотом.
А хочется 8-битного Бэйсика :)
лучше и не скажешь
Permalink
А ещё на мини клон ZX Spectrum всё время тянет. Если сделать дешёвый эмулятор на контроллере, да запихать в детский ноут - была бы тема!
Мини-клон ZX Спека я давно хочу
Permalink
Мини-клон ZX Спека я давно хочу. Есть такое вот (я даже с автором когда-то общался):
http://good-kits.ru/nabory-bloki-i-moduli/zx-spectrum/radiokonstruktor-a...
У меня есть исходники под AVR и STM32F4
Permalink
Под AVR там кажется требуется два контроллера, один занимается видео, другой ЦПУ - эмулирует Z80. По идее себестоимость должна быть смехотворная. Под STM32 ещё лучше, но F4 довольно дорогая серия, портировать бы под копеечные F1. В идеале впихнуть Спектрум во что то габаритов тетриса, только сделать порт для клавиатуры, джойстика и подключения к телевизору.
Глядя на детские игрища могу сказать, что карапузам плевать на чём рубиться, они графеном не сильно испорчены. Правда не уверен, что это утверждение верно для школоты старше начальных классов :-) Для программирования простых вещей там хорошо Барсик вписался и другие языки есть, вплоть до Форта. Для киндеров, которые ещё читать не умеют, можно подобрать игры и развивающие программы, рисование музыка и т.п. Для школьников - обучение счёту и т.п. Всё такие там потенциал в 1000 раз выше, чем в детских "ноутбуках", которые даже не являются компьютерами ! Вот вам и прямой конкурент МК-161 :-)
Для AVR это как бы не того самого чувака исходники.
STM32F429DISCO у меня такая борда есть и исходники я скопировал:
https://www.youtube.com/watch?v=_adQIfOoyS0
Такая отладочная плата стоит сейчас на Али 2500 рэ:
ИМХО перебор. Ну и неприятно, что они скоро вообще исчезнут,а хотелось бы стабильности производства :-)
Не знаю можно ли так же быстро рисовать на самый ходкий китайский Ардуино экранчик (сенсорный!), который у китайцев продаётся ~300 рублей. По идее у спека требования по быстродействию не очень, может быть можно втиснуть в такой экранчик. Тогда берём STM32 или пару AVR + 64Кb SRAM и получается портативный спектрум, клавиатура в комплект не входит :-)
В общем бюджет деталей в розницу приближался к 2500 рублей за отладку, где всё уже готово и я задумался. Уже год думаю :-)
Есть есть шанс использовать дешёвый экранчик за 300 рэ, то можно взять такой
https://ru.aliexpress.com/item/Core407V-STM32F407VET6-STM32F407-STM32-AR...
Модуль и приделать к нему экранчик, по идее переделка с STM32F429 не должна быть сильно трудоёмкой. Но и так без корпуса и клавиатуры получаем железа на 1300 рублей. Хотелось бы чтобы оно втиснулось в стоимость дешевого детского ноута, т.е. всё целиком было не дороже 2000 рэ :-) Это повод задуматься тем кто считает цену ~15 тыр за МК-161 нормальной, ведь спек куда круче МК по функционалу !
ZX
Permalink
Да, в той AVR платке, вроде, даже 3 аврки - одна отвечает за видео, вторая эмулирует Z80, а отдельно втыкается микроплатка с эмулятором аудиочипа.
Тут вот интересный проект на Распи.
И тут. :)
Не втиснется
Permalink
Не будет кустарная вещь стоить дешевле массово производящейся. Позиционировать результат в 2к₽ означает убивать его на корню. В этом плане МК-161 за 15к₽ добрее к конкурентам. :-) Хотя их всё равно нет.
Спектрум многим дорог, как память. Но это импортная разработка. В России он интересен разве что тем, у кого в детстве не было отечественных игрушек вроде ПМК — развить которые до уровня Спектрума сравнительно несложно.
у меня был пмк, но не было Спектрума на постоянной основе
Permalink
Тема перенесена
Вот платформа !
Permalink
http://multicore.ru/index.php?id=1353
На в России всё что "выпускается" достать очень трудно.
Салют-ЭЛ24Д1
Permalink
Я в начале декабря звонил в Элвис, стоимость платки оказалась 170 (сто семьдесят) тысяч рублей. Эльбрусовский монокуб в 2015 что-то порядка сотки стоил.
Так что MB77.07 с ценником 4799.17 смотрится хотя бы досягаемо :) правда, с НДС 18% и доставкой у меня вышло 6343 рубля.
Сайт
Избыточно
Permalink
Даже MB77.07 избыточен для ПМК. Обработку видео не имеет смысла делать, пока не отлажена и не освоена народом обработка аудио. Это следует хотя бы из того, что в видео бывает аудиодорожка.
ПМК сейчас должен быть нацелен на обработку оцифрованных сигналов до 100 КГц (аудио), и эта пустующая ниша даёт возможность для развития процессоров с отечественной системой команд.
МВ77.07
Permalink
Для МВ77.07 есть только самые минимальные дебиан/распбиан прошивки. Драйвера имеющихся устройств есть, но использующих их программ почти нет. Можно использовать аппарат как линуксовый сервер, но собрать заведомо рабочий код для него мне не удалось. Хотя, народ пишет, на распберри всё собирается. Так что, сделать из него ПМК пока вряд ли возможно. Хотя, аппарат можно не выключать месяцами, народ писал что микрокомп нормально работал даже при -30°С, всё-таки кристалл для него Фуджитсу делал, а не Китай. Зеленоград, увы такой кристалл не осилил.
Для обработки звука нужно ДПФ/БПФ, а такая задача даже для 8 кГц частоты дискретизации требует ARM Cortex-M4F, автор проект вокодера на М4F сделал, но у него большая кодовая книга вышла.
Сайт
ARM
Permalink
ARM не обязателен. БПФ можно запрограммировать на любом процессоре. Тем более, что обработка звука в реальном времени пока не требуется. На первом этапе достаточно оцифровки и воспроизведения, а обрабатывать можно без спешки.
Требования к памяти, конечно, есть. Особенно если хотим хранить часы 16-битного стереозвука 44/96 КГц. Даже 64-битный звук может понадобиться. Конечно, для ЦАП/АЦП даже 16 бит избыточны, но для качественной обработки хочется плавучку 32 бита минимум.
Если есть драйверы, поверх них можно запустить Каллисто (в Линуксе особой нужды нет) и начинать писать библиотеки. Но отечественная система команд интересней, чем ARM. -30°С это то, что нужно!
NMC3
Permalink
Кроме ARM1176 СБИС К1879ХБ1Я содержит ещё ядро DSP нейропроцессора NeuroMatrix NMC3 отечественной разработки, ориентированное на цифровую обработку сигнала. Правда, я пока не разобрался толком как с ним работать. На недописи человек работавший с микрокомпьютером и мультиклетом пропал куда-то. Декстроплат тоже после 2015 новостей не публиковал. Модуль обещал в обозримом будущем новые материалы опубликовать.
Сайт
Необходимость ПМК
Permalink
Интересно, сможет ли этот DSP работать с другим процессорным ядром? Тем, систему команд которого мы могли бы развивать без оглядки на Запад.
Отечественные разработки, если собрать их в ПМК, получат больше внимания. Им сложнее будет пропасть. Конечно же, и разработчики должны хотеть работать не в мусорную корзину, а для совершенствования и развития отечественных технологий.
Нужен отечественный процессор, на который смогут опираться те, кто приобретёт и изучит ПМК. В том числе использовать его в своих разработках.
Виртуальная память для Arduino
Permalink
Нашел интересную библиотеку - можно подключать внешнюю память (SPI SRAM, SD-card и даже компьютер, подключенный через UART) и адресовать эту память естественным способом.
Проверил на своём шилде:
Результат:
Нативная поддержка 128КБ памяти из Бейсика становится ближе
Arduio-BASIC
Permalink
Нашел более полноценный Ардуино BASIC.
Заменил oled класс на I2C LCD класс, отключил PS/2 клавиатуру и внешний EEPROM - кое-как влезло в atmega368p:

Теперь надо попробовать serial терминал в качестве клавиатуры, перед тем как добавить матрицу кнопок.
Это уже прототип компа!
Permalink
Имхо это уже сейчас выглядит перспективней МК! Корпусировать бы.
Экранчик большой многострочный. Красота!
Я лелею слабую надежду, что с этим шилдом дойдет до (+)
Permalink
разводки полноценной печатки и изготовление ее где-нибудь у китайцев.
А там дальше как пойдет. Глядя на тот Arduino-Basic проект, захотелось второй шилд: под esp32 или stm32, с экраном 20х4 символа, они дешевые как семечки.
учитывая модульность сюда можно esp32 пр делать
Permalink
Мне даже формфактор нравится, для начала очень даже круто, захотелось самому творить :-)
Ждём новых фоток про ваш компьютер!
Спасибо!
Permalink
Я, кстати, второй идеей обдумываю использовать этот же шилд, но воткнуть esp32 через плату-адаптер под другую разводку SPI, I2C и GPIO.
Корпус для текущего формфактора просит сделать удобный grip слева, где батарейка стоит. Удобно будет держать в левой руке :)
P.S. Заказал 20x4 ЖКИ, попробую заменить на этом шилде. Правда, будет некрасиво торчать из платы - экран длиннее
Если корпусировать, то экран как бы будет повернут к плоскости
Permalink
клавиатуры, это своего рода дизайнерская фишка будет :-)
А можно рисунок, я не понял, как?
Permalink
А можно рисунок, я не понял, как?
Как на МК-161.
Permalink
Поздравляю, это уже ближе к МК-185 :) особенно на stm32 :)
Сайт
Спасибо!
Permalink
Но, скорее всего, сразу на esp32 переползу :)
я тут со смартфона пишу, словами попробую
Permalink
Идея простая, чтобы не торчало в сторону повернуть экран под углом, как на МК-161, но не целиком с корпусом, а как бы выделить его плитку отдельно, если возможно вообще сделать вращающимся в пазах внизу. Над клавиатурой корпус видится каким то изогнуто обтекаемым в духе TI 200 Voyage, с бортиком по периметру, там где кнопки фигурная утопленная зона. А ещё не забыть вашу отличную идею про держалку для руки сбоку. Хотя если в руке держать - экран нельзя слишком поворачивать (не больше угла МК-161) иначе он будет к глазам паршиво ориентирован. Да в принципе это хороший угол и для стола и для руки.
Под углом это интересная мысль
Permalink
Небольшой угол улучшит обзорность, если устройство стоит на столе, но когда оно в руке - то плоский девайс, мне кажется, лучше.
В любом случае, корпус - это еще не скоро
Вернуть внешний EEPROM?
Permalink
[quote=Vitasam]отключил PS/2 клавиатуру и внешний EEPROM - кое-как влезло в atmega368p:[/quote]
Если идея расширения ОЗУ за счёт внешней SRAM не оправдывает затрат, то может добавить сохранение программ во внешней EEPROM?
Сайт
Я попробую SD-карточку, если влезет.
Permalink
Я попробую SD-карточку, если влезет. А если нет - то да, внешний EEPROM
Надо, конечно, 4-х строчный дисплей
Permalink
Заменил вызовы PS/2 клавиатуры на Serial terminal и попробовал этот код:
Видео результата работы на шилде (Если вдруг на OneDrive нет превью в браюзере, то надо скачать видеофайл. На Ютюбе не выкладываю - неохота "загрязнять" ленту полуфабрикатными роликами)
Похоже, в коде у меня баг - текущая строка вывода забивается BACKSPACE.
Очевидно, что 2-х строчный экран не очень удобен - с нетерпением жду с алиэкспресса 4-х строчный. Тот же контроллер - никакой переделки не надо.
Пофиксил баг в Serial вводе (+)
Permalink
тут видео работы Бейсика.
Теперь надо заменить Serial на клавиатурную матрицу
Хорошо
Permalink
Хорошо смотрится, но двух строк и правда мало. Лучше чем одна в МК-85, но хуже четырех :) Нумерация строк вызывает улыбку.
Ага, перенос строки на 2х строчном дисплее (+)
Permalink
смотрится забавно, уж лучше бы скроллинг в сторону, как на МК85 :)
Так что да, перехожу на 20х4 дисплей
Тогда может графический 128х64
Permalink
Для переноса можно сделать окончание строки по символу пробела, как в текстовом редакторе. Четырёхстрочный дисплей по габаритам как графический 128х64, но требует 1кб памяти и знакогенератор :)
Сайт
Графический дисплей
Permalink
В смысле - графический дисплей требует памяти и знакогенератор? Алфавитно-цифровому не надо
Графический экран для ардуины не хочу, может, позже, под stm32 или esp32
К "ардуине" графический экран
Permalink
можно подцепить ипользуя шилд Gameduino3
https://www.youtube.com/watch?v=m-bdZPU4Es4 Здесь видео с проекта с подцеплением графики на плату Core746i
P.S. http://excamera.com/sphinx/gameduino3/ Сам проект Gameduino3 представлен здесь.
Графический экран
Permalink
Я думал про графический экран, но мне хочется остаться в "бюджетной алфавитно-цифровой" концепции. Сделующий апдейт: 20x4 экран вместо нынешнего 16x2
Заработала клавиатура 8x5
Permalink
Заработала первая версия клавиатуры 8x5 (видео).
(Иногда кнопки дребезжат, надо подзаточить обработчик клавиатуры.)
Работает сохранение программы во встроенный EEPROM. Поддержку 128 КБАйт ОЗУ пока не добавил.
Тактильные ощущения этих кнопок напоминают МК161 :(
Для готового варианта надо будет поискать какие-нибудь более эргономичные кнопки.
Приоритеты
Permalink
Поддержу сосредоточение на создании достойного девайса. Отличаться от МК-161 не самое главное.
Ненавистников ЭКВМ вам всё равно не удовлетворить и к их похвале стремиться бессмысленно. Когда проект выйдет на стадию, сравнимую с МК-161 (мелкосерийное производство) — они и у вас найдут, к чему придраться. Здесь же не что-то личное к Новосибирску, здесь застарелая международная борьба матёрых хищников за контроль над производством.
Хорошая клавиатура — хорошо, конечно. Но не главное.
UPDATE. А можно на YouTube залить? На iOS просматривать проще будет. Как разработчик алфавитной клавиатуры для калькулятора, я заинтересовался матрицей 8x5. Это на 2 кнопки больше, чем МК-161, куда было сложно впихнуть невпихуемое. 33 русские буквы + 4 стрелки + 4 пунктуация (пробел, запятая, точка, перевод строки) это уже больше 8x5=40. Для удобства ещё должны быть BS, Shift, Ctrl, переключение алфавитов и национальный префикс для ввода украинских / белорусских букв.
ютюб
Permalink
На ютюб выложу обязательно, но надо видео получше сделать.
А в качестве продвинутого шилда есть смысл взять контроллер помощнее (например stm32) и добавить еще один столбец в клавиутуру, что даст 8x6 = 48 кнопок.
Я пока не буду распыляться на несколько плат - хочу эту плату довести до "производственного" состояния, чтобы можно было заказать печатные платы на заводе.
Поддержу
Permalink
Поддержу использование youtube, там необязательно делать видео публичными, можно оставлять скрытыми, доступными только по прямой ссылке.
Ютюб
Permalink
Я сделаю покачественнее видео в качестве демо для гитхаб-проекта и выложу на ютюб.
Осталось ещё spi-flash
Permalink
Осталось ещё spi-flash повесить в качестве диска для сохранения программ и ввод команд одной клавишей, как в спектруме :) Какой объём ОЗУ микроконтроллера используется?
Для уничтожения дребезга вместо двух проверок нажатий можно сделать три.
Сайт
SPI flash
Permalink
Тут используется ардуино-Нано с atmega638p - 2 КБ ОЗУ и 32 КБ флеш-памяти для программ. Обе памяти уже близки к пределу, так что возможности по апгрейду малы.
В планах добавить поддержку уже установленной на плате 128 КБ SPI ОЗУ. Может, поддержка SD-карточки, если место будет.
Клавиатура
Permalink
Хочу сказать отдельное большое спасибо уважаемому Электромонтеру за помощь в схемотехнике и софте опроса матрицы клавиатуры с помощью дополнительного дешифратора.
Клавиатура
Permalink
На здоровье! Чем смог, тем помог)
Сайт
Тест 8-ферзей на Ардуино-BASIC шилде
Permalink
Тема перенесена
Вопрос тем, кто в теме про большое ОЗУ
Permalink
Тема перенесена
Отладка на ардуине достала
Permalink
Тема перенесена
serial RAM работает
Permalink
Serial RAM работает (видео).
Проект на гитхабе
Permalink
Проект на гитхабе.
Приехал дисплей 20x4
Permalink
Как и ожидалось, новый экран заработал из коробки, поменял лишь две константы: ширина и высота экрана, в символах.

Видео
LCD TV 7' в качестве доп опции
Permalink
вывода изображения не рассматриваллось?
Примерно, как здесь реализовано Fignition AVR "недокомпьютера"
https://sites.google.com/site/libby8dev/fignition
или других вариантов (подобных ZX-Spectrum на AVR) с выходом на VGA,
подобное http://www.jcwolfram.de/projekte/avr/chipbasic2/main.php
но это, по моему, уже перебор.
P.S. Конечно это уже не такое мобильное решение.
внешний LCD
Permalink
Нет, внешний ЖКИ или выход на ТВ не рассматривались, хочу остаться в рамках полностью мобильного решения.
Видео
Permalink
[quote=Vitasam]Как и ожидалось, новый экран заработал из коробки, поменял лишь две константы: ширина и высота экрана, в символах.
Видео[/quote]
Видео захватывающее, как будто на дворе 1987 год, я сижу в классе БК-шек и набираю похожий текст. Добавлять комментарий "школоте не понять" не буду, потому как вполне поймут, если любят компьютеры :)
Видео стороннего Бейсик "недокомпьютера"
Permalink
https://www.youtube.com/watch?v=k5RZepI91fQ
P.S. Автор, в дальнейем, похоже быстро перешёл на плату с большим LCD и плату на STM32F7.
Интересный проект
Permalink
Интересный проект. Хотя мне пока интереснее мобильный вариант - со своими кнопками