当前位置: 首页 > news >正文

openpnp - 贴片前, 放入一块新板子后, 对板子的坐标矫正

文章目录

    • openpnp - 贴片前, 放入一块新板子后, 对板子的坐标矫正
    • 概述
    • 笔记
    • 实验前置条件
    • 实验开始
    • 建立自己板子上的Mark点封装, 用于自己人工圈定判断Mark点位置是否正确
    • 建立mark点封装
    • 根据多个mark点, 来精确定位板子左下角原点坐标
    • END

openpnp - 贴片前, 放入一块新板子后, 对板子的坐标矫正

概述

openpnp提供了放入新板子后, 根据设置的mark点封装和元件, 对板子做贴片前坐标自动矫正的功能.
在这里插入图片描述
经过多次实验, 发现openpnp提供的对放入新板子后, 根据第一次矫正时设置的多个Mark点, 进行自动矫正的功能是不好使的(偶尔会成功), 伤心了(实验了10几次, 最后发现openpnp提供的自动矫正坐标是个不好使的烂功能…).

只能每次放入新板子, 都重新确定一下板子原点, 才是靠谱的做法.
我的设备是有夹具的, 放入同类的新板子后, 坐标基本不差, 只是走一遍流程, 最多用10秒钟就能将坐标确认完.
发现, 如果不用openpnp提供的mark点自动矫正坐标功能, 给自己人工比对的mark点, 搞成1mmx1mm的正方形比对框还好用些.

板子坐标矫正, 是为了使贴片时吸嘴落到板子上的元件时, 位置更准确.

笔记

重新记录一次, 以后贴片之前, 就这么来矫正板子坐标.

实验前置条件

将job删掉
在这里插入图片描述
将多余的part删掉
需要保留的2有2个
FIDUCIAL-HOME, 这个是主基准点用的, 不能删除.
FIDUCIAL-1x2, 这个是次基准点用的, 不能删除
在这里插入图片描述
封装页中, 除了主/次基准点的封装, 也都删掉
在这里插入图片描述
飞达页, 除了自己建立的飞达, 其余都删掉.
在这里插入图片描述
日志页, 可以设置成TRACE + TRACE
在这里插入图片描述
save job, save 配置.
openpnp关机, 退出
openpnp启动, 开机, 归零.

实验开始

增加openpnp板子配置
在这里插入图片描述
在这里插入图片描述
填写Z坐标.
板子的Z坐标, 就填写Z轴的低限位(当时设置Z低限位时, 将N1降低到夹具上的PCB表面获取的Z坐标) -17.6mm
在这里插入图片描述
在这里插入图片描述
因为openpnp自动矫正新板子坐标功能不好使, 所以"Check Fids?"不要打勾
在夹具中放入新板子
打开顶部相机, 用JLOG移动顶部相机到离板子左下角1~2mm的地方. 不要太远, 肉眼辨认板边容易, 矫正板子原点坐标时, 需要微调的距离短, , 方便一些.
在这里插入图片描述
捕获当前板子原点坐标的粗略位置
在这里插入图片描述

选中当前板子条目, 导入named csv坐标文件
在这里插入图片描述

建立自己板子上的Mark点封装, 用于自己人工圈定判断Mark点位置是否正确

首先, 从自己的PCB和原理图中, 确定自己用的Mark点实际封装.
我这板子统一用的1mm直径的表贴焊盘, 那么我们就做一个1mm的正方形作为封装来人工确认mark点是否定位准确.

建立mark点封装

在这里插入图片描述
在这里插入图片描述
封装名称为 MK
为封装增加管教 mk_pin_1
在这里插入图片描述
为管脚定义一个1mm的正方形, 此时, 顶部相机在哪里都无所谓.
在这里插入图片描述
保存JOB, 保存配置.
新建元件MK, 使用MK封装
在这里插入图片描述
将MK元件的封装指定为MK封装
在这里插入图片描述
保存JOB
去JOB页的placements页, 将3个mark点的封装都改为MK
在这里插入图片描述

根据多个mark点, 来精确定位板子左下角原点坐标

在这里插入图片描述

在这里插入图片描述
JOG窗口上面, 出现了任务提示框.
根据提示, 将3个Mark点在placements页中选中.
在这里插入图片描述
点击提示框的Next按钮
在这里插入图片描述

此时, 如果有报错, 说明没有捕获板子原点坐标的大致位置, 取消, 回到前面去大致捕获板子原点的位置才行.
openpnp将自动移动到选中的3个Mark点中的一个. 我这里是MK2
看提示, 说, 此时, 要精确的移动JLOG, 将MK2精确定位, 因为我们选的封装是1mm的正方形, 框住mark点的操作, 此时很方便.
在这里插入图片描述
组合不同步长(1mm, 0.1mm, 0.01mm)和相机方法倍数, 将顶部相机MK封装的黄框, 精确的套住板子上的实际的MK2, 然后点击Next
在这里插入图片描述
现在顶部相机移动到了MK3, 根据提示, 用MK封装的黄框精确套住MK3, 点击Next.
现在顶部相机移动到了MK1, 根据提示, 用MK封装的黄框精确套住MK1, 点击Next.
在这里插入图片描述
现在已经精确定位了所有我们选择的Mark点, 现在openpnp提示, 点击Finish可以结束调整 .
那就点击Finish.
此时, 顶部相机已经回到新的精确远点位置.
保存job
在这里插入图片描述
可以看到, 现在板子远点位置已经不是我们粗略捕获的位置了, 而是一个精确的位置.
用元件导航功能, 看看3个Mark点和其他元件位置是否都精确?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
保存JOB!
千万不要再使用根据Mark点元件, 自动定位坐标的功能
在这里插入图片描述
此时, 就可以贴片了(元件高度配置好了, 如果飞达飞达配置好了).
如果我们将板子从夹具上拿下来了, 或者重新安装了一块PCB到了夹具上, 此时要校验一下坐标是否精确.
就重新使用一次矫正板子坐标原点的功能, 因为夹具是和精确的, 将板子推到位, 矫正过程基本是走一遍流程, 3个mark点的位置基本不用动, 很快. 如果发现位置有调整, 导致JOB变了, 保存JOB.
在这里插入图片描述

在这里插入图片描述

END

相关文章:

openpnp - 贴片前, 放入一块新板子后, 对板子的坐标矫正

文章目录openpnp - 贴片前, 放入一块新板子后, 对板子的坐标矫正概述笔记实验前置条件实验开始建立自己板子上的Mark点封装, 用于自己人工圈定判断Mark点位置是否正确建立mark点封装根据多个mark点, 来精确定位板子左下角原点坐标ENDopenpnp - 贴片前, 放入一块新板子后, 对板子…...

计及需求响应的改进灰狼优化算法求解风、光、柴、储容量优化配置(Matlab代码实现)

👨‍🎓个人主页:研学社的博客💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密…...

Elasticsearch使用——高级篇

1.数据聚合**聚合(aggregations)**可以让我们极其方便的实现对数据的统计、分析、运算。例如:什么品牌的手机最受欢迎?这些手机的平均价格、最高价格、最低价格?这些手机每月的销售情况如何?实现这些统计功…...

Java网络爬虫-HttpClient工具类

关于用Java进行爬虫的资料网上实在少之又少,但作为以一名对Java刚刚初窥门径建立好兴趣的学生怎么能静得下心用新学的Python去写,毕竟Java是世界上最好的语言嘛 (狗头)关于Java爬虫最受欢迎的一个框架Jsoup常常搭配HttpClient来使用,因为Jsou…...

LeetCode203_203. 移除链表元素

LeetCode203_203. 移除链表元素 一、描述 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1: 输入:head [1,2,6,3,4,5,6], val 6 输出:[1,2…...

【洛谷 P1443】马的遍历 题解(广度优先搜索)

马的遍历 题目描述 有一个 nmn \times mnm 的棋盘,在某个点 (x,y)(x, y)(x,y) 上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步。 输入格式 输入只有一行四个整数,分别为 n,m,x,yn, m, x, yn,m,x,y。 输出格式 一个 nmn \t…...

为什么gpt输出有随机性?

以下答案由chatGPT产生! 为什么gpt输出有随机性? GPT(Generative Pre-trained Transformer)是一种基于Transformer架构的神经语言模型,它是一个深度学习模型,通过在大规模文本数据上进行预训练&#xff0…...

配置Clion用于STM23开发(Makefile)

前言 对于Clion配置STM32开发环境的教程在网上一搜一大堆,但是大部分都是22年之前的,使用的方法都是在STM32CubeMX生成SW4STM32工程。但是在22年不知道哪个版本后,CubeMX已经不再支持生成SW4STM32工程了,这也是我本人遇到的问题。…...

如何在 Istio 中使用 SkyWalking 进行分布式追踪

在云原生应用中,一次请求往往需要经过一系列的 API 或后台服务处理才能完成,这些服务有些是并行的,有些是串行的,而且位于不同的平台或节点。那么如何确定一次调用的经过的服务路径和节点以帮助我们进行问题排查?这时候…...

HBase高手之路1-Hbase简介

文章目录HBase高手之路1-Hbase简介一、什么是HBase1. HBase简介2. HBase的发展过程二、HBase特点1. 海量存储2. 列式存储3. 极易扩展4. 高并发5. 稀疏6. 强一致性读/写7. 自动分块8. 自动RegionServer故障转移9. Hadoop/HDFS集成10. MapReduce11. Java Client API12. Thrift/RE…...

计算机视觉手指甲标注案例

关键点标注是指识别和标注图像或视频中特定的相关点或区域的过程。在机器学习行业,它经常被用来训练计算机视觉模型,以执行诸如物体检测、分割和跟踪等任务。 关键点注释可用于以下应用: 面部关键点检测:识别图像中人脸上的眼睛…...

linux 字符串截取(cut)

-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。 -c :以字符为单位进行分割。 -d :自定义分隔符,默认为制表符。 -f :与-d一起使用,指定显示哪个区域。 -n…...

003+limou+HTML——(3)HTML列表

000、前言 列表是网页常见的一种数据排列方式,在HTMl中列表一共有三种:有序列表、无序列表、定义列表(另外“目录列表dir”和“菜单列表menu”已经在HTML5中被废除了,现在都是使用无序列表ul来替代) 001、有序列表&a…...

设计模式---工厂模式

目录 1. 简单工厂模式 2. 工厂方法模式 1. 简单工厂模式 简单工厂模式(Simple Factory Patterm)又称为静态工厂方法模式(Static Factory Model),它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义了一…...

C++基础了解-13-C++ 数组

C 数组 一、C 数组 C 支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。 数组的声明并不是声明一个个单独的变量,比如 number0、number1、…、number9…...

ICC2:限制LVT比例

1) 禁用VT 在优化过程用,如果要禁用某种VT可以直接对其使用dont use,如下示例: set_attribute -objects [get_lib_cells *_lvt*/*] -name dont_use -value true 在dont use lib cell的基础上还可以对某些模块放开lvt的使用。 set_app_options -name …...

Kettle工具通过JNDI连接Oracle集群

我们在用Kettle ETL工具的时候,可能会遇到数据库为Oracle集群的模式,或者有时候目标库为oracle,在持续的循环调度中,经常发现oracle的数据库连接中断的情况,此时,在Kettle中有一个JNDI的连接方式能很好的解…...

[ 常用工具篇 ] windows安装phpStudy_v8.1_X64

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…...

SpringBoot 如何将配置文件挂到 jar 包外面?

目录一、SpringBoot 指定配置文件路径:1)使用命令行参数:2)使用环境变量:3)使用外部配置文件:二、SpringBoot 配置文件生效的优先级排序:一、SpringBoot 指定配置文件路径&#xff1…...

蓝桥杯C/C++b组第一题个人整理合集(5年真题+模拟题)

蓝桥杯C/Cb组填空第一题合集 前言 比赛标准的签到题,比赛时的第一题。不会考到什么算法,甚至都不需要你打代码。但有时候第一题都没做出来的确是非常挫灭信心 看了看历年题目。很多小陷阱也不少 今年的比赛也正好还有一个月,自己对填空题第…...

深入浅出PaddlePaddle函数——paddle.zeros

分类目录:《深入浅出PaddlePaddle函数》总目录 相关文章: 深入浅出PaddlePaddle函数——paddle.Tensor 深入浅出PaddlePaddle函数——paddle.ones 深入浅出PaddlePaddle函数——paddle.zeros 深入浅出PaddlePaddle函数——paddle.full 深入浅出Padd…...

[力扣sql]

题目 表: Person ---------------------- | 列名 | 类型 | ---------------------- | PersonId | int | | FirstName | varchar | | LastName | varchar | ---------------------- personId 是该表的主键列。 该表包含一些人的 ID 和他们的姓和名的信…...

Docker基本操作

目录 Docker基本操作 1、镜像操作 2、容器操作 3、数据卷(容器数据管理) 4、数据卷挂载 5、Dockerfile自定义镜像 Docker基本操作 1、镜像操作 镜像名称一般分两部分组成:[repository]:[tag]。 在没有指定tag时,默认是la…...

golang如何使用rocketmq 附加闭坑指南 建议收藏!!!

文章目录前言一、rocketmq是什么?二、rocketmq核心概念三、rocketmq核心应用四、go如何使用rocketmq总结前言 当我们的业务达到一定规模,很多业务需要解耦,以及需要流量削峰的时候,我们需要使用MQ来让我们系统能够正常运转。 一…...

C++实现的二叉树创建和遍历,超入门邻家小女也懂了

目录 二叉树 特点 性质 二叉树的创建 声明 创建 -> 成员运算符 批量创建 二叉树的遍历 先序遍历 中序遍历 后序遍历 层序遍历 树的相关术语 特殊二叉树 满二叉树 完全二叉树 二叉树 树(Tree)是n(n≥0)个节点的有限集。在任意一棵…...

如何写出高质量的业务接口

清晰的需求 需求要有文档;方便后续追溯或交接等需求是基础,必须详细;多和需求沟通确认,不可模糊、模棱两可,否则后续可能越错越远 抽象建模 分析需求;梳理清楚关联关系,建立数据模型和关联画E-R…...

3.8多线程

案例一-线程安全的单例模式(面试)是一种设计模式,设计模式针对写代码时的一些常见场景给出一些经典解决方案单例模式的两种典型实现饿汉模式懒汉模式饿汉的单例模式:比较着急去进行创建实例懒汉的单例模式,是不太着急创建实例,,只是在用的时候,才真正创建这个是类对象,也就是.c…...

图文讲解MongoDB该怎么安装

一、安装前必读 我这里是Centos7 Linux 内核 注意:本文的命令使用的是 root 用户登录执行,不是 root 的话所有命令前面要加 sudo 二、环境配置 2.1 停止防火墙 systemctl status firewalld #查看firewall systemctl stop firewalld …...

「ML 实践篇」机器学习项目落地

文章目录1. 项目分析1. 框架问题2. 性能指标2. 获取数据1. 准备工作区2. 下载数据3. 查看数据4. 创建测试集3. 数据探索1. 地理位置可视化2. 寻找相关性3. 组合属性4. 数据准备1. 数据清理2. Scikit-Learn 的设计3. 处理文本、分类属性4. 自定义转换器5. 特征缩放6. 流水线5. 选…...

c++面试技巧-基础篇3

1.面试官:什么是函数的重载? 应聘者:函数的重载就是允许使用同一个函数名来定义多个函数,但是这些函数的参数个数和类型不同。 2.面试官:如何引用一个已经定义过的全局变量? 应聘者:可以用引…...