Microchip и element14 представили плату расширения raspberry pi chipkit

Плата расширения с последовательным портом для Raspberry PI

В данном проекте создается односторонняя плата, которая соединяет последовательный порт RS-232 с микрокомпьютером Raspberry PI и позволяет подключить некоторые выводы PI для проведения экспериментов. Разрабатываемая интерфейсная плата должна быть простой и использоваться для проведения первоначальных экспериментов.

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

Последовательный порт RS-232 позволяет запрограммировать микрокомпьютер Raspberry PI путем подсоединения к ПК без необходимости подключения дополнительной клавиатуры и экрана к PI.

Электрическая схема

Электрическая схема для распределительной платы последовательного порта Raspberry PI показана ниже.Как видно на схеме, общая конструкция очень простая. Плата имеет один преобразователь уровня RS-232 и подключает 5 выводов GPIO микрокомпьютера Raspberry PI. К одному из выводов GPIO последовательно включен светодиод и резистор.

Создание платы и сборка

В схеме используются компоненты, монтируемые на поверхность, MAX3232 для RS-232 и конденсаторы емкостью 100 нФ, как показано на фото ниже. Данные компоненты можно заменить на стандартные компоненты, которые устанавливаются в сквозные отверстия.

Для этого к проекту и прилагаются исходные файлы KiCad.Мы сознательно выбрали MAX3232 с поверхностным монтажом, поскольку такая ИС намного дешевле и более доступна, чем эквивалент с установкой в сквозные отверстия.

Дизайн и конструкция печатной платы

Плата была разработана и сконструирована с помощью методов, описанных в книге Open Электроника для Linux с открытым исходным кодом. В книге подробно описывается среда KiCad и метод ЛУТ для конструкции печатных плат.

Пайка

Компоненты с поверхностным монтажом не очень тяжело паять. Их нужно припаять первыми. Их устанавливают со стороны печатной платы с медной поверхностью. Конденсаторы емкостью 100 нФ имеют размер 1206, поэтому с ними удобно работать. Стандартный резистор, светодиод и конденсатор нужно припаять следующими и установить за коннекторами.

Коннекторы

J3 представляет собой гнездовой разъем для подключения выводов GPIO микрокомпьютера Raspberry PI. J2 – это DB9 разъем типа мама. Он напрямую подключается к DB9 разъему типа папа на ПК или USB к конвертору RS-232 без перекрещивания.

Плоский кабель

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

Схема и печатная плата

Источник: http://electronics-lab.ru/blog/mcu/4024.html

Microchip и element14 представили плату расширения Raspberry Pi chipKIT

Компания Microchip Technology Inc. объявила о выпуске платы расширения chipKIT Pi, как дополнения к платформе разработки chipKIT™, совместимой с Arduino™, включая новое средство Raspberry Pi® tool, которое разрабатывалось совместно с компанией element14.

В плане программной части, энтузиасты из сообщества chipKIT и Arduino в сотрудничестве с инженерами компании Microchip расширили возможности бесплатной платформы chipKIT Multi-Platform IDE (MPIDE), которая позволяет пользователям создавать, компилировать и программировать Arduino упрощенные приложения на базе chipKIT в используемой операционной системе для Raspberry Pi. Платформа chipKIT MPIDE представляет собой язык программирования и среду разработки с открытым исходным кодом, совместимую с аппаратной платформой Arduino. Оба этих инструмента используют 32-битные PIC32 микроконтроллеры компании Microchip в упрощенном корпусе SPDIP с малым количеством выводов, которые были ранее доступны только с 8-битными микроконтроллерами для сообщества Arduino. Это позволит любителям, преподавателям, фирмам изготовителям и профессионалам использовать преимущества PIC32 микроконтроллеров – высокую производительность, большой объем памяти и интегрированные периферийные устройства.

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

Плата расширения chipKIT Pi компании element14 является первым в мире устройством, которое позволяет разрабатывать Arduino совместимые приложения для Raspberry Pi, используя 32-битный, высокопроизводительный микроконтроллер в упрощенном корпусе.

Поскольку процессор платформы Raspberry Pi является микросхемой с напряжением питания 3,3 В, его порты ввода/вывода и средства коммуникации (I2C™, UART, SPI) также питаются от напряжения 3,3 В.

Это означает, что поскольку существующие Arduino макетные платы созданы на основе 8-битных микроконтроллеров с напряжением питания 5 В, пользователям необходимо создавать или покупать дополнительные компоненты для согласования напряжений. Плата chipKIT Pi может напрямую подключаться к разъему ввода/вывода Raspberry Pi без дополнительных компонентов, снижая стоимость и сложность разработки.

Плата расширения является единственной платой, совместимой только с Arduino, которая имеет 32-битный микроконтроллер в упрощенном корпусе для пользователей Raspberry Pi.

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

В дополнение к этому, пользователи смогут использовать преимущества функции PIC32 Peripheral Pin Select, которая обеспечивает гибкость при переназначении выводов периферийных портов ввода/вывода для удовлетворения собственных требований.

Плата chipKIT Pi и программное обеспечение MPIDE, совместимое с Raspberry Pi, обеспечит пользователям доступ к огромному хранилищу учебных руководств Arduino, справочных материалов и курсов обучения для создания различных проектов.

Цена и доступность

Плата расширения chipKIT Pi компании element14 (шифр компонента chipKIT Pi) предлагается по цене $28 и будет доступна для приобретения в конце сентября.

Подробная информация находится по адресу http://www.microchip.

com/get/NHAC.

Источник новости

Источник: http://cxem.net/electronic_news/electronic_news169.php

Лучшие модули для Raspberry Pi 3

Микрокомпьютер Raspberry Pi имеет достаточно много возможностей чтобы ему точно можно было найти применение. Но вы можете их еще сильнее расширить с помощью печатных плат и аксессуаров, так называемых HAT (hardware attached on top), которые добавляют новую функциональность к вашему Raspberry Pi.

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

Но тем не менее существуют интересные модули Raspberry Pi, с помощью которых вы можете получить нужную функциональность без программирования. Спецификация HAT задает размеры расширений, а также стандартные входы.

В этой статье мы рассмотрим лучшие модули для Raspberry Pi 3, которые могут вам понадобиться.

Модуль камеры

Модуль камеры — это официальный продукт Pi Foundation. Для подключения используется последовательный интерфейс подключения камеры CSI. Он есть почти на каждой плате и вы можете подключить модуль камеры с помощью ленточного кабеля.

Новая версия камеры v2.0 была выпущена в этом году, в ней используется сенсор Sony на 8 мегапикселей. Существует версия для видимого света и инфракрасного. Инфракрасная камера позволяет видеть в темноте если у вас есть инфракрасный источник света. Такие камеры обычно используются для съемки природы и диких растений.

Модуль Sense

Sense — это еще один официальный модуль от Pi Foundation. Он был отправлен на МКС астронавту Тиму Пику и использовался в экспериментах кодинга для школьников в рамках конкурса AstroPi. Sense состоит из матрицы размером 8×8 с разноцветными светодиодами и набора датчиков состояния окружающей среды.

Модуль Unicorn

Unicorn представляет из себя экран из светодиодов 8х8. Светодиоды достаточно большие и занимают всю площадь Raspberry Pi. Здесь нету датчиков, поэтому плата отлично подходит для вывода всевозможной информации, аннимации и индикаторов состояния.

Также можете обратить внимание на другие модули Raspberry Pi от Pimoroni: Unicorn pHAT с разрешением 8×4 пикселей и крошечные платы 1х8 под названием Blinkt.

Если вам не нужны полноцветные светодиоды, вы можете использовать Ciseco PiLTEr, это такая же матрица на восемь белых светодиодов.

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

MotoZero

MotoZero — модуль, разработанный Ричардом Сэвиллом и выпускаемый компанией Pi Hut. Это плата контроллера, который может управлять четырьмя двигателями. Он отлично подходит для робототехники и других моторных проектов. Это плата для Pi Zero, но вы можете использовать ее на любом Raspberry Pi через GPIO.

Также обратите внимание ComJam Edu Kit 3, который позволяет контролировать два двигателя или Ryanteck MCB, 4Tronix Pi Zero Motor Shim которые реализуют низкое энергопотребление для Raspberry Pi Zero.

Traffic HAT

Это еще один продукт Ryanteck, здесь есть три стандартных светодиода: зеленого, желтого и красного цвета, а также кнопка зуммер. Вы можете легко программировать его поведение с помощью GPIO.

Если вам не нужна кнопка зуммер, или вам нужен доступ к контактам GPIO, вы можете использовать еще эти модули для Raspberry Pi: Pi Traffic Light или Pi-Stop, которые устанавливаются прямо на контакты GPIO вертикально.

Analog Zero

Эта плата недавно появилась на Kikstarter и за несколько дней была собрана целевая сумма. Analog Zero позволяет добавить восемь аналоговых входов для вашего Raspberry Pi.

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

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

Использование Analog Zero упрощает программирование выходов GPIO, таких как датчики света.

RasPiO Pro

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

Adafruit Capacitive Touch

Adafruit Capacitive Touch — это емкостный датчик прикасания. Модуль имеет 12 выходов, работающих через шину связи I2С. На касание к каждому выходу можно запрограммировать определенную реакцию. Вы можете узнать что кто-то трогает устройство, или создать свою клавиатуру.

Модуль Skywriter

Skywriter HAT от Pimoroni позволяет управлять чем-либо с помощью жестов рук. Например, вы можете контролировать звук или пойти дальше и настроить автоматизацию множества вещей в своем доме с помощью множества жестов.

[embeded=https://vine.co/9160235b-1a8a-44ad-b7bf-522dc9c57961]

Energenie Pi-mote

Модуль Energenie Pi-mote позволяет контролировать электрические розетки удаленно. Он выступает в виде реле. Вы можете использовать выходы GPIO чтобы контролировать выключение и выключение розеток при определенных обстоятельствах.

Выводы

В этой статье мы рассмотрели только самые интересные модули расширения Raspberry Pi, но на самом деле их существует намного больше. Какие модули вы используете? Если вашего любимого модуля нет в списке, напишите о нем в комментариях!

Источник: opensource.com

Источник: https://losst.ru/luchshie-moduli-dlya-raspberry-pi-3

Модуль расширения X100 для Raspberry Pi

Raspberry-Pi становится действительно универсальным мини-компьютером.
Предлагаем вашему вниманию доступный по цене и простой в обращении и установке модуль расширения X100, превращающий Ваш Raspberry в мощнейший инструмент, благодаря насыщенной коммуникативности данного модуля и наличия на борту часов реального времени.

Вид X100 сверху : назначение разъёмов и выводов.

Вид платы X100 снизу : место микро SD карточки и Rpi RESET.

Описание интерфейсного модуля X100

Плата расширения X100 предназначена для использования на Raspberry Pi (RPI), которая устанавливается в верхней части Raspberry Pi, имеет стабилизатор питания 5 вольт для RPI, от источника напряжения с широким входным диапазоном и несет на себе: выход VGA, RTC, три USB порта, слот SD карты, слот карты памяти, разъем RS232 DB9, и 8 портов для сервомашинок.

Главное и неоспоримое достоинство это видео-вывод VGA и множество других возможностей Х-100.

 

Основные характеристики платы расширения x100

•Непосредственно вставляемый сверху Raspberry Pi, используя модуль использует GPIO разъем, и не требует проводов, и пайки
•Дублированный 26-контактный разъем R-Pi, позволяет чтобы устанавливать существующие платы расширения
•Входное напряжение от 6 В до 23 В преобразуется в 5 В, 3 А через понижающий DC / DC преобразователь для питания Raspberry Pi

•VGA – HDMI конвертер для VGA с поддержкой до UXGA (1600 x 1200) и 1080p с 10-битным ЦАП

•USB – автономный концентратор USB с 3 портами
•Хранение – SD и микро SD разъемы для карт
•RTC – На основе NXP PCF2127AT / PCF2129AT с вставленной батареей CR2032
•Отладка – RS232 DB9 разъем (на чипе MAX3232), используется с нуль-модемным кабелем
•I / O – Кнопка сброса для RPI , контакты для доступа S1 & S5 на вершине Raspberry Pi
•Servo поддержка – 8-канальный чип драйвер (ULN2803)
•Разное – DIP переключатель для подключения контактов RPI
•Размеры – 85 х 56 мм (Точно как Raspberry Pi)
• Этот Модуль подходит для Raspberry Pi Rev 2 модели B.

 

ПИТАНИЕ

X100 поставляется с встроенным стабилизатором +5 В через разъем GPIO с впаянным 2 A авто восстанавливающимся предохранителем. С широким диапазоном входного напряжения.

Стабилизатор может получать питание от широкого спектра внешних источников, таких как батареи, 12 V адаптеры питания, солнечных источников батареи и т.д. Дополнительные +5 В выходы также доступны на серво портах .

Рекомендуемые источники питания: 110 ~ 240 В входного переменного тока , 12 VDC 2 ~ 3 A выходного тока.

Размер выходного отверстия (Блок: мм)

 

HDMI TO VGA

Описание доступно на http://elinux.org/RPi_Screens#RGB_analog.2FVGA
Любой HDMI в VGA адаптер без внешнего блока питания может работать не большое время, но потом сожжет D1, поэтому не используйте преобразователи HDMI с питанием от порта HDMI! Проблема решается использованием преобразователей только с внешним питанием .

X100 не использует питание от RPI HDMI порта и имеет множество функций.
Характеристики:
• Простота в использовании: Нет необходимости кабеля и установки
• Конверсия: Она может конвертировать полный HDMI в VGA видео
• Поддержка 165 MHz / 1,65 Гбит на канал (6.

75 Gbps весь канал) для входа HDMI
• Поддержка выхода Аналоговый видео до UXGA и 1080p с 10-битный ЦАП

 

RS232 MASTER PORT

Порт RS232 соединен с портом UART на Raspberry Pi с использованием интерфейса MAX3232.

MAX3232 преобразует порт 3,3 В UART к RS232 напряжениям и позволяет устанавливать связь с RS232 совместимыми устройствами по последовательному кабелю DB9 или с использованием нуль-модемного кабеля, плата обеспечивает терминальный доступ с Linux на Raspberry Pi, используя приложение терминала. Порт RS232 может быть доступен через порт DB9.

Терминальное приложение – конфигурация PuTTY (COMx, X = Серийный номер порта)

 

Часы реального времени (rtc)

Предназначены для использования в Raspbian. Это очень точные часы реального времени, которые соединяются через порт GPIO на Raspberry Pi. Они используют контакты GND, SDA и SCL.
Они используют высокоточный чип / PCF2129AT и NXP PCF2127AT:
• Очень точный хронометраж (обычно ± 3 ppm или<\p>

Источник: http://radio-kit.ru/product/modul-rasshireniya-x100-dlya-raspberry-pi

В этой статье описаны эксперименты с GPIO (General Purpose Input/Output, Входы/Выходы общего назначения) контактами Raspberry Pi. Я попробовал работать с ними тремя способами: Python, Bash и C. В этой статье будет описаны все три способа. Но для начала немного информации о настройке и подготовке.

Подключение к GPIO контактам RPi: Я использовал старый IDE шлейф от флоппи дисковода. Он имеет 34 контакта, а RPi имеет только 26 контактов, поэтому часть разъема не используется. На другом конце шлейфа припаяны BLS штырьки, которые вставлены в макетную плату и до сих пор очень хорошо работают.

Подключение выводов: По ссылкам есть таблица с значением выводов и схема их расположения. Выводы считаются слева на право, сверху вниз начиная с вывода 3.3В. Вот как использованы контакты у меня:

Вывод 2: 5В

Вывод 3: “GPIO0”. К нему подключен один из выводов выключателя, другой его вывод подключен к GND. Этот вывод GPIO имеет внутренний подтягивающий pull-up резистор. Это означает, что когда переключатель не замкнут, на выходе высокий уровень, а когда замкнут – низкий.

Вывод 6: GND (этот вывод подключен к GND макетной платы)

Вывод 7: “GPIO4”. К нему подключается анод светодиода через резистор 220 Ом.

Во всех следующих примерах будет использовано такое подключение. Различные библиотеки используют различные выводы, создавая путаницу,  поэтому я постараюсь избавиться от неё. Также отметим, что всё это делается в режиме SSH, поэтому монитор не подключен.

Важное примечание: В RPi Wiki написано, что GPIO выводы небуферизованны и незащищены, поэтому короткое замыкание представляет опасность для всего RPi, поэтому будьте осторожны! Разрабатывается новая версия платы с защитой.

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

Python

Это один из моих любимых языков, поэтому я решил попробовать его. Во-первых, установите pip (Python package installer, пакет установки Python):

sudo curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python

Затем установите RPi.GPIO модуль для Python:

sudo pip install rpi.gpio

Теперь вы можете войти в интерпретатор Python (sudo python), и делать такие вещи:

import RPi.GPIO as GPIO

GPIO.setup(7, GPIO.OUT)

GPIO.output(7, True)

GPIO.output(7,False)

Bash

Я всегда любил Unix за то, что основной его идеей является то, что все является файлом. GPIO контакты Raspberry Pi также являются файлами! С применением нашей макетной платы мы можем зажигать и гасить светодиод.

sudo su –

echo “4” > /sys/class/gpio/export

echo “4” > /sys/class/gpio/export

echo “out” > /sys/class/gpio/gpio4/direction

echo “1” > /sys/class/gpio/gpio4/value

echo “0” > /sys/class/gpio/gpio4/value

Для чтения входов используйте команду “cat” и путь файла.

echo “0” > /sys/class/gpio/export

echo “in” > /sys/class/gpio/gpio0/direction

cat /sys/class/gpio/gpio0/value

C

Старый добрый C. Базовый пример для C действительно сложный, но, к счастью Гордон написал Arduino подобную библиотеку, но для Raspberry Pi! Итак, вот что нужно сделать:

Загрузите и установите библиотеку:

cd /tmp

wget http://project-downloads.drogon.net/files/wiringPi-1.tgz

tar xfz wiringPi-1.tgz

cd wiringPi/wiringPi

make

sudo make install

В системе вашего Raspberry Pi теперь установлена библиотека wiringPi, поэтому мы можем написать небольшую программу с использованием её.

cd ~

nano blink.c

Скопируйте код данной программы:

/* * blink.c: * Simple test program to blink an LED on pin 7 */ #include

Источник: http://shemopedia.ru/ispolzovanie-gpio-vyivodov-raspberry-pi.html

Построение контроллеров на Raspberry Pi #6: интерактивные графические контроллеры

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

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

Рисунок 1 показывает основные блоки компонентов, необходимых для создания интерактивного графического контроллера.

Рисунок 1 – Электронные компоненты и встраиваемые аппаратные средства, необходимые для построения RPi (Raspberry Pi) интерактивного графического контроллера

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

Список компонентов

  • Raspberry Pi (модель A+, B, B+, Pi2, Pi Zero или Pi3)
  • резистор 1 кОм (коричневый, черный, коричневый, золотой), 0,25 Вт, 5%
  • резистор 10 кОм (коричневый, черный, оранжевый, золотой), 0,25 Вт, 5%
  • фотоэлемент
  • HDMI кабель
  • HDMI монитор
  • кнопка
  • переходник для GPIO выводов Raspberry Pi
  • беспаечная макетная плата
  • перемычки (папа-папа)
  • перемычки (мама-папа)

Pygame и Raspberry Pi

Одним из ключевых элементов интерактивного графического контроллера является Python библиотека Pygame. Python библиотека Pygame делает простым добавление графики в анимационные приложения на Raspberry Pi. Библиотека Pygame позволяет создавать игры и интерактивные объекты без преодоления трудностей разработки специального кода и алгоритмов.

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

Рисунок 2 – Пример холста прыгающего мяча, построенный с помощью библиотеки Pygame

Размеры холста заданы с помощью Python инструкции под названием size. Инструкция size определяет ширину (width) и высоту (height) холста, как показано ниже.

size = width, height = 500, 500

Таким образом, библиотека Pygame предоставляет следующие улучшения программирования для Python:

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

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

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

Физические вычисления и Raspberry Pi

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

Рисунок 3 – Внешняя среда физических вычислений для датчика (фотоэлемента) со вспомогательной разводкой на макетной плате. Движение руки имитирует удары по мячу.

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

Этот электрический сигнал затем обрабатывается компьютером Raspberry Pi посредством Python кода, находящегося в памяти микроконтроллера. Библиотека Pygame создаст холст с мячиком, позволяющий графическому элементу двигаться в соответствии с параметрами движения в Python коде.

Параметром движения для этой интерактивной анимации является диагональное направление движения мяча по холсту.

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

Методы разводки электрической схемы

Для сборки электронной схемы фотоэлементного датчика мы будем использовать беспаечную макетную плату и перемычки. Как показано на рисунке 3, выход электронной схемы фотоэлементного датчика будет подключен к GPIO (вход/выход общего назначения) выводу Raspberry Pi. Мы подключим выход схемы непосредственно к GPIO выводу 25 Raspberry Pi.

Перед сборкой контроллера, соберем тестовую схему с кнопкой для проверки интерфейса электрической схемы цифрового коммутатора. Подтягивающий резистор 1 кОм обеспечит цифровые сигналы с напряжениями 0 и 3,3 вольта на GPIO выводе 25 Raspberry Pi, когда кнопка нажата или отпущена. Рисунок 4 показывает схему соединений тестовой электрической схемы с кнопкой.

Рисунок 4 – Схема соединений тестовой электрической схемы с кнопкой

К сожалению, на печатной плате не приводится маркировка GPIO выводов 40-пинового разъема Raspberry Pi. Для помощи в подключении тестовой схемы на рисунке 5 приведена распиновка разъема GPIO выводов Raspberry Pi.

Рисунок 5 – Распиновка разъема GPIO выводов Raspberry Pi

Другой способ подключения электронной схемы фотоэлементного датчика к Raspberry Pi заключается в использовании Т-образного переходника для разъема GPIO выводов на макетную плату, который показан на рисунке 6.

Рисунок 6 – Переходник для разъема GPIO выводов Raspberry Pi на макетную плату

Переходник для разъема GPIO выводов Raspberry Pi вставляется в стандартную макетную плату и подключается плоским шлейфом к Raspberry Pi. Рисунок 7 показывает подключение тестовой схемы с кнопкой к Raspberry Pi с помощью переходника.

Рисунок 7 – Подключение электрической схемы на макетной плате к Rapberry Pi с помощью переходника для разъема GPIO выводов

Теперь, собрав тестовую схему, мы готовы проверить работу интерактивного графического контроллера с помощью python кода, показанного в листинге 1 ButtonBouncingBall.py.

# Подключаем библиотеки Python import sys, pygame import time import RPi.GPIO as io io.setmode(io.BCM) # Выполняем назначение выводов button_pin = 25 # Настроить button_pin на вход io.setup(button_pin, io.IN) pygame.init( ) # Установить параметры холста size = width, height = 500, 500 speed = [100, 100] white = 255,255,255 # Показать заголовок холста pygame.display.set_caption(“Bouncing Ball”) screen = pygame.display.set_mode(size) ball = pygame.image.load(“beachball2.png”) ballrect = ball.get_rect() while 1: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() if io.input(button_pin): # Если кнопка нажата, то перемещать мяч ballrect = ballrect.move(speed) if ballrect.left < 0 or ballrect.right > width: # Перемещать мяч вверх speed[0] = -speed[0] if ballrect.top < 0 or ballrect.bottom > height: # Перемещать мяч вниз speed[1] = -speed[1] screen.fill(white) # Установить фон холста screen.blit(ball, ballrect) pygame.display.flip() time.sleep(0.1) # Ждать 100мс до следующего нажатия кнопки

Тестирование интерактивного графического контроллера

Чтобы можно было протестировать интерактивный графический контроллер, вам необходимо скачать (ссылка выше) и распаковать архив ButtonBouncingBall_materials.zip в какой-либо каталог на Raspberry Pi. В архиве находятся файлы beachball2.png и ButtonBouncingBall.py.

Теперь запустите LXTerminal и перейдите в каталог, в котором расположен скрипт ButtonBouncingBall.py. Основные моменты в скрипте прокомментированы. Перед запуском скрипта просмотрите эти комментарии, чтобы понимать, как работает код.

Наберите в LXTerminal команду sudo python ButtonBouncingBall.py, как показано на рисунке 8, чтобы запустить приложение.

Рисунок 8 – Запуск Python приложения ButtonBouncingBall.py в LXTerminal

Как только код будет запущен, на экране HDMI монитора появится холст с мячом, как показано на рисунке 9.

Рисунок 9 – Код ButtonBouncingBall.py, запускающий холст Pygame

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

Функция детектирования ведения мяча рукой

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

Размещение руки над фотоэлементом обеспечит управляющий сигнал логической единицы (3,3В), который будет считан Raspberry Pi.

Raspberry Pi обработает этот цифровой управляющий сигнал и заставит мяч двигаться вниз или отскочить вверх.

Убирание руки от фотоэлемента обеспечивает цифровой управляющий сигнал логического нуля (0В). Мяч, управляемый Raspberry Pi, перестанет прыгать. Схема подключения схемы детектирования ведения мяча рукой показана на рисунке 10.

Рисунок 10 – Схема подключения схемы детектирования ведения мяча рукой

Ниже, на рисунке 11, приведена фотография собранного устройства.

Рисунок 11 – Окончательная версия собранного интерактивного графического контроллера. Обратите внимание, что кнопка заменена на фотоэлемент

Ниже приведено видео, демонстрирующее работу проекта.

И снова поздравляю с успешным добавлением функции детектирования ведения мяча рукой в ваш интерактивный графический контроллер! Надеюсь, статья оказалась полезной. Оставляйте комментарии!

Оригинал статьи:

Набор перемычек (папа-папа)

Набор перемычек папа-папа. 40 штук по 15 см.

Набор перемычек (мама-мама)

Набор перемычек мама-мама. 40 штук по 20 см.

Raspberry Pi 3 Model B

Raspberry Pi 3 – это третье поколение Raspberry Pi. Данный компьютер является заменой Raspberry Pi 2 Model B.

Источник: https://radioprog.ru/post/150

Raspberry Pi — как много в этом слове для уха гикова слилось

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

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

Редакция 3DNews не несет никакой ответственности за любые возможные последствия.

Стыдно признаться, но Raspberry Pi мы заполучили больше года назад и да, не написали тогда про него ни строчки, хотя и трёхмесячное ожидание было томительным, и радость от получения посылки из Туманного Альбиона была искренней. Оно, наверное, и к лучшему.

За год вокруг Raspberry Pi образовалось приличных размеров сообщество пользователей, разработчиков и компаний, которые явили миру немалое количество аксессуаров, проектов и программного обеспечения.

Да и сам одноплатный компьютер успел претерпеть некоторые изменения в аппаратной части — в новых версиях убрали ряд недочётов и в два раза увеличили объём RAM у модели B.

⇡#История Raspberry Pi

Вообще история развития и появления Raspberry Pi не так проста. Первый прототип этого устройства появился в 2006 году.

Уже тогда он должен был стоить $25 и предназначался для обучения школьников азам компьютерных премудростей — тому, что в англоязычной литературе принято называть Computer Science (CS), а у нас не совсем корректно зовётся информатикой (о терминологии спорят до сих пор).

Основателям проекта — сотрудникам и преподавателям Компьютерной лаборатории Кембриджского университета — не нравился тот факт, что с каждым годом уровень подготовки абитуриентов неуклонно снижался. Если в 90-е годы к ним, как правило, приходили учиться молодые люди, не понаслышке знакомые с программированием, то в 2000-х типичный абитуриент был разве что немного знаком с веб-дизайном.

Здесь и далее фото Raspberry Pi Model B (PCB 1.0, rev. 0002)

Сожаление разработчиков Raspberry Pi понятно, ведь их молодость пришлась как раз на время появления и расцвета первых по-настоящему домашних «персоналок» Amiga, BBC Micro, Spectrum ZX и Commodore 64. Пользователи этих ПК порой попросту вынуждены были заниматься программированием, если не находили подходящего софта для своих задач.

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

А для некоторых это и вовсе стало поводом открыть свой «свечной заводик».

Впрочем, все мы знаем, что в 90-х произошло с платформой Wintel, которая стала фактически монополистом на рынке ПК и в итоге избавила пользователей от необходимости осваивать программирование.

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

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

Так ли уж всё печально, однозначно сказать трудно, но вдохновлялись создатели историей некогда легендарного учебного компьютера BBC Micro, не рассчитывая, впрочем, коренным образом изменить ситуацию с интересом к Computer Science.

Параллелей между Raspberry Pi и BBC Micro не так уж мало. Оба имеют две аппаратные, незначительно различающиеся версии — Model A и Model B. Оба основаны на RISC-подобной архитектуре, причём железо в обоих случаях используется оптимальное, хотя и не самое продвинутое. RISC OS тоже не забыли портировать.

Задача у них одна и та же — заинтересовать подрастающее поколение компьютерными технологиями на достаточно продвинутом уровне. BBC Micro планировалось продать не более 12 тысяч штук, а за 10 с лишним лет в итоге было продано около полутора миллионов.

Пробная партия Raspberry Pi объёмом 10 000 экземпляров разошлась за несколько минут, причём поначалу действовало правило «одна штука в одни руки». Представитель одного из двух официальных дистрибьюторов «сердечно» попросил пользователей перестать обновлять страничку онлайн-магазина, так как сервера попросту не справлялись с нагрузкой.

Год спустя, во время старта продаж в США история повторилась. На текущий момент, то есть почти через полтора года после запуска, продано более полутора миллионов устройств, и это, похоже, не предел.

Скоро сказка сказывается, да не скоро дело делается.

Ещё пара лет после появления первого прототипа ушла на создание различных вариантов ПК, пока в 2008 году не стало ясно, что процессоры для мобильных устройств стали доступными и достаточно мощными для работы с медиаконтентом и именно их, а не микроконтроллеры, следует использовать для претворения идеи в жизнь. В 2009 году была создана благотворительная организация Raspberry Pi Foundation, в задачи которой входит разработка и продвижение одноимённого компьютера. Два года потребовалось на создание аппаратной и программной части будущего устройства, заключение договоров и соблюдение прочих формальностей. В какой-то момент даже была идея сделать мини-ПК в виде большой флешки – с одной стороны USB-порт, а c другой HDMI-выход. Подобные устройства с Android на борту сейчас в огромных количествах клепают китайские компании. Наконец, в 2011 году появились первые альфа- и бета-версии плат. И только в начале прошлого года первая партия Raspberry Pi отправилась на сборочный конвейер, а до заказчиков она добралась ближе к лету, потому что китайский подрядчик умудрился ошибиться при сборке, что вызвало дополнительные затраты времени на исправление ошибки.

Заметьте, Raspberry Pi — по сути некоммерческий проект. Так что нет ничего удивительного в том, что на его разработку ушло столько лет.

Одновременно это ответ на недовольные возгласы в духе «А почему процессор такой, а не такой-то? Где мой гигабайт памяти? Нельзя что ли было добавить поддержку SATA? Почему нет модуля Wi-Fi/3G/Bluetooth?». Помилуйте, вам за $25 (или $35) предоставили добротную машинку для домашних экспериментов и «наколенных» проектов.

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

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

⇡#Технические характеристики и возможности

Raspberry Pi называют одноплатным компьютером размером с кредитную карту. На самом деле сама плата чуть крупнее — 85,6x56x21 мм — и не имеет скруглённых краёв, к тому же некоторые порты попросту торчат снаружи, не говоря уж про карту SD, которая более чем на половину выпирает за пределы платы.

Решить эту проблему могут «короткие» адаптеры для micro-SD. Весит устройство всего 54 грамма. Raspberry Pi выпускается в двух версиях — Model A и Model B. У Model A нет порта Ethernet, один порт USB 2.0 и 256 Мбайт RAM, а стоит она $25. Model B оснащена портом Ethernet 10/100 Мбит/с, двумя портами USB 2.

0, объём оперативной памяти у неё в два раза больше. Всё это удовольствие продаётся уже за $35. Только учтите, что это «чистая» цена, без учёта возможных налогов и расходов на доставку. Нам, к примеру, приобретение Model B обошлось чуть ли не два раза дороже. Также при покупке стоит обратить внимание на маркировку SoC.

Номер партии для «старых» версий Model B с 256 Мбайт RAM начинается с K4P2G, а у ревизии с 512 Мбайт памяти — с K4P4G.

Схема Raspberry Pi Model с www.raspberrypi.org

По идее, начиная с этого года все Raspberry Pi Model B должны иметь полгигабайта RAM, но на складах перекупщиков вполне могли заваляться более ранние модели. Лицензией на производство плат обладают компании Premier Farnell, RS Components и Egoman.

Причём последняя выпускает платы красного цвета, которые могут предлагаться только на китайских территориях. К первой годовщине проекта RS Components выпустили юбилейную партию плат синего цвета объёмом 1000 штук.

Эти же компании имеют право продавать Raspberry Pi, а в США распространением занимается Allied Electronics. Так что все остальные магазины попросту закупают большие партии устройств у этой четвёрки и перепродают конечным потребителям.

Обе модели плат от разных производителей (сборкой занимаются заводы Sony, Qisda и Egoman), имеют некоторые несущественные различия, но по большому счёту они идентичны.

Основой Raspberry Pi является система-на-кристалле, Broadcom BCM2835 (линейка BCM2708), которая включает процессорное ядро ARM11 с базовой частотой 700 МГц (возможен разгон до 1 ГГц) и графическое ядро Broadcom VideoCore IV. Из-за того, что использована ныне слегка устаревшая архитектура ARMv6, ряд дистрибутивов не поддерживают данный процессор.

К ним относится, например, Ubuntu. Про Android тоже нельзя сказать, что он хорошо работает. С другой стороны, разработчики приложили максимум усилий для того, чтобы как следует подготовить ОС к работе на данном железе, чего, кстати говоря, не скажешь о многих других одноплатных ARM-компьютерах. GPU поддерживает стандарты OpenGL ES 1.1/2.0, OpenVG 1.

1, Open EGL, OpenMAX и способен кодировать, декодировать и выводить Full HD-видео (1080p, 30 FPS, H.264 High-Profile).

Для аппаратного ускорения MPEG-2 и VC-1 лицензии придётся докупать отдельно, и это ещё один повод напомнить, что стоимость лицензий и патентных отчислений вносит далеко не самую маленькую лепту в конечную цену почти любого высокотехнологичного устройства.

Чип памяти производства Samsung или Hynix напаян прямо поверх основного чипсета, так что увеличить RAM самостоятельно не получится. Память здесь общая, поэтому пользователь сам выбирает, сколько мегабайт отдать GPU. Видеовыходов два — композитный RCA (576i или 480i, PAL-BGHID/PAL-M/PAL-N/NTSC/NTSC-J) и HDMI 1.

3a с поддержкой HDCP и протокола CEC (управление с одного ПДУ всеми мультимедийными устройствами). Так что для создания простенького медиацентра Raspberry Pi вполне подойдёт, а наличие готового решения Raspbmc значительно упрощает задачу.

Выбор именно таких видеовыходов объясняется очень просто — компьютер, как в давние времена, рассчитан на подключение к телевизору, а не к мониторам. Поэтому нет, например, разъёма DVI. Ну и ладно, переходник с HDMI можно купить самому.

(Сами видите, столько всего ещё можно или даже нужно докупить к этой плате) Звук либо передаётся через HDMI, либо выводится через обычное 3,5-мм гнездо.

Встроенное устройство для чтения карт памяти гарантированно работает с большинством SD-карт объёмом до 32 Гбайт. Загружаться Raspberry Pi умеет только с карточек SD. Если точнее, то сама ОС может располагаться на USB-накопителе, но вот загрузчик всегда должен быть на SD. Кнопок включения и сброса нет — устройство само включается при подаче питания.

Питается Raspberry Pi от порта micro-USB или с пары выделенных выводов GPIO. Для Model A рекомендуется источник на 5 В и 500-700 мА, а для Model B на 5 В и 700-1200 мА. То есть порта USB 3.0 или зарядного устройства для телефона должно хватить, хотя лучше подобрать более стабильный источник питания.

Сами платы потребляют чуть меньше, но часть энергии требуется для работы подключенных к USB-портам устройствам. Альтернативный вариант — питание от подключенного к плате USB-хаба с отдельным БП или аккумуляторов, но это не самое лучшее решение. Кстати, контроллер Ethernet в Model B тоже «висит» на шине USB. Индикация минимальная — на плате распаяно пять светодиодов.

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

А теперь — самое интересное: набор низкоуровневых интерфейсов, которые позволяют подключать к Raspberry Pi платы расширения, внешние контроллеры, датчики и прочие аксессуары. Во-первых, на плате есть 15-пиновые слоты CSI-2 для подключения камеры и DSI для установки дисплея.

Во-вторых, имеется колодка на 26 линий ввода-вывода общего назначения (GPIO, General Purpose Input/Output), из которых по факту для управления доступно только 17 — не густо, но и не пусто. На них же реализованы интерфейсы UART, консольный порт, SPI и I²C.

На новых ревизиях плат разведены, но не распаяны ещё четыре GPIO, дополнительно дающие I²C и I²S. Если вам не знакомы все эти аббревиатуры, то не пугайтесь — это названия широко распространённых в микроэлектронике стандартов подключения одних устройств к другим.

Использование GPIO — это как раз самое интересное и творческое применение Raspberry Pi.

Впрочем, недостатков у него тоже хватает. В нём, к примеру, нет собственных часов реального времени (Real Time Clock, RTC). Тех самых, которые «помнят» текущее время и идут сами по себе. Поэтому единственный способ получения времени – это синхронизация с NTP-серверами.

SoC содержит в себе цифровой сигнальный процессор (DSP), но полного доступа к его API, по-видимому, до сих пор нет. Выводы GPIO никак не защищены от короткого замыкания, поэтому ошибка в монтаже может сгубить весь мини-ПК. Также они способны обрабатывать только цифровые сигналы.

Видеовыходы не могут одновременно выводить картинку. Аудиовхода вообще нет. В общем, недостатков у Raspberry Pi хватает. А ещё его пример хорошо иллюстрирует процесс разработки современных устройств. Взять те же часы. Они оказались на удивление дорогим компонентом, от которого решено было отказаться.

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

Да и дистрибьюторы тоже хотят получить свою копеечку. И всё равно в итоге удалось уложиться в $25.

Одноплатный мини-ПК Raspberry Pi  
Model A Model B
Цена $25 $35
System-on-a-chip (SoC) Broadcom BCM2835 (CPU + GPU) 
CPU 700 МГц ARM11 (ядро ARM1176JZF-S), возможен разгон до 1 ГГц 
GPU Broadcom VideoCore IV 
Стандарты OpenGL ES 1.1/2.0, OpenVG 1.1, Open EGL, OpenMAX 
Аппаратные кодеки H.264 (1080p30, high-profile);
MPEG-2 и VC-1 (лицензия продаётся отдельно) 
Память (SDRAM, общая) 256 Мбайт 512 Мбайт;
256 Мбайт (до 15.10.2012)
Порты USB 2.0 1 2
Видеовыход 1 x HDMI 1.3a (CEC),
1 x RCA (576i/480i, PAL-BGHID/M/N,NTSC, NTSC-J) 
Аудиовыход Гнездо 3,5 мм, HDMI 
Карт-ридер SD/MMC/SDIO 
Сеть Ethernet-порт RJ45 10/100 Мбит/с
Интерфейсы 20 x GPIO (SPI, I2C, UART, TTL);
MIPI CSI-2, MIPI DSI 
Энергопотребление 500 мА (2,5 Вт) 700 мА (3,5 Вт)
Питание 5 В через порт micro-USB или GPIO 
Размеры 85,6x56x21 мм 
Масса 54 г 

Неудивительно, что некоторые пользователи скупают Raspberry Pi пачками и «прикручивают» к чему попало. Эта машинка может стать в ваших руках и медиацентром, и управляющим центром «умного дома», и игровой приставкой для любителей 8-битной классики, и сердцем радиоуправляемых моделей.

Тут уж всё зависит от вашей фантазии, желания и прямоты рук. В Сети есть немало примеров, готовых проектов, сообществ пользователей и целых магазинов, посвящённых Raspberry Pi. Есть даже официальный очень-очень скромный The Pi Store с небольшим количеством ПО, игр, руководств и собственным журналом.

Короче: «Ищущий да обрящет!» Для начала рекомендуем пролистать списки проектов на официальном форуме или же ознакомиться с наглядными примерами от Adafruit и Element14.

Ну а мы переходим ко второй части нашего обзора — практической, в которой рассмотрим процесс начальной настройки Raspberry Pi и установим на него клиент BitTorrent Sync.

Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.

Источник: https://3dnews.ru/658701

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}