- Преподавателю
- Другое
- Мастер-класс «Возможности проектной деятельности с использованием робототехники на базе ARDUINO»
Мастер-класс «Возможности проектной деятельности с использованием робототехники на базе ARDUINO»
Раздел | Другое |
Класс | - |
Тип | Другие методич. материалы |
Автор | Селезнев П.М. |
Дата | 09.12.2015 |
Формат | docx |
Изображения | Есть |
Мастер-класс «Возможности проектной деятельности с использованием робототехники на базе ARDUINO»
В рамках введения ФГОС всё большую роль играет проектная деятельность. Одним из приоритетных направлений современного образования становится робототехника.
Яркими и увлекательными становятся проекты по робототехнике, объединяющие различные предметные области. Одной из доступных и универсальных платформ является ARDUINO. На её базе можно создавать различные устройства: от игр до систем управления «умного дома».
Один из таких проектов представлен ниже. Называется он «Кнопочные ковбои» - игрушка на реакцию: кто быстрее нажмет кнопку по сигналу.
Список деталей для эксперимента
-
1 плата Arduino Uno
-
1 беспаечная макетная плата
-
2 тактовых кнопки
-
2 резистора номиналом 220 Ом
-
2 светодиода
-
1 пьезопищалка
-
10 проводов «папа-папа»
Принципиальная схема
Схема на макетке
Скетч
p120_button_cowboys.ino
#define BUZZER_PIN 12 // пин с пищалкой
#define PLAYER_COUNT 2 // количество игроков-ковбоев
// вместо перечисления всех пинов по-одному, мы объявляем пару
// списков: один с номерами пинов с кнопками, другой - со
// светодиодами. Списки также называют массивами (англ. array)
int buttonPins[PLAYER_COUNT] = {3, 13};
int ledPins[PLAYER_COUNT] = {9, 11};
void setup()
{
pinMode(BUZZER_PIN, OUTPUT);
for (int player = 0; player < PLAYER_COUNT; ++player) {
// при помощи квадратных скобок получают значение в массиве
// под указанным в них номером. Нумерация начинается с нуля
pinMode(ledPins[player], OUTPUT);
pinMode(buttonPins[player], INPUT_PULLUP);
}
}
void loop()
{
// даём сигнал «пли!», выждав случайное время от 2 до 7 сек
delay(random(2000, 7000));
tone(BUZZER_PIN, 3000, 250); // 3 килогерца, 250 миллисекунд
for (int player = 0;player = (player+1) % PLAYER_COUNT) {
// если игрок номер «player» нажал кнопку...
if (!digitalRead(buttonPins[player])) {
// ...включаем его светодиод и сигнал победы на 1 сек
digitalWrite(ledPins[player], HIGH);
tone(BUZZER_PIN, 4000, 1000);
delay(1000);
digitalWrite(ledPins[player], LOW);
break; // Есть победитель! Выходим (англ. break) из цикла
}
}
}
Этот проект можно развивать дальше: добавить информационное табло о счёте игры; увеличить количество игроков и т.д. В данных проектах проявляется не только инженерная сторона, но и творческая натура обучающихся.