Витрина проекта 14 года


25

Логотип является производным от логотипа сообщества Arduino, лицензированного по лицензии Creative Commons CC-SA-BY-NC 3.0

Обновление: объявлены победители

Победители конкурса были объявлены. Пожалуйста, смотрите Meta Post для деталей .

Чтобы отпраздновать 10-летие Arduino , мы с гордостью объявляем о первом событии на Arduino Stack Exchange.

Вытащите свои платы и паяльное оборудование, выкопайте микросхемы и резисторы. Первый конкурс Arduino Stack Exchange не за горами. Мы будем искать интересные проекты, построенные с использованием Arduinos. Конкурс направлен на то, чтобы поделиться, обсудить и дать отзыв о проектах, над которыми вы и другие участники работаете. Посмотреть объявление объявление

Детали:

  • Приз - официальная футболка Stack Exchange
  • Ограничьте две записи на человека. Если предусмотрено более двух, будут рассматриваться только первые два.
  • Клоны будут разрешены.
  • Проекты к рассмотрению будут приниматься до 29 марта 2014 года в 4:00 UTC. Вопрос все еще останется открытым, если кто-то захочет похвастаться своим проектом, который они сделали в День Arduino 2014.

Посетите Мета пост для обсуждения этого события и получения дополнительной информации.

Формат ответа

Вы можете опубликовать до двух проектов (как два отдельных ответа) в качестве конкурсных работ. Все дополнительные записи будут удалены. Рассмотрите следующий шаблон для записей:

Название Проекта

Очень краткое описание

Описание

Какой у тебя проект? Что оно делает? Какую проблему это решает?

дизайн

Что следует включить в этот раздел:

  • Схемы и др. Проектная документация. Fritzing - хороший инструмент для рисования макетов, как показано на логотипе проекта выше.
  • Компоненты, использованные для построения проекта
  • Картинки или видео

Вывод

Последние мысли. Что вы узнали из этого проекта? Что бы вы сделали по-другому, если бы вам пришлось начать все сначала?

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

# Project Title
**Very Brief Description**

# Description
What is your project? What does it do? What problem does it solve?

# Design
Things to include in this section:

- Schematics and other design documentation. [Fritzing][8] is a good tool for drawing breadboard schematics like the one shown in the project logo above.
- Components used to build the project
- Pictures or video

# Conclusion
Final thoughts. What did you learn from doing this project? What would you do differently if you had to start over?

Призы

Есть два приза! Победителем станет участник, получивший максимальное количество голосов (количество голосов не учитывается), и получит футболку Stack Exchange *! Там будет что-то для занявшего второе место также. Участник, занявший второе место, будет определен по усмотрению организаторов мероприятия.

* Могут применяться определенные ограничения. Международная доставка может занять несколько недель.

Где я могу представить свои проекты?

Опубликуйте свои проекты как ответы на этот пост.


Что именно является квалификацией для того, чтобы быть "Arduino" проектом? Я использую optiboot во многих местах, но я не вижу в этом «arduino», так как это просто проект, который использует набор инструментов arduino. Если не считать использование платы в форм-факторе arduino, я не вижу четкого способа разграничения между «arduino» и «non-arduino», если только вы явно не потребуете, чтобы проект был скомпилирован с использованием текстового редактора arduino, и это, вероятно, дисквалифицирует все приличные проекты, так как редактор Arduino ужасен, и все хорошие программисты давно перестали его использовать.
Коннор Вольф

@FakeName давайте перенесем это обсуждение в Meta Post
sachleen

Ответы:


14

Stateful Questbox

GPS ящик приведенного что заставляет вас посетить несколько мест до открытия

Описание

Он похож на questbox , но хранит небольшое количество информации в EEPROM , поэтому вам нужно посетить два или три разных места, прежде чем он откроется.

дизайн

Необходимое оборудование:

  • Arduino Uno
  • Обратный Geocache версии 2 (или протощита)
  • GPS-модуль GlobalSat EM-406A
  • 2 × 8 синий ЖК-дисплей с разъемом и кабелем
  • Hitec HS-55 серводвигатель
  • 4-40 толкатель и штифт для защелки (в некоторых версиях вместо этого предусмотрен Z-образный стержень)
  • 2 AA батарейный отсек
  • Металлическая кнопка со встроенным синим светодиодом и 4-контактным кабелем
  • Pololu низковольтный выключатель
  • Pololu 5 V буст-регулятор
  • Разъем JST для модуля GPS EM-406A
  • Прямые и прямоугольные штыревые контакты для разъемов дисплея, сервопривода и кнопки
  • Два резистора для ограничения тока и регулировки контрастности дисплея
  • Два маленьких конденсатора для сглаживания мощности
  • конденсатор большего размера для контрастной схемы дисплея

Общая стоимость оборудования: 137 $ + доставка

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

  • Хорошая коробка
  • Эпоксидный клей, дерево для покрытия деталей, инструменты

Вы можете найти инструкции по сборке на странице солнечных часов (вы можете купить большинство материалов из них)

Я буду загружать код состояния и публиковать здесь ссылку, к сожалению, я не получу все необходимое оборудование вовремя, так что это всего лишь идея :)

Код написан до сих пор :

Вдохновение:Оригинальный квестбокс

Вывод

Научившись интегрировать множество компонентов и библиотек вместе, мне придется немного поехать, чтобы проверить это :)

Бюджет можно немного сократить, немного изменив концепцию:

  • Измените GPS с помощью цифровой клавиатуры: «игрок» должен угадать / получить код, а не путешествовать в определенное место
  • Переключатель и регулятор Polulu можно заменить на реле с защелкой

11

Экономия энергии для рассеянного пользователя ПК

Это устройство включает / выключает свет на рабочем столе, когда он темный (синхронно) и синхронизируется с заставкой моего ПК.

Описание

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

дизайн

Поскольку мощность микроконтроллеров / Arduino требует лишь немного дополнительного оборудования, чтобы создать полезный проект. То же самое касается этого проекта, где аппаратное обеспечение немного больше, чем:

  • Ардуино
  • Пара винтовых экранов для подключения внешних компонентов
  • LDR последовательно с резистором для измерения окружающего света
  • Релейная плата для включения и выключения питания от сети
  • Конденсатор 10 мкФ от GND до RST для предотвращения сброса и случайного программирования платы.

схематический

смоделировать эту схему - схема, созданная с использованием CircuitLab

Вывод

Я узнал, как связать ПК через последовательный порт USB с Arduino и как читать текущее состояние заставки на моем ПК. Если бы я начал все сначала, я бы использовал гораздо меньший контроллер, поскольку мне действительно нужен только один цифровой выход и один аналоговый вход. Вероятно, основать проект на V-USB . Однако Arduino отлично подходит для быстрого и простого подтверждения концепции (PoC). (PoC был на моем столе уже по крайней мере два года).


Было бы здорово увидеть фотографии вашей финальной доски и настройки. Каково время отклика? Мгновенное? Через минуту?
сахлин

@sachleen Демон на моем ПК, который опрашивает заставку, запускается каждые 30 секунд, когда заставка выключена (когда я работаю на моем ПК), и каждые 5 секунд, когда он включен. Я могу увеличить эту скорость, но это влияет на нагрузку на процессор и при таком энергопотреблении ... К нему также подключен конденсатор для предотвращения сброса и случайного программирования Arduino.
Джиппи

@sachleen, так как сумерки медленно падают со временем, эти 30 секунд на самом деле не проблема. Никто не замечает разницу в темноте за 30 секунд. В течение 5 секунд после перемещения мыши или удара по клавиатуре, когда я возвращаюсь, включается свет. Существует небольшой гистерезис между тем, что считается темным и светлым, чтобы не допустить включения / выключения света каждые столько секунд, когда он довольно медленно становится достаточно темным, чтобы активироваться.
Джиппи

Вы должны изменить его, чтобы уменьшить его на 50% в течение 10-15 секунд, чтобы вы не находились в полной темноте, и это дает вам небольшое «предупреждение»
Anonymous Penguin

@AnnonomusPerson Я переключаю сторону 240 В переменного тока SMPS, который является специфицированным входом 100-250 В переменного тока. Боюсь, этого не произойдет, потому что я не хочу переключаться на вторую сторону. Хорошая идея, хотя, возможно я могу добавить умный маленький белый светодиод как-то.
Джиппи

8

Я думаю, что этот вид едва вписывается в правила, но это достаточно интересно, что я думаю, что я все равно опубликую это.

Высокоточный генератор GPS-синхронизированных меток времени для сбора данных.

Это довольно интересный проект, который предназначен для обеспечения простого способа синхронизации нескольких независимых систем сбора данных.

По сути, я работаю в исследовательской лаборатории, и у нас часто есть инструменты, которые имеют несколько независимых систем сбора данных, которые могут быть физически разделены на целых 50 футов. Нам нужно уметь соотносить время, в которое были взяты пробы из каждой системы, что может быть затруднительно, если вы хотите разрешить время выборки с большой степенью точности. Используя что-то вроде системы сбора данных USB, просто задержка USB может вводить несколько сотен миллисекунд неизвестной задержки, которая может варьироваться от приобретения к приобретению.

Предыдущее решение представляло собой 24-разрядный параллельный счетчик, который был просто подключен повсюду, требовал огромного жгута проводов, и это было своего рода болью в прикладе.

В этой системе используется специальный модуль GPS синхронизации, который может синтезировать произвольные тактовые частоты, которые синхронизированы по фазе и частоте с атомными часами в спутниках GPS.

MCU отвечает за связывание сообщений данных GPS (мне пришлось значительно расширить и оптимизировать существующий синтаксический анализатор протокола для данных GPS). GPS настроен на использование проприетарного двоичного протокола, и все это анализируется парсером, который я написал.

Проект прошел ряд ревизий (на фото ниже).

дизайн

Ревизия! введите описание изображения здесь
Ред. 1: никогда не работал, потому что я первоначально надеялся использовать программное обеспечение dPLL для гораздо менее дорогого GPS, чтобы синтезировать высокочастотные тактовые импульсы только с выходом 1 PPS. Возможно, можно заставить это работать, но временные вложения просто сделали его не стоящим. (а я слишком хреновый кодер)

Используется параллаксный винт MCU. Отсутствие достойных скомпилированных языков также было серьезной проблемой.


введите описание изображения здесь
Ред. 2: Перешел на ATmega2560. Работал, имел много прикольных дизайнерских аспектов, унаследованных от первой версии. Прежде всего, продолжающееся использование сдвиговых регистров для 32-битного выхода, несмотря на более чем достаточное количество операций ввода-вывода на ATmega2560.

Первая плата, на которой работал Optiboot, и которая была полностью запрограммирована с использованием стандартного набора инструментов Arduino, до того, как меня это раздражало, и я начал модифицировать набор инструментов, чтобы лучше соответствовать моим целям.


введите описание изображения здесь
Рев 3: тоже сработало. Заземление проводки связано с тем, что эта плата имеет встроенный USB-концентратор для уменьшения количества необходимых USB-портов (для интерфейса FTDI требуется 1 USB, а у GPS также есть USB-интерфейс). К сожалению, GPS не будет правильно перечислять, хотя устройство FTDI работало нормально, и я использовал этот концентратор в другом месте без проблем. Weird.

У меня нет подходящего USB-отладчика, поэтому я просто полностью отключил USB-концентратор, а не пытался решить проблему. USB GPS не действительно используется много вне множества-вверх в любом случае.


введите описание изображения здесь
Версия 4: Полуфинал версии ATmega2560. Добавлен жидкокристаллический индикатор состояния GPS, со светодиодами и т. Д. Кроме того, лучшие следы для возможных суперконденсаторов для поддержания статуса GPS, когда не включен.

Это последняя версия Optiboot.

MStimeявляется MSTOWили миллисекундным временем недели, которое является именем значения данных GPS, которое выводится на временной отметке out. Это 32-битная переменная, которая увеличивается один раз в миллисекунду и переворачивается каждую неделю. Это более неясная часть стандарта GPS.

ITOWявляется другим значением, связанным с GPS, и является значением, которое соответствует сигналу 1PPS. Корреляция между ними не отображается должным образом на ЖК-дисплее, так как у меня нет времени ЦП для обновления ЖК-дисплея со скоростью, которую я хотел бы. Это было на самом деле одной из главных вещей, которые улучшились при обновлении до устройств Xmega.


введите описание изображения здесь
Версия 5: полная архитектура переключения. Теперь используется процессор ATxmega128A1U. Больше не совсем Arduino, но возможность иметь несколько уровней прерываний в серии процессоров xmega позволила мне значительно улучшить структуру кода.

Два жгута проводов от меня делают некоторые эксперименты, плата отлично работала и без них.

Жду с нетерпением:

Ред 6 введите описание изображения здесь
Добавьте возможность использования ЖК-дисплеев разных размеров, дополнительную защиту от электростатического разряда при подключении антенны GPS (это было проблемой), возможность использовать батарею CR2032 для поддержания часов GPS вместо суперконденсаторов.

Также значительно улучшена маркировка светодиодов отладки и состояния.

введите описание изображения здесь
И бонус Nyan-Cat!

введите описание изображения здесь

(Эти доски уже готовы к изготовлению. Когда я их получу, я добавлю фотографии настоящей доски.)


Я провел длительное тестирование между двумя платами ATmega2560, и в течение 72 часов среднеквадратичная ошибка времени между двумя устройствами составляла ~ 20 мкс. Это было с двумя совершенно независимыми антеннами тоже. Моя цель разработки была <1 мс, поэтому я чертовски доволен этим.

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


Файлы дизайна:
https://fake-server.no-ip.org/svn/FPGAStuff/DAQ%20systems/
(из серии каталогов «GPS Timestamp»).
(Примечание: файлы взяты из Altium Designer. Это не файлы Eagle).

Исходный код:
https://fake-server.no-ip.org/svn/Programming/Code/AVR/
Опять же, в серии каталогов "gpsTimeStamp".

Извините за дерьмовые картинки на телефон.


Не могли бы вы уменьшить количество фотографий? 3-4 должно быть достаточно, чтобы донести идею. Загрузка на медленных соединениях занимает довольно много времени.
asheeshr

7
@AsheeshR - я категорически не согласен. Я мог бы бросить одну из картинок с последнего оборота, но я думаю, что прогресс в разработке системы весьма полезен.
Коннор Вольф

1
Веселитесь с шелкографией?
TheDoctor

Оооо, 3D просмотр PCB. Ой, это Altium и довольно дорогой? : $ Довольно забавно видеть эти проекты или видеть проекты, которые делают другие ...
Пол

7

Sonic Ray Gun

Два проекта от детей

Я работаю с парой детей с домашним образованием, и нам очень весело с Arduino. Их первый проект был фальшивой бомбой, как вы видите в фильмах, с таймером обратного отсчета на ЖК-дисплее и классическим "Вы перерезали красный или синий провод?" проблема типа

Второй проект начался с показа им примера с тон-мелодии и небольшого динамика. Быстро выяснилось, что если повернуть частоту до 15 кГц, то это довольно раздражает подростков. Час спустя они улучшили дизайн с помощью чашки, рулона туалетной бумаги и переключателя, сделанного из скрепки для пушки с направленным звуковым лучом.

К сожалению нет фотографий.

Вывод

Не оставляйте детей без присмотра с Arduino.


3
Можете ли вы описать это немного больше (код, фриттинг и т. Д.)?
Анонимный Пингвин

7

(подделка) Linux на Arduino

Недавно я приобрел небольшой композитный ЖК-экран, на котором быстро начал играть, используя библиотеку Arduino TVout. Что было дальше? Linux!

Описание

Играя с моим экраном телевизора и библиотекой TVout, я обнаружил, что для телевизора есть готовый обработчик терминала. Вскоре я начал экспериментировать с использованием его в качестве телевизионного терминала, подключенного к клавиатуре PS / 2. Были некоторые проблемы с библиотекой PS / 2, которую я использовал, поэтому я перевел ее, чтобы использовать библиотеку USB на моем Mega ADK вместе с клавиатурой USB. Это сработало намного лучше. Теперь на хранение.

Мой щит SD-карты не совместим с моим Mega, поэтому я случайно подключил его к SPI на конце платы. Я написал обработку команд, чтобы выполнить несколько задач, таких как перечисление файлов и определение размера диска, свободного места и т. Д. Вся сборка еще не закончена, но я доволен достигнутым прогрессом.

Код будет перемещен в Github, следите за комментариями.

дизайн

уменьшенное изображение

скрестить экран

проблемы

У меня было много проблем с конкатенацией введенных символов в строку, в которой хранится текущая команда, потому что я не произнесла правильно. Когда я понял это, мне также нужно было решить проблему, когда некоторые клавиши выводили на экран случайный мусор. Это было вызвано чтением памяти перед определениями букв, так что некоторые ifпрояснили это.

Вывод

Я очень доволен кодом. Как только я добавлю еще несколько утилит, я добавлю их на Github, так что следите за комментариями. В целом, это был очень веселый проект. Я узнал, как использовать Stino в процессе.


Это звучит интересно. Я бы очень хотел увидеть ваш код в ближайшее время!
asheeshr


ЖК стоил дорого?
Анонимный пингвин,


@AnnonomusPerson Я разобрал его, потому что он был слишком громоздким
TheDoctor

5

ShiftLCD

AVR-совместимая плата на базе AVR, монтируемая на задней панели ЖК-экрана размером от 8x1 до 20x4 символов.

Описание

Я только разработал эту плату и пользовательскую библиотеку, чтобы упростить ее использование и ЖК-дисплей. Хотя они довольно просты в использовании на данный момент. Он сокращает количество используемых выходных контактов с 6 до 3. Он также имеет возможность расширить ввод / вывод, добавив больше регистров сдвига к тому, который управляет дисплеем. Используемый процессор представляет собой ATTiny45 или ATTiny85, который после использования сдвигового регистра имеет цифровые выводы 1 (ШИМ) и 4 и аналоговый вывод 2 (такой же, как цифровой вывод 4).

дизайн

схема ОШ Парк рендер Распаянная доска

проблемы

Одна непредвиденная проблема, с которой я столкнулся, заключалась в том, что, когда я начал, я использовал цифровые выводы 0-2 для запуска регистра сдвига, это также были контакты программирования (MISO, MOSI, SCK). Таким образом, каждый раз, когда я перепрограммировал устройство, на ЖК-дисплей отправлялась целая куча бессмысленных сообщений, где необходимо было отключить питание для сброса дисплея. Я решил эту проблему, переместив штырь защелки регистров сдвига в цифровой штырь 3, который не является программирующим штифтом. Решение этой проблемы также решило еще одну проблему для меня, потому что, когда я переместил защелку, он открыл цифровой вывод 1, в котором использовалось ШИМ, что позволило сделать больше вещей с платой.

Вывод

Конечно, это может быть не самый крутой продукт или идея, он все еще имеет свое применение. Отвечая на вопрос прямо: «Что вы узнали из этого проекта?» Я научился проектировать от начала до конца плату для печатных плат. Если бы я мог сделать что-то по-другому, я бы использовал детали для поверхностного монтажа вместо сквозных отверстий, тогда опять же это всего лишь прототип, одноразовая плата.


Как вы запрограммировали ATtiny? Какой код был задействован? IDE? (Пожалуйста, просто комментируйте, не редактируйте свой пост. )
Anonymous Penguin

@AnnonomusPerson Похоже, что человек, который опубликовал то, что я делал до этого, удалил свой комментарий, так что именно здесь я получил все необходимое (файлы Arduino IDE и схему программирования) для программирования ATTiny. highlowtech.org/?p=1695
Джесси

Зачем использовать поверхностный монтаж? Паять сквозную дыру дома намного проще? Я думаю, что SMD предназначен только для производства, или есть что-то еще?
Пол

5

Кнопочный робот.

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

Описание

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

К концу года мой робот работал только частично. Каждая часть робота в какой-то момент работала, но между жареным Arduino, жареными машинистами, ужасной организацией кода и тем, что я единственный человек в моей команде, который работал над роботом в общей сложности более пяти часов, я не мог заставить это работать полностью.

Я не трогал своего робота почти год, поэтому я знаю, что если бы я хотел, чтобы он снова заработал, мне пришлось бы перепрограммировать бота и переписать код. Я могу решить сделать это когда-нибудь, но сейчас я собираюсь работать над менее амбициозными проектами.

дизайн

Общий дизайн

введите описание изображения здесь

Информация / поток электроэнергии

+--------------------------+   +-------------------------------------------------+
|         Computer         |   |      Robot                                      |
|--------------------------|   |-------------------------------------------------|
|                          |   |                                                 |
| Keyboard +--> Processing |   |  Button +-------------+        Motor    Motor   |
|                          |   |                       |          ^       ^      |
|                    +     |   |                       |          |       |      |
|                    |     |   |  Batteries +-----+    |          +       +      |
|                    v     |   |                  |    |   +----> Motor Driver   |
|                          |   |                  v    v   +                     |
|               Bluetooth +-----> Bluetooth +--> Arduino Uno +--> Motor driver   |
|                          |   |                  +    +  +       +       +      |
+--------------------------+   |                  |    |  |       |       |      |
                               |                  |    |  |       v       v      |
                               |                  |    |  |    Motor     Motor   |
                               |                  |    |  |                      |
                               |                  |    |  |                      |
                               |                  |    |  +-----> Laser          |
                               |  +---------------|----|----+                    |
                               |  |       Arm     |    |    |                    |
                               |  |---------------|----|----|                    |
                               |  |     +---------+    v    |                    |
                               |  |     |      Motor Driver |                    |
                               |  |     v              +    |                    |
                               |  |  Servo             |    |                    |
                               |  |                    v    |                    |
                               |  |                  Motor  |                    |
                               |  +-------------------------+                    |
                               +-------------------------------------------------+

Составные части

Код

Я не очень хорошо организовал свой код, поэтому надеюсь, что это правильный код.

Больше картинок

введите описание изображения здесь введите описание изображения здесь

Ужасное видео медленной, безрукой, без кнопки, без лазера и без Bluetooth ранней версии робота.

https://www.youtube.com/watch?v=Q7MvE7-Xb0E

Вывод

Я действительно хорош в жарке электроники.

Это был мой первый опыт в реальном механическом цехе. Я использовал фрезерный станок с ЧПУ, ручной фрезерный станок, токарный станок и ленточную пилу. Если бы я снова начал проект, подобный этому, я бы сделал намного лучшую документацию, чтобы понять, какого черта я делал год спустя.


1
Хорошо сделано! Ничто так не ценно, как опыт, и важно то, что теперь вы знаете, как лучше выполнять свою работу в следующий раз.
Джиппи

5

4-значный светодиодный дисплей для Arduino

Небольшая плата с 4 7-сегментными светодиодными цифрами, управляемая через 3 контакта.

Описание

Когда я начал работать с Arduino, мне нужен был способ отображения значений, собранных различными датчиками, с которыми я экспериментировал, но я не хотел выводить эти значения Serialна ПК.

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

Эта плата, наряду с ее небольшой библиотекой, в настоящее время позволяет отображать 4-значные числа и не генерирует никакого тока Arduino во время отображения (ток поступает только при сообщении плате нового значения для отображения с этого момента).

табло со счетчиком

дизайн

Конструкция довольно проста, так как я решил использовать чип MAX-7219 для управления своим светодиодным дисплеем (у меня их было несколько под рукой).

Благодаря этому чипу схема была намного проще, но было важно правильно понять, как ее использовать; К счастью, его техническое описание было довольно ясно.

Оригинальный дизайн был выполнен на макете и использовал 4 одинарных светодиода из 7-сегментных цифр ; но это потребовало слишком много проводки на мой вкус (нужно соединять сегменты группами по 4). Кроме того, во время моего самого первого эксперимента с 7-сегментными светодиодными цифрами я прожарил один: у него было 2 заземляющих контакта, но я подключил только один к GND вместо обоих :-(

Затем я решил использовать 4-сегментный дисплей с общим катодом , с сегментными анодами, уже подключенными к 4 цифрам: это всего 4 + 8 контактов!

Схема платы

Во время тестов я нашел полезную библиотеку Arduino для работы с MAX-7219, которую я решил использовать повторно. Я построил свою собственную библиотеку с очень простым API.

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

Я искал и нашел простой конструктор Stripboard для ПК, который использовал для проектирования своей платы.

Первый дизайн картона не был оптимизирован с точки зрения пространства, и я решил не реализовывать его:

КОНСТРУКЦИЯ № 1

Затем я проверил дизайн, чтобы оптимизировать стоимость и размер (всего один маленький 50x75 мм картон); это было легко с дизайнером картона, который я нашел раньше:

КОНСТРУКЦИЯ № 2

Когда плата была готова, я решил проверить ее с помощью Arduino UNO и ультразвукового датчика:

КАРТИНА

Казалось, что это работает, за исключением того, что у меня часто были странные, непоследовательные отображаемые значения; после исследования я обнаружил, что это связано с шумом, вызванным платой дисплея , шумом, который мешал датчику. Мне просто нужно было добавить развязывающую крышку как можно ближе к текущим контактам питания датчика, и это работало отлично (обратите внимание, что на плате дисплея уже были развязывающие крышки для чипа MAX-7219).

Список деталей:

  • 1 х LN5461AS: 7-сегментный блок с общим катодом из 4 цифр
  • 1 х MAX7219: мультиплексный светодиодный драйвер
  • 1 х поддержка IC (24 контакта)
  • 1 х 22К резистор
  • 1 х 10 мкФ электролитическая крышка
  • 1 х 100 нФ крышка
  • 1 х штекер (5 контактов)
  • 1 х 90x50 мм картон
  • провода, припой ...

Вывод

Спустя 30 лет после моих последних экспериментов с электроникой, я мог получить вирус снова с Arduino и с этим самым первым проектом, который, хотя и был довольно простым, научил меня нескольким вещам:

  • интерпретировать таблицы данных для используемых компонентов (MAX7219 и светодиодный дисплей)
  • научиться использовать и быть эффективным с дизайном картона
  • все контакты, помеченные GND или V +, должны быть подключены: вы не выбираете тот, который хотите подключить!
  • если есть что-то странное, когда вы тестируете свою схему, и вы не понимаете, почему: не ищите, это должен быть шум, попробуйте добавить разъединяющий колпачок, и это должно быть сделано!
  • научиться создавать библиотеку Arduino (не просто набросок)

Если бы я сегодня снова начал этот проект, я бы:

  • попытаться оптимизировать дизайн макета (возможно, я смогу еще немного уменьшить размер)
  • замените прямые разъемы на плате прямоугольными, чтобы провода, соединяющие Arduino, были более выступающими перед платой

5

Цифровые настенные часы с радиочастотным (RF) дистанционным управлением

Большие (40x30см / 16x12 ") 7-сегментные настенные часы с дистанционным управлением R / F.

введите описание изображения здесь

Описание

В этом проекте представлены 7-сегментные цифровые настенные часы с большим (40x30 см / 16x12 ") дисплеем и дистанционным управлением R / F. Они имеют следующие особенности:

  • Он показывает текущее время и дату (часы, минуты, секунды, день, месяц, год) в двух форматах (часы или дата большими цифрами).
  • Показывает текущую температуру в ° C.
  • Имеет пользовательский обратный отсчет, который будет звучать (раздражающий) сигнал тревоги, когда он достигает нуля.
  • Все функции управляются дистанционно с помощью радиочастотного пульта управления.
  • Имеет небольшую клавиатуру курсора для управления своими функциями (когда пульт дистанционного управления недоступен).
  • Регулировка яркости независима для каждой строки дисплея.
  • Он продолжает точно сохранять текущее время даже в выключенном состоянии благодаря микросхеме часов реального времени, питаемой от батарейки типа «таблетка».

дизайн

Ключевыми аспектами этого проекта были следующие:

  • Он полностью основан на микроконтроллере Arduino и AVR ATmega328.
  • Он сохраняет текущее время даже в выключенном состоянии благодаря RTC DR1307, питаемому от батарейки типа «таблетка».
  • Цифры никогда не мультиплексируются. Вместо этого каждая цифра имеет специальную 8-разрядную ИС регистра последовательного сдвига (74HC595), которая поддерживает выбранные сегменты независимо от того, что отображается на других цифрах и что делает MCU.
  • Сегменты питаются от массивов Дарлингтона из-за потребления тока, которое превышает потребление MCU или регистров сдвига.
  • Часы управляются с клавиатуры на плате контроллера, а также с пульта дистанционного управления. Радиосвязь осуществляется парой недорогих радиоприемников и передатчиков 434 МГц.
  • Проект имеет модульную конструкцию, в которой один контроллер может управлять до 12 однозначными числами. Контроллер также принимает расширяемые модули для неограниченного количества цифр (максимальное количество цифр ограничено временной задержкой из-за последовательного соединения сдвиговых регистров и затухания их тактового сигнала).
  • Конструкция поддерживает ряд готовых 7-сегментных цифр дисплея или пользовательских цифр, сделанных со светодиодами.

Ниже приведены схемы для контроллера и одной из 7-сегментных плат:

введите описание изображения здесь введите описание изображения здесь

Вот несколько фотографий плат, которые я спроектировал, запечатлел и собрал, а также пульта дистанционного управления:

введите описание изображения здесь введите описание изображения здесь введите описание изображения здесь

И, наконец, вот фотография другой версии часов. В этом я делаю 7-сегментные дисплеи самостоятельно, используя прямоугольные светодиоды и дискретные компоненты.

введите описание изображения здесь

Вывод

Этот проект занял у меня много времени, усилий и обучения, чтобы дойти до этой стадии (как я уже понял, он никогда не был закончен), но это было очень весело. Несколько вещей, которые я узнал:

  1. Изучите все библиотеки, которые вы собираетесь использовать в своем проекте, прежде чем назначать выводы GPIO в своем контроллере, чтобы избежать потенциальных конфликтов. Мне не повезло использовать тот же PWM-вывод для управления яркостью, который связан с таймером VirtualWire, поэтому мне пришлось пропатчить плату, чтобы получить яркость и радиочастотную работу одновременно.

  2. Обжим KL molex и modu разъемы занимает много времени!

  3. Лазерная резка - это будущее. Они добавляют много качества устройству, даже если вы неуклюжи.


Как вы делали печатные платы (травление и сверление)?
сахлин

1
@sachleen Я использую метод переноса тонера с глажкой. Я печатаю дизайн платы в фотобумагу для струйной печати на лазерном принтере, затем гладю ее на доске, затем гравирую плату в FeCl. Требуется некоторое время, чтобы найти правильные настройки бумаги и принтера. Для сверления я использую сверло dremel , но я использую только фенольные плиты и высокоскоростные сверла. Плиты из стекловолокна намного сложнее для сверл, обычно для них требуются более дорогие и хрупкие твердосплавные сверла.
Рикардо

Где вы взяли эти светодиоды? У меня есть такие, которые выглядят именно так!
Парень со шляпой

1
@TheGuywithTheHat Зеленые прямоугольные? Это довольно распространено здесь, в Бразилии. Я купил их в одном из наших онлайн-магазинов электронных компонентов. Вот несколько ссылок: на DigiKey , на eBay . Вот где я их получил .
Рикардо

5

ТВ Антенна Ротатор

ИК дистанционное управление вращением антенны

Не можете сойти с дивана, чтобы отрегулировать направление телевизионной антенны? И даже если вы делаете, иногда ваша близость к антенне меняет прием. Было бы неплохо иметь возможность отрегулировать антенну с дивана. Использование пульта от телевизора.

Составные части

Arduino Uno, ИК-приемник, Шаговый двигатель с платой водителя, 1-дюймовый подшипник ID, Рукоятка Swiffer, пластиковая коробка

за телевизором Arduino ж / ИК-приемник спереди Закройте коробку и подшипник Ручка Swiffer Эти две кнопки ничего не делают на телевизоре в любом случае

Описание

Используйте старую ручку швабры Swiffer в качестве опоры антенны. Получил 1-дюймовый подшипник из моего любимого интернет-магазина, в который ручка швабры просто втискивается и останавливается. Я просверлил отверстие в пластиковой коробке, достаточно большое, чтобы ручка швабры могла пройти, но не для подшипника. Я высверлил прямоугольник Отверстие в конце рукоятки швабры, чтобы соответствовать валу шагового двигателя 28BYJ-48, и воткнуло приспособление в коробку, как показано. ,

Использовал библиотеку stepper.h, чтобы вращать двигатель от Uno.

Я разобрал неиспользуемый DVD-плеер и спас от него ИК-приемник. Вы можете разобрать любой бытовой прибор с пультом дистанционного управления и использовать ИК-приемник, он будет работать. ИК-приемник использует библиотеку IRremote.h. Используя последовательный монитор, я распечатал шестнадцатеричный код, который соответствует двум кнопкам на пульте телевизора, которые я хочу использовать для управления двигателем антенны. Один для вращения влево, один для правой.

Для экономии энергии используйте функцию small_stepper.motorOff (), чтобы отключать катушки после каждого движения.

Вывод

Это был веселый проект, который также был полезен моей жене. Я не реализовывал никакого ускорения / замедления в движении, что было бы неплохо, особенно если бы антенна имела большую вращательную инерцию.

Редактировать: извините за то, что изображение сбоку! Это правильно на моем компьютере, я понятия не имею, почему он в сети.


5

Лампа для детонации

Лампа, которая включается / выключается при постукивании по столу. В настоящее время в альфа-фазе, все еще прототипирование, но я думаю, что это самый полезный проект Arduino из существующих. Включен генератор банальных шуток ... из ранее записанных шуток. Примечание: я знаю, что не могу победить в правилах, но нет никаких правил для участия ... Я тоже могу показать свой проект.

Описание

До сих пор я в значительной степени объяснил большую часть этого. Вы стучите, и свет включается и выключается. Я в настоящее время на макете. Я использую пьезоэлемент, чтобы обнаружить удары с вибрациями. Параллельно у меня есть резистор 1 мОм для защиты моего SMD Arduino Uno.

Я подумал об этом дизайне после того, как чуть не сбил (хаха, детка) мою лампу со стола, когда искал маленький тумблер. Я не совсем ... хорошо ловкий . Приятно просто постучать по столу и затем включить свет. Я также использую Power Switch Tail SSR (твердотельное реле: без шума), чтобы управлять им с помощью двух выводов моего Arduino.

дизайн

Фото Изображение взято с веб-камеры, висящей над монитором ... еек!

Fritzing Diagram

Компоненты, использованные для построения проекта:

  • Пьезоэлемент (3 доллара США)
  • Мегаомный резистор (0,30 доллара США каждый в 5pk)
  • Arduino Uno SMD (под рукой)
  • Power Switch Tail SSR (~ 25,00 долл. США с корабля, но имел в наличии, поэтому без затрат)
  • Макет и перемычки / дополнительный провод (~ 5,00 долл. США, но были на руках, поэтому без затрат)

Стоимость для меня: $ 3,30 USD + $ 0,02 USD (налог) == Только $ 3,32!

Вывод

В целом, это простой проект, но на самом деле он полезен. Это борьба с моими проектами Arduino: могу ли я создать что-то, что я действительно использовал бы ? Мигание светодиода точно не поможет вам в жизни. Это весело, но это все.

Самая большая проблема, с которой я столкнулся (и вроде как все еще есть), это не получение достаточно сильного сигнала. Я многое узнал об электрических сигналах: я выяснил, как найти «пик» импульса, а не просто прочитать пин-код с произвольным интервалом и пропустить более высокое напряжение. Я бы попробовал получить более чувствительный пьезоэлемент. Более крупный поможет. Я пытаюсь изменить свою схему, чтобы не ограничивать напряжение, а защитить Arduino. Какой-то предохранитель поможет в этой ситуации. Я также играю со значениями резисторов. Было бы очень полезно иметь возможность для этого, но я не думаю ...: P

После того, как я усовершенствую схему, я собираюсь установить ее на печатную плату с ATtiny ... и, возможно, даже разработать некоторые комплекты. Я постараюсь опубликовать свои выводы о том, как сделать элемент более чувствительным, не рискуя при этом моей доской.

Обновление статуса: я был очень занят в последнее время. Я собираюсь заказать стабилитрон (4,3 В) здесь через неделю или две, чтобы удалить резистор мегаом, чтобы предотвратить разбавление сигнала при защите микросхемы. Я могу построить простой усилитель напряжения здесь, если необходимо (вместе с стабилитроном), чтобы попытаться сделать датчик более чувствительным.


1
Переход на что-то с дифференциальным и усиленным АЦП поможет вам получить больше чувствительности от пьезо. И возможно использование TVS вместо резистора.
Игнасио Васкес-Абрамс

Используете ли вы АЦП для обнаружения или прерывания? Любая идея о том, какой большой пик напряжения вы хотите обнаружить?
Джиппи

@jipie АЦП для обнаружения, у меня есть довольно эффективный код: он зацикливается и находит пик каждые 250 мс. Никаких задержек. Для пика IIRC это около 14/1024 (слишком ленив, чтобы конвертировать это сейчас). Я также должен посмотреть на вывод AREF, но могут быть проблемы с падением, оно может составить ~ 9V.
Анонимный пингвин

Попробуйте это как входной буфер. Транзистор действует в качестве усилителя тока полуволнового выпрямителя / пикового детектора. Нет необходимости обнаруживать один пик с помощью АЦП, транзистор / конденсатор протянет его для вас. В соответствии с настройкой выходное напряжение имеет смещение 2,2 В постоянного тока, но вы можете изменить его на любое значение, выбрав резистивный делитель. Таким образом, вы можете сделать вход еще более чувствительным, выбрав эталонную запрещенную зону 1V1 или 2V56. Резистор 10M обеспечивает разрядку конденсатора в течение секунды, и на самом деле он был моим цифровым мультиметром.
Джиппи

4

MySensors

- Узнайте, как создавать собственные недорогие беспроводные датчики и подключать их к миру.

http://www.mysensors.org

Мы называем это "Интернет ваших вещей"

Описание

Мы объединили платформу Arduino с небольшим радиопередатчиком в веселый, гибкий мир недорогих беспроводных датчиков.

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

Это так же просто, как 1, 2, 3. Arduino + NRF24L01 +

  1. Соедините части. 2. Загрузите предоставленные примеры. 3. Начните измерять и контролировать мир!

Узнайте больше о том, как сенсорная сеть формируется автоматически с помощью нашей библиотеки Arduino на сайте. Он в основном образует звездную сеть и может достигать сотен метров.

Сенсорная сеть

В середине вы размещаете шлюз Arduion или Raspberry, который собирает информацию от ваших датчиков. Raspberry Controller

Arduino Gateway

Дизайн и схемы

Вот один из прототипов датчиков движения, которые я создал для управления садовым освещением за пределами моего дома. Состояние движений отправляется моему контроллеру HA, который включает свет (через z-волну), когда движение обнаружено. Датчик освещенности (не на изображении) обеспечивает включение света только ночью.
введите описание изображения здесь

Вы найдете все инструкции по сборке здесь: http://www.mysensors.org/build/

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

Датчик расстояния, датчик движения, реле, влажность, свет, давление, дождь, температура, ...

Вывод

Проект все еще находится в начальной стадии, и мы надеемся предоставить плагины для растущего списка контроллеров Home Automation. Первым делом в нашем списке сейчас стоит предоставить контроллер DIY, который предоставляет бесплатное облачное хранилище для ваших данных датчика.

Здравствуйте

Увидимся @ mysensors.org

/ Хенрик Экблад (создатель библиотеки Arduino с открытым исходным кодом, используемой для связи между датчиками)

  • ОБНОВЛЕНИЕ 27/3. Сделал пример более конкретным и добавил мою принадлежность к проекту с открытым исходным кодом.

4
Добро пожаловать в Arduino.SE! Боюсь, ваш сайт не соответствует критериям нашей витрины. Мы ищем конкретные проекты, которые демонстрируют практическое применение Arduino (как видно из других примеров здесь). Возможно, вы могли бы привести пример сенсорного проекта, который вы создали?
Питер Блумфилд,

Хорошо, может быть, я упускаю суть;). «Конкретный проект» здесь заключается в том, что мы используем Arduinos для создания самовосстанавливающейся беспроводной сенсорной сети. Для архивации мы создали библиотеку с открытым исходным кодом Arduino для трансивера NRF24L01 +.
hek

4
Это больше похоже на рекламу, чем на проект. Измените тон, возможно, сделайте его более конкретным для одного приложения. Я подозреваю, что именно поэтому вы получили отрицательный голос.
Cybergibbons

Добро пожаловать в Ard.SE! Основываясь на вашем профиле, вы работаете или рекламируете сайт, продвигаемый выше. Это политика SE, что вы раскрываете это в своем ответе. Пожалуйста, отредактируйте его, чтобы включить это. Кроме того, вы можете добавить пример использования этого?
Анонимный пингвин

Последние 6 месяцев я занимался разработкой этой библиотеки (с открытым исходным кодом) MySensors в свободное время. Чтобы помочь другим людям правильно использовать библиотеку, мы (за последние пару месяцев к проекту присоединилось больше людей) запустили страницу build-инструкция всего 3 дня назад. Я подумал, что это был бы хороший проект Arduino, чтобы получить обратную связь в этой «Project Showcase». Я не думаю, что пытался каким-либо образом скрыть свое участие в проекте, и мне жаль, если описание воспринимается как реклама. Мы просто очень довольны проектом!
хек

4

Последовательный ящик

Портативный серийный монитор в коробке

Описание

Иногда для устройства (Arduino или другого) полезно выводить некоторую отладочную информацию через последовательный порт. Это здорово, если у вас есть компьютер с подходящим последовательным входом. Однако это не всегда так по разным причинам.

Этот проект - моя попытка решить эту проблему путем создания портативного последовательного монитора с питанием от Arduino, который я могу подключить к другим устройствам в полевых условиях.

По умолчанию он просто отображает текст в формате прокрутки; т.е. текст появляется в нижней строке, и все прокручивается вверх, чтобы освободить место, когда появляется больше. Это означает, что он должен работать очень аккуратно со всеми видами универсальных устройств. Однако также будет возможно использовать escape-последовательности для более точного управления дисплеем, так что устройства также могут быть запрограммированы специально для использования его возможностей.

дизайн

Дизайн состоит из набора из 4 буквенно-цифровых ЖК-дисплеев (16x2 символа каждый), выровненных в рамке примерно так:

3d макет дизайна Serial Box

Дисплеи Epson EAX16027AR, к сожалению, несовместимые со стандартным драйвером Hitachi HD44780. Поэтому я должен был написать свою собственную библиотеку для них.

Я решил использовать эти дисплеи (а не, например, один большой дисплей) главным образом потому, что я просто лежал и хотел сделать что-то интересное с ними. Я также подумал, что было бы очень удобно иметь возможность управлять каждым дисплеем независимо для некоторых приложений (например, отображать различную информацию о каждом).

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

ATMega328 будет мозгом конечного устройства, с последовательными данными, поступающими из линии уровня TTL (для подключения непосредственно к TX аналогичного MCU), или, опционально, из 9-контактного разъема D-sub RS232 (для подключения к различные другие системы). Устройство также будет иметь регулятор контрастности, кнопку для очистки дисплея и кнопку для запуска режима самопроверки. В будущем я хотел бы добавить кнопки, которые позволяют пользователю перемещаться по истории прокрутки.

Ниже приведена очень предварительная схема (у меня было много проблем с тем, чтобы Fritzing по какой-то причине хорошо играл!). Он включает в себя 8-битный сдвиговый регистр SIPO для управления линиями данных ЖК-дисплея, которые показаны зеленым цветом. Вы также можете увидеть линии выбора чипа оранжевым цветом.

Предварительная схема

На данный момент, проект все еще находится на стадии разработки прототипа, управляемый платой Uno (клон). Ниже вы можете увидеть его фотографию в действии, отображающую текст, который был передан через мой последовательный компьютер.

Прототип в действии

Исходный код

Я делаю свою библиотеку LCD доступной на GitHub по ссылке ниже. Обратите внимание, что он находится на ранней стадии разработки. В ближайшем будущем я намерен сделать его намного более похожим на базовую библиотеку LiquidCrystal, чтобы было удобнее переходить между ними.

Вы можете найти базовый код для моего прототипа Serial Box в папке "examples".

Вывод

Я думаю, что проект идет очень хорошо, и я был очень рад получить прототип. Моя главная задача - собрать все это в коробке. Я уже начал вырезать подходящие отверстия для дисплеев, но я не очень опытен в таких вещах, и мне довольно сложно все расставить.

Я доберусь до конца, хотя. Это может выглядеть не очень красиво к тому времени, как я закончу! :)


3

Контроллер отопления

Вы знаете, как это происходит - вы включаете отопление в определенное время и на сколько дней вы работаете допоздна, и он часами работал на полную мощность, или вы уходите на несколько дней и забыли выключить его? Или тот редкий случай, когда вы приходите домой рано, а в доме холодно? Я решил, что простым способом обойти это было создание устройства, которое позволяло бы мне включать или выключать мой обогрев с помощью текстовых сообщений / смс. Это было бы в дополнение к существующей системе управления, чтобы не потерять гибкость, которую это может обеспечить.

Проект состоит из нескольких основных частей: клона Arduino Uno, GSM-щита Seeedstudio, датчика температуры DHT22 и SSR на 25 ампер.

Как это работает:

Существующие элементы управления отоплением установлены на «Выкл.», И новый контроллер подключен для их отмены. Uno запрограммирован отвечать на три разных сообщения - On, Off и Query. В последнем случае устройство прочитает DHT22 и ответит отправителю о текущей температуре и состоянии устройства (включено или выключено). Если команда включена или выключена, она ответит подтверждением выполненного действия. После обработки сообщений они удаляются; любые сообщения, которые не соответствуют определенной структуре сообщений, остаются в памяти SIM-карты и могут быть просмотрены позже, если это необходимо.

Питание на устройство подается с помощью переключающего источника питания на пять вольт на три ампера. Поскольку выводы питания на Arduino просто обнажают внутреннюю шину 5 В платы, я решил подключить ансамбль к ним и настроить экран на подачу питания от Arduino.

Устройство имеет три светодиода состояния. Один зеленый, чтобы указать, что есть власть, синий, чтобы указать, что плата GSM является «живой», и красный, чтобы указать состояние нагрева. Это в дополнение к индикаторам состояния, предусмотренным на Arduino и на экране. Существует также кнопочный переключатель, который позволяет ручное управление отоплением, с конденсатором 100 нФ, чтобы справиться с отказом.

Следующий:

Большая часть кода опирается на старый добрый delay (), чтобы дать щиту достаточно времени для выполнения своих действий. Я планирую улучшить код так, чтобы он ожидал подтверждения от щита, а не предполагал, что он сделал то, что ему было сказано, в отведенное время! Я также добавлю функцию «все еще жив» - через фиксированные промежутки времени выключите синий светодиод, отправьте команду AT на экран и при подтверждении снова включите светодиод. Экран находится под программным контролем, поэтому, если он не отвечает, выключите его и снова включите.

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

В долгосрочной перспективе я планирую добавить RTC, ЖК-дисплей 20 x 4 и дополнительные кнопки, чтобы можно было запрограммировать устройство и действовать как переключатель времени.

Прототипирование уже началось!

Вывод.

Есть кое-что декадентское в том, чтобы просыпаться в холодный зимний день отдыха, посылать текстовые сообщения / смс, чтобы включить отопление, переворачиваться и возвращаться ко сну на час! И когда вы понимаете, что не выключили его ночью, вы можете сделать это, не выходя из своей кровати!

Контроллер Изображение 1 Контроллер Image 2

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.