首页 > 其他分享 >小车轮子测试(I2C)

小车轮子测试(I2C)

时间:2024-07-15 09:51:57浏览次数:6  
标签:I2C 车轮子 HwHiAiUser dev chown 测试 gpio i2c

I2C总线是PHILIPS公司推出的一种在电子通信控制领域常用的串行通信总线,是一种简单、双向 通信、二线制、同步的串行总线,具有连接线少、控制简单、通信速率高等优点。

端口检测

cd /dev
ls

I2C读写操作

使用i2cdetect命令检测i2c总线

i2cdetect -l

如果红色部分出现unknown,则大概率为硬件问题,需要检查线路的连接

具体读写操作见附录

运行测试代码

配置环境

sudo vim /etc/rc.local

#在exit0前增加如下指令后,重启运行环境。
echo 504 >/sys/class/gpio/export
echo 444 >/sys/class/gpio/export
chown -R HwHiAiUser /sys/class/gpio/gpio444
chown -R HwHiAiUser /sys/class/gpio/gpio504
chown -R HwHiAiUser /sys/class/gpio/gpio444/direction
chown -R HwHiAiUser /sys/class/gpio/gpio504/direction
chown -R HwHiAiUser /sys/class/gpio/gpio444/value
chown -R HwHiAiUser /sys/class/gpio/gpio504/value
chown -R HwHiAiUser /dev/i2c-1
chown -R HwHiAiUser /dev/i2c-2
chown -R HwHiAiUser /dev/ttyAMA0
chown -R HwHiAiUser /dev/ttyAMA1
usermod -aG HwHiAiUser HwHiAiUser

#重启使用指令sudo reboot,直接拔插电源线容易损坏镜像!!!
cd $HOME/samples/cplusplus/level1_single_api/5_200dk_peripheral/i2c/out
./main
#观察现象(车轮转动,运行环境的命令行中打印出运行结果)

附录1

用i2cdump查看器件所有寄存器的值

#查看i2c-1的0x20器件的所有寄存器值:
i2cdump -f -y 1 0x20
#i2c_num: I2C控制器编号
#device_addr: 外围设备地址
#reg_addr: 外围设备寄存器的地址
#value: 写外围设备寄存器操作的数据

用i2cset设置单个寄存器值

# i2cset -f -y <i2c_num> <device_addr> <reg_addr> <value>
#设置i2c-1上0x20器件的0x05寄存器值为0x01
i2cset -f -y 1 0x20 0x05 0x01

用i2cget读取单个寄存器值

#i2cset -f -y <i2c_num> <device_addr> <reg_addr>
i2cget -f -y 1 0x20 0x05

打开 I2C 总线对应的设备文件,获取文件描述符

fd = open("/dev/i2c-2", O_RDWR);
如果fd的返回值为-1,则代表有问题,可能解决步骤如下:
ls -l /dev/ttyAMA0
#如果该设备节点存在并且具有相应的权限,表示该串口设备已被占用。如果没有显示任何结果,表示该串口设备当前没有被占用。

#执行下面的命令查看是被哪个进程占用了
fuser /dev/ttyAMA0

#查看这个进程的信息
ps 1423

#执行以下命令以停止终端登录程序:
sudo systemctl stop [email protected]

#执行以下命令以禁用终端登录程序的自动启动:
sudo systemctl disable [email protected]

附录2

小车轮子不转问题检测顺序

1、检测电池供驱动板的电压,要保证在10v以上的电压才能驱动电机。
2、检测驱动板上12伏的电池端输入以及驱动板上3.3V、5V电压输出是否正常。
3、通过上位机I2C发送数据给驱动板,观察是否出现发送失败(发送失败的可能有多种,我们遇
到的只有两种:一种是摄像头反接,导致3.3V与GND短接导致了发送失败;另一种是I2C的发送地
址错误,需要手动修改地址),如果没有出现发送错误的问题正常可以排除Atlas开发板的问题了。
4、在上位机给驱动板发送运动指令后,测量电机的两相电源输入电压,如果为0,则可粗定问题
在驱动板,反之,如果电压有几伏的电压,那么可以确定是电机损坏。
5、正常问题均会出现在电机或者驱动板上,如果这两个元件排除故障后,可以通过示波器接I2C
的SDA信号线,观察波形,如果没有波形则应该粗定问题出现在Atlas开发板,如果要确定问题所在,
还可以通过更换别人的开发板来尝试一下。到这里基本就完成了信号传输到驱动模块的所有问题检
测,基本上能定位所有的故障。

标签:I2C,车轮子,HwHiAiUser,dev,chown,测试,gpio,i2c
From: https://www.cnblogs.com/qzt2cool/p/18302502

相关文章

  • 快手可图环境搭建&推理测试
    引子快手开源的东西还是第一次接触,看量子位推的软文,还是很惊艳的。那就自己上手看看了。OK,那就让我们开始吧。一、模型介绍可图大模型是由快手可图团队开发的基于潜在扩散的大规模文本到图像生成模型。Kolors在数十亿图文对下进行训练,在视觉质量、复杂语义理解、文字生成(中英......
  • 无GPU情况下对cuda程序进行功能性测试
    安装cuda-toolkit,在没有gpu的情况下,不能安装其中的cudadriver,不勾选,装cudatoolkit即可。安装gpgpu-sim程序。gpgpu的仿真程序,目前仅仅支持cuda11。而cuda11最高支持的ubuntu为20.0。但在22.0的ubuntu上下载cuda11,也可以编译。参看gpgpuREADME.md编译,过程中报错如下,可去掉......
  • 【Playwright+Python】手把手带你写一个自动化测试脚本
     如何使用代理方式打开网页 在playwright.chromium.launch()中传入proxy参数即可,示例代码如下:1、同步写法:fromplaywright.sync_apiimportsync_playwrightproxy={'server':'http:/127.0.0.1:8080'}defrun():withsync_playwright()asp:......
  • 渗透测试学习--HTML基础-02-form表单
    form表单form表单此处因用户了菜鸟教程网站form部分内容[HTML表单|菜鸟教程(runoob.com)]()登录用户名:<inputtype="text"id="name"name="name"required><br><!--密码输入框--><labelfor="password">密码:</label><......
  • 软件测试——缺陷编写
    缺陷编写以以前编写的区号的测试用例来说,假如有一个验证程序,验证完得到以下结果可以发现有两条不能通过的案例(标红)缺陷编写缺陷标题想要达到的效果:知道问题在哪缺陷标题分析:测试数据+执行结果(预期)测试数据+执行结果(需求)测试数据+预期+实际缺陷的跟踪流程提交缺陷......
  • Doping:使用精心设计的合成数据测试和评估异常检测器的技术
    在这篇文章中,我们将探讨测试和评估异常检测器的问题(这是一个众所周知的难题),并提出了一种解决方案被称为“Doping”方法。使用Doping方法,真实数据行会被(通常是)随机修改,修改的方式是确保它们在某些方面可能成为异常值,这时应该被异常检测器检测到。然后通过评估检测器检测Doping记录......
  • Invicti v24.7.0 for Windows - Web 应用程序安全测试
    Invictiv24.7.0forWindows-Web应用程序安全测试InvictiStandardv24.7.0-9July2024请访问原文链接:https://sysin.org/blog/invicti/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgInvicti是一种自动化但完全可配置的Web应用程序安全扫描程序,使您能够......
  • VPS测试脚本,网络线路,路由测试,流媒体服务器测试脚本
    ​收集了一些服务器测试脚本,测试性能,网络以及解锁Netflix等服务。记录收集一下,特此记录。 yabs测试脚本wget-qO-yabs.sh|bash老外比较爱用的服务器性能测试脚本。一键查看独服硬盘时间wget-qhttps://github.com/Aniverse/A/raw/i/a&&basha一键查看独立服务器通电......
  • 渗透测试基础--内网转发
    在渗透测试中,当我们获得了外网服务器(如web服务器,ftp服务器,mali服务器等等)的一定权限后发现这台服务器可以直接或者间接的访问内网。此时渗透测试进入后渗透阶段,一般情况下,内网中的其他机器是不允许外网机器访问的。这时候,我们可以通过端口转发(隧道)或将这台外网服务器设置成为......
  • 测试面试宝典(五)—— 请你分别介绍一下单元测试、集成测试、系统测试、验收测试、回归
    集成测试和系统测试在软件测试周期中都起着重要作用,但它们在测试目标、测试范围、测试方法和应用场景等方面存在着明显的区别。集成测试主要是将各个模块、组件或者子系统组合在一起进行的测试,目的是验证这些模块之间的接口是否正确,数据传递和交互是否符合预期,以及它们集成后......