Робот-бот на Arduino для игры Guitar Hero

Где купить платформу и запчасти

Все, о чем говорится в этой статье, можно без проблем купить на всем известном сайте. К сожалению, подавляющее большинство предложений основываются на стандартной платформе 4WD автомобиля с двумя несущими планками, не очень надежными двигателями и колесами, любящими ездить в “развалочку”. Но эти варианты относительно не дороги и вполне подойдут для начала работы.

Платформа Ардуино 4WD с двигателями, колесами и рамой без электронных компонентов

4WD платформа для Ардуино с необычным видом крепления элементов

Конструктор машинки Ардуино на платформе 4WD с пультом управления Bluetooth и PS2

Типовой набор 4WD машинки с Ардуино, шилдами и основными датчиками

Step 5: Java Programming

Робот-бот на Arduino для игры Guitar Hero

Normally, without a controller, you would have to use your keyboard and mouse to play. In Java, there is a class called «Robot» that is made to imitate keystrokes and mouse movement.

I added the Java source code with comments, but I’ll write about it here too.

In the SerialEvent function you can access the buffered input (the line created in the loop in arduino) with the input.ReadLine() function call.

Then, I’ll pass the string to the guitar function, in which I’ll make the steps to create the keystrokes.

The string is split into an integer array, because it is easier to check the values in that. The indexing is the same as in the Arduino.

If the first element of the array is one, that means that the first fret button is pressed, and we have to imitate that somebody pressed the ‘1’ key on the keyboard. That’s why we have the robot.keyPress(KeyEvent.VK_1); call.

If it was pressed, but it is released now, we have to release the key as well with the function call: robot.keyRelease(KeyEvent.VK_1);

If the second fret button is pressed, we’ll call the robot.keyPress for the key ‘2’ and so on and so forth.

I had to make it for every fret button, escape, and star power, and the strumming up and down. For the frets, the keys ‘1’ to ‘5’ are pressed corresponding to the index of the fret on the neck. For the strumming the UP and DOWN arrows are pressed, for the escape, it presses escape, and for star power, the key ‘S’.

When the whammy is triggered, it calls the whammy function, which creates a new thread moving the mouse on the X axis, because it can be set in the game to activate the whammy with the mouse. When it moves, it oscillates, so it’s not only binary 1 or 0 for the whammy. With a new thread started, you can go on pressing other keys and strumming, there won’t be any problem. And also if you trigger the whammy multiple times, multiple threads are started and the mouse goes back and forth. I think it is a nice solution for the problem.

The communication is started after sending a ‘1’ to the Arduino in the main function at the bottom.

If you try it out, when you press the fret buttons, it’s the same as when you press the corresponding keys on your keyboard.

Let’s set it in the game!

Шаг 6: Сборка релейной платы

Робот-бот на Arduino для игры Guitar Hero

2. — Реле, которые я выбрал для использования, входили в 2-х релейный DIP, к тому же я имел 2 отдельных реле в 8-контактном DIP. Из-за этого мне пришлось заказать только 3. 3. — Распиновка этих реле довольно проста: контакты 1 и 2 и 3 и 4 являются контактами управления для реле 1 и 2 соответственно, а контакты 5 и 6 и 7 и 8 являются контактами нагрузки реле 2 и 1 соответственно. Более подробную информацию можно найти в техническом паспорте: **** 4. — Первым шагом в создании релейной платы является проектирование схемы. — При разработке схемы вы хотите расположить реле для кнопок, которые разделяют провода, близко друг к другу. Это упрощает подключение t. — Также было бы полезно после того, как вы выясните, к какой кнопке будет подключаться каждое реле, чтобы отметить его. — Следуя схеме выше, резистор, в моем случае 200 Ом, подключен к контактам 1 и 3 каждого реле, а контакты 2 и 4 каждого реле подключены к земле. — Контакты 5 и 6, 7 и 8 подключены к кнопкам на контроллере Guitar Hero. Где 5 и 6 — провода для одной кнопки, а 7 и 8 — провода для отдельной кнопки. — Подключите резистор каждого реле к контактам 2-7 Arduino. Подключите зеленое реле к 2, красное реле к 3, желтое реле к 4, синее реле к 5, оранжевое реле к 6 и реле полосы удара к 7. ПРИМЕЧАНИЕ: вы можете изменить, к каким контактам они подключены, но вы должны изменить код. — Подключите контакты 2 и 4 каждого реле к контакту заземления на Arduino.

Шаг 14: Почему я считаю, что должен выиграть.

1. Я потратил много времени и сил на создание этого Руководства. Это было не просто за один день, это было кульминацией нескольких недель исследований, планирования и проектирования. Затем последовала пара дней прототипирования и отладки. 2. Это наставление — вот в чем суть наставлений: найти умный способ сделать что-то и поделиться этим с миром. 3. Я люблю создавать вещи с помощью Arduinos. Я пристрастился к созданию чего-то нового с его помощью, и было бы здорово иметь больше, чем то, что есть у меня. 4. Мне очень нужна камера. Как вы, наверное, догадались, я делал снимки для этого инструктажа на свой телефон. Это потому, что у меня нет хорошей камеры. Большое спасибо за то, что нашли время прочитать это !!

Батарея

Еще один важный вопрос — питание. Если у тебя продвинутая плата, которая позволяет снабжать всю систему по одной линии питания (и двигатели сервов не дадут помех в работу контроллера), то можно обойтись одним источником. Выбор огромен, лучше всего, конечно, Li-Ion/Li-Po брикеты для радиомоделек. Но им нужны и соответствующие зарядные устройства. Если у тебя контроллер попроще (Uno/Due/Nano), то можно питать его отдельно, например 9-вольтовой «Кроной», а сервоприводы подключить к основной мощной батарее. Так сервоприводам точно хватит питания. В случае литиевых аккумуляторов нужно еще тщательней, чем обычно, следить за напряжением, чтобы не было переразряда (допустимые напряжения стоит уточнить для конкретного типа батареи). Для этого на робота-Слейпнира, о котором дальше пойдет речь, также прикручен маленький цифровой вольтметр.

Популярные статьи  Складной колун для дров своими руками

Инструкция по сборке робота-автомобиля

В этой статье расскажем вам о том, как по шагам собрать универсального робота на колесной или гусеничной платформе.  Управлять им будет микроконтроллер Ардуино нано. Если вам не нравится долго читать, посмотрите в конце статьи на видео, подготовленное нашими партнерами – каналом ArduMast Club.

Пример платформы робота-машины на Ардуино

Предлагаем инструкцию по созданию универсальной платформы, которая потом пригодится для создания самых разных проектов, независимо от выбранного контролера или типа шасси. Вы можете использовать стандартные варианты из Алиэкспресса, как на видео, можете снабдить машину гусеницами и создать вездеход,  можете придумать вообще ни на что не похожий вариант. Главное, чтобы число двигателей не превышало 4 и сами ни не были слишком мощными (тогда придется менять тип управления моторами – другой драйвер двигателя).

Робот на Ардуино

Для реализации проекта нам понадобится:

  • Контроллер Ардуино (в нашем случае, Arduino Nano).
  • Драйвер двигателя L298N.
  • Двигатели с редукторами.
  • Корпус и шасси для крепления колес и оборудования
  • Корпус для аккумуляторов 18650 с выключателем.
  • Коммутационные провода.

Дополнительное оборудование, которое потребуется для создания полноценного проекта:

  • Датчик расстояния и серво-мотор, на который он установлен.
  • Инфракрасные датчики линии.
  • Светодиоды для индикации и “красоты”.
  • Пьезодинамик – пищалка.
  • Bluetooth модуль (если собираетесь управлять машинкой дистанционно).
  • Sensor shield (упрощает коммутацию).
  • Модуль контроля заряда и подзарядки аккумуляторов.
  • Сами аккумуляторы.

Общая схема машинки на Ардуино

Схема электропитания робота автомобиля

Вопрос организации правильного стабильного электропитания является одним из самых важных в любом проекте.В нашей модели применена рекомендованная нами схема питания, основанная на использовании литийионных аккумуляторов формата 18650 и платы защиты их от переразряда и перезаряда.

Давайте разберем самый простой вариант схемы питания электромоторов. Перед началом сборки лучше заранее припаять провода к моторам.

Схема питания и подключения двигателей в ардуино автомобиле

Все достаточно стандартно и вы найдете в интернете десятки подобных примеров. Но в этой схеме есть большой минус – в случае полного разряда аккумуляторы придут в негодность.

Машинка на Ардуино

Для добавления контроллера разряда придется внести следующие изменения в схему:

Схема питания с контролем разряда аккумулятора

Теперь аккумуляторы будут защищены, но здесь нет возможности заряжать их.

Питание робота Ардуино

Для зарядки можно использовать модуль повышения напряжения с 5v до необходимого уровня зарядки, который зависит от количества серий используемых аккумуляторов. Он имеет гнездо типа микро USB и при частом использовании оно может сломаться, поэтому мы рекомендуем установить дополнительное гнездо для последующей подзарядки пяти вольтовым блоком питания. Для зарядки двух литий-ионных аккумуляторов необходимо настроить выходное напряжение на 8,4 Вольта.

Схема питания с модулем зарядки для ардуино робота машинки

Подключаем двигатели и плату

С питанием платформы мы разобрались, теперь подключим остальные компоненты. Для начала припаиваем провода к моторам, затем обматываем их изолентой, чтобы случайно в дальнейшем не оторвать контакты. Можно сделать так, что в итоге на 2 двигателя будут идти всего два провода вместо 4х. Это немного упростит монтаж и сэкономит место на платформе.

Монтируем драйвер двигателей на платформу так, чтобы его радиатор был спереди

ЭТО ВАЖНО! В противном случае, вам придется переписывать программу для микроконтроллера. Драйвер двигателя для Ардуино робота

Затем размещаем холдер и плату БМС. Не забываем оставлять место спереди для последующего монтажа каких-либо сенсоров. Ардуиио нужно разместить так, чтобы была в дальнейшем возможность подключить его к ПК для прошивки. Это же правило относится и к модулю для зарядки аккумуляторов.

Питание для ардуино и других электронных компонентов мы возьмем от драйвера двигателей.

Подключаем Bluetooth к машинке

Мы собираемся использовать модуль Bluetooth через  SoftwareSerial (библиотеку SoftwareSerial.h), поэтому подключаем модуль блютуз к 3 и 4 цифровым пинам ардуино.  RX к D3,   TX к D4

Схема подключения Bluetooth к ардуино машинкеПодключаем BluetoothСхема подключения драйвера двигателя к роботу

Схема подключения компонентов к Arduino

Датчик расстояния машины

Платформа робота готова! Теперь осталось загрузить прошивку для контроллера Ардуино и программу для смартфона RC CAR. Вы можете посмотреть на нашем сайте обзор Android приложений для работы с Arduino.

Готовим Arduino

Робот-бот на Arduino для игры Guitar Hero

Сначала нам нужно прикрепить наш сервопривод. Цвет проводки здесь может варьироваться, но, как правило, красный цвет присоединяется к выводу 5 В, а коричневый или черный — к выводу GND . Строка данных, которая обычно желтого или оранжевого цвета , присоединяется к выводу 10 .

Проверьте проводку и подключите Arduino к компьютеру. Откройте Arduino IDE.

Робот-бот на Arduino для игры Guitar Hero

Откройте эскиз StandardFirmata, расположенный в Файл> Примеры> Firmata> StandardFirmata . Этот эскиз настраивает плату для внешнего управления последовательным портом, и это то же самое, что мы использовали в нашей статье об управлении Arduino с помощью Python. управлять Arduino с помощью Python. управлять Arduino с Загрузить эскиз на доску.

Если загрузка не удалась, убедитесь, что вы выбрали правильную информацию о плате и порте в меню Сервис .

Наш Arduino готов к работе!

Программирование мобильного робота арудино

Для начала напишем простую программу для робота движения вперед. На следующем уроке мы разберем как управлять роботом  программировать повороты направо, налево  мобильного  Arduino робота 
В самом начале программы мы должны  определить пины  через которые мы будем управлять скоростью и направлением вращения моторов#define SPEED_1      6 //Пин для управления  скоростью  первого мотора
#define DIR_1        7 //Пин для управления направлением первого мотора
#define SPEED_2      5 // Пин для управления  скоростью  второго мотора
#define DIR_2        4 // Пин для управления направлением второго мотора
В блоке setup  необходимо установить пины отвечающие за управлением моторами в режим OUTPUT Подробнее об управлением через пины ардуиноvoid setup() {
Serial.begin(9600); 
 pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
}
В основной программе loop  запрограммируем движение вперед мобильного робота ардуино.Для этого необходимо  перевести пины отвечающие за направление в режим HIGH (в зависимости от подключения моторов  у Вас за движение мотора вперед  может быть режим LOW) Это цифорвые пины , поэтому используется команда digitalWrite(номерпина, HIGH)digitalWrite(DIR_1,HIGH);
digitalWrite(DIR_2, HIGH);
Установим скорости  моторов  с помощью записи в пины отвечающие за скорость  уровня скорости вращения. Это аналоговые пины, поэтому используем команду analogWrite(номерпина, скорость). Скорость может изменяться в диапазоне от 1 до 255analogWrite(SPEED_1, 100);
analogWrite(SPEED_2,100);
И в конце установим время, сколько будет робот двигаться в таком режиме с помощью команды
delay(время в миллисекундах);
После  движения необходимо остановить моторы, для этого скорость устанавливается в  нольdigitalWrite(DIR_1,HIGH);
digitalWrite(DIR_2, HIGH);
analogWrite(SPEED_1, 0);
analogWrite(SPEED_2,0);
delay(время остановки в миллисекундах);Полная версия программы для движения мобильного робота ардуино вперед#define SPEED_1      6 // скорость первого мотора
#define DIR_1        7 // направление первого мотора
#define DIR_2        4 // направление второго мотора
#define SPEED_2      5 // скорость второго мотора
void setup() {
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
}
void loop() {
  analogWrite(SPEED_1, 100);
 digitalWrite(DIR_1,HIGH);
 analogWrite(SPEED_2,100);
 digitalWrite(DIR_2, HIGH);
 delay(1000);
 analogWrite(SPEED_1,0);
 digitalWrite(DIR_1,HIGH);
 analogWrite(SPEED_2,0);
 digitalWrite(DIR_2, HIGH);
 delay(10000);
}

Популярные статьи  Поделки из бытовых отходов своими руками — пошаговые мастер-классы для детского сада, школы, интерьера дома

Вернуться к содержанию курса Следующая тема Повороты мобильного робота ардуино

Полезно почитать по теме мобильные роботы arduinoМобильный робот arduino с драйвером l289Правильное питание мобильного робота arduinoРобот сумо arduino

Шаг 1:

Отличия: Я поступил иначе, чем многие люди, которые работали над тем же проектом. Во-первых, во многих проектах, которые я видел, используются двигатели / соленоиды для физического нажатия кнопок, но это не лучший метод по нескольким причинам: 1. Двигатели / соленоиды работают не мгновенно. Им нужно время, чтобы нажимать и отпускать кнопки. 2. Двигатели / соленоиды могут быть дорогими. Мой метод решает эти проблемы с помощью твердотельных реле (SSR), время переключения которых составляет около 1 мс, и они относительно дешевы (около 1 доллара за реле). Во-вторых, мой вариант отличается тем, что он «запрограммирован» вместо использования световых датчиков, прикрепленных к экрану, как во многих проектах, которые я видел. Хотя да, вы должны запрограммировать каждую песню, которую хотите воспроизвести, и программирование песен займет некоторое время, но кажется, что это более точно с нотами и не требует калибровки. Как это работает: Этот проект работает довольно сложно, но как только вы его поймете, он станет довольно простым. Сначала вы создаете «диаграмму звуковых заметок» песни, которую хотите сыграть. Затем эта «таблица звуковых заметок» преобразуется приложением Vixen в последовательные команды. Эти последовательные команды отправляются на плату Arduino. Плата Arduino включает некоторые SSR, которые заставляют контроллер думать, что кнопки нажимаются, таким образом «играя» на гитаре. Как и многие другие проекты, этот проект можно разделить на 2 части: «Аппаратное обеспечение» и «Программное обеспечение».

Step 1: Guitar Disassembly, Plans

Робот-бот на Arduino для игры Guitar HeroРобот-бот на Arduino для игры Guitar HeroРобот-бот на Arduino для игры Guitar HeroРобот-бот на Arduino для игры Guitar Hero

When I got home with the guitar after buying it, the first thing I did was getting a screwdriver and opening the thing up. Okay, I played with it for a few minutes, but it was not very exciting.

On the back, it has many screws (16 to be precise) holding the body and the neck together. It was really uncomfortable during the project to screw and unscrew all of them so many times (fix an error — create two other…).

As I opened it up, I liked what I saw. The 8 buttons on the neck are mounted on a PCB, and there are 9 wires connected to that board.I checked the wiring for each button with a multimeter, and wrote down the «pinout».

The only disappointment was the strumming. I did not expect 2 buttons for strumming up and down. It is okay for the toy, but to play a rythm game, it is not acceptable, because it’s hard to strum quickly up and down. I solved it in an other way.

My expectations for the whammy bar were also too high. I expected a potentiometer or something to detect the angle of the bar, because you can rotate it around, but there is only a connect — no connect switch. Doesn’t matter, I simulated an oscillation in the java code to be more «realistic» in the game.

There are 5 extra buttons on the front of the guitar. The big one is used to start the star power, and the smaller one (next to the big) is used to pause the game during a song.

The 3 buttons under the strumming mechanism, the on-off switch and the speaker are not used in the project.

Ключевой вопрос

А сколько, собственно, нам нужно ног? Определимся во множестве конфигураций шагающих роботов. По количеству ног: biped — двуногий (прототип — человек); quadruped — четвероногий (прототип — большинство млекопитающих животных); hexapod — шестиногий (прототип — большинство насекомых); octopod — восьминогий (прототип — пауки, скорпионы, крабы и другие членистоногие). Кроме количества ног, важна и конфигурация каждой. Главной характеристикой ноги является количество степеней свободы, или dimensions of freedom (DOF). Степень свободы — это способность поворачиваться или изгибаться вокруг одной оси (реже — поступательно двигаться вдоль нее). Очевидно, что если степень свободы одна, то на такой ноге далеко не уйдешь. Ноги с двумя степенями свободы (2DOF) уже позволяют двигаться многоногим роботам, хотя 2DOF дает возможность свободно перемещать кончик ноги только в одной плоскости. А 3DOF-нога перемещает «стопу» в 3D-пространстве (если, конечно, не все три оси параллельны). Есть и 4DOF-ноги, которые просто увеличивают гибкость и диапазон перемещения ноги. У насекомых чаще всего 4DOF-лапы.

Чтобы программировать сервоприводы, достаточно знать, что в них уже есть контроллер, который делает основную работу. И все, что нужно, — подавать питание и цифровой сигнал, сообщающий контроллеру, в какую позицию мы хотим повернуть вал привода. Об их конструкции легко найти информацию. Протокол у них самый простой из всех цифровых протоколов связи: широтно-импульсная модуляция — ШИМ (PWM на английском). У всех простых сервов есть разъем с тремя контактами: земля, +5 В (вольтаж может отличаться в зависимости от размера и мощности) и сигнальный вход. Arduino-контроллеры могут двумя различными способами генерировать такой сигнал. Первый — аппаратный PWM, который сам чип умеет выдавать на нескольких из своих цифровых I/O-пинов. Второй — программный. Программный позволяет получить одновременно больше различных PWM-сигналов, чем аппаратный. Для него под Arduino предоставляется удобная обертка — библиотека Servo. Она позволяет использовать одновременно 12 сервоприводов на большинстве малогабаритных контроллеров (Uno, Due, Nano) и 48 сервоприводов на Arduino Mega и ему подобных. Сигнальный контакт серва подключается к цифровому выводу Arduino. Земля и питание — очевидно, к земле и питанию, они могут быть общими для всех сервов. В трехпроводных шлейфах сервов черный или коричневый — это земля, посередине обычно красный +5 В и, наконец, белый или желтый — сигнальный. С программной точки зрения управление предельно простое:

Популярные статьи  Делаем ручной ткацкий станок

Servo myservo;
// Сервопривод на 9-м пине Arduino
myservo.attach(9);
// Повернуть в положение на 90º
myservo.write(90);

1
2
3
4
5

Servo myservo;

// Сервопривод на 9-м пине Arduino

myservo.attach(9);

// Повернуть в положение на 90º

myservo.write(90);

Большинство сервов умеют вращать вал на 180°, и для них 90° — среднее положение. Для упрощения подключения сервов к плате Arduino существует ряд решений. Самое каноничное — это Sensors Shield. Установив его на Uno и подав на клеммы питание для сервов, можно их разъемы подключать прямо в него.

Исходный код программы (скетча)

Arduino

/* Obstacle Avoiding Robot Using Ultrasonic Sensor and Arduino NANO
* Circuit Digest(www.circuitdigest.com)
*/
int trigPin = 9; // trig pin датчика HC-SR04
int echoPin = 10; // Echo pin датчика HC-SR04
int revleft4 = 4; //REVerse motion (движение назад) для левого двигателя
int fwdleft5 = 5; //ForWarD motion (движение вперед) для левого двигателя
int revright6 = 6; //REVerse motion (движение назад) для правого двигателя
int fwdright7 = 7; //ForWarD motion движение вперед) для правого двигателя
long duration, distance;
void setup() {

delay(random(500,2000)); // задержка на случайное время
Serial.begin(9600); //для целей отладки, потом можно закомментировать
pinMode(revleft4, OUTPUT); // set Motor pins as output
pinMode(fwdleft5, OUTPUT);
pinMode(revright6, OUTPUT);
pinMode(fwdright7, OUTPUT);

pinMode(trigPin, OUTPUT); // set trig pin as output
pinMode(echoPin, INPUT); //echo pin в режим ввода данных
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH); // передаем серию импульсов длительностью 10 мкс
delayMicroseconds(10);
duration = pulseIn(echoPin, HIGH); // принимаем отраженные импульсы
distance = duration / 58.2; // рассчитываем расстояние в см
delay(10);
// If you dont get proper movements of your robot then alter the pin numbers (если что то работает не так, попробуйте сменить используемые контакты)
if (distance > 19)
{
digitalWrite(fwdright7, HIGH); // движение вперед
digitalWrite(revright6, LOW);
digitalWrite(fwdleft5, HIGH);
digitalWrite(revleft4, LOW);
}
if (distance < 18)
{
digitalWrite(fwdright7, LOW); //Stop (остановка)
digitalWrite(revright6, LOW);
digitalWrite(fwdleft5, LOW);
digitalWrite(revleft4, LOW);
delay(500);
digitalWrite(fwdright7, LOW); //движение назад
digitalWrite(revright6, HIGH);
digitalWrite(fwdleft5, LOW);
digitalWrite(revleft4, HIGH);
delay(500);
digitalWrite(fwdright7, LOW); //Stop (остановка)
digitalWrite(revright6, LOW);
digitalWrite(fwdleft5, LOW);
digitalWrite(revleft4, LOW);
delay(100);
digitalWrite(fwdright7, HIGH);
digitalWrite(revright6, LOW);
digitalWrite(revleft4, LOW);
digitalWrite(fwdleft5, LOW);
delay(500);
}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62

/* Obstacle Avoiding Robot Using Ultrasonic Sensor and Arduino NANO
*  Circuit Digest(www.circuitdigest.com)
*/

inttrigPin=9;// trig pin датчика HC-SR04

intechoPin=10;// Echo pin датчика HC-SR04

intrevleft4=4;//REVerse motion (движение назад) для левого двигателя

intfwdleft5=5;//ForWarD motion (движение вперед) для левого двигателя

intrevright6=6;//REVerse motion (движение назад) для правого двигателя

intfwdright7=7;//ForWarD motion движение вперед) для правого двигателя

longduration,distance;

voidsetup(){

delay(random(500,2000));// задержка на случайное время

Serial.begin(9600);//для целей отладки, потом можно закомментировать

pinMode(revleft4,OUTPUT);// set Motor pins as output

pinMode(fwdleft5,OUTPUT);

pinMode(revright6,OUTPUT);

pinMode(fwdright7,OUTPUT);

pinMode(trigPin,OUTPUT);// set trig pin as output

pinMode(echoPin,INPUT);//echo pin в режим ввода данных

}

voidloop(){

digitalWrite(trigPin,LOW);

delayMicroseconds(2);

digitalWrite(trigPin,HIGH);// передаем серию импульсов длительностью 10 мкс

delayMicroseconds(10);

duration=pulseIn(echoPin,HIGH);// принимаем отраженные импульсы

distance=duration58.2;// рассчитываем расстояние в см

delay(10);

// If you dont get proper movements of your robot then alter the pin numbers (если что то работает не так, попробуйте сменить используемые контакты)

if(distance>19)

{

digitalWrite(fwdright7,HIGH);// движение вперед

digitalWrite(revright6,LOW);

digitalWrite(fwdleft5,HIGH);

digitalWrite(revleft4,LOW);

}

if(distance<18)

{

digitalWrite(fwdright7,LOW);//Stop (остановка)                

digitalWrite(revright6,LOW);

digitalWrite(fwdleft5,LOW);

digitalWrite(revleft4,LOW);

delay(500);

digitalWrite(fwdright7,LOW);//движение назад        

digitalWrite(revright6,HIGH);

digitalWrite(fwdleft5,LOW);

digitalWrite(revleft4,HIGH);

delay(500);

digitalWrite(fwdright7,LOW);//Stop (остановка)              

digitalWrite(revright6,LOW);

digitalWrite(fwdleft5,LOW);

digitalWrite(revleft4,LOW);

delay(100);

digitalWrite(fwdright7,HIGH);

digitalWrite(revright6,LOW);

digitalWrite(revleft4,LOW);

digitalWrite(fwdleft5,LOW);

delay(500);

}

}

Шаг 11: Лисица

Робот-бот на Arduino для игры Guitar Hero

Vixen — это сердце и душа этого проекта. Это то, что требует наша «диаграмма звуковых заметок»> Новая последовательность событий -> Стандартная последовательность Vixen — Нажмите «Далее» — нажмите «Далее» 1. — Нажмите «Диспетчер профилей», а затем синюю кнопку «плюс». 2. — Назовите его Guitar Hero, затем добавьте 6 каналов 3. — Щелкните значок с 4 цветными квадратами — Нажмите «Новый цвет» и добавьте зеленый, красный, желтый, синий и оранжевый 4. — Перетащите зеленый цвет на канал 1, красный — на канал. 2, желтый — канал 3, синий — канал 4 и оранжевый — канал 5 (оставьте 6 белым. Это для полосы воспроизведения) и нажмите «ОК» — теперь нажмите «Плагины вывода» — дважды щелкните стандартный последовательный порт. — Выберите его в правом поле и нажмите «Настройки плагина» — Установите COM для любого COM-порта, к которому подключен ваш Arduino, и установите скорость передачи на 9600 — Нажмите «ОК», затем «Готово», затем снова «Готово» 5. — В раскрывающемся меню выберите Guitar Hero. — Нажмите «Далее» — снова нажмите «Далее». Нажмите «Создать». Перейдите в раздел «Последовательность» -> «Настройки» и измените продолжительность события на 10 мс. Сохраните его как название песни, которую вы исполняете. Теперь пора импортировать наш звук в Vixen. — Перейдите в Sequence -> Audio 6. — Нажмите Assign Audio — Откройте аудиофайл, который вы назвали зеленым — Перейдите в Add-ins -> Waveform 7. — Нажмите Channel 1, чтобы он был выделен, и нажмите Start — вы получите предупреждение здесь. Просто нажмите «Да» — когда появится сообщение «Готово», нажмите «ОК» 8. — Если вы пролистаете песню, вы должны увидеть зеленую рамку везде, где должна быть нажата зеленая нота. — Теперь проделайте то же самое с аудиофайлами красного, желтого, синего и оранжевого цветов, выбрав соответствующий канал для каждого из них. Сделайте это снова для Strum, выбрав Channel Six. После того, как вы завершили все 6 каналов, выберите все события, вырежьте и вставьте их так, чтобы самая первая зеленая нота (та, которую вы поместили там, где самая первая белая линия пересекает линию полосы бренчания) была примерно 3,5 секунды. Выберите эту первую зеленую ноту и нажмите пробел. Он больше не должен быть зеленым. Выберите самое первое событие на зеленом канале и нажмите пробел. (Это поможет нам добиться идеального момента

Оцените статью
( Пока оценок нет )
Добавить комментарий