Для реализации данного проекта нам понадобится:
Arduino uno : http://ali.pub/1th4sk
Ультразвуковой дальномер HC-SR04: http://ali.pub/22b4n1
Среда разработки Processing: https://www.processing.org/download/
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
Итак в данной статье реализован пример игры разработанный в среде разработки Processing в которой летит по небу самолетик и собирает птичек, каждая собранная птичка дает одно очко в Score. Управление в игре осуществляется двумя способами. Первый способ это управление самолетом с помощью ультразвукового дальномера HC-sr04, принцип управления в приблежении и отдалении руки к сенсорам датчика. Второй способ это управление самолетом с помощью мышки, а именно двигая мышкой вверх – вниз самолетик также будет лететь вверх -вниз.
Чуть ниже я оставлю ссылку на архив с скетчем Processing. В папке из архива помимо скетча есть еще картинки с названиями bird.png – Изображение птицы cloud.png – изображение облака grass.png – изображение травы plane.png – изображение самолета. Выглядит это все примерно вот так:
Следовательно сам скетч берет эти картинки с папки в которой он находится и подставляет их в игру, для визуальных эфектов самолета, птицы, облаков и травы. Если хотите что-то переработать визуально, например поменять самолет. То нужно примерно в таком же разрешении взять самолет другой с картинки, вырезать его по контору например в фотошопе и вставить в папку с таким же именем plane.png и при следующем запуске игры в processing самолетик заменится на Ваш вариант. Так можно переработать все объекты в игре, благо их всего 4.
ВАЖНО!: все картинки должны находиться в одной папке с сами скетчем Processing.
Давайте теперь пройдемся по Важным строчка в этом скетче, которые нужно будет изменить под себя:
- myPort = new Serial(this,”COM3″, 9600); – В этой строчке нам нужно поменять COM порт на тот к которому подключена Ардуино. Ну или закоментировать, если вы будете играть с помощью мышки, а не ультразвукового дальномера.
- Angle = mouseY-300; если оставить эту строчку то будет осуществляться управление с помощью мышки. Angle = (18- DistanceUltra)*4; если вот эту строчку, то управление будет осуществляться с помощью ультразвукового дальномера.
Ссылка на архив с скетчем и картинками: https://yadi.sk/d/sjdffiaK3QggJL
Теперь, давайте перейдем к разбору скетча на Ардуино, для управления с помощью ультразвукового датчика.
В самом скетче не очень много строк кода, я сказал бы даже, что мало.
Подключение датчика к ардуино осуществляется по такой схеме:
Vcc -> to Arduino 5v
Trig -> Arduino pin 3
Echo -> Arduino pin 2
GND -> to Arduino GND
Сам Скетч:
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 | /* Vcc -> to Arduino 5v Trig -> Arduino pin 3 Echo -> Arduino pin 2 GND -> to Arduino GND */ int echoPin = 2 ; int triggerPin = 3 ; unsigned long pulsetime = 0 ; unsigned distance = 0 ; unsigned OldDistance = 0 ; void setup (){ pinMode (echoPin, INPUT ); pinMode (triggerPin, OUTPUT ); Serial.begin ( 9600 ); } void loop (){ digitalWrite (triggerPin, LOW ); delayMicroseconds ( 100 ); digitalWrite (triggerPin, HIGH ); delayMicroseconds ( 100 ); digitalWrite (triggerPin, LOW ); pulsetime = pulseIn (echoPin, HIGH ); distance = pulsetime / 58 ; delay ( 10 ); if (OldDistance ! = distance) { Serial.println (distance); OldDistance = distance; } delay ( 50 ); } |
Ссылка на сам скетч: https://yadi.sk/d/BmPwvE0F3QgghH
На этом думаю разбор работы программы пора закончить. Ниже будет видео с примером работы данной игры.
Видео: