SlideShare a Scribd company logo
1 of 23
Download to read offline
Питон в малине.
Иван Бакланов
vk: id15399925
email: ivan___b@mail.ru
Кто я такой?
Иван Бакланов
- Всю жизнь в IT
- Разработчик в Machineheads.ru
- Люблю железо и python
О чем доклад
Raspberry Pi - доступный одноплатный компьютер с
широкими возможности
Расскажу и покажу:
- Как появились одноплатные компьютеры
- Где применяются одноплатники
- Почему Raspberry Pi?
- Примеры
Как появились одноплатные компьютеры?
Сначала было … производство
Зачем появились одноплатные компьютеры?
Обычные компы:
- Дорогие
- Пыльные
- Неудобные
- Большие
- Прожорливые
Зачем появились одноплатные компьютеры?
Обычные компы:
- Дорогие
- Пыльные
- Неудобные
- Большие
- Прожорливые
Одноплатные:
- Дешевые
- Маленькие
- Удобные
- Быстро заменяемые
- Мало потребляют
Одноплатники сейчас
Что можно сделать с одноплатниками?
- Web server
- Эмулятор приставки
- Докер ферму
- Видео регистратор
Что можно сделать с одноплатниками?
- Web server
- Эмулятор приставки
- Докер ферму
- Видео регистратор
- Умный дом
- Голосовой помощник
- Медиацентр
- Трекер
Raspberry Pi
Особенности строения
Как можно подключить периферию?
Шины для периферии:
- I2C
- SPI
- UART
Пример #1
Работа с GPS модулем через UART
(получаем гео-координаты)
Схема подключения
GPS neo-6m
http://bit.ly/2ojQ88i
Работа с GSM модулем
import time
import serial
ser = serial.Serial(port='/dev/ttyAMA0', baudrate=9600, timeout=1)
while 1:
try:
data =str(ser.readline())
time.sleep(0.5)
if "GPGGA" in data:
print(“Found data:”, data)
except Exception as e:
break
ser.close()
Подключаемся к GSM модулю
Опрашиваем модуль
Выводим результат
Пример #2
Работа с SPI: графический интерфейс
Схема подключения
MAX7219 8×8 LED
http://bit.ly/2ojPSGf
Пример #2
import spidev
spi = spidev.SpiDev()
spi.open(0,0)
set_data = [0xFF, 0xFF, 0xFF, 0xFF]
spi.writebytes(set_data)
data = spi.readbytes(len(set_data))
print(data)
# -----------------------------------
import max7219.led as led
device = led.matrix(cascaded = 4)
device.orientation(90)
device.show_message(" PyNSK #13!")
Пакет
https://github.com/doceme/py-spidev
Пакет https://github.com/rm-hull/luma.led_matrix
Отправляем байты в шину
Получаем байты из шины
Инициализация светодиодных матриц
Настройка ориентации поворот на 90°
Вывод текста в матрицу
Пример #3
Работа с I2C: датчик бесконтактного термометра
(делаем тепловизор)
Схема подключения
MLX90614
http://bit.ly/2nP0Gbl
Работа с I2C
import I2C
I2C.require_repeated_start()
sensor = I2C.Device(0x5A, busnum=1)
data = sensor.readS16(0x07)
temp = data * .02 - 273.15
Адрес датчика на шине
Регистр в датчике
Переводим температуру
из Кельвинов в Цельсии
Код пакета http://bit.ly/2nO1NYW
С чего начать?
1. Освежить знания электроники
2. Выбрать одноплатный компьютер
3. Выбрать необходимые модули и купить
4. Собрать все это вместе
5. Настроить программное обеспечение
6. ...
7. Profit
Полезные ссылки
- https://www.raspberrypi.org - о самой плате
- https://github.com/adafruit - набор пакетов
- http://raspi.tv - много tutorial’ов
- https://raspberrytips.nl - всякие советы
- Книга “Электроника для начинающих”, Чарльз Платт
- http://easyelectronics.ru/category/nachinayushhim - про
электронику

More Related Content

Similar to Питон в малине

IoT Meetup 2015: готовимся к хакатону в Москве
IoT Meetup 2015: готовимся к хакатону в МосквеIoT Meetup 2015: готовимся к хакатону в Москве
IoT Meetup 2015: готовимся к хакатону в МосквеIntel® Developer Zone Россия
 
02 История Open-Source Hardware - Олег Садов
02 История Open-Source Hardware - Олег Садов02 История Open-Source Hardware - Олег Садов
02 История Open-Source Hardware - Олег СадовAlexander Chemeris
 
Про асинхронное сетевое программирование
Про асинхронное сетевое программированиеПро асинхронное сетевое программирование
Про асинхронное сетевое программированиеPython Meetup
 
Roman Romanovsky, Sergey Rak - "JavaScript в IoT "
Roman Romanovsky, Sergey Rak - "JavaScript в IoT "Roman Romanovsky, Sergey Rak - "JavaScript в IoT "
Roman Romanovsky, Sergey Rak - "JavaScript в IoT "IT Event
 
Perl для не программистов. Николай Мишин. Moscow.pm 4 июля 2013
Perl для не программистов. Николай Мишин. Moscow.pm 4 июля 2013Perl для не программистов. Николай Мишин. Moscow.pm 4 июля 2013
Perl для не программистов. Николай Мишин. Moscow.pm 4 июля 2013Moscow.pm
 
Dmitry Menshikov "Release after the year of development: fierce debug to the ...
Dmitry Menshikov "Release after the year of development: fierce debug to the ...Dmitry Menshikov "Release after the year of development: fierce debug to the ...
Dmitry Menshikov "Release after the year of development: fierce debug to the ...Fwdays
 
Статический анализ Си++ кода
Статический анализ Си++ кодаСтатический анализ Си++ кода
Статический анализ Си++ кодаTatyanazaxarova
 
ADD 2011: Статический анализ Си++ кода
ADD 2011: Статический анализ Си++ кодаADD 2011: Статический анализ Си++ кода
ADD 2011: Статический анализ Си++ кодаAndrey Karpov
 
Wi-Fi Hacking 101 – How to Hack WPA2 and Defend Against These Attacks.pdf
Wi-Fi Hacking 101 – How to Hack WPA2 and Defend Against These Attacks.pdfWi-Fi Hacking 101 – How to Hack WPA2 and Defend Against These Attacks.pdf
Wi-Fi Hacking 101 – How to Hack WPA2 and Defend Against These Attacks.pdfJackLondon40
 
TMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeIosif Itkin
 
Робототехника для прикладных программистов
Робототехника для прикладных программистовРобототехника для прикладных программистов
Робототехника для прикладных программистовDotNetConf
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных сер...
Тюним память  и сетевой стек в Linux: история перевода высоконагруженных  сер...Тюним память  и сетевой стек в Linux: история перевода высоконагруженных  сер...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных сер...Dmitry Samsonov
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...odnoklassniki.ru
 
Internet Of Things: возможности Intel Galileo gen 2 и Intel Edison
Internet Of Things: возможности Intel Galileo gen 2 и Intel EdisonInternet Of Things: возможности Intel Galileo gen 2 и Intel Edison
Internet Of Things: возможности Intel Galileo gen 2 и Intel EdisonCodeFest
 

Similar to Питон в малине (20)

IoT Meetup 2015: готовимся к хакатону в Москве
IoT Meetup 2015: готовимся к хакатону в МосквеIoT Meetup 2015: готовимся к хакатону в Москве
IoT Meetup 2015: готовимся к хакатону в Москве
 
02 История Open-Source Hardware - Олег Садов
02 История Open-Source Hardware - Олег Садов02 История Open-Source Hardware - Олег Садов
02 История Open-Source Hardware - Олег Садов
 
Про асинхронное сетевое программирование
Про асинхронное сетевое программированиеПро асинхронное сетевое программирование
Про асинхронное сетевое программирование
 
Iot meetup 07.10.15
Iot meetup 07.10.15Iot meetup 07.10.15
Iot meetup 07.10.15
 
Обзор Intel® Edison и Grove Starter Kit
Обзор Intel® Edison и Grove Starter KitОбзор Intel® Edison и Grove Starter Kit
Обзор Intel® Edison и Grove Starter Kit
 
Roman Romanovsky, Sergey Rak - "JavaScript в IoT "
Roman Romanovsky, Sergey Rak - "JavaScript в IoT "Roman Romanovsky, Sergey Rak - "JavaScript в IoT "
Roman Romanovsky, Sergey Rak - "JavaScript в IoT "
 
Модульные промышленные ПК Advantech
Модульные промышленные ПК AdvantechМодульные промышленные ПК Advantech
Модульные промышленные ПК Advantech
 
Perl для не программистов. Николай Мишин. Moscow.pm 4 июля 2013
Perl для не программистов. Николай Мишин. Moscow.pm 4 июля 2013Perl для не программистов. Николай Мишин. Moscow.pm 4 июля 2013
Perl для не программистов. Николай Мишин. Moscow.pm 4 июля 2013
 
Dmitry Menshikov "Release after the year of development: fierce debug to the ...
Dmitry Menshikov "Release after the year of development: fierce debug to the ...Dmitry Menshikov "Release after the year of development: fierce debug to the ...
Dmitry Menshikov "Release after the year of development: fierce debug to the ...
 
Статический анализ Си++ кода
Статический анализ Си++ кодаСтатический анализ Си++ кода
Статический анализ Си++ кода
 
ADD 2011: Статический анализ Си++ кода
ADD 2011: Статический анализ Си++ кодаADD 2011: Статический анализ Си++ кода
ADD 2011: Статический анализ Си++ кода
 
Wi-Fi Hacking 101 – How to Hack WPA2 and Defend Against These Attacks.pdf
Wi-Fi Hacking 101 – How to Hack WPA2 and Defend Against These Attacks.pdfWi-Fi Hacking 101 – How to Hack WPA2 and Defend Against These Attacks.pdf
Wi-Fi Hacking 101 – How to Hack WPA2 and Defend Against These Attacks.pdf
 
JPHP
JPHPJPHP
JPHP
 
TMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: Genode
 
Робототехника для прикладных программистов
Робототехника для прикладных программистовРобототехника для прикладных программистов
Робототехника для прикладных программистов
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных сер...
Тюним память  и сетевой стек в Linux: история перевода высоконагруженных  сер...Тюним память  и сетевой стек в Linux: история перевода высоконагруженных  сер...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных сер...
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
 
Internet Of Things: возможности Intel Galileo gen 2 и Intel Edison
Internet Of Things: возможности Intel Galileo gen 2 и Intel EdisonInternet Of Things: возможности Intel Galileo gen 2 и Intel Edison
Internet Of Things: возможности Intel Galileo gen 2 и Intel Edison
 
Netty jprof 2019_pdf
Netty jprof 2019_pdfNetty jprof 2019_pdf
Netty jprof 2019_pdf
 
введение в Gpu
введение в Gpuвведение в Gpu
введение в Gpu
 

More from PyNSK

Нейронные сети и Keras. Часть 1
Нейронные сети и Keras. Часть 1Нейронные сети и Keras. Часть 1
Нейронные сети и Keras. Часть 1PyNSK
 
Нейронные сети и Keras. Часть 2
Нейронные сети и Keras. Часть 2Нейронные сети и Keras. Часть 2
Нейронные сети и Keras. Часть 2PyNSK
 
Asyncio для процессинга распределенной базы данных
Asyncio для процессинга  распределенной базы данныхAsyncio для процессинга  распределенной базы данных
Asyncio для процессинга распределенной базы данныхPyNSK
 
Python для GameDev
Python для GameDevPython для GameDev
Python для GameDevPyNSK
 
Python инструменты для нагрузочного тестирования
Python инструменты для нагрузочного тестированияPython инструменты для нагрузочного тестирования
Python инструменты для нагрузочного тестированияPyNSK
 
Python, Django и корпоративные информационные системы
Python, Django и корпоративные информационные системыPython, Django и корпоративные информационные системы
Python, Django и корпоративные информационные системыPyNSK
 
Настрой контент под пользователя!
Настрой контент под пользователя!Настрой контент под пользователя!
Настрой контент под пользователя!PyNSK
 
Мой Python всегда со мной!
Мой Python всегда со мной!Мой Python всегда со мной!
Мой Python всегда со мной!PyNSK
 
Как и зачем можно создать DSL на Python
Как и зачем можно создать DSL на PythonКак и зачем можно создать DSL на Python
Как и зачем можно создать DSL на PythonPyNSK
 
Чем Python плох для стартапа?
Чем Python плох для стартапа?Чем Python плох для стартапа?
Чем Python плох для стартапа?PyNSK
 
Во внутренности Kivy
Во внутренности KivyВо внутренности Kivy
Во внутренности KivyPyNSK
 
Зоопарк python веб-фреймворков
Зоопарк python веб-фреймворковЗоопарк python веб-фреймворков
Зоопарк python веб-фреймворковPyNSK
 
Как Python Дайджест работает с внешней статикой
Как Python Дайджест работает с внешней статикойКак Python Дайджест работает с внешней статикой
Как Python Дайджест работает с внешней статикойPyNSK
 
Применение behave+webdriver для тестирования Web-проектов
Применение behave+webdriver для тестирования Web-проектовПрименение behave+webdriver для тестирования Web-проектов
Применение behave+webdriver для тестирования Web-проектовPyNSK
 
Ctypes в игровых приложениях на python
Ctypes в игровых приложениях на pythonCtypes в игровых приложениях на python
Ctypes в игровых приложениях на pythonPyNSK
 
Оптимизация производительности Python
Оптимизация производительности PythonОптимизация производительности Python
Оптимизация производительности PythonPyNSK
 
Python инструменты решения типичных задач
Python  инструменты решения типичных задачPython  инструменты решения типичных задач
Python инструменты решения типичных задачPyNSK
 
Мир Python функционалим с помощью библиотек
Мир Python  функционалим с помощью библиотекМир Python  функционалим с помощью библиотек
Мир Python функционалим с помощью библиотекPyNSK
 
JSON-RPC или когда rest неудобен
JSON-RPC или когда rest неудобенJSON-RPC или когда rest неудобен
JSON-RPC или когда rest неудобенPyNSK
 
TestRail. Некоторые возможности интеграции.
TestRail. Некоторые возможности интеграции.TestRail. Некоторые возможности интеграции.
TestRail. Некоторые возможности интеграции.PyNSK
 

More from PyNSK (20)

Нейронные сети и Keras. Часть 1
Нейронные сети и Keras. Часть 1Нейронные сети и Keras. Часть 1
Нейронные сети и Keras. Часть 1
 
Нейронные сети и Keras. Часть 2
Нейронные сети и Keras. Часть 2Нейронные сети и Keras. Часть 2
Нейронные сети и Keras. Часть 2
 
Asyncio для процессинга распределенной базы данных
Asyncio для процессинга  распределенной базы данныхAsyncio для процессинга  распределенной базы данных
Asyncio для процессинга распределенной базы данных
 
Python для GameDev
Python для GameDevPython для GameDev
Python для GameDev
 
Python инструменты для нагрузочного тестирования
Python инструменты для нагрузочного тестированияPython инструменты для нагрузочного тестирования
Python инструменты для нагрузочного тестирования
 
Python, Django и корпоративные информационные системы
Python, Django и корпоративные информационные системыPython, Django и корпоративные информационные системы
Python, Django и корпоративные информационные системы
 
Настрой контент под пользователя!
Настрой контент под пользователя!Настрой контент под пользователя!
Настрой контент под пользователя!
 
Мой Python всегда со мной!
Мой Python всегда со мной!Мой Python всегда со мной!
Мой Python всегда со мной!
 
Как и зачем можно создать DSL на Python
Как и зачем можно создать DSL на PythonКак и зачем можно создать DSL на Python
Как и зачем можно создать DSL на Python
 
Чем Python плох для стартапа?
Чем Python плох для стартапа?Чем Python плох для стартапа?
Чем Python плох для стартапа?
 
Во внутренности Kivy
Во внутренности KivyВо внутренности Kivy
Во внутренности Kivy
 
Зоопарк python веб-фреймворков
Зоопарк python веб-фреймворковЗоопарк python веб-фреймворков
Зоопарк python веб-фреймворков
 
Как Python Дайджест работает с внешней статикой
Как Python Дайджест работает с внешней статикойКак Python Дайджест работает с внешней статикой
Как Python Дайджест работает с внешней статикой
 
Применение behave+webdriver для тестирования Web-проектов
Применение behave+webdriver для тестирования Web-проектовПрименение behave+webdriver для тестирования Web-проектов
Применение behave+webdriver для тестирования Web-проектов
 
Ctypes в игровых приложениях на python
Ctypes в игровых приложениях на pythonCtypes в игровых приложениях на python
Ctypes в игровых приложениях на python
 
Оптимизация производительности Python
Оптимизация производительности PythonОптимизация производительности Python
Оптимизация производительности Python
 
Python инструменты решения типичных задач
Python  инструменты решения типичных задачPython  инструменты решения типичных задач
Python инструменты решения типичных задач
 
Мир Python функционалим с помощью библиотек
Мир Python  функционалим с помощью библиотекМир Python  функционалим с помощью библиотек
Мир Python функционалим с помощью библиотек
 
JSON-RPC или когда rest неудобен
JSON-RPC или когда rest неудобенJSON-RPC или когда rest неудобен
JSON-RPC или когда rest неудобен
 
TestRail. Некоторые возможности интеграции.
TestRail. Некоторые возможности интеграции.TestRail. Некоторые возможности интеграции.
TestRail. Некоторые возможности интеграции.
 

Питон в малине

  • 1. Питон в малине. Иван Бакланов vk: id15399925 email: ivan___b@mail.ru
  • 2. Кто я такой? Иван Бакланов - Всю жизнь в IT - Разработчик в Machineheads.ru - Люблю железо и python
  • 3. О чем доклад Raspberry Pi - доступный одноплатный компьютер с широкими возможности Расскажу и покажу: - Как появились одноплатные компьютеры - Где применяются одноплатники - Почему Raspberry Pi? - Примеры
  • 4. Как появились одноплатные компьютеры? Сначала было … производство
  • 5. Зачем появились одноплатные компьютеры? Обычные компы: - Дорогие - Пыльные - Неудобные - Большие - Прожорливые
  • 6. Зачем появились одноплатные компьютеры? Обычные компы: - Дорогие - Пыльные - Неудобные - Большие - Прожорливые Одноплатные: - Дешевые - Маленькие - Удобные - Быстро заменяемые - Мало потребляют
  • 8. Что можно сделать с одноплатниками? - Web server - Эмулятор приставки - Докер ферму - Видео регистратор
  • 9. Что можно сделать с одноплатниками? - Web server - Эмулятор приставки - Докер ферму - Видео регистратор - Умный дом - Голосовой помощник - Медиацентр - Трекер
  • 12. Как можно подключить периферию? Шины для периферии: - I2C - SPI - UART
  • 13. Пример #1 Работа с GPS модулем через UART (получаем гео-координаты)
  • 15. Работа с GSM модулем import time import serial ser = serial.Serial(port='/dev/ttyAMA0', baudrate=9600, timeout=1) while 1: try: data =str(ser.readline()) time.sleep(0.5) if "GPGGA" in data: print(“Found data:”, data) except Exception as e: break ser.close() Подключаемся к GSM модулю Опрашиваем модуль Выводим результат
  • 16. Пример #2 Работа с SPI: графический интерфейс
  • 18. Пример #2 import spidev spi = spidev.SpiDev() spi.open(0,0) set_data = [0xFF, 0xFF, 0xFF, 0xFF] spi.writebytes(set_data) data = spi.readbytes(len(set_data)) print(data) # ----------------------------------- import max7219.led as led device = led.matrix(cascaded = 4) device.orientation(90) device.show_message(" PyNSK #13!") Пакет https://github.com/doceme/py-spidev Пакет https://github.com/rm-hull/luma.led_matrix Отправляем байты в шину Получаем байты из шины Инициализация светодиодных матриц Настройка ориентации поворот на 90° Вывод текста в матрицу
  • 19. Пример #3 Работа с I2C: датчик бесконтактного термометра (делаем тепловизор)
  • 21. Работа с I2C import I2C I2C.require_repeated_start() sensor = I2C.Device(0x5A, busnum=1) data = sensor.readS16(0x07) temp = data * .02 - 273.15 Адрес датчика на шине Регистр в датчике Переводим температуру из Кельвинов в Цельсии Код пакета http://bit.ly/2nO1NYW
  • 22. С чего начать? 1. Освежить знания электроники 2. Выбрать одноплатный компьютер 3. Выбрать необходимые модули и купить 4. Собрать все это вместе 5. Настроить программное обеспечение 6. ... 7. Profit
  • 23. Полезные ссылки - https://www.raspberrypi.org - о самой плате - https://github.com/adafruit - набор пакетов - http://raspi.tv - много tutorial’ов - https://raspberrytips.nl - всякие советы - Книга “Электроника для начинающих”, Чарльз Платт - http://easyelectronics.ru/category/nachinayushhim - про электронику