Направи си сам Raspberry Pi HAT

Preview:

Citation preview

Направи си сам 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/

Въпроси?

Recommended