Снова подрыгаем светодиодом, на этот раз красиво через GUI с кнопочками.

Медленно но верно дело двигается, постепенно подбираюсь к моменту, когда уже начну пилить какие то полноценные проекты на raspberry. Итак, до сих пор я использовал консольные приложения, хоть это и хорошо, но иногда все таки с гуйней удобнее. Ознакомившись вариантами, доступными для малины, долго сомневался, ибо хочется попробовать и gtk и wxwidget, но таки на текущий момент нужен был быстрый результат, поэтому Qt.

Честно говоря, в сети гуляет много пугающих гуайдов, но таки процесс установки оказался довольно прост

sudo apt-get install qt5-default
sudo apt-get install qtcreator

Собственно на этом установка закончена. Далее заходим в
Tools — Options — Build & Run — Compilers
Там добавляем путь до компилятора /usr/bin/arm-linux-gnueabihf-gcc-4.8 и отладчика /usr/bin/gdb

Все можно пилить свои приложения. Надо отметить, что на Raspberry Pi Model B, процесс компиляции да и работы в целом нельзя назвать комфортным, компиляция пустого проекта заняла почти 30 сек, так что это скорее пригодно для академического интереса.

И как повелось в последних статьях, нужно обязательно помигать светодиодом. Когда то до этого я уже тестил wiringPi, поэтому для разнообразия решил зачекать либу bcm2835. Юзать ее просто. Скачиваем архив с полезняшками.

wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.51.tar.gz

Далее распаковываем архив, компилим и устанавливаем.

tar zxvf bcm2835-1.51.tar.gz
cd bcm2835-1.xx
./configure
make
sudo make check
sudo make install

После этого создаем проект и добавляем на форму 2 кнопки включить и выключить. Добавляем библиотеку и обработчики кнопок — включить и выключить светодиод.

2017-01-22-150036_1024x768_scrot

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "bcm2835.h"
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    bcm2835_init();
    bcm2835_gpio_fsel(RPI_GPIO_P1_11, BCM2835_GPIO_FSEL_OUTP);
    ui->setupUi(this);
}
 
MainWindow::~MainWindow()
{
    delete ui;
}
 
void MainWindow::on_pushButton_clicked()
{
    bcm2835_gpio_write(RPI_GPIO_P1_11, HIGH);
}
 
void MainWindow::on_pushButton_2_clicked()
{
    bcm2835_gpio_write(RPI_GPIO_P1_11, LOW);
}

В итоге все сходу завелось без гемора, светодиод включается выключается. Пояснять в общем то особо нечего, кроме номеров светодиодов. Они здесь соответствуют распиновке на разъеме, что в принципе как по мне не удобно, ибо нужно дрыгать 17 ногой, а на разъеме она 11, неудобно.
2017-01-22-145701_1024x768_scrot

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Свежие записи
Последние комментарии
  • Загрузка...
Счетчик
Яндекс.Метрика