Ubuntu 20.04 驱动LCUS_HID USB继电器

最近买了个USB继电器模块,想要在Ubuntu Linux下进行设备操作。在淘宝店家找到了跟这个型号相似的通过串口命令驱动的模块,按照相同的协议试了下是可以工作的,就构建了这样一篇操作代码的说明。

1、设备外观

2、操作命令

3、连接电脑,查看设备

$ lsusb
Bus 001 Device 088: ID 5131:2007 
...省略其他...

$ ls /dev/hidraw*
/dev/hidraw0  /dev/hidraw1  /dev/hidraw2  /dev/hidraw3  /dev/hidraw4  /dev/hidraw5

4、访问代码

#include <linux/types.h>
#include <linux/input.h>
#include <linux/hidraw.h>

#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/stat.h>

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <fcntl.h>
#include <errno.h>

int find_usbrelay()
{
	int found = 0;
	int fd = -1;
	int result;
	int id;

	char path[32];
	
	const struct hidraw_devinfo usb_relay_info = 
	{
		.bustype = BUS_USB,
		.vendor = 0x5131,
		.product = 0x2007
	};

	struct hidraw_devinfo t_info;

	for(id = 0; !found; id++)	
	{
		sprintf(path, "/dev/hidraw%d", id);

		fd = open(path, O_RDWR | O_NONBLOCK);
		if (fd < 0)
			break;

		result = ioctl(fd, HIDIOCGRAWINFO, &t_info);
		if (result < 0)
			break;
	
		if ((t_info.bustype == usb_relay_info.bustype)
		&& (t_info.vendor == usb_relay_info.vendor)
		&& (t_info.product = usb_relay_info.product))
		{
			found = 1;
			break;
		}

		close(fd);
		fd = -1;
	}

	if (fd >= 0)
		close(fd);

	return found ? id : -1;
}

int set_usbrelay_onoff(int id, int ch, int onoff)
{
	int fd = -1;
	uint8_t cmd[8];

	char path[32];

	do
	{
		sprintf(path, "/dev/hidraw%d", id);

		fd = open(path, O_RDWR | O_NONBLOCK);
		if (fd < 0)
			break;

		cmd[0] = 0xA0;
		cmd[1] = ch;    // 1, 2
		cmd[2] = onoff; // 0, 1
		cmd[3] = cmd[0] + cmd[1] + cmd[2];

		write(fd, cmd, 4);

	} while(0);

	if (fd >= 0)
		close(fd);

	return 0;
}

int main(int argc, char *argv[])
{
	int result;
	int id;
	int ch;
	int onoff;
	char path[32];

	do
	{
		if (argc != 3)
		{
			printf("Usage:\n"
			"\tusbrelay ch on|off\n");
			break;
		}

		ch = atoi(argv[1]);
		if (strcmp(argv[2], "on") == 0)
			onoff = 1;
		else if (strcmp(argv[2], "off") == 0)
			onoff = 0;
		else
			break;

		id = find_usbrelay();
		if (id < 0)
		{
			printf("usbrelay not found\n");
			break;
		}

		set_usbrelay_onoff(id, ch, onoff);

	} while(0);

	return 0;
}

5、编译程序

gcc -o usbrelay main.c

6、运行程序,继电器有通断动作

$ sudo ./usbrelay 1 on
$ sudo ./usbrelay 1 off
$ sudo ./usbrelay 2 on
$ sudo ./usbrelay 2 off
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 1. 首先,需要确认您的USB摄像头型号,并在Ubuntu 20.04的官方软件仓库中查找是否有对应的驱动程序。 2. 如果没有官方驱动程序,可以尝试使用第三方驱动程序。可以在网上搜索相关的驱动程序,并按照其说明进行安装。 3. 如果您的USB摄像头是UVC(USB Video Class)兼容的,那么它应该可以直接在Ubuntu 20.04上使用,无需安装额外的驱动程序。 4. 如果您遇到了问题,可以尝试使用命令行工具lsusb来检查您的USB摄像头是否被正确识别,并使用dmesg命令查看系统日志以获取更多信息。 5. 如果您仍然无法解决问题,可以在Ubuntu的官方论坛或其他技术社区上寻求帮助。 ### 回答2: Ubuntu 20.04是开源操作系统的一种,通常用于服务器和个人电脑。如果你想使用USB Webcam,则需要安装驱动程序。要安装USB Cam驱动程序,在Ubuntu 20.04中,可以按照以下步骤进行操作: 第一步:确保你的系统为最新的版本,使用命令sudo apt-get update进行系统更新,确保所有软件包都为最新版本。 第二步:连接USB Cam到Ubuntu 20.04操作系统中,检查该设备是否被正确检测到。您可以使用dmesg命令来验证设备是否被系统识别,并且在/dev目录下生成设备节点文件。 第三步:安装v4l-utils工具,这是一个针对video4linux设备的一个非常实用的功能性集成工具包。使用命令sudo apt-get install v4l-utils进行安装。 第四步:在终端窗口中使用lsusb命令列出USB Cam的详细信息以及它的厂商ID和设备ID。 第五步:根据USB Cam的厂商ID和设备ID,在Internet上查找或下载相应的驱动程序,并将其安装到Ubuntu 20.04操作系统中。安装驱动程序需要使用命令sudo apt-get install,根据具体的安装要求进行相关安装。 第六步:在命令行中启动驱动程序。如果一切顺利,USB Cam将开始工作,并可以在Ubuntu 20.04中使用。 总之,安装USB Cam驱动程序需要具备一定的Linux操作系统知识和技能。如果您遇到任何问题,可以考虑寻求Linux专家或技术人员的帮助。 ### 回答3: Ubuntu 20.04作为一款开源及免费操作系统,其在视频捕捉方面应用广泛,可以使用USB摄像头(usb_cam)作为输入设备。在Ubuntu中安装USB_CAM驱动需要以下步骤: 第一步: 安装依赖项 安装依赖项保证我们需要的工具和库都能够被正确安装和调用 sudo apt-get update sudo apt-get install ros-*-usb-cam sudo apt-get install ros-*-image-pipeline 第二步:将USB摄像头插入电脑并测试 在安装usb_cam驱动之前,我们需要测试一下USB摄像头是否能够在Ubuntu系统中正常工作。使用以下指令安装VLC媒体播放器和v4l-utils工具 sudo apt-get install vlc v4l-utils 然后使用命令行运行以下指令 vlc v4l2:///dev/video0 如果摄像头能够顺利工作,我们可以看到摄像头捕捉的视频画面。在此基础上我们可以安装usb_cam驱动。 第三步:下载和配置驱动 1.创建一个新的工作空间并进入该工作空间 以下指令将在home目录中创建一个新的catkin工作空间 cd ~ mkdir -p catkin_ws/src cd ~/catkin_ws/src 2.从Github上克隆usb_cam代码 git clone https://github.com/ros-drivers/usb_cam.git 3.编译源码并安装 在工作空间中使用以下命令来编译 cd .. catkin_make cv_bridge或其他与它相关的软件包可通过此处编译。 4.设置摄像头参数 在启动摄像头节点之前,我们需要使用roslaunch文件配置不同的参数 roslaunch usb_cam usb_cam-test.launch 您可以在此文件中更改一些参数,例如分辨率或帧速率 5.启动usb_cam节点 使用以下命令启动usb_cam节点 roslaunch usb_cam usb_cam.launch 如果输出结果包含以下语句,表示USB_CAM已经成功启动 publishing the camera on /usb_cam/image_raw 在此基础上你应该能够通过rosbag_info topic获取到摄像头的Image和CompressedImage,这便可以作为更进一步的工作。 以上便是在Ubuntu 20.04系统安装usb_cam驱动的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值