【XR806开发板试用】XR806简单使用GPIO命令通过继电器远程控制其它开发板

一直关注极术社区,参加过社区的好几个活动,这次在微信群得知有开发板使用活动,果断申请试用。一来想借此学习了解鸿蒙系统,再者学习工作中也确实会用到一些小工具。
在这里插入图片描述

之前因工作中因自动化测试需要和远程控制测试板子需要(重启板子和切换不同启动模式),买了一块树莓派和继电器连线来控制开发板,如下图。树莓派上可以直接运行python脚本,使用起来确实很方便,但其实只用到了树莓派上基本的GPIO读写功能,确实有点“大材小用”。用XR806来替换树莓派,发现使用起来也非常简单,也是几条命令就可以解决了。
在这里插入图片描述

  1. 环境搭建
    代码获取,编译和烧录详见论坛其它攻略,本次试用只用到几个命令不需要改任何代码,因Win和Linux环境不同,涉及终端换行显示混乱的问题了,下面是MobaXterm上的设置方法。
    在这里插入图片描述

MobaXterm显示问题解决

1 Setting->Configuration->Terminal->Terminal features 取消Paste using right-click
2 终端内右键选择"Change Terminal Settings"
3勾选"Implicit CR in every LF"
在这里插入图片描述

  1. 简单实验GPIO21驱动现成LED指示灯
    从XR806原理图上看到,J1上的pin6脚是GPIO口已经默认连接上了一个LED灯,只需要控制这个GPIO口的输出就可以控制LED灯的灯亮和灯灭。

在这里插入图片描述

下面是XR806开发板启动后的默认界面,其已经集成了许多实用的命令,集中就包括控制GPIO的命令。和树莓派一样,操作一个GPIO只需要以下几个简单的步骤:

  1. 激活或初始化GPIO:
    命令hm iot gpio init id=xx
  2. 设置GPIO作为输入/输出口
    命令hm iot gpio setdir id=xx dir=input/output
  3. 设置GPIO高低电平:
    命令hm iot gpio setoutputval id=xx v=0/1
  4. 释放GPIO
    命令hm iot gpio deinit id=xx

控制LED的命令如下:

$ hm iot gpio init id=21
$ TGpioInit port0, pin21
$ CK> 200 OK

$ hm iot gpio setdir id=21 dir=output
$ CK> 200 OK

$ hm iot gpio setoutputval id=21 v=1
<ACK> 200 OK

$ hm iot gpio setoutputval id=21 v=0
<ACK> 200 OK

在这里插入图片描述

  1. GPIO控制继电器
    因使用的是2路继电器分别控制控制板子的上下电和不同的启动模式,需要z占用XR806上的两个GPIO口作为输出电平使用, 另外需要连接电源线,所以选择J1上的GPIO引脚2和3作为继电器的控制信号, J2上的引脚8和9用来供电。本来继电器工作电压是5V的,但XR806的GPIO外部接口只能提供3.3V的电压,不过还是可以继续使用;市面上也有3.3V的继电器。
    在这里插入图片描述

控制命令和上面一样,GPIO初始化和设置input/output后,通过设置高低电平就可以控制继电器了。

$ hm iot gpio init id=12
$ TGpioInit port0, pin12
$ CK> 200 OK

$ hm iot gpio init id=13
$ TGpioInit port0, pin13
$ CK> 200 OK

hm iot gpio setdir id=12 dir=output

hm iot gpio setdir id=13 dir=output

hm iot gpio setoutputval id=12 v=1
hm iot gpio setoutputval id=12 v=0

hm iot gpio setoutputval id=13 v=1
hm iot gpio setoutputval id=13 v=0

在这里插入图片描述

控制继电器和点亮LED的操作效果相同:
在这里插入图片描述

  1. 脚本和远程控制
    TBD.
    后续写个脚本来控制,另外WIFI设置好后,再通过远程来控制。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/412688.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ansible group模块 该模块主要用于添加或删除组。

目录 创建组验证删除组验证删除一个不存在的组 常用的选项如下&#xff1a; gid  #设置组的GID号 name  #指定组的名称 state  #指定组的状态&#xff0c;默认为创建&#xff0c;设置值为absent为删除 system  #设置值为yes&#xff0c;表示创建为系统组 创建组 ansib…

32. 【Linux教程】Linux 修改用户

前面小节介绍了如何添加 Linux 系统用户、删除 Linux 系统用户&#xff0c;本小节介绍如何修改 Linux 系统用户相关的信息。 1. 用户修改相关命令 下面列举了一些修改用户信息相关的命令&#xff1a; 命令名称功能与作用描述usermod修改用户的字段值&#xff0c;并且可以指定…

同源不同页面之间的通信,SharedWorker使用

同源不同页面之间的通信&#xff0c;SharedWorker使用 描述实现结果 描述 同源不同页面之间的通信&#xff0c;使用SharedWorker&#xff0c;或者使用全局方法通信&#xff0c;这里使用SharedWorker来实现 mdn地址&#xff1a;https://developer.mozilla.org/zh-CN/docs/Web/A…

谷歌Gemini又陷舆论风波;AI虚拟女友恋爱指南;高效提示词必学的两个新语法;LLM超超超长资源清单 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f251; 谷歌 Gemini 每次发布大模型必曝「丑闻」&#xff1a;高标准严要求&#xff1f;还是…… https://www.marketwatch.com/story/google-…

机器学习和可视化还能一起这样用?Python教你全搞定

今天这篇推文&#xff0c;我们继续空间数据可视化的最后一个系列-类别插值(categorical-spatial-interpolation) 可视化绘制的推文教程&#xff0c;这期我们使用Python进行绘制&#xff0c;涉及的知识点如下&#xff1a; sklearn.KNeighborsClassifier()机器学习应用 plotnine…

人机界面和三菱PLC之间以太网通信

本文主要描述人机界面WinCC如何与三菱Q系列PLC进行以太网通讯&#xff0c;主要介绍了CPU自带以太网口和扩展以太网模块两种情况以及分别使用TCP、UDP两种协议进行通讯组态步骤及其注意事项。 一、 说明 WinCC从V7.0 SP2版本开始增加了三菱以太网驱动程序&#xff0c;支持和三…

芯课堂 | 上位机快速上手指南

​01.工具准备 1、硬件&#xff1a;SWMDM-QFP100-34SVEA3驱屏板TFT屏800x480&#xff08;触摸IC-GT911&#xff09;Jlink&#xff1b; 2、PC端&#xff1a;上位机keil。 02.实验现象 通过屏幕上的按钮控制uart发送。 03.创建文件工程 1、可以通过论坛 https://bbs.synwit.cn 获…

C# paddlerocrsharp识别身份证号

https://gitee.com/raoyutian/paddle-ocrsharp 项目搭建 新建控制台项目 安装paddleocrsharp 下载训练好的模型 解压放到对应的文件夹中&#xff0c;都修改为如果较新则复制 编写代码OCRHelper.cs using PaddleOCRSharp;namespace OCRTest02;public class OCRHelper {//…

JVM跨代引用垃圾回收

1. 跨代引用概述 在Java堆内存中&#xff0c;年轻代和老年代之间存在的对象相互引用&#xff0c;假设现在要进行一次新生代的YGC&#xff0c;但新生代中的对象可能被老年代所引用的&#xff0c;为了找到新生代中的存活对象&#xff0c;不得不遍历整个老年代。这样明显效率很低…

代码随想录|学习工具分享

工具分享 画图 https://excalidraw.com/ 大家平时刷题可以用这个网站画草稿图帮助理解&#xff01;如果看题解很蒙或者思路不清晰的时候&#xff0c;跟着程序处理流程画一个图&#xff0c;90%的情况下都可以解决问题&#xff01; 数据结构可视化 https://www.cs.usfca.edu/…

vscode连接服务器与FileZilla上传到服务器

https://www.cnblogs.com/qiuhlee/p/17729647.html&#xff08;这个是vscode连接服务器&#xff09; 主机&#xff1a;就是服务器的主机号 使用者名称&#xff1a;比如ALmax的用户名 密码&#xff1a;比如ALmax的密码

(十八)devops持续集成开发——使用docker安装部署jenkins流水线服务

前言 本节内容介绍如何使用docker容器来部署安装jenkins流水线服务。关于docker容器的安装本节内容不做介绍。请读者提前安装。 正文 ①使用docker查找jenkins官方镜像 ② 拉取jenkins官方镜像jenkins/jenkins&#xff0c;选择一个最新稳定版本&#xff0c;避免一些插件不兼…

Android Jni的介绍和简单Demo实现

Android Jni的介绍和简单Demo实现 文章目录 Android Jni的介绍和简单Demo实现一、JNI的简单介绍JNINDKJni的开发背景&#xff1a;**JNI在 Android 开发里的主要应用场景&#xff1a;** 二、JNI的简单Demo1、Demo主要界面和效果展示2、CMake编译加载文件add_library 指令的加载库…

[算法沉淀记录] 排序算法 —— 堆排序

排序算法 —— 堆排序 算法基础介绍 堆排序&#xff08;Heap Sort&#xff09;是一种基于比较的排序算法&#xff0c;它利用堆这种数据结构来实现排序。堆是一种特殊的完全二叉树&#xff0c;其中每个节点的值都必须大于或等于&#xff08;最大堆&#xff09;或小于或等于&am…

JVM相关面试题

【面试题一】谈谈JVM内存模型 JVM内存区域的划分&#xff0c;之所以划分是为了JVM更好的进行内存管理。就好比一间卧室&#xff0c;这块放床&#xff0c;这块放个电脑桌&#xff0c;每块地方各自有各自的功能&#xff0c;床用来睡觉&#xff0c;电脑桌用来办公打游戏。而JVM划…

SpringBoot快速入门(黑马学习笔记)

需求 需求&#xff1a;基于SpringBoot的方式开发一个Web应用&#xff0c;浏览器发起请求/hello后&#xff0c;给浏览器返回字符串"Hello World~"。 开发步骤 第一步&#xff1a;创建SpringBoot工程项目 第二步&#xff1a;定义HelloController类&#xff0c;添加方…

【Python_11】Python基础语法(数据容器之字典详解)

文章目录 概述Python中的数据容器字典1.1 定义字典1.2取值与改值1.3 遍历字典1.3.1 遍历字典的key1.3.2 遍历字典的值1.3.3 遍历字典键值对1.3.4 sorted()函数排序 1.4 字典常用方法 概述 数据容器是用来存储和组织数据的数据结构和对象。可以以不同的方式存储和操作数据&…

主数据管理是数字化转型成功的基石——江淮汽车案例分享

汽车行业数字化转型的背景 在新冠疫情导火索的影响下&#xff0c;经济全球化政治基础逐渐动摇。作为全球最大的汽车市场&#xff0c;我国的汽车市场逐渐由增量转为存量市场。 在数字化改革大背景下&#xff0c;随着工业4.0时代的到来&#xff0c;江淮汽车集团力争实现十四五数…

goland配置新增文件头

参考&#xff1a; goland函数注释生成插件 goland函数注释生成插件_goland自动加函数说明-CSDN博客 GoLand 快速添加方法注释 GoLand 快速添加方法注释_goland批量注释-CSDN博客 goland 如何设置头注释&#xff0c;自定义author和data goland 如何设置头注释&#xff0c;自定…

苹果上架App被拒绝的原因

苹果上架App被拒绝的原因有很多种&#xff0c;主要包括以下几个方面&#xff1a; 1.功能问题&#xff1a;苹果认为你的App存在功能问题&#xff0c;不符合App Store的要求。比如&#xff0c;你的App可能存在漏洞&#xff0c;会影响用户体验或者安全性&#xff0c;或者涉及到隐…