Статьи » Разработки |
2020-01-06 в 22:29 (последнее изменение 2021-04-19 в 22:34)
Вы первый раз в жизни видите Arduino IDE, но изучали в школе язык Бейсик? Значит, вы уже можете программировать Arduino. Как? Читайте далее. Для проекта нам понадобится следующие компоненты: На самом деле, Arduino IDE вам понадобится всё равно - чтобы заливать скетч с интерпретатором (разработчик - robinhedwards) в каждую приобретаемую вами плату. После этого вы сможете программировать её на Бейсике, пользуясь клавиатурой и дисплеем, подключёнными прямо к ней. Конечно, за такое удобство вам придётся заплатить производительностью и объёмом доступной памяти. Но это - пустяки по сравнению со светлыми воспоминаниями о первых уроках информатики. И, в отличие от школьного компьютера, здесь можно управлять "ногами" Arduino и подключённой к ним периферией. То есть, пользоваться микроконтроллером по прямому назначению. Все необходимые для повторения конструкции файлы можно скачать по адресу https://github.com/robinhedwards/ArduinoBASIC Arduino-совместимая плата подойдёт не любая, а только такая, у которой не менее 2 килобайт ОЗУ. Около половины этого объёма предоставляется программе пользователя, оставшаяся - интерпретатору для собственных нужд. Примерно столько же ОЗУ доступно пользователю в МК-85 (без буквы М), а также ZX81 - первом компьютере разработчика этой конструкции. Минимальный набор периферии состоит из клавиатуры и PMOLED-дисплея. Клавиатура должна быть с интерфейсом PS/2, в продаже их немного. Но вы с лёгкостью найдёте такую клавиатуру в магазине радиодеталей или на "Авито", "Юле", и т.п. Кроме того, некоторые USB-клавиатуры поддерживают интерфейс PS/2 электрически, автоматически переключаясь при необходимости в соответствующий режим, тогда можно воспользоваться переходником. Схема подключения клавиатуры к Arduino - стандартная, взятая с https://playground.arduino.cc/Main/PS2Keyboard/ Внимание, для подключения линии передачи данных автор выбрал не четвёртую, а восьмую "ногу" Arduino. Дисплей нужен на микросхеме SSD1306. Способ его подключения описан прямо в комментарии в тексте скетча, продублирую его здесь: OLED_DATA 9 Во избежание взаимных помех общие провода клавиатуры и дисплея необходимо подключать разными проводниками. Следующие периферийные устройства - необязательные. Пьезоизлучатель понадобится, если пользователю нужен вывод звука, в т.ч. при нажатии клавиш. Подключается он к выводу 5. А микросхема ПЗУ с последовательным интерфейсом типа 24LC256 или аналогичная позволит сохранять более одного файла. Подключается она так: SDA - аналоговый вывод 4, SCL - аналоговый вывод 5. В файле host.h следует указать наличие, адрес и объём внешнего ПЗУ: Код
#define EXTERNAL_EEPROM 1
#define EXTERNAL_EEPROM_ADDR 0x50 // I2C address (7 bits) #define EXTERNAL_EEPROM_SIZE 32768 // only <=32k tested (64k might work?) Также необходимо однократно прогнать скетч с раскомментированной строкой // writeExtEEPROM(0,0); writeExtEEPROM(1,0); для инициализации микросхемы. Затем снова закомментировать эту строку и перезалить скетч. При смене ПЗУ операцию повторить. О библиотеках. Та из них, которая отвечает за работу с клавиатурой - стандартная. Ту её версию, которой воспользовался автор, он выложил в архиве PS2Keyboard.zip. А вот библиотека для работы с дисплеем - нестандартная. Автор взял библиотеку фирмы Adafruit и сильно её упростил. Теперь она и ОЗУ требует меньше, и работает быстрее. Свою версию библиотеки автор выложил в архиве под названием SSD1306ASCII.zip. Библиотека SSD1306ASCII - скачать Реализованный в интерпретаторе диалект языка Бейсик в основном повторяет по синтаксису тот, что применён в компьютере ZX81. Поэтому поговорим о вновь добавленных операторах, позволяющих работать с периферийными устройствами. Оператор PINMODE позволяет назначить выводу Arduino функцию выводного или вводного. После оператора идут два числа через запятую. Первое - номер вывода, второе - 0 для назначения функции входа или 1 для назначения функции выхода. Оператор PIN позволяет вывести на вывод, которому назначена функция выхода, нуль или единицу. После оператора идут два числа через запятую: первый - номер вывода, второй - нуль или единица. С внешним ПЗУ работают те же операторы, но с указанием в кавычках имени файла, как в обычном Бейсике. Также доступен оператор DELETE, удаляющий файл, имя которого указано после него в кавычках. А оператор DIR без параметров выводит список файлов во внешнем ПЗУ. Как в DOS, только без поддержки папок. Считывание состояний входов производится при помощи функций PINREAD и ANALOGRD. После названия функции необходимо в скобках указать номер "ноги". Следует иметь в виду, что это именно функции, и пользоваться ими следует соответствующим способом - например, так: PRINT PINREAD (номер) или LET переменная = ANALOGRD (номер). Конечно, когда-нибудь придётся переучиваться на программирование Arduino обычным способом. Но на первых порах, если начинающий ардуинщик уже хорошо владеет Бейсиком, данный интерпретатор поможет ему хотя бы не бояться новой, неизвестной платформы, и понять, что он сможет с ней справиться. И потренироваться в управлении периферией, чего он раньше не делал.
Посмотрите еще эти статьи
Управляем вытяжкой на кухне пультом от телевизора на Arduino Вывод картинки на дисплей 128x64 Детектор микронаушников Ethernet shield w5100 таймер включения на веб странице Вывод различных данных на дисплей LCD 128x64 Обзор макетной платы 830 точек и модуля питания MB-102 Не пропустите обновления! Подписывайтесь на нашу группу Вконтакте. Так же у нас есть Telegram канал. Вам понравился наш материал? Поделитесь с коллегами! Просмотров: 6054. Оценка статьи: 5.0 из 5. Уже оценило 2 читателя |
Всего комментариев: 0 | |