使用Clion进行树莓派的远程开发-C语言
这里介绍使用Clion作为树莓派C/C++编程方式的远程开发环境。
1、设置1.1、软件下载和安装下载Clion并安装。
1.2、软件配置(1)树莓派端需要下载CMake工具
1sudo apt install cmake
(2)Clion环境配置 安装完成后在Clion中配置:
选择settings->Tools->SSH Configurations,在右侧选择 “+” 添加树莓派SSH连接,完成后可以点击 Test Connection测试是否成功:
选择settings->Build,Execution,Deployment->Toolchains,在右侧点击 “+“ 添加一个 Remote Host选项:
填写Name,并在Credentials中选择上一步配置的SSH连接,等一会儿后看到CMake、make等工具检测到:
选择 CMake 项,在右侧Toolchain中选择上一步配置的 cmake:
点击OK按钮完成配置
2、使用这里使用树莓派wiringPi库来进行LED操作,介绍如何在本机开发远程执行的步骤。
2.1、新建项目新建项 ...
树莓派刷机-使用官方刷机工具
这里以带有MMC的树莓派CM4为例,使用树莓派官方的工具Raspberry Pi Imager 进行系统烧写工作。
1、准备工作1.1、软件
树莓派系统
网址为 https://www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit 下载最新版的 Raspberry Pi OS with desktop 系统文件。
树莓派官方烧录工具 Raspberry Pi Imager
网址为 https://www.raspberrypi.org/software/ 该工具下载后进行安装。
1.2 硬件
电脑(Windows10)
树莓派CM4板
Type-C 线
网线(可选,有线连接需要,如果WIFI连接则不需要)
2、安装系统2.1 进入boot烧录模式
先用跳线帽将BOOT脚跳到BOOT模式
连接电脑和树莓派的USB Type-C 线
在电脑的设备管理器出现BCM2711 Boot设备
2.2 烧写系统
在电脑上执行rpiboot工具,出现如下图:
...
使用PyCharm进行树莓派的远程开发-python
这里介绍使用PyCharm作为树莓派的远程开发环境。
1、设置1.1、PyCharm软件安装需要Python IDE for professional 版本,它拥有远程调试功能:Remote development capabilities。
1.2、配置环境在Settings-> Python Interpreter中,点击Add添加一个Python Interpreter: 选择SSH Interpreter ,设置好树莓派的SSH信息: 填写用户名pi的密码: 设置好树莓派上python的路径,如下: 完成配置:
2、使用2.1、新建项目新建项目,填写好项目路径,并设置interpreter如下:
Interpreter 选择上一步添加的SSH Interpreter
Remote Project Location 选择树莓派上的路径用于存放项目代码
2.2、项目设置在Settings->Build,Execution,Deployment-> Deployment下,设置好Connection、Mappings:
2.3、添加源代码文 ...
QtCreator插件框架学习06-添加自己的插件
在之前搭建的框架基础上添加一个自定义插件,该插件可以和之前的核心插件Coreplugin的设置接口和页面显示接口进行联系起来,以扩展程序的功能。
1、说明1.1、实现功能在之前搭建的插件框架基础上添加自己的插件,这个插件为一个简单的示例插件,仅显示一个简单的界面。
1.2、实现方法
这个插件的显示界面通过核心插件的页面接口进行添加;
插件的设置界面通过核心插件的设置接口进行添加;
2、具体实现2.1、插件主界面12345678910111213#ifndef HELLOPAGE_H#define HELLOPAGE_H#include <coreplugin/fancypage.h>class HelloPage : public Core::FancyPage{public: HelloPage();};#endif // HELLOPAGE_H
界面继承自核心插件页面接口 FancyPage 类,然后构造函数中实现界面:
12345678910111213141516171819202122232425262728293031323 ...
QtCreator插件框架学习05-扩展核心插件页面接口
在QtCreator中可以显示多个页面,它通过左边的按钮进行页面切换,这里就扩展核心插件的页面接口,使它可以通过插件方式添加页面,并通过左侧的按键进行页面切换。
1、页面接口1.1、FancyPage页面类创建 FancyPage 类型,头文件如下:
123456789101112131415161718192021222324252627282930313233343536#ifndef FANCYPAGE_H#define FANCYPAGE_H#include <QObject>#include "core_global.h"#include <QPushButton>namespace Core {class CORE_EXPORT FancyPage : public QObject{ Q_OBJECTpublic: explicit FancyPage(QObject *parent = nullptr); QPushButton *pageButton(); QWidget *page ...
QtCreator插件框架学习04-扩展核心插件设置接口
之前的核心插件比较简单,仅仅用于显示一个主窗口,这里扩展其功能,使它可以与其他插件进行联系起来。下面就先实现一个设置扩展功能:
一个设置界面接口,其他插件可以通过这个接口添加自己的设置界面;
1、设置界面接口该接口管理所有的设置界面,由IOptionPage接口类和IOptionPageWidget接口类组成,即使用QtCreator源码中coreplugin插件下Dialogs文件夹下的实现源码。
1.1、IOptionPage/IOptionPageWidget接口直接使用QtCreator的CorePlugin文件夹下的Dialogs/IOptionPage源码,其他设置界面则继承该接口,并在对应的插件初始化时候实例化对象。
2、系统设置界面2.1、创建系统设置界面SystemSettings该设置界面为主程序通用设置界面,如语言选择、字体设置、主题颜色设置等,实现方法如下:
头文件 systemsettings.h:
1234567891011121314#ifndef SYSTEMSETTINGS_H#define SYSTEMSETTINGS_H#inclu ...
树莓派添加开机自启动python脚本程序
在树莓派上添加开机执行python脚本的程序,以下为用LED测试脚本来演示说明。
1、环境
树莓派为raspberry pi cm4;
2、步骤2.1、写python脚本如下为LED闪烁的测试脚本程序:
1234567891011121314151617# !/usr/bin/pythonimport RPi.GPIO as GPIOimport timeimport osimport sysled_pin = 26GPIO.setmode(GPIO.BCM)GPIO.setup(led_pin, GPIO.OUT)while True: GPIO.output(led_pin,1) time.sleep(0.2) GPIO.output(led_pin,0) time.sleep(0.2)
将上述文件保存到 /home/pi/led.py 。
2.2、写启动脚本一个脚本示例如下:
123456789101112131415161718192021222324252627#!/bin/bash # /etc/init.d/led### BEGIN INI ...
QtCreator插件框架学习03-核心插件
1、核心插件1.1、插件pro文件12345678910111213141516171819202122include(../../plugins.pri)QT += widgetsDEFINES += COREPLUGIN_LIBRARYTARGET = corepluginLIBS += \ -lextensionsystemHEADERS += \ coreplugin.hSOURCES += \ coreplugin.cppDISTFILES += \ coreplugin.json
这里只实现一个简单的插件,该插件依赖 extensionsystem,因此LIBS添加extensionsystem库; coreplugin.json 文件为插件的描述文件,内容如下:
1234567891011{ "Name" : "CorePlugin", "Version" : "0.0.1" , "Compa ...
QtCreator插件框架学习02-main入口
1、main主函数1.1、QApplication对象在main函数中首先实例化 QApplication 对象 a , QApplication 管理GUI程序的控制和设置,它是整个应用程序的唯一一个实例,其对象指针可以通过 instance() 获取到,和 qApp 宏这个全局变量等效。主要职责包括:
用户桌面设置;
事件处理;
命令行参数处理;
GUI外观定义;
本地化如语言设置;
主义处理基本的初始化操作,因此在创建其他UI对象之前必须先创建QApplication对象。
1.2、main函数主要步骤12345678910111213141516171819202122#include <QApplication>int main(int argc, char *argv[]){ QApplication a(argc,argv); a.setApplicationName("appName"); a.setApplicationDisplayName("appDisname" ...
QtCreator插件框架学习01-目录结构
1、代码目录结构1.1、主要的文件结构如下:12345678910111213141516171819202122232425262728293031323334353637383940414243_ ││ MonkeyQDK.pri│ MonkeyQDK.pro├───build│ ├───bin│ │ │ extensionsystem.dll│ │ │ MonkayQDK.exe│ │ │ utils.dll│ │ │ │ │ └───plugins│ │ coreplugin.dll│ │ │ └───libs│ coreplugin.dll│ extensionsystem.dll│ libcoreplugin.a│ libextensionsystem.a│ libutils.a│ utils.dll│ └───sr ...