Baking Pi – Разработка операционной системы

Опубликовано lamazavr - чт, 05/19/2016 - 14:53

Недавно мне попался занятный курс Alex Chadwick'а из Кембриджа.
Представляю Вашему вниманию вольный перевод уроков данного курса.
Обратите внимание, что оригинальный курс не адаптирован для Raspberry Pi B+, 2 и 3. В свою очередь для я приведу код для B+.
Надеюсь будет полезно!

Работа с последовательным портом на С в Linux

Опубликовано lamazavr - чт, 05/05/2016 - 17:22

Я уже писал о том, как работать с последовательным портом в Windows. Теперь созрела необходимость написать программу для обмена данными по последовательному каналу.
Работать с последовательным портом в Linux несколько сложнее чем в Windows.

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

I2C драйвер в Linux

Опубликовано lamazavr - ср, 05/04/2016 - 11:07

С I2C в Linux вполне можно работать из пространства пользователя. Тем не менее это не очень удобно. Весьма удобнее и правильнее сделать модуль ядра.

Для создания драйвера в ядре Linux предусмотрены вспомогательные макросы. Если Вам не нужно ничего выполнять при инициализации модуля, можно воспользоваться макросом module_i2c_driver.

Подключение RTC ds1307 к raspberry pi при помощи Device Tree

Опубликовано lamazavr - вт, 04/19/2016 - 12:18

Недавно писал о том как работать с i2c устройством из пространства пользователя в linux.
В качестве пациента у мня raspberry pi b+ и часы реального времени ds1307. В предыдущей статье описан метод работы с устройством при помощи i2c-dev, но в Linux уже есть драйвер для этих часов (drivers/rtc/rtc-ds1307.c).
Нам нужно только скормить устройство драйверу и установить время.

Для указания системе о наличии нового устройства можно воспользоваться командой:

I2c в Linux из пространства пользователя

Опубликовано lamazavr - сб, 04/16/2016 - 13:12

Наконец дошли руки до i2c в raspberry pi. Шина i2c в Linux доступна из ядра и из пространства пользователя благодаря модулю i2c-dev.
Как работать с i2c устройствами в linux рассмотрим на примере часов реального времени DS1307.
У меня модуль Tiny I2C Clock.

Стоит модуль копейки, но мне с ним очень не фортануло. Получил бракованную плату. Под батарейкой 3 закороченные дорожки.

Монитор последовательного порта для Windows

Опубликовано lamazavr - вс, 04/10/2016 - 19:48

При разработке любого устройства, которое обменивается данными очень удобно просматривать эти данные в "сыром" виде. В случае последовательного порта - в виде дампа переданных и принятых байт.
На данный момент по для подобных операций очень не много, а бесплатного и вовсе нет. Кроме того время идет и программа которой я пользовался на Windows XP больше не работает на 7.

Что делать если не удалось получить http://dl.google.com/linux/chrome/deb/dists/stable

Опубликовано lamazavr - вс, 03/13/2016 - 20:58

Все пользователи Google Chrome с недавних пор не могут обновить ubuntu!

W: Не удалось получить http://dl.google.com/linux/chrome/deb/dists/stable/Release  Невозможно найти ожидаемый элемент «main/binary-i386/Packages» в файле Release (некорректная запись в sources.list или файл)

Если Вы при обновлении командой:

sudo apt-get update 

Видите сообщение:

То Вы среди них! Что же делать? В чем же дело?

Установка OpenCV 3 в Windows

Опубликовано lamazavr - пн, 02/29/2016 - 16:03

Большинство мануалов в интернетах предлагают собрать opencv самостоятельно. Это процесс не быстрый да и требует некоторых умений.
Гораздо проще воспользоваться готовой сборкой библиотеки.
Обратите внимание, что так Вы не сможете использовать статическую библиотеку. В поставке для Windows таковые отсутствуют. Их можно только собрать самостоятельно.
Но какая нам разница. Мы будем пользоваться собранной DLL, которую не нужно собирать.

Как заставить не скрываться меню в Unity

Опубликовано lamazavr - вс, 02/28/2016 - 11:40

Пользователи ubuntu наверное знают о том, что все меню в Unity перенесены на верхнюю панель.
Это впринципе удобно, если бы не одно но (ну вот почему всегда все портят).
Это меню скрывается и оставляет вам голую панель. Да да, свободное место, которые никто не заказывал, а показано оно будет только при наведении на него указателя. Зачем? Дай Бог чтобы хоть в Canonical об этом знали.

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

Функция print в Python 2.7

Опубликовано lamazavr - пн, 02/22/2016 - 12:25

Как Вы наверное знаете, в Python 3 оператор print был заменен одноименной функцией.
И это очень удобно, например для вывода в консоль без символа конца строки, или со своим символом.
Оказывается можно использовать функцию print и в Python 2.7.
Для этого импортируем её:

from __future__ import print_function

Теперь для вывода чисел через запятую в одну строку:

Tags