Pico Scope在CAN OE上使用

前言

Pico scope有自己的软件,实际连接DUT(板端)上的任意采样点,都可以实时显示波形,相当于一个示波器。但是在CAN OE上使用可以看到报文的时间戳,并且后续可以用capl调用,实现自动化。

本篇文章主要介绍怎么能让PICO在CAN OE上跑起来。

操作

一、预先准备

1.CAN OE和PICO是必要的,至于版本兼容性可以去官网查,这里不做赘述。

2.Scope的license。该图片截取自官方技术支持提供的文件中。如果识别不到是会报错的。

3.下载PicoScope的驱动,保证Pico自身的软件可以正常使用。

二、硬件接线

该图片截取自官方技术支持提供的文件中。

按照这个接线后应该就能用了。有些注意事项:

1.Scope Trigger Y-Cable一定要连接,不然在canoe的界面显示连接成功,运行时会fail。

2.需要插上scope的license。

3.如果CAN OE上连接失败,首先确认pico scope是否连接,可以先点开picoscope 7T&M软件看看是否识别到硬件,如果识别到,再检查CAN OE和scope的连线是否正确。

三、CAN OE配置

1.点开scope界面

2.选择硬件配置属性

(1)鼠标右键,点开配置

(2)配置属性

3.选择要解析的报文

(1)右键添加can报文

​(2)配置要抓取的报文

4.运行

以下是使用Unity在Pico中实现在黑板上写字的代码: 1. 创建一个Plane对象,并将其旋转90度,使其成为一个平面。 ``` GameObject plane = GameObject.CreatePrimitive(PrimitiveType.Plane); plane.transform.Rotate(new Vector3(90, 0, 0)); ``` 2. 创建一个材质,并将其贴到Plane上。 ``` Material material = new Material(Shader.Find("Standard")); plane.GetComponent<Renderer>().material = material; ``` 3. 创建一个RenderTexture,用于渲染黑板上的内容。 ``` RenderTexture renderTexture = new RenderTexture(1024, 1024, 24); ``` 4. 将RenderTexture设置为材质的主纹理。 ``` material.mainTexture = renderTexture; ``` 5. 创建一个Camera,并将其渲染目标设置为RenderTexture。 ``` GameObject cameraObject = new GameObject("Camera"); Camera camera = cameraObject.AddComponent<Camera>(); camera.targetTexture = renderTexture; ``` 6. 将Camera的位置设置为黑板的位置,并使其朝向黑板。 ``` cameraObject.transform.position = new Vector3(0, 1, -2); cameraObject.transform.LookAt(plane.transform); ``` 7. 创建一个画笔对象,并将其放在Pico的手柄上。 ``` GameObject brush = GameObject.CreatePrimitive(PrimitiveType.Sphere); brush.transform.localScale = new Vector3(0.05f, 0.05f, 0.05f); brush.GetComponent<Renderer>().material.color = Color.black; brush.transform.parent = PicoUnityActivity.instance.ControllerRight.transform; brush.transform.localPosition = new Vector3(0, 0, 0.1f); ``` 8. 在Update函数中,检测手柄的触发键是否按下,并在黑板上绘制画笔的位置。 ``` void Update() { if (PicoInputManager.Controller.Pico_ControllerRight.GetPress(Valve.VR.EVRButtonId.k_EButton_SteamVR_Trigger)) { Ray ray = new Ray(brush.transform.position, brush.transform.forward); RaycastHit hit; if (Physics.Raycast(ray, out hit)) { Vector2 uv = hit.textureCoord; uv.x *= renderTexture.width; uv.y *= renderTexture.height; RenderTexture.active = renderTexture; GL.PushMatrix(); GL.LoadPixelMatrix(0, renderTexture.width, 0, renderTexture.height); GL.Begin(GL.TRIANGLES); GL.Color(Color.black); GL.Vertex3(uv.x, uv.y, 0); GL.Vertex3(uv.x + 10, uv.y, 0); GL.Vertex3(uv.x, uv.y + 10, 0); GL.End(); GL.PopMatrix(); RenderTexture.active = null; } } } ``` 这样,就可以在Pico中实现在黑板上写字了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值