Skip to main content

💡 Проект "Умная лампа" - Базовая функциональность

📋 Паспорт спринта

Параметр Значение
Предмет Интернет вещей (элективный курс)
Класс 9 класс
Спринт № 6 из 36
Тип занятия Проектный спринт - инициация
Продолжительность 90 минут
Формат Agile проектная работа в командах

🎯 Цели спринта (Sprint Goals)

Основная цель:

Начать реализацию проекта “Умная лампа” с базовой функциональностью управления цветом и яркостью

Конкретные результаты спринта:

  • Сформированы проектные команды с распределением ролей
  • Создан MVP (Minimum Viable Product) умной лампы
  • Реализовано управление RGB цветами и яркостью
  • Работает кнопочное управление режимами
  • Настроена проектная документация и Git workflow
  • Проведено первое демо для стейкхолдеров

🔄 Sprint Retrospective предыдущего спринта (0-5 мин)

Проверка готовности к проекту:

1🏗️ АРХИТЕКТУРНАЯ ГОТОВНОСТЬ:
2- "Покажите схемы умных ламп, которые спроектировали дома"
3- "Какие технологии планируете использовать?"
4- "Что было самым сложным в планировании архитектуры?"
5- "Какие вопросы остались открытыми?"

Формирование команд:

  • Анализ домашних проектов для понимания интересов
  • Балансировка команд по техническим навыкам
  • Учет предпочтений по типам задач (hardware/software/design)

Настройка проектного мышления: “Следующие 4 спринта мы работаем как настоящие IoT-компании. Сегодня создаем MVP, который можно показать инвесторам!”


🕐 Sprint Timeline (90 минут)

⚡ SPRINT START (0-10 мин): “Project Kickoff Meeting”

Демонстрация целевого продукта (4 мин):

  1. Показ коммерческих умных ламп:

    • Philips Hue: цена 4000-8000 руб
    • Xiaomi Mi: цена 1500-3000 руб
    • Наша цель: функциональность на 500-1000 руб
  2. Видение проекта:

    • “К концу спринта 9 у нас будет готовый продукт”
    • “Сегодня создаем базовую версию, которая уже впечатляет”

Проектные роли и команды (6 мин):

 1👥 СОСТАВ КОМАНДЫ (3-4 человека):
 2🔧 Product Owner - отвечает за функциональность
 3💻 Tech Lead - архитектура и сложный код  
 4🎨 UX Designer - пользовательский интерфейс
 5🧪 QA Engineer - тестирование и документация
 6
 7📊 ПРИНЦИПЫ ФОРМИРОВАНИЯ:
 8• Баланс технических навыков
 9• Разнообразие интересов и сильных сторон
10• Взаимное дополнение участников

📚 PROJECT BRIEFING (10-25 мин): Техническое задание

Микро-блок 1 (10-15 мин): Требования к MVP

 1🎯 MVP "УМНАЯ ЛАМПА" v1.0:
 2
 3ОБЯЗАТЕЛЬНАЯ ФУНКЦИОНАЛЬНОСТЬ:
 4✅ RGB LED с плавным переходом цветов
 5✅ Регулировка яркости (0-100%)
 6✅ Минимум 5 предустановленных режимов:
 7   • ВЫКЛ
 8   • Теплый белый (расслабление)
 9   • Холодный белый (работа)
10   • Цветной цикл (вечеринка)  
11   • Ночник (тусклый красный)
12
13✅ Управление физическими кнопками
14✅ Сохранение последнего состояния
15✅ Плавные переходы между режимами
16✅ Стабильная работа без зависаний

Микро-блок 2 (15-20 мин): Техническая архитектура

 1🏗️ АРХИТЕКТУРА СИСТЕМЫ:
 2
 3HARDWARE:
 4• Raspberry Pi 4
 5• RGB LED (или 3 отдельных LED)
 6• 2-3 кнопки управления
 7• Резисторы и breadboard
 8• Опционально: корпус/диффузор
 9
10SOFTWARE STACK:
11• Python 3.9+
12• gpiozero (основная библиотека)
13• colorzero (работа с цветами)
14• json (сохранение настроек)
15• threading (параллельные процессы)
16
17АРХИТЕКТУРНЫЕ ПРИНЦИПЫ:
18• Модульность (разделение на классы)
19• Расширяемость (легко добавить функции)
20• Надежность (обработка ошибок)
21• Удобство использования (интуитивный интерфейс)

Микро-блок 3 (20-25 мин): Проектный workflow

 1📅 AGILE WORKFLOW:
 2
 3SPRINT PLANNING (сегодня):
 4• Декомпозиция задач
 5• Оценка сложности
 6• Распределение работы
 7
 8DAILY WORK:
 9• Ежедневные короткие созвоны (в чатах)
10• Обновление прогресса
11• Помощь заблокированным
12
13SPRINT REVIEW:
14• Демонстрация работающего продукта
15• Получение обратной связи
16• Планирование следующего спринта
17
18ИНСТРУМЕНТЫ:
19• Git для версионирования кода
20• Shared документы для планирования
21• Фото/видео для документации процесса

☕ BREAK (25-30 мин): Техническая пауза

🛠️ ПРАКТИЧЕСКИЙ БЛОК (30-75 мин): Разработка MVP

Этап 1: Sprint Planning в командах (30-40 мин)

Декомпозиция задач:

 1📋 SPRINT BACKLOG:
 2
 3USER STORIES:
 41. "Как пользователь, я хочу включать/выключать лампу одной кнопкой"
 52. "Как пользователь, я хочу переключать между цветовыми режимами"  
 63. "Как пользователь, я хочу регулировать яркость"
 74. "Как пользователь, я хочу, чтобы лампа запоминала последний режим"
 85. "Как пользователь, я хочу плавных переходов между состояниями"
 9
10ТЕХНИЧЕСКИЕ ЗАДАЧИ:
11• Настроить GPIO пины и LED
12• Создать класс SmartLamp
13• Реализовать цветовые режимы
14• Добавить управление кнопками
15• Реализовать сохранение состояния
16• Протестировать стабильность работы

Planning Poker для оценки задач:

1🃏 ОЦЕНКА СЛОЖНОСТИ (Story Points):
21 - Очень просто (30 минут)
32 - Просто (1 час)
43 - Средне (2 часа)
55 - Сложно (половина дня)
68 - Очень сложно (целый день)

Этап 2: Настройка среды разработки (40-50 мин)

Подключение оборудования:

 1🔌 СХЕМА ПОДКЛЮЧЕНИЯ RGB ЛАМПЫ:
 2
 3ВАРИАНТ A (RGB LED):
 4• Red pin → GPIO 18 (PWM)
 5• Green pin → GPIO 19 (PWM)  
 6• Blue pin → GPIO 20 (PWM)
 7• Common cathode → GND через резистор
 8
 9ВАРИАНТ B (3 отдельных LED):
10• Red LED → GPIO 18 + резистор 330Ω → GND
11• Green LED → GPIO 19 + резистор 330Ω → GND
12• Blue LED → GPIO 20 + резистор 330Ω → GND
13
14КНОПКИ УПРАВЛЕНИЯ:
15• Mode button → GPIO 2 + pull-up
16• Brightness button → GPIO 3 + pull-up
17• Power button → GPIO 4 + pull-up

Инициализация проекта:

1📁 СТРУКТУРА ПРОЕКТА:
2smart_lamp/
3├── main.py              # Основная программа
4├── lamp_controller.py   # Класс управления лампой
5├── color_modes.py       # Предустановленные режимы
6├── config.json          # Настройки и сохранение состояния
7├── utils.py             # Вспомогательные функции
8└── README.md            # Документация проекта

Этап 3: Разработка базовой функциональности (50-65 мин)

Создание основного класса:

 1# Псевдокод класса SmartLamp
 2class SmartLamp:
 3    def __init__(self):
 4        # Инициализация GPIO пинов
 5        # Загрузка сохраненного состояния
 6        # Настройка кнопок
 7        
 8    def set_color(self, red, green, blue):
 9        # Установка RGB цвета с плавным переходом
10        
11    def set_brightness(self, level):
12        # Установка яркости 0-100%
13        
14    def apply_mode(self, mode_name):
15        # Применение предустановленного режима
16        
17    def save_state(self):
18        # Сохранение текущего состояния
19        
20    def smooth_transition(self, target_color, duration):
21        # Плавный переход между цветами

Реализация цветовых режимов:

1# Псевдокод цветовых режимов
2COLOR_MODES = {
3    'off': {'r': 0, 'g': 0, 'b': 0, 'brightness': 0},
4    'warm_white': {'r': 255, 'g': 147, 'b': 41, 'brightness': 80},
5    'cool_white': {'r': 255, 'g': 255, 'b': 255, 'brightness': 100},
6    'party': {'mode': 'rainbow_cycle', 'speed': 2},
7    'night': {'r': 255, 'g': 0, 'b': 0, 'brightness': 10}
8}

Этап 4: Интеграция и тестирование (65-75 мин)

Сборка MVP:

1🔧 ИНТЕГРАЦИОННЫЕ ТЕСТЫ:
2✅ Все LED загораются правильными цветами
3✅ Кнопки корректно переключают режимы
4✅ Яркость регулируется плавно
5✅ Состояние сохраняется после перезапуска
6✅ Переходы между режимами плавные
7✅ Система не зависает при интенсивном использовании

Подготовка к демо:

  • Отработка сценария презентации
  • Подготовка эффектных режимов
  • Проверка стабильности на 5-минутном тесте

🎯 MVP DEMO (75-85 мин): Первая презентация продукта

Формат: “Pitch инвесторам”

Структура презентации команды (2 мин):

  1. Проблема и решение (30 сек)

    • “Обычные лампы скучные и дорогие в управлении”
    • “Наша лампа дает полный контроль за разумную цену”
  2. Демонстрация функций (60 сек)

    • Включение/выключение
    • Переключение всех режимов
    • Регулировка яркости
    • Показ плавных переходов
  3. Техническая изюминка (30 сек)

    • Самая сложная реализованная функция
    • Что планируется добавить в следующих спринтах

Роли во время демо:

  • Product Owner: Представляет концепцию и рынок
  • Tech Lead: Объясняет техническую реализацию
  • UX Designer: Показывает удобство использования
  • QA Engineer: Демонстрирует надежность

🔄 SPRINT RETRO (85-90 мин): Анализ и планирование

Ретроспектива команд:

 1📊 АНАЛИЗ СПРИНТА:
 2
 3ЧТО ПОЛУЧИЛОСЬ ХОРОШО:
 4• [Каждая команда называет 2-3 успеха]
 5
 6ЧТО МОЖНО УЛУЧШИТЬ:
 7• [Технические и процессные проблемы]
 8
 9ЧТО ИЗУЧИТЬ К СЛЕДУЮЩЕМУ СПРИНТУ:
10• [Новые технологии и навыки]
11
12БЛОКЕРЫ И ЗАВИСИМОСТИ:
13• [Что мешает работе команды]

Preview спринта #7: “Следующий спринт: добавляем датчики окружения - лампа будет реагировать на свет, звук и движение!”


📝 Sprint Backlog (Домашнее задание)

Командная работа между спринтами

User Story: Как проектная команда, мы хотим улучшить наш MVP и подготовиться к добавлению датчиков.

Обязательные задачи для всех команд:

 1🔧 ТЕХНИЧЕСКОЕ СОВЕРШЕНСТВОВАНИЕ:
 2
 31. ОПТИМИЗАЦИЯ КОДА:
 4   • Рефакторинг для лучшей читаемости
 5   • Добавление комментариев к сложным частям
 6   • Оптимизация плавности переходов
 7
 82. РАСШИРЕНИЕ ФУНКЦИОНАЛЬНОСТИ:
 9   • Добавить минимум 2 новых цветовых режима
10   • Реализовать "режим будильника" с плавным включением
11   • Добавить возможность кастомных цветов
12
133. СТАБИЛЬНОСТЬ:
14   • Тестирование работы в течение 1 часа без сбоев
15   • Обработка ошибочных ситуаций
16   • Корректное завершение при Ctrl+C
17
184. ДОКУМЕНТАЦИЯ:
19   • Обновить README с инструкцией по использованию
20   • Документировать API класса SmartLamp
21   • Создать troubleshooting guide

Ролевые задачи:

 1👤 ПО РОЛЯМ В КОМАНДЕ:
 2
 3🔧 PRODUCT OWNER:
 4• Исследовать функции коммерческих умных ламп
 5• Создать список приоритетных улучшений
 6• Подготовить пользовательские сценарии для тестирования
 7
 8💻 TECH LEAD:
 9• Изучить библиотеки для работы с датчиками (следующий спринт)
10• Оптимизировать архитектуру для расширения
11• Исследовать возможности threading и async
12
13🎨 UX DESIGNER:
14• Спроектировать схему корпуса для лампы
15• Продумать эргономику кнопок
16• Создать цветовую палитру для новых режимов
17
18🧪 QA ENGINEER:
19• Создать набор автоматических тестов
20• Документировать найденные баги
21• Подготовить plan тестирования для датчиков

Исследовательские задачи (бонус):

 1🔬 ПОДГОТОВКА К СПРИНТУ #7:
 2
 31. ИЗУЧЕНИЕ ДАТЧИКОВ:
 4   • Принципы работы фоторезистора
 5   • Как подключать PIR датчик движения
 6   • Возможности микрофонного модуля
 7
 82. АЛГОРИТМЫ АДАПТАЦИИ:
 9   • Как лампа должна реагировать на освещенность?
10   • Логика включения по движению
11   • Реакция на уровень шума
12
133. ЭНЕРГОЭФФЕКТИВНОСТЬ:
14   • Как экономить энергию в автономных режимах?
15   • Оптимизация яркости по времени суток

Формат отчета команды:

 1СПРИНТ #6 ОТЧЕТ: MVP "Умная лампа"
 2==================================
 3
 4🏷️ КОМАНДА: [название команды]
 5👥 УЧАСТНИКИ: [список с ролями]
 6📅 ДАТА: [дата завершения]
 7
 8🎯 ДОСТИГНУТЫЕ ЦЕЛИ:
 9✅ [Список реализованных функций]
10✅ [Технические достижения]
11✅ [Решенные проблемы]
12
13📊 МЕТРИКИ MVP:
14• Количество строк кода: ___
15• Количество цветовых режимов: ___
16• Время отклика на кнопку: ___ мс
17• Время работы без сбоев: ___ часов
18
19🔧 ТЕХНИЧЕСКАЯ АРХИТЕКТУРА:
20[Схема компонентов и их взаимодействия]
21
22🎬 ДЕМОНСТРАЦИЯ:
23[Ссылки на видео работы или описание тестов]
24
25🐛 ИЗВЕСТНЫЕ ПРОБЛЕМЫ:
26[Список багов и ограничений текущей версии]
27
28🚀 ПЛАНЫ НА СПРИНТ #7:
29[Что планируете добавить с датчиками]
30
31📚 ИЗУЧЕННЫЕ ТЕХНОЛОГИИ:
32[Новые библиотеки, концепции, подходы]
33
34💡 ИНСАЙТЫ:
35[Самые важные открытия и сложности]

📊 Sprint Metrics (Оценивание)

Критерии оценки проектной работы:

Критерий Отлично (5) Хорошо (4) Удовлетворительно (3)
Функциональность MVP Все заявленные функции работают стабильно Основные функции работают, есть мелкие проблемы Базовая функциональность есть
Качество кода Модульный, читаемый код с комментариями Хорошая структура, понятная логика Работающий код
Командная работа Эффективное сотрудничество, четкие роли Хорошая координация Команда работает вместе
Проектный подход Agile процессы, планирование, документация Понимание проектной работы Базовые элементы планирования
Техническое творчество Оригинальные решения, оптимизации Стандартные решения с улучшениями Следование инструкциям
Презентационные навыки Убедительное демо, четкая структура Хорошая презентация функций Показали основные возможности

Проектные метрики:

  • Velocity: Количество выполненных story points
  • Code Quality: Читаемость, модульность, документированность
  • Stability: Время работы без сбоев
  • User Experience: Интуитивность управления
  • Team Collaboration: Эффективность работы команды

Sprint Badges:

  • 🏆 MVP Master - за создание полнофункционального прототипа
  • 👥 Team Leader - за отличную командную работу
  • 🎨 UX Pioneer - за лучший пользовательский интерфейс
  • 🔧 Code Architect - за качественную архитектуру кода
  • 💡 Innovation Award - за творческие технические решения
  • 🎯 Demo Star - за лучшую презентацию продукта
  • 📋 Project Manager - за отличную организацию проектной работы

🎒 Sprint Resources

Технические требования:

Для каждой команды (3-4 человека):

  • Raspberry Pi 4 (один на команду)
  • RGB LED или 3 отдельных LED (красный, зеленый, синий)
  • 3-4 кнопки для управления
  • Breadboard и соединительные провода
  • Резисторы (330Ω для LED, 10kΩ для кнопок)
  • Опционально: корпус или диффузор для LED

Дополнительные компоненты:

  • Потенциометр для аналогового управления яркостью
  • Дополнительные LED для эффектов
  • Buzzer для звуковых уведомлений

Программное обеспечение:

1📦 PYTHON STACK:
2✅ gpiozero 1.6+ (основная библиотека)
3✅ colorzero (работа с RGB цветами)
4✅ json (сохранение конфигурации)
5✅ threading (параллельные процессы)
6✅ time (управление временем и задержками)

Проектные инструменты:

  • Git для контроля версий (опционально)
  • Shared документы для планирования
  • Мессенджер для команды
  • Камера для документирования процесса

Методические материалы:

  • Шаблон технического задания
  • Гид по Agile процессам для школьников
  • Примеры проектной документации
  • Чек-лист качества MVP
  • Рубрика оценки командной работы

🔧 Sprint Facilitation Tips

Управление проектными командами:

Формирование команд:

1🎯 ПРИНЦИПЫ КОМАНД:
2• Баланс сильных и развивающихся учащихся
3• Разнообразие интересов (hardware/software/design)
4• Учет личных предпочтений и совместимости
5• Ротация лидерства между проектами

Поддержка ролей:

  • Product Owner: Помочь понять бизнес-логику и пользователей
  • Tech Lead: Консультации по архитектуре и сложным задачам
  • UX Designer: Развитие чувства пользовательского опыта
  • QA Engineer: Обучение методам тестирования

Проектный ментoring:

Для команд, которые опережают:

  • Дополнительные технические вызовы
  • Роль менторов для других команд
  • Исследование продвинутых функций

Для команд, которые отстают:

  • Упрощение scope без потери качества
  • Дополнительная техническая поддержка
  • Фокус на одной ключевой функции

Для застрявших команд:

  • Диагностика проблем (технические vs процессные)
  • Пошаговое разблокирование
  • Временное изменение ролей

Поддержание мотивации:

Техники:

  • Регулярные мини-демо (каждые 20 минут)
  • Празднование маленьких побед
  • Сравнение с коммерческими аналогами
  • Визуализация прогресса команд

Работа с неудачами:

  • “Неудача - это данные для улучшения”
  • Фокус на процессе, а не результате
  • Помощь в рефакторинге проблемных решений

🔗 Связь с последующими спринтами

Roadmap проекта “Умная лампа”:

1📅 РАЗВИТИЕ ПРОДУКТА:
2
3Спринт #6 (MVP): Базовое управление цветом и яркостью
45Спринт #7: Датчики окружения (свет, движение, звук)
67Спринт #8: Сетевые возможности (веб-интерфейс, API)
89Спринт #9: Финализация (корпус, документация, презентация)

Техническая эволюция:

1🔧 АРХИТЕКТУРНОЕ РАЗВИТИЕ:
2Простая структура → Модульная архитектура → Микросервисы → Готовый продукт
3Локальное управление → Сенсорные данные → Сетевая интеграция → Умная автоматизация

Навыки команды:

1💪 КОМПЕТЕНЦИИ:
2• Спринт #6: Agile workflow, MVP thinking
3• Спринт #7: Sensor integration, data processing  
4• Спринт #8: Network programming, web technologies
5• Спринт #9: Product finalization, presentation skills

📈 Sprint Success Metrics

Спринт считается успешным, если:

  • ✅ Все команды создали работающий MVP с базовой функциональностью
  • ✅ Команды освоили Agile подход к разработке
  • ✅ Код структурирован и готов к расширению
  • ✅ Демонстрации продуктов впечатляют и мотивируют
  • ✅ Команды готовы к добавлению сложной функциональности

Индикаторы проектной зрелости:

  • Команды самостоятельно планируют и декомпозируют задачи
  • Эффективно распределяют роли и ответственность
  • Фокусируются на пользовательской ценности
  • Итеративно улучшают продукт
  • Документируют процесс и результаты

Техническая готовность:

  • Понимание принципов модульной архитектуры
  • Навыки командной разработки
  • Опыт интеграции hardware и software
  • Готовность к работе с датчиками и сетевыми технологиями

🚀 Этот спринт знаменует переход от индивидуального обучения к командной проектной работе. Учащиеся получают опыт создания реальных продуктов и работы в профессиональных процессах разработки!

Ключевой результат: “Мы можем создавать настоящие IoT-продукты в команде и готовы конкурировать с коммерческими решениями!” 💡👥🚀