Игральные кости с Arduino
Это руководство поможет вам создать электронные игральные кости с помощью Arduino и некоторых других компонентов.
Шаг 1: Компоненты
Что вам потребуется:
⦁ 18 перемычек (11 длинных и 7 коротких)
⦁ 7 светодиодов (я использовал красные)
⦁ Кнопка
⦁ Резистор (я использовал на 100 кОм, 10 кОм тоже будет работать)
⦁ Макетная плата
⦁ Arduino (+usb кабель)
⦁ Дополнительно: небольшие медные перемычки ⦁ Инструменты: Кусачки ⦁ Компьютер
Итак, начнем.
Шаг 2: Светодиоды
Для начала откусите контакты у светодиодов, чтобы они стали короче. Так удобнее будет их крепить на макетной плате.
Затем начните устанавливать их в макетную плату, расположив отрицательные контакты светодиодов слева. Первый светодиод располагается между пинами (1-, 2+).
Второй светодиод располагается между пинами (5-,6+), третий светодиод – между пинами (9-,10+), четвёртый светодиод – посередине между пинами (4-, 7+).
Последние три светодиода располагаются прямо под первыми тремя, но на другой стороне макетной платы.
Шаг 3: Соединение светодиодов с «землей»
Захватите свои перемычки (для этого шага я использовал более мелкие перемычки, чтобы облегчить жизнь) и соедините все отрицательные (-) стороны светодиодов с заземлением.
Шаг 4: Перемычки к Arduino
Теперь возьмите длинные перемычки и подсоедините их к положительным (+) контактам каждого светодиода. Для удобства лучше использовать перемычки разного цвета.
Также подсоединим длинную перемычку к отрицательной шине, а она будет подсоединена к «земле» на плате Arduino.
В списке компонентов были дополнительно указаны медные перемычки, я использовал небольшие их отрезки для фиксации всех длинных перемычек вместе на плате.
Шаг 5: Кнопка
Теперь подсоединяем кнопку. Начните с размещения кнопки в центре макетной платы. Я использовал резистор на 100 кОм, но другие тоже будут работать. Поместите указанный резистор на макетную плату, немного отступая от одной из сторон кнопки (см. рисунок).
Шаг 6: Соединение перемычек с Arduino
Теперь мы подсоединяем перемычки к самой плате Arduino. LED1/Pin 12 (Светодиод 1/Пин 12) LED2/Pin ~11(Светодиод 2/ Пин ~11) LED3/Pin ~10 (Светодиод 3/ Пин ~10) LED4/Pin ~9 (Светодиод 4/ Пин ~9) LED5/Pin 8 (Светодиод 5/ Пин 8) LED6/Pin 7 (Светодиод 6/ Пин 7) LED7/Pin ~6 (Светодиод 7/ Пин ~6)
GND/GND 😮 (Земля/Земля :o)
Если вы еще не подсоединили кнопку к Arduino, предыдущий шаг показывает, как это сделать.
Шаг 7: Код!
Теперь подсоедините плату Arduino к компьютеру и загрузите этот код.
Источник: https://tpai.ru/blog/stati/igralnye-kosti-s-arduino
Светодиодная игральная кость, активируемая встряхивающим движением
Введение
Я всегда хотел создать электронную, светодиодную игральную кость так, чтобы она отличалась от других устройств, доступных в сети Интернет.
Кроме того, я задумал так, чтобы кость активировалась встряхивающим движением! Многие современные смартфоны имеют встроенный акселерометр, который позволяет комфортно играть в игры с использованием кубиков или костей. Игральная кость двигается, когда вы встряхиваете смартфон.
Мое устройство будет работать на том же принципе, только без использования дорогостоящих акселерометров.
Список компонентов
Резистор R1 500 Ом Резистор R2 500 Ом Резистор R3 500 Ом Резистор R4 500 Ом Резистор R5 500 Ом Резистор R6 500 Ом Резистор R7 500 Ом Резистор R8 10 кОм Конденсатор C1 100 нФ Плоские светодиоды с 1 по 7 5 мм Пищалка Piezo HPE-120 ИС1 PIC микроконтроллер 16F688 от Microchip Выключатель S1 Стандартный вкл/выкл выключатель
Дополнительные компоненты:
Корпус Отсек для батареек AAA x2 Печатная плата Пружина, винты и провода Hex программа для загрузки в микроконтроллер
Печатная плата
В данном проекте используется односторонняя печатная плата размером 31.27 мм x 42.25 мм.Вид сверху с компонентамиВид снизу Я использовал две батарейки типа AAA для подачи напряжения питания 3 В на компоненты схемы и светодиоды.
Триггер
Триггер представляет собой механическое устройство, реагирующее на встряхивающее движение. Один контакт подключен к пружине, а второй к проводнику. К концу пружины прикреплен винт, который действует как противовес.
При размещении корпуса устройства на боковую сторону, пружина обладает достаточным усилием, чтобы не деформироваться под собственным весом. При встряхивании происходит перемещение пружины и соприкосновение с контактом, замыкающим цепь. Так микроконтроллер определяет, что кость подбрасывалась.
Для надежного закрепления пружины используйте небольшое количество полиморфного материала. Это придаст устройству законченный вид.
Программа в формате Hex
Hex код программы необходимо записать в память микроконтроллера перед его установкой на печатную плату.
Фьюзы OSC и MCLR необходимо установить следующим образом: INTOSCIO — вкл MCLR — выкл
Тестирование
Включите устройство. При этом произойдет инициализация микроконтроллера и срабатывание светодиодов. Потрусите корпус устройства. Светодиоды начнут перемигиваться, как при броске настоящей игральной кости. Окончательное число высветится, когда пьезодинамик издаст звуковой сигнал. Для следующего хода просто повторно встряхните игральную кость.
Заключение
Источник: http://electronics-lab.ru/blog/4022.html
Дорабатываем настольную игру с помощью Arduino
- AliExpress
- Сделано руками
- Игрушки и подарки
Решил написать небольшой обзорчик на тему: «Как еще можно применить Arduino»… Если коротко, то добавим рандома в игру. Обзор будет не длинным, просто покажу что, как делал.
Начнем повесть с того, что сыну на день рождения подарили настольную игру «Зомби в доме». Ну как подарили !? Увидел рекламу, сказал «Хочу» и вуаля, список подарков пополнился еще одной настолкой )))Сама по себе настольная игра довольно прикольная и не смотря на рейтинг 12+, подходит для детей более юного возраста (сыну исполнилось 6).
Фотографий игры в интернете много, поэтому уберу свои под спойлер:
Пару фотографий настолки
Коробку я уже немного порезал )))
Виновником обзора является вот это картонный диск:Если Ваш доходяга должен сходить или он наткнулся на зомби, то берем в руки эту штуку, крутим стрелку и в зависимости от выпавшей картинки или цифры выполняем действие.
После первой же партии обнаружились некоторые минусы: 1) Стрелка крутиться не свободно и иногда заедает; 2) Крутить стрелку пальцем/рукой не очень удобно; 3) Большое поле для мухлежа, а так хочется честной игры.
Видя такую несправедливость, я не мог остаться в стороне и с наступлением ночи, одев супергеройские колготки и дырявые носки, я отправился в кладовку для поиска идей и вдохновения. Идея, как и компоненты для ее реализации, пришла довольно быстро.
Итак в кладовке я нашел: — Пластиковый бокс, приобретенный для другого проекта (он чуть больше диска, ну да ладно); — Arduino Nano V3 (я их покупал давно и сразу много); — Моторчик, выдранный из какой-то старой игрушки; — Кнопка (без фиксации); — Переключатель (вкл/выкл); — Power Bank (их как-то давали на работе просто так, с тех пор пылиться на полке); — Кусок старого USB кабеля (помимо пакета с пакетами, у меня еще есть пакет в проводами); — NPN транзистор KSP44 (выдрал его из базы старого радиотелефона). Групповое фото, найденного барахлаДля разбора вязанки проводов, накидал небольшую схему:В собранном виде это выглядит, как фильм из категории XXX:Моторчик приклеил на суперклей + сода, остальное на термоклей. Повербанк посадил на двухсторонний скотч, чтобы не болтался по корпусу.
Еще пару фотографий с разных ракурсов
Картонный диск так же приклеил на кусочки двухстороннего скотча, чтобы можно было снять, в случае чего. В стрелке просверлил небольшое отверстие по диаметру вала моторчика.Вот собственно и собранная конструкция.
Код для Adruino – постарался по максимуму пояснить, что и как работает
Упрощенный вариант кода
Работает эта «Штука», так: включаем, нажимаем на кнопку, Arduino «случайным» образом генерирует время от 0 до 1000 мс, крутит мотор и по прошествии времени останавливает его.
К этому добавляем неизвестное начальное положение стрелки + инерцию при остановке. Вуаля — теперь этот девайс выдает случайное количество шагов или действие.Т.к.
абсолютно чистый рандом реализовать в принципе невозможно, есть возможность отказаться от помощи Arduino и крутить стрелку самостоятельно.
Итог
Т.к. я нашел все в кладовке, то денег я потратил 0, но поскольку это все мной же и покупалось, то стоимость компонент составила около 350р (по текущему курсу $$$). Стоимость Power Bank я сюда не включал, т.к. реализовать питание можно по разному. У меня, в случае необходимости, Power Bank можно снять для зарядки или своих нужд.
На разработку, сборку и программирование ушло около 3,5 часов лежания на диване ))) Сыграв пару партий, все одобрили девайс, поскольку полный рандом добавляем изюминку игре. Спасибо за внимание, за грамматику не бить ))) P.S. Вариантов реализации идеи много. Я лишь показал свой вариант. P.P.S.
Видео перезалил, рандом присутствует )))
Это тоже котик )))
Планирую купить +12 Добавить в избранное Обзор понравился +38 +82
Источник: https://mysku.ru/blog/aliexpress/51056.html
Светодиодный куб 4x4x4 на Arduino
В проекте предложена конструкция светодиодного куба (LED cube) 4x4x4 стоимостью около 15 долларов.
В кубе использовано 64 зеленых светодиода, которые формируют 4 слоя и 16 колонок. Управление кубом реализуется на базе Arduino. Приведен пример программы для Arduino Uno, в которой реализовано управление каждым отдельным светодиодом из всего массива.
Необходимые детали для проекта
- 64 светодиода
- 4 резистора на 100 Ом
- Коннекторы для распайки
- Проводники
- Макетная плата для распайки
- Коробка
- Источник питания на 9 В
- Arduino Uno
Инструменты, которые могут вам пригодиться, приведены на фото ниже.
Можете воспользоваться эскизом, который приведен здесь. Распечатайте его и наклейте на картонную коробку. При печати проверьте, чтобы был выставлен фактический размер и горизонтальная ориентация. Карандашом сделайте отверстия в узловых точках. Проверьте, хорошо ли садятся светодиоды в подготовленные отверстия.
Собираем светодиодный куб
Возьмите 64 светодиода и проверьте их работоспособность, подключив каждый к пальчиковой батарейке. Это, конечно, скучная процедура, но она необходима. Иначе из-за одного нерабочего светодиода впоследствии может быть куча проблем.
Установите 16 светодиодов в отверстия в соответствии со стрелками на распечатке. Красные стрелки соответствуют плюсу (анод), синие – минусу (катод). Все аноды соедините между собой. После этого переверните коробку и вытолкните светодиоды.
Выталкивайте аккуратно, чтобы не повредить собранный слой. Все. Первый слой готов. Аналогичным образом формируем еще три слоя. После соединяем четыре получившихся слоя с помощью свободных катодов. Советую соединять контакты начиная с центра и перемещаясь к периферии.
Светодиодный куб начинает принимать необходимые очертания!
Установка светодиодного куба
Сделайте разметку на макетной плате с помощью маркера. Учтите, что размеченный прямоугольник должен быть немного меньше коробки, на которой будет установлен ваш куб.
После разметки сделайте небольшой паз вдоль линии будущей грани и аккуратно отломайте ребра макетной платы. Сделайте 20 отверстий на верхней части вашей коробки для куба.
Можно разметить места для сверления по соответсвующим отверстиям макетной платы.
Подключаем светодиодный куб
Сначала разделите вашу рейку коннекторов на три части таким образом, чтобы они подошли к цифровым и аналоговым пинам Arduino Uno. Зачистите и установите на вашей маетной плате в коробке 16 проводов для цифровых входов (рядов). 4 провода от аналоговых входов подключите с использованием резисторов на 100 Ом.
Теперь переходите к подключению концов проводов к трем рейкам коннекторов. Подключение реализовано таким образом, что есть возможность управлять светодиодами вдоль трех осей. Колонки соответсвуют осям X и Y. Плюс к этому, благодаря четырем слоям мы получаем координату Z.
Если вы посмотрите вниз с угла светодиодного куба, первый квадрант будет соответствовать обозначению (1, 1). Таким образом, каждый светодиод может быть инициализирован по подобной же методике. Давайте рассмотрим пример. Посмотрите на рисунок выше и найдите светодиод A(1,4).
“A” означает, что это один и первых слоев, а “(1,4)” соответсвтует координатам X=1, Y=4.
Схема подключения
Ряды/колонки
[(x,y)-Пин]
(1,1)-13
(1,2)-12
(1,3)-11
(1,4)-10
(2,1)-9
(2,2)-8
(2,3)-7
(2,4)-6
(3,1)-5
(3-2)-4
(3-3)-3
(3,4)-2
(4,1)-1
(4,2)-0
(4,3)-A5
(4,4)-A4
Слои
[Пины для слоев]
a-A0
b-A1
c-A2
d-A3
Подключаем источник питания для Arduino
Для питания платы можно использовать отдельный адаптер на 9 вольт, 1 ампер. Можно использовать переходник для батарейки типа крона и питать от нее. В любом случае, вам понадобится сделать еще одно отверстие для провода питания. Когда будете делать отверстие, предусмотрите его размер немного большим, чем сам коннектор.
В общем то все, что вам после этого останется – загрузить скетч на Arduino и наслаждаться результатом:
Программа для светодиодного куба под Arduino
Ваш куб готов!
Видео собранного светодиодного куба 4x4x4
Источник: http://arduino-diy.com/arduino-svetodiodnyy-kub-4x4x4
Делаем Arduino с нуля
Перевел Yarik.Yar для www.mozgochiny.ru.
Если вы интересуетесь изготовлением Arduino с нуля своими руками,вам сюда!
Вы можете посмотреть видео-туториал здесь
Давайте же приступим!
Шаг 1.Введение.
Вопросы ,как и что сделать,а вообще зачем оно мне?
После серфа по тоннам информации об Arduino…от изготовления светодиодного кубика,до создания «Умного дома»,до изготовления летающих дронов… вы,как и я,лихорадочно начали искать более-менее приемлимую инфу об изготовлении этой всемогущей платы. «Черт возьми,хочу такую!» или «Я хочу сделать это.
Прямо сейчас.»И в голове крутятся все возможные применения этого устройства, руки сами начинают искать детали для платы,заходите в интернет,а там: АРДУИНО.Всего за 25$. И все. Все комбинации выпали из головы. Безнадега. Не знаете ,как жить дальше.
И тут вы натыкаетесь на этот сайт! Вы спасены!
Ведь именно сейчас мы с вами соберем ARDUINO-совместимую плату за 15 минут и всего за примерно 300 рублей!
Шаг 2.Приобретите это немедля!
Вам необходимы эти компоненты: -Макетная плата -ATMega 328(примечание переводчика: можно использовать также ATMega 8,168) -Готовая плата Arduino(*и снова переводчик-вместо ардуины можно использовать любой программатор,хоть «5 проводков») -1 резонатор на 16мГц -3 резистора на 100Ом -1 резистор на 10кОм -2 конденсатора на 22pF -3 светодиода(красный,желтый и зеленый) -1 батарея типа»Крона»(9 вольт) с ответной частью -USB-кабель -1 стабилизатор напряжения «КРЕНка» -Компьютер,ноутбук с установленной Arduino IDE.
И все.
Шаг 3.Начало сборки.
Возьмите макетку и закрепите микроконтроллер так,чтобы его ножки не были замкнуты(он должен стоять над «канавкой»)
Шаг 4.Подключение КРЕНки.
Поместите КРЕНку на макетку рядом с МК. Распиновка КРЕНки: -VCC(питание снаружи) -GND(Земля.Общий контакт) -Output(Выход) Подсоедините черный провод к GND.Соедините его другой конец с шиной «GND» на макетке. VCC подключите к шине питания+ на макетке.
И Output киньте туда,где будет питание чипа.
Шаг 5.Проводим питание к МК.
Хорошенько изучите распиновку АТМеги.
Соедините Output КРЕНки и GND макетки соответственно с Output(7 и 20 пин) и GND(8 и 22 пин) МК.
Шаг 6.Добавим точности.
Подключите конденсатор на 22pF между GND и 9 пином АТМеги. И второй конденсатор между 10 пином АТМеги и ,опять же,землей.
Добавьте резистор на 10кОм между 5v и RESET(1 пин).
Шаг 7.Добавляем светодиоды.
Воткните провод в любое место платы. Подключите резистор 100Ом к одному из концов провода(см.картинку) Длинную ножку диода (+) желтого диода подсоедините к другому концу резистора. Короткую ножку(-) подключите к земле.
Повторите для красного и зеленого диодов.
Шаг 8.Подключаем все это к ARDUINO.
Далеко зашли мы,однако!
Подключите желтый диод к 9 пину Arduino. Желтый диод отображает работу программатора. Подключите красный диод к 8 пину Ардуины. Он загорается,если что-то пошло не так. И зеленый диод подключите к 7 пину. Он показывает статус заливки bootloader’а. Подсоедините 4 провода(на картинке-3 желтых и зеленый) к пинам АТМеги на макетке(см.рисунок). А затем эти провода к 10-13 пинам Ардуино.
Не забудьте соединить 5 и GND Ардуины и макетки!
Шаг 9.Программирование. Фух,добрались и до заливки бутлоадера. Как,спросите вы? АК вот так! 1)Запустите Arduino IDE. 2)Выберите Файл-Примеры-Arduino ISP. 3)Скомпилируйте скетч и залейте его в Ардуину. После заливки скетча Вы увидите,что желтый диод начал мигать.
Теперь добавьте резистор на 100 Ом между землей и Reset Ардуины.
Шаг 10.Собственно заливка загрузчика.
В Arduino IDE выберите: Tools-Board-Arduino Duemilkanove with AtMega 328(* Если вы используете не АТМегу 328,найдите в списке модель с тем контроллером,который установлен у вас) Tools-Programmer-Arduino as ISP. И снова в меню Tools.Зайдите и нажмитье «Burn Bootloader» Прошивка начнется(займет около минуты)
На экране появится надпеись «Done Burning Bootloader»
Если что-то пойдет не так,загорится красный диод,то не получилось.Обращайтесь в личку или на [email protected]. Вуаля!У вас есть свой Ардуино!
Счастливой работы!
(A-Z Source)
Источник: http://mozgochiny.ru/nechto-neodobrennyie-stati/delaem-arduino-s-nulya/
Игра на LCD Keypad Shield D1robot и Arduino UNO , делаем простую игру на ардуино
Приехал мне из китая вот такой удобный ЛСД шилд для ардуино Уно , но так же он подходит и для версии MEGA .
Шил по сути удобная платформа с дисплеем 1602 и 6ю кнопками для подключения к ардуино – Бутербродом .
Все это легко монтируется , как я раньше без него то жил ?
Купить платы можно на Алиэкспресс :
Шилд с дисплем 1602 http://ali.pub/27eri3
Альтернативная ссылка http://ali.pub/27erju
Arduino UNO http://ali.pub/27ernq
Альтернативная ссылка http://ali.pub/27erls
Для начала нужно залить скетч игры в вашу плату ардуино и настроить контрастность дисплея , а для игры необходимо нажать кнопку SELECT.
Функционал кнопок:
• UP – движение вверх
• DOWN – движение вниз
• RIGHT – ускорение
• LEFT – пауза
• SELECT – продолжить игру (пауза), старт новой игры
Для динамики игры, помимо ручного ускорения, каждые 5 секунд происходит программное увеличение скорости звездолета. На 25 секунде включается максимальная сложность “UNREAL” и скорость больше не растет.
После каждой игры на дисплее высвечивается время текущей игры, а также время лучшей попытки.
#include #include LiquidCrystal lcd(8, 9, 4, 5, 6, 7 ); // Количество позиций в ширину дисплея const int FIELD_WIDTH = 16; // Вероятность возникновения препятствия (5 из 10) 50% const float BAR_PROBABILITY = 5; // Нажатая клавиша int button; const int BUTTON_NONE = 0; const int BUTTON_RIGHT = 1; const int BUTTON_UP = 2; const int BUTTON_DOWN = 3; const int BUTTON_LEFT = 4; const int BUTTON_SELECT = 5; // Состояния игры int gameStatus; const int MAIN_MENU = 0; // Главное меню const int IN_GAME = 1; // Игра const int PAUSE = 2; // Пауза const int ENDING = 3; // Конец // Отображаемые символы char gameFields[32]; // Игровое поле const char SPACE = ' '; // Пустая клетка const char BAR = '|'; // Препятствие const char PLAYER = '>'; // Игрок // Игровая скорость, чем меньше параметры тем выше скорость int gameSpeed; int SPEED_HIGH = 70; // Скорость ускорения int SPEED_NORMAL = 300; // Изначальная скорость int changeSpeed = 5000; // Интервал изменения скорость (5 сек.) long startGameTime; // Время начала игры long lastMovementTime; // Последнее время обновления дисплея long lastChangeSpeedTime;// Последнее время изменения скорости long endGameTime; // Время окончания игры long bestGameTime; // Лучшее время int topQueue = true; // Параметр для алгоритма расстановки препятствий // Функция возвращает какая кнопка была нажата int getPressedButton() { int buttonValue = analogRead(0); if (buttonValue < 100) { return BUTTON_RIGHT; } else if (buttonValue < 200) { return BUTTON_UP; } else if (buttonValue < 400){ return BUTTON_DOWN; } else if (buttonValue < 600){ return BUTTON_LEFT; } else if (buttonValue < 800){ return BUTTON_SELECT; } return BUTTON_NONE; } // Функция начинает новую игру void startGame() { SPEED_NORMAL = 250; // Устанавливаем скорость // Сбрасываем таймеры startGameTime = millis(); lastMovementTime = millis(); lastChangeSpeedTime = millis(); endGameTime = 0; // Очищаем игровое поле for (int i = 0; i < 2*FIELD_WIDTH; i++) { gameFields[i] = SPACE; } // Устанавливаем игрока в 1 позицию gameFields[0] = PLAYER; // Начинаем игру gameStatus = IN_GAME; // Выводим игровое поле printGameField(); } // Функция выполняет движение игрового поля void moveGameField() { // Если врезались в препятствие, заканчиваем игру if (gameFields[0] == PLAYER && gameFields[1] == BAR || gameFields[FIELD_WIDTH] == PLAYER && gameFields[FIELD_WIDTH+1] == BAR) { gameOver(); return; } // Вычисляем игровую позицию int playerPos = 0; if (gameFields[FIELD_WIDTH] == PLAYER) { playerPos = FIELD_WIDTH; } // Смещаем позиции for (int i = 0; i < FIELD_WIDTH*2; i++) { if (i != FIELD_WIDTH-1) { gameFields[i] = gameFields[i+1]; } } gameFields[playerPos] = PLAYER; // Вычисляем количество препятствий на строках int topBarsCount = 0; int bottomBarsCount = 0; for (int i = 0; i < FIELD_WIDTH; i++) { if (gameFields[i] == BAR) { topBarsCount++; } } for (int i = FIELD_WIDTH; i < FIELD_WIDTH*2; i++) { if (gameFields[i] == BAR) { bottomBarsCount++; } } // Алгоритм установки препятствий в последних клетках дисплея // Нельзя допустить заведомо проигрышной ситуации // т.е. два препятствия без промежутка для маневра // Также учитываем отсутствие длинных последовательностей препятствий if (topQueue) { // Принимаем решение об установке препятствия в нижней строке if (gameFields[FIELD_WIDTH-1] != BAR && gameFields[FIELD_WIDTH-2] != BAR && gameFields[FIELD_WIDTH-3] != BAR && bottomBarsCount gameSpeed) { lastMovementTime = millis(); moveGameField(); } // Если прошло время изменения скорости, изменяем if (millis() - lastChangeSpeedTime > changeSpeed) { lastChangeSpeedTime = millis(); SPEED_NORMAL -= 40; // Предельная скорость if (SPEED_NORMAL < 50) { SPEED_NORMAL = 50; SPEED_HIGH = 50; } } // Печатаем игровое поле, если не перешли в другой режим if (gameStatus == IN_GAME) printGameField(); break; case PAUSE: // Продолжаем игру по нажатию на SELECT if (button == BUTTON_SELECT) { gameStatus = IN_GAME; startGameTime = millis(); } break; case ENDING: // По любому нажатию переходим в главное меню if (button != BUTTON_NONE) { lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 1); lcd.print(" "); lcd.setCursor(0, 0); lcd.print("To start game"); lcd.setCursor(0, 1); lcd.print("press SELECT"); gameStatus = MAIN_MENU; } break; }
}
Подписывайся на Geek каналы :
➤ VK – https://vk.com/denis_geek
➤ VK – https://vk.com/club_arduino
➤ VK – https://vk.com/chinagreat
➤ VK – https://vk.com/solar_pover
➤ VK – https://vk.com/my_vedroid
➤ VK – https://vk.com/3dprintsumy
➤ Youtube – http://www.youtube.com/c/Danterayne
★ Моя партнёрка с Aliexpress ★
http://ali.pub/1j9ks1
★ Получай 10.5% скидку с любой покупки на Aliexpress! ★
http://ali.pub/1lx67o
★ Полезное браузерное приложение для кэшбэка ★
Источник: http://www.electronica52.in.ua/proekty-arduino/igra-na-lcd-keypad-shield-d1robot-i-arduino-uno–delaem-prostuu-igru-na-arduino-
Собираем самодельный Arduino – Shrimp
Вы когда-нибудь хотели программировать микроконтроллеры как плату Arduino, не используя программатор? Или, может быть, просто собрать свою Arduino плату? Тогда в этой статье вы узнаете, как можно собрать Arduino-совместимый микроконтроллер, при этом обойтись без пайки и сделать это на макетной плате.
Я поведаю о самом простом варианте, не содержащем USB-порта, разъёма для питания, светодиодов для индикации, и состоящем лишь из самого микроконтроллера и минимальной необходимой обвязки. Разработчики (shrimping.it) дали этой схеме название “Shrimp”(Креветка). Она полностью копирует Arduino UNO (если использовать контроллер ATMEGA328P-PU).
Следует отметить, что для прошивки загрузчика в микроконтроллер понадобится плата Arduino. Однако, этот пункт можно опустить, если в ваш контроллер уже вшит загрузчик Arduino.
Он нужен для того, чтобы прошивать контроллер можно было без использования программатора, применяя только последовательный порт.
В платы Arduino его записывают ещё при производстве, а нам придётся делать это самостоятельно.
Итак, для сборки Shrimp нам понадобятся следующие компоненты:
- Микроконтроллер ATMEGA328P-PU. Поддерживаются и другие контроллеры: ATmega8, ATmega168, ATmega168P, ATmega168PB, ATmega328, ATmega328P, ATmega328PB;
- Тактовая (тактильная) кнопка;
- Внешний кварцевый резонатор на 16 мГц;
- Электролитический конденсатор ёмкостью от 10 до 100 мкФ;
- 2 керамических конденсатор на 22 пФ;
- 4 керамических конденсатора на 100 нФ;
- Резистор на 10 кОм;
- Макетная плата. Как вариант – спаять схему;
- Провода для макетной платы;
- USB-UART преобразователь;
Все компоненты вы можете приобрести в нашем магазине, по низким ценам и с быстрой доставкой:
Если у вас микроконтроллер без прошитого загрузчика, придётся это исправить. Для начала скачиваем программу OptiLoader для платы Arduino, которая послужит программатором, с официального репозитория проекта на GitHub. Скачанную папку “OptiLoader-master” переименуем в “OptiLoader”. Загружаем скетч в Arduino, отключаем её от питания.
Теперь собираем на макетной плате приведённую схему:
Внимательно всё проверяем.
Подключаем Arduino к питанию. Сразу после загрузки программы OptiLoader начнётся прошивка загрузчика в микроконтроллер. На плате Arduino загорятся светодиоды “RX” и “TX”, индикация работы последовательного порта. Как только они прекратят работу прошивка закончится.
Открываем монитор порта в Arduino IDE и выставляем скорость 19200. OptiLoader ведёт лог своей работы, в случае успешной прошивки микроконтроллера вы увидите следующий отчёт:
Осталось разобраться с тем, как теперь загружать скетчи в почти готовый Shrimp. Для начала дополним схему, установив все конденсаторы, резистор (параллельно ему можно подключить диод) и тактовую кнопку:
USB-UART конвертер нужен для программирования, но можно использовать его в качестве источника питания. Обратите внимание на то, что пин TX конвертера подключается к RX микроконтроллера, а RX – к TX. Если не получается загрузить скетч в Shrimp – попробуйте поменять их местами.
Теперь, когда всё готово, загружаем стандартный скетч “Blink”. Подключаем светодиод на пин D13 (не забудьте про резистор сопротивлением около 220 Ом).
Светодиод будет моргать каждую секунду.
И ещё немного полезной информации о распиновке микроконтроллера ATMEGA328P-PU. “AIN”– аналоговые выводы, “D”– цифровые, выводы “PWM”поддерживают ШИМ (Широтно-импульсную модуляцию).
Не отмеченные ни одним из этих обозначений пины не программируются с помощью стандартных средств разработки Arduino.
Источник: https://Voltiq.ru/handmade-arduino-shrimp/
Курс “Ардуино”
Изучить самостоятельно следующие материалы:
- Маячок с нарастающей яркостью
- Терменвокс
- Ночной светильник
Задание для каждой ссылки:
Целью олимпиады является расширение интереса к техническому образованию и демонстрация задач, которые решают студенты во время обучения на Физтехе. Участие в олимпиаде с прохождением предусмотренного к ней курса подготовки является эффективным способом подготовки абитуриентов к решению теоретических и практических заданий по электротехнике.
Задания олимпиады строятся на основе школьной программы по физике и дополнительных знаний по электронике и схемотехнике из наших образовательных материалов, которые станут доступны в рамках подготовки к олимпиаде МФТИ по электронике.
Первый (отборочный) онлайн-этап – 10 декабря — 1 марта 2017 года.
Второй (заключительный) очный этап – в апреле 2017 года.
Для участия в онлайн-этапе необходимо зарегистрироваться или авторизоваться на сайте и вступить в событие олимпиады.
Заключительный этап пройдет на Физтехе в апреле 2017 года.
Посчитать сумму всех чисел от 0 до N. N выбрать самостоятельно в диапазоне 10-20. Результат проверить в отладчике (debugger).
- Нарисовать блок-схему алгоритма;
- Написать программу в виртуальной среде circuits.io;
- Проверить результат в отладчике.
Получить случайное число с помощью функции random. Если число равно 0, то зажечь зелёный светодиод, если 1, то — красный. Повторять каждые 2 секунды.
- Нарисовать блок-схему алгоритма;
- Собрать электрическую схему в виртуальной среде circuits.io.
Задание 2
Сделать аналог игрального кубика на 6-и светодиодах.
Цель: Научиться управлять изображением на LCD-дисплее с клавиатуры, подключенной к Arduino. Научиться создавать препятствия.
План:
- Перемещение символа по дисплею с препятсвием с помощью клавиш 2468 (на 3);
- Нарисовать блок-схему одной из функций проверки возможности движения (на 4);
- Объяснить одну из функций проверки возможности движения (на 5).
Читать далее Arduino и клавиатура 2
Ссылка на редактор: https://circuits.io/lab
Пользователи (логин/пароль):
- [email protected]/bDDMMYYYY
- [email protected]/*****
- [email protected]/gDDMMYYYY
- [email protected]/gDDMMYYYY
- [email protected]/*****
- [email protected]/iDDMMYYYY
- [email protected]/kDDMMYYYY
- [email protected]/kDDMMYYYY
- [email protected]/kDDMMYYYY
- [email protected]/kDDMMYYYY
- [email protected]/mDDMMYYYY
- [email protected]/pDDMMYYYY
- [email protected]/sDDMMYYYY
- [email protected]/tDDMMYYYY
- [email protected]/uDDMMYYYY
Codecombat — игра для обучения программированию
Ссылка на класс: https://codecombat.com/students?_cc=TeamBadLarge
Игроки (логин/пароль):
- Gribanov/gDDMMYYYY
- Grigorichev/gDDMMYYYY
- Kronevald/kDDMMYYYY
- Sedov/sDDMMYYYY
Источник: https://arduino74.wordpress.com/
Arduino сайт на русском для начинающих мастеров ардуино
Arduino – это название сразу нескольких технологий, с помощью которых можно создавать умные устройства.
Ардуино создавался преподавателями для студентов, поэтому для начала работы с инженерными проектами не нужно много денег! Вы можете легко и довольно дешево купить электронную плату Arduino в интернете на многочисленных интернет-магазинах.
А программы и все необходимые библиотеки можно скачать бесплатно с официального сайта, на нашем сайте arduinomaster.ru или найти на сотнях других ресурсов в интернете. Миллионы людей используют ардуино для своих проектов и интернета вещей.
С чего начать работу с ардуино
Если вы делаете первые шаги в мире Ардуино, то советуем вам заранее приготовиться к двойному потоку знаний.
Во-первых, вам придется разобраться с тем,что такое контроллер Arduino, какие устройства можно к нему подключить и как это сделать. Во-вторых, научиться навыкам программирования в Arduino.
Все это потребует какого-то времени, но результат стоит свеч! И крайне важно, чтобы теория сочеталась с практикой. Создавайте ваши первые проекты как можно быстрее!
Первые шаги Arduino
Наборы и конструкторы Arduino
Arduino – это возможность делать сложные и умные вещи просто. Идеальный вариант для первых шагов начинающих технических гениев. Вы можете легко собрать электронные схемы из готовых конструкторов и наборов, загрузить готовую программу, которую можно скачать совершенно бесплатно и начать использовать умное электронное устройство.
Arduino – это электронные платы, к которым можно подсоединять различные датчики, двигатели, экраны и много других электронных компонентов.
Плата Ардуино будет управлять этими компонентами с помощью программы, который вы в нее загрузите. Самые популярные платы для начинающих – это Arduino Uno, Arduino Mega, Arduino Nano и Arduino Leonardo.
Кроме этого есть множество других вариантов, подходящих для конкретных случаев.
Arduino – это еще и совершенно бесплатная среда программирования Arduino IDE, в которой можно писать программы (скетчи) для контроллера. Программа прошивается в микроконтроллер буквально одним нажатием на кнопку. Никаких особых знаний не требуется! Вы можете даже не писать программу – просто найти и скачать готовый скетч, который просто откроете в Arduino IDE.
Arduino –это сообщество инженеров, которые всегда готовы помочь советом. Это огромное количество сайтов с документацией, примерами и схемами. Начать можно с официального сайта, но кроме него сегодня появилось огромное количество сайтов на русском с форумом русскоязычных инженеров.
Arduino для детей
Принято считать, что Arduino довольно сложен для детей средней школы, но это не так! Сегодня есть огромное количество инструментов и технологий, позволяющих без проблем преподавать ардуино на кружках робототехники даже самых маленьких! На нашем сайте вы можете найти уроки Ардуино, помогающие сделать первые шаги.
Arduino – это целый мир, в котором можно почувствовать себя волшебником.
Лучший инструмент для приобщения детей к технологиям и вдохновленного инженерного творчества! Для обучения детей электронике вы можете использовать как отдельные контроллеры Arduino Uno, Mega или Nano, а также наборы и конструкторы ардуино российских и китайских производителей. Обучение детей программированию Ардуино возможно с использованием среды программирования Arduino IDE или же в визуальной среде Scratch.
Источник: https://ArduinoMaster.ru/
Дроид BB-8 своими руками на Arduino UNO с Bluetooth управлением
Дроид BB-8 на Arduino UNO с Bluetooth управлением
Вы поклонник Star Wars и десятки раз пересматривали каждый фильм? Тогда вам точно нужно сделать самому дроид BB-8. С Arduino UNO это вполне реально.
Эта модель BB-8 может управляться с помощью смартфона с помощью приложения. Также он может управляться голосом, используя другое приложение. BB-8 имеет световые и звуковые эффекты так же, как в фильме.
Этот дроид способен двигать головой, может повернуть налево и направо, движется вперед или назад.
Шаг 1: Видео-презентация
Шаг 2: Как BB-8 работает?
Этот сайт объясняет очень хорошо, каков принцип работы BB-8. Механизм является сложным и требует много двигателей, гироскоп и огромную схему. Голова может перемещаться с помощью магнитов, которые находятся в сфере.Шаг 3: Дизайн
Я думаю, что дизайн James Bruton является одним из лучших, что я видел в интернете. Это просто потрясающе … Но дроид Майка Сенны удивительный тоже.
Шаг 4: Концепция
Был использован пластиковый шарик хомяка, чтобы сделать тело. В этом шаре размещается Arduino и двигатели. M1 (двигатель) перемещает дроида вперед и назад, M2 поворачивает корпус влево или вправо. К M2 следует подключать что-то металлическое или что-нибудь, что имеет большой вес, в противном случае дроид не сможет повернуть налево или направо. В качестве веса можно просто использовать две батареи, так что не нужно добавлять дополнительный вес. Сервопривод перемещает голову на теле вперед и назад, а с помощью M3 голова поворачивается влево или вправо. Голов такжеа может быть прикреплена к телу дроида с помощью магнитов.Диаметр большего шара составляет 17 см, меньшего- 11 см.
Шаг 5: LinkIt ONE: Части
Mediatek LinkIt ONE Developer Board
3 Двигатели постоянного тока
Сервопривод
L293D Motor Driver
Резистор 1кОм
Красный / зеленый / желтый светодиод
Аккумулятор (в комплекте с LinkIt один комплект)
Bluetooth Антенна
Внешняя батарея (2x Литий-ионные аккумуляторы)
Шаг 6: LinkIt ONE: Motor DriverС помощью этой схемы вы можете контролировать свои двигатели в двух направлениях: вперед и назад. Я пометил точку соединения между LinkIt и схемой: D5, D6, D10 и D11, эти цифровые выходные выводы.
Шаг 7: LinkIt ONE: Код
После построения схемы скачать этот или написать собственный код, чтобы получать байты из приложения. Этот код создает Bluetooth-сервер, считывает входящие байты затем реагирует на них путем перемещения сервоприводов и двигателей, включение света или звуковыми эффектами.
Скачать файл: bb-8_linkit_one.zip [1,03 Kb] (cкачиваний: 30)
Шаг 8: LinkIt ONE: Аудио усилитель для звуковых эффектов
Скачать файл BB8.mp3 скопировать на SD-карту и подключите LinkIt ONE.
Шаг 9: LinkIt ONE Внешняя батарея
Вы должны сделать 7.4V аккумулятор для двигателей. Здесь решение было соединить две 18650 батареи последовательно.
Шаг 10: LinkIt ONE: Тест
Шаг 11: Arduino UNO: Части
Запчасти:
Arduino Uno
HC-06 модуль Bluetooth
Мотор Шилд
18650 Литий-ионный аккумулятор
Двигатели постоянного тока (3 шт)
Серводвигатель
Синий светодиод
Провода соединительные
Механизм:
Некоторые части Lego
Шар для хомяка (ни один хомяк не пострадал)
Пластиковый глобус (для головы дроида)
Стяжки
Магниты
ПО:
Ardiono IDE
Библиотека Adafruit Motor Shield
BT RC Car Android App
Шаг 12: Ardiuno код
Эта часть очень проста для каждого Arduino пользователей. Просто загрузите код в IDE затем загрузить на ваш Arduino.
Скачать файл: bb-8_arduino_uno.zip [1,23 Kb] (cкачиваний: 21)
Шаг 13: Выбор источника питания
Если у вас есть, вы можете использовать старые батареи мобильного телефона для источника питания, но я лучше батарея 18650.
Шаг 14: Создание источника питания
Рецепт прост: соединить батареи последовательно провода к 5.5мм разъему питания. Теперь у вас есть 7.4В перезаряжаемый источник питания. Вы можете заряжать его также с 8.4В.
Шаг 15: Выбор двигателей
Нужно 2 редукторных двигателя, чтобы они были очень эффективными.
Шаг 16: Цепь (Hardwere часть)
Были припаяны некоторые дополнительные пины для Arduino ввода / вывода: D13, 5v, 3.3V, GND, RX, TX. Используя эти дополнительные пины, можно легко подключить модуль Bluetooth и светодиод.
Шаг 17: Шилд двигателя
“Трудно увидеть, всегда в движении будущее” – Мастер Йода
Назад к проекту: Подключение серводвигателя к SERVO_2, два двигателя к М1 и один двигатель к M2. 2 желтых двигателя подключены к M1. Эти двигатели перемещают дроида вперед и назад.
Шаг 18: Быстрый тест
Используйте свой смартфон с загруженным приложением, затем подключитесь к микроконтроллеру. Нажмите любую кнопку, которая управляет двигателем. Если работает, начинаем строить сферу.
Шаг 19: Механизм
Было разобрано шар для хомяка, затем с помощью деталей Lego подстраивался двигатель к мячу. Зачем использовать Lego части? Ну с этими деталями очень просто работать.
Шаг 20: Тело в сфере
Это сложная часть: Отрежьте два куска пластика и приклейте к двигателям. Диаметр сферы 17см, так что нужно использовать 13см пластиковый кусок. С помощью стяжек закрепите механизм.
Шаг 21: Рулевое управление
Шаг 22: Сервопривод
Роль серводвигателя заключается в том, чтобы удерживать или наклонять голову на сфере. Эта палка будет держать голову на вершине в одном месте.
Шаг 23: Голова
Разрезать глобус пополам, а затем очистить от бумаги. Вы можете теперь использовать что-нибудь в качестве крепежного элемента, я использовал пластик снова и склеил вместе с магнитами. Если вы хотите, вы можете добавить Lego колеса для лучшего движения.Шаг 24: Quick Test (Снова)
Используйте силу темной стороны или электричество и зарядите батареи. Если ваш дроид готов, попытайтесь контролировать его с телефона. Первое время было сложно, но примерно через пять минут стало очень легко.
Шаг 25: Добавление дополнительного веса для лучшего рулевого управления
Шаг 26: Время разрисовывать дроида
Балончиком с краской сделайте всю поверхность однотоннойШаг 27: Шаблон
Скачать файл: bb-8-pattern.pdf [1,03 Mb] (cкачиваний: 41)
Посмотреть онлайн файл: bb-8-pattern.pdf
Загрузите прикрепленный файл в формате .pdf, затем распечатайте его.
Шаг 28: Приклеивание шаблона
Лучше всего разрезать каждый круг на четыре части.
Шаг 29: Глаза
Используя пенополистирол сделайте два глаза и покрасьте их с черной краской из баллончика.
Шаг 30: Шаблон головы дроида
Сначала приклейте глаза на голову дроида. Используйте супер клей. Далее покрасьте самоклеющуюся бумагу в оранжевый и серый цвета. Используя циркуль сделайте шаблоны, которые необходимы для головы.
Шаг 34: Украшение головы дроида
Поместите серый круг на голове, после чего с помощью маркера сделать несколько черточек на нем.
Далее включайте фантазию
Шаг 31: Загрузить полную PDF инструкциюДа прибудет с тобой Сила!
Источник
Источник: https://ngin.pro/arduino/171-droid-bb-8-na-arduino-uno-s-bluetooth-upravleniem.html
Сделай сам себе ардуину: Часть 1 – ATMega
Поскольку Arduino – это открытая платформа, то каждый встрченый-поперечный может сделать себе Arduino сам.
На сайте Arduino в общем-то даже есть инструкция.
Вот, например, видео в котором показан примерный процесс
Очевидное преимущество – это то, что вы можете уменьшить размеры вашего проекта. Собрав и протестировав прототип на полноформатной платформе, его затем можно перенести на уменьшенную версию и использовать в более миниатюрных корпусах и/или платформах.
Разумеется, в зависимости от реализации, можно отбросить те или иные части Arduino для уменьшения проекта.
Меня это момент заинтересовал и я решил попробовать сделать себе Arduino на макетке. Всё, как и на видео выше, очень просто, с той лишь разницей, что я купил микросхему ATmega328p-pu без bootloader-а.
Одна микросхема ATmega328p-pu, один кристалл на 16 Mhz, два конденсатора на 22 пикофарад и резистор – вот и весь Arduino Uno. Да у него нет USB и ещё много чего вроде самовостанавливающегося предохранителя, но для конечного проекта этого как правило и не важно.
Чтобы собрать такой Arduino нужно вставить 16 МГц кристалл между 9 и 10 ножками. Два конденсатора идут между землёй – ножка 8 и ножками кристалла, например один конденсатор между 8й и 10й, а второй между 8й и 9й.
Сначала нужно залить скетч ArduinoISP в тот Arduino, который будет выступать в качестве программатора.
Затем поменять настройки и выбрать плату в которую будут заливаться скетчи, а в качестве программатора выбрать Arduino as ISP. Залить bootloader используя Arduino Uno, соединив контакты следующим образом (для Arduino Uno/Nano)
D10 -> Reset (Первая нога)D11 (MOSI) -> MOSI (17я нога)D12 (MISO) -> MISO (18я нога)D13 (SCK) -> SCK (19я нога) |
и добавив конденсатор на Arduino Uno, который используется в качестве программатора, между Reset-ом и землёй.
Теперь можно заливать Sketch-и в Arduino у которых поломан или отсутствует USB.
Вот, например, мой проект по мониторингу качества воздуха работает на самодельной Arduino Uno собранной на макетной плате:
Но что если хочется ещё меньше? Первое, что попалось мне в интернете это ATTiny45/85:
Собственно работает неплохо. Например я собрал простенькую схему для управления светодиодами на основе ws2812b:
Так любимая мной шина i2c тоже работает но с некоторыми переделками.
Схема подключения для программирования с использованием Arduino Uno в качестве программатора аналогична подключению к Arduino Nano, достаточно посмотреть распиновку для ATTiny в Googl-е:
Другая альтернатива – это Arduino Nano или ATmega328p-au, которая немного больше ATtiny, но полнофункиональна как ATmega328p-pu на Arduino Uno.
Мне понравился вариант SEM0010, который идёт сразу с большой макетной областью:
Минусом является то, что отсутствует USB для заливки скетчей, однако тут тоже можно использовать другой Arduino в качестве программатора. К тому же тут есть ICSP разъём, что позволяет подключить её без пайки. Вот например простейший пример Blink, залитый через ICSP:
Собственно ICSP это те же самые MOSI/MISO/SCK, так что по прежнему используются pin-ы с 10 по 13й на Arduino, которая выступает в качестве программатора. Кстати если вы откроете стандартный sketch ArduinoISP вы даже найдёте там описание того, как использовать Arduino в качестве программатора.
Ещё один вариант миниатюризации – это Искра Мини от Амперки.
Это та же ATMega328p-au, так что с ней можно работать так же как и с Arduino Nano.
Но что если хочется больше мощности при компактных размерах? Для этого можно воспользоваться реализацией на основе процессоров от ARM, но это уже в следующий раз.
Если вам интересно, есть что добавить или покритиковать – не стесняйтесь оставлять комментарии.
Источник: http://www.ironharvy.com/ru/2016/04/07/do-yourself-an-arduino-part1/