Направи си сам raspberry pi hat
TRANSCRIPT
Направи си сам Raspberry Pi HATЛеон АнавиOpenFest 2016
Съдържание
Raspberry Pi
Шапки за Raspberry Pi
Проектиране
Изработка на прототипи
Софтуерна поддръжка
Raspberry Pi
Raspberry Pi
2009 - основана е фондацията Raspberry Pi
2011 - разработва се Raspberry Pi
2012 – стартират продажбите на Raspberry Pi
2014 – Raspberry Pi Model B+
2015 – Raspberry Pi 2
2016 - Raspberry Pi 3
2016 - Raspberry Pi 0
Raspberry Pi
Малко сравнения...
Версия SoC CPU Архитектура
Raspberry Pi 0 Broadcom BCM2835
1 GHz 1 ядро ARM1176JZF-S
ARMv6
Raspberry Pi Model A / B
Broadcom BCM2835
700 MHz 1 ядро ARM1176JZF-S
ARMv6
Raspberry Pi Model A+ / B+
Broadcom BCM2835
700 MHz 1 ядро ARM1176JZF-S
ARMv6
Raspberry Pi 2 Model B
Broadcom BCM2836
900 MHz 4 ядра ARM Cortex-A7
ARMv7
Raspberry Pi Model B
Broadcom BCM2837
1.2 GHz 4 ядра ARM Cortex-A53
ARMv8
Периферия
I2C
SPI
1-wire
И много други...
Важни промени
40 щифта
26 щифта
Raspberry Pi B+(2014)
Raspberry Pi B(2011)
Версии с 40 щифта
40-те щифта
Raspberry Pi шапки
HAT (Hardware Attached on Top)
Стандартни платки специално за Raspberry Pi
Появява се като спецификация през 2014 заедно Raspberry Pi B+
Стандарт за Raspberry Pi HAT
Форма и размери (65x56mm)
40 щифта за захващане към Raspberry Pi B+ и по-нови версии
EEPROM с информация за потребителя и device tree (DT) fragment
За детайли: https://github.com/raspberrypi/hats
Sense HAT
Шапка от Raspberry Pi Foundation
Използвана за Astro Pi мисията
Библиотеки за Python
Емулатор: https://www.raspberrypi.org/blog/sense-hat-emulator/
Sense HAT
8×8 RGB LED матрица
Малък джойстик
Сензори за температура, влажност, атмосферно налягане, ускорение, магнетизъм и жироскоп
RabbitMax Flex
Open source hardware and software хоби проект
Шапка за лесно и бързо правене на Internet of Things и приложения за домашна автоматизация
RabbitMax Flex
Инфраред приемник и предавател
Зумер (или за по-просто звънец)
Многоцветен светодиод
Реле
Бутон
Слот за 16x2 LCD дисплей
5 слота за I2C сензори
Сериен интерфейс за дебъгване
От идея до продукт
Бавно, но славно и за около година след идеята проектът ми се превърна в реалност :)
Жизнен цикъл
Четене на документация
Проектиране
Прототипи
Тестване
Софтуер
Документация
Тестване
Идея
Необходими инструменти
Raspberry Pi
Станция за запояване
Пинцети
Лупа
Мултимер
Olimex работилница по време на FOSDEM 2014
Прототипни платки
Adafruit Perma-Proto HAT (с или без EEPROM)
Обикновена двуслойна прототипна платка
Breadboard
Проектиране на платка
Шаблони за Eagle:
http://www.flyfish-tech.com/pub/RasPi-BplusHAT.zip
Шаблони за KiCAD:
https://github.com/xesscorp/RPi_Hat_Template
http://gitlab.openfet.com/julien/pihat-template
Инструкции за KiCAD: http://openfet.com/2015/12/24/kicad-how-to-design-a-raspberry-pi-hat-in-10-minutes/
Съвети при проектиране
Използвайте леснодостъпни компоненти от надеждни доставчици
Разположете компонентите на шапката така, че да не са във физически конфликт с елементите на Raspberry Pi
Изберете подходящ размер на компонентите за SMT монтаж, така че да можете да го направите на ръка за прототипите
Изберете разположение компонентите така, че да се монтират максимално бързо
Макет
Макетите от картон са лесен, удобен, бърз и евтин начин за проба на физическите размери на платката
Отпечатване на прототипи
В България: Ви-Рус Интернешънъл, СЕЛЕКТРА, SIRIUS-PCB, Микрон-20 и други
В Китай
В САЩ: https://oshpark.com/
Операционни системи (ОС)
Raspbian – официалната GNU/Linux дистрибуция
GNU/Linux дистрибуции: Ubuntu Mate, Fedora, ArchLinux, OSMC, OpenELEC, LibreELEC, Tizen, GENIVI Developement Platform (GDP), Automotive Grade Linux (AGL) и много други
Yocto/OE (чрез meta-raspberrypi)
Buildroot
Други: Windows 10 IoT Core, RISC OS
Device Tree (DT)
Device Tree Source (DTS) e специфичен формат за описание на хардуера
DT може да е разпръснато на няколко файла (.dts и .dtsi)
Linux kernel-а не съдържа описание на хардуера след въвеждането на DT
Bootloader-ът зарежда Linux kernel и device tree blob (DTB)
EEPROM
EEPROM – препрограмируема памет
Съдържа DT фрагмент и информация за производителя на Raspberry Pi HAT
Чрез информацията от EEPROM-а се разпознава софтуерно каква е закачената шапка върху Raspberry Pi
Запис и четене от EEPROM
Препоръчителни EEPROM компоненти: CAT24C32 или M24C32-WBN6P
DIP8 корпус с I2C интерфейс
Проект с отворен код за инструменти за запис на DT фрагмент и информация за шапката върху EEPROM направо от Raspberry Pi: https://github.com/raspberrypi/hats
I2C ЕЕPROM и Raspberry Pi
За запис: 3 и 5 щифт
За четене: 27 и 28 щифт
/proc/device-tree/hat
Програмни езици
Python: най-популярен език в Raspberry Pi общността, има много библиотеки
C: до ден днешен най-популярният език за писане на софтуер за вградени системи
C++, JavaScript, Java, PHP, Perl, Rust, Go и на практика всеки друг език...
WiringPi
Библиотека на C/C++ за управление на GPIO на Raspberry Pi
GNU LGPLv3 лиценз
Съществуват портове за всички други популярни езици за програмиране
http://wiringpi.com/
WiringPi означения
Управление на релето на RabbitMax Flex
https://github.com/RabbitMax/rabbitmax-examples
Производство и продажби
Колкото е по-голямо количеството, толкова по-ниска е производствена цена на една платка
Може да предоставите вашия продукт на други ентусиасти през популярни сайтове като ebay и OLX или специализирани сайтове като Tindie
Може да набавите финансиране, за да произведете повече пратки през кампании в сайтове като IndieGoGo
Опитът ми от RabbitMax Flex
Tindie – лесен, приятен и удобен начин за продажба на прототипи
IndieGoGo – скромна кампания за набиране на средства от 1 ноември до 3 декември 2016, за да може да поръчам производство на повечко платки
Полезни ресурси
https://www.raspberrypi.org/blog/introducing-raspberry-pi-hats/
https://www.raspberrypi.org/magpi/make-your-own-hat/
http://openfet.com/2015/12/24/kicad-how-to-design-a-raspberry-pi-hat-in-10-minutes/
https://www.raspberrypi.org/products/sense-hat/
http://rabbitmax.com/
Въпроси?