Есть ли здесь энтузиасты Arduino?
Эй, я думал об этом, и чем больше я думаю об этом, тем больше я думаю, что на самом деле могу это сделать. Моя идея в основном такова: сделать функциональный компьютер из микроконтроллера Arduino Uno.
Моя единственная цель для этого компьютера - возможность редактировать и выполнять программы BASIC. Это все. Я хочу только это для программирования, потому что это единственное, что меня интересует сейчас :)
Поэтому, как я понимаю, мне понадобятся три основных аппаратных компонента:
- некоторая форма дисплея (экран VGA или что-то)
- какой-то способ регистрации ввода с клавиатуры, и
- какой-то способ хранения данных во внешней памяти.
Кто-нибудь знает какой-либо способ сделать это? Я знаю способы отображения на экране, но я не знаю хорошего API / аппаратного компонента для регистрации ввода с клавиатуры или для хранения внешней памяти.
Мне понадобится много помощи по этому вопросу. Кто-нибудь может мне помочь и предложить идеи и полезные советы и предложения для хорошего оборудования / хорошей библиотеки с открытым исходным кодом, или два, или три, или десять?
Добавлено:
Блог Создание компьютера Arduino Uno для всех, кому интересно.
Ответы:
Клавиатуру можно сделать просто, используя клавиатуру PS / 2 - она просто последовательная, и для нее есть множество обучающих программ.
Хранить данные можно просто на SD-карте - для этого уже есть щит.
Что касается видео - это значительно сложнее. Если вы хотите, чтобы Arduino генерировал, например, видеосигнал PAL, тогда ваша работа исключена для вас. Да, это возможно, и кто-то создал Arduino-игру «понг», но это очень короткая графика и только черно-белая.
Для VGA вам потребуется какой-то интерфейс, чтобы сделать работу за вас. Sparkfun продавал видеокарту Picaso, которую можно было бы использовать для работы с Arduino, но, увы, он был снят с производства, и пока нет планов его замены.
TBH ваш лучший выбор будет использовать что-то вроде терминала Wyse и общаться с Arduino полностью через последовательный порт. Гораздо проще, чем возиться с видеосигналами и тому подобным.
источник
Я вижу точку зрения Олина - если вы хотите редактировать / запускать / изучать бейсик, просто используйте компьютер.
Однако, если целью является задача создания компьютера, который может запускать BASIC и одновременно изучать аппаратное обеспечение и реализацию более низкого уровня, то это будет немного иначе. Я за такие вещи, это отличный способ улучшить знания, и я уверен, что вы многое из этого получите. Как Стивен упоминает все запутанные и (в основном) нерелевантные слои, которые есть, например, в Windows, могут быть удалены, оставляя базовые (без каламбура) концепции.
В любом случае, вам, возможно, захочется взглянуть на что-то более мощное, например PIC32, поскольку оно должно иметь возможность самостоятельно справляться со всеми функциями (например, с базовым VGA).
Вот плата, совместимая с Arduino, UNO32
. Maximite - это компьютер с интерпретатором BASIC, основанный на PIC32, вы можете взглянуть на дизайн и конструкцию для нескольких идей.
источник
Вам повезло, вроде как, потому что я сейчас работаю на Arduino PC! Это не так много, только первая модель. Прошивка также очень проста и имеет небольшой набор API. Но вещь работает! Недостаточно хорошо для редактирования BASIC (или любого языка, кроме его собственного), но это только первая модель. Мобо довольно прост, и я использовал это . Вот прошивка, которую я использовал:
Описание метода сложно объяснить, но код хранится в виде необработанных байтов. Я должен скоро разработать программное обеспечение ... Надеюсь, это поможет! Если вы когда-либо захотите использовать это для каких-либо проектов, вы ДОЛЖНЫ ИМЕТЬ файл BIOS.mk8 в корневом каталоге SD, иначе система не будет работать.
источник
При всем моем уважении к Дэвиду Брину (мне очень нравятся его книги; я не квалифицирован, чтобы судить, насколько он хорош в качестве астрофизика), он не программист и не педагог.
Я был в курсе и программировал в первые дни ПК, и я написал довольно много кода на бейсике. И с тех пор я профессионально пишу код.
Причина, по которой мы тогда использовали BASIC, заключалась в том, что у вас было два варианта - использовать BASIC или писать в сборке, а сборку было сложнее понять и гораздо труднее использовать. Итак, бейсик.
С тех пор за 30 с лишним лет в обучении программированию произошли значительные улучшения. Моя жена преподает начальный класс программирования, который использует Алису (www.alice.org), и это намного лучше концептуально, чем старые подходы.
Я думаю, что решение Брина было довольно элегантным. Вы можете создать что-нибудь довольно простое на Raspberry PI. На Arduino, я думаю, будет сложно собрать все необходимое в 2K RAM; он должен содержать любую ОС / монитор, которую вы в итоге пишете, интерпретатор команд, код для отображения и хранилище для самой базовой программы.
Не говоря уже о том, что вам придется выполнять множество сложных и нестандартных программ, чтобы вы могли писать код в простой среде.
источник
Я не понимаю Если вы хотите, чтобы у вас были только средства для программирования на Basic, запустите на вашем компьютере базовый переводчик. Я не понимаю, как вы ожидаете, что Arduino поможет с этим. Arduino - это микроконтроллер с множеством модных программ, позволяющих скрыть детали оборудования. Отчасти это связано с более низкой производительностью и большим использованием ресурсов, чем с аналогичной программой, работающей непосредственно на голом микроконтроллере. Теперь вы хотите написать код Arduino, чтобы превратить его в компьютер более общего назначения, и все, чтобы вы в свою очередь могли запустить интерпретатор Basic на этом компьютере общего назначения? Это имеет мало смысла.
Поскольку ваша единственная цель - иметь возможность редактировать и выполнять базовые программы (запускать интерпретатор Basic), начните с вычислительной платформы более общего назначения, предпочтительно даже с уже имеющейся интерпретатором Basic. У вашего ПК именно такая платформа. Если вы хотите, чтобы это было внешнее оборудование, похоже, что готовый одноплатный компьютер будет отвечать вашим потребностям гораздо лучше, чем Arduino.
Добавлено:
Теперь вы говорите, что не хотите запускать на ПК, и разместите эту ссылку о ком-то, кто хочет, чтобы у его ребёнка была базовая строка Basic. По общему признанию, я не читал всю статью (мне не нравятся люди, отвечающие ссылками. Вы должны быть в состоянии изложить свою точку зрения независимо в нескольких предложениях), но я не вижу, как на ПК работает командная строка Базовый интерпретатор не решает вашу проблему. Почему интерпретатор Basic не может работать на ПК, но нормально работать на Arduino? Помните, вы заранее сказали, что ваша единственная цель - редактировать и запускать базовые программы. Ничто в этом утверждении не говорит о том, на каком оборудовании оно должно работать, и ни одно из ваших последующих объяснений не объясняет, почему ПК не будет работать нормально.
Вероятно, есть основные интерпретаторы, которые запускаются в командной строке. Старый QBASIC все еще может работать в режиме совместимости с DOS. Даже если нет, так как вы готовы посвятить этому оборудование, как работает DOS и QBASIC на ПК, а не то, что вы просили?
источник
poke
операторов. Не нужно устанавливать виртуальные драйверы COM, не подключать USB к каким-либо мостам, не загружать сложные IDE для разработчиков. SBC сопоставимы, но, как правило, не имеют интерфейса клавиатуры / видео (и кассетного хранилища!) Домашних компьютеров.Список переводчиков AVR BASIC:
источник
Мне нравится идея запуска общего приложения, такого как BASIC на Arduino, особенно если вы сами его создали. Мне нравится удобство удобного устройства Arduino с питанием от батареи, на котором работает нужное мне приложение. Если бы это был я, я бы использовал Arduino MEGA, поэтому у меня было бы достаточно контактов для клавиатуры и SD-экрана для хранения.
Я бы выбрал цветной графический ЖК-дисплей или TFT-экран вместо VGA для простоты программирования и подключения, способа отслеживания даты и времени (RTC) и что такое приложение без интернета или сети (экран Ethernet)? Может быть, дополнительные I2C RAM (24LC256)? И несколько I2C MCP223017 на всякий случай, если мне понадобятся несколько дополнительных портов. Как насчет того, чтобы несколько Arduino выполняли параллельное задание? Я уверен, что это улучшит производительность.
источник