资料介绍
描述
哦,我是不是又买了更多的东西
我前段时间购买了一些磁性位置传感器,打算在另一个有趣的项目中使用它们。由于缺乏时间和灵感,该项目仍处于搁置状态。前几天清理我的桌子时,我看到了传感器,并想我至少应该尝试一下。我以前从未尝试过类似的东西,所以未来有新的学习!
找到一个“问题”来解决!
在平行宇宙中,有很多人对各种可以想象的谜题感兴趣。一种类型的谜题是隐藏的圆柱形迷宫。这些有很多实现,从便宜的 3D 打印(示例)到独家机加工金属(如REVOMAZE )。由于其中一些谜题的复杂性,求解器需要超越记忆并开始映射谜题。映射可以通过多种方式完成,最常见的是笔和纸以及测量旋转和平移。
作为一个拼图和创客极客,我看到了构建自动绘图设备的绝佳机会!
我从 OpenSCAD 开始,虽然我打算为拼图和磁性编码器制作一个漂亮的 3D 打印支架。有一段时间很有趣,但是当我弄清楚如何对轴的平移进行编码时,我陷入了细节之中。乐高来救场!在对乐高积木进行了短暂的挖掘之后,我找到了我需要的东西。
![pYYBAGOYr1uANyenAACRxOAnCT0338.png](https://file.elecfans.com/web2/M00/83/DE/pYYBAGOYr1uANyenAACRxOAnCT0338.png)
CAD 时间并没有完全白费,我仍然需要小磁铁支架。你看,显然磁性编码器需要让磁场垂直于传感器。我拥有的所有小磁铁都是圆柱形的,一面朝北,一面朝南。3D打印机来救援!
![poYBAGOYr2mAKhfhAAWfv2dWb2Q841.jpg](https://file.elecfans.com/web2/M00/83/56/poYBAGOYr2mAKhfhAAWfv2dWb2Q841.jpg)
乐高积木是一个带有小传感器汽车的简单坡道!
![poYBAGOYr4KAAC8lAAdXOmq1Ixw301.jpg](https://file.elecfans.com/web2/M00/83/56/poYBAGOYr4KAAC8lAAdXOmq1Ixw301.jpg)
3D 打印的磁铁支架在触摸时将 8 毫米磁铁与传感器相距 1 毫米,这似乎工作得很好。现在把它们放在一起:
![pYYBAGOYr52AVzy8AAfDh4Mmh3U647.jpg](https://file.elecfans.com/web2/M00/83/DF/pYYBAGOYr52AVzy8AAfDh4Mmh3U647.jpg)
嗯,这就是整个构建。几乎。当然还有一些事情要做......
电子产品和 Arduino 代码
磁性旋转位置传感器使用 I2C 接口,易于连接。互联网上有大量示例代码。但是,有一个但是。要连接相同的编码器,我需要一个 I2C 多路复用器,因为无法更改它们的地址,而 Arduino 只有一个 I2C 总线可用。真可惜。
![poYBAGOYr6CADD7zAABbOWqlRwE612.png](https://file.elecfans.com/web2/M00/83/56/poYBAGOYr6CADD7zAABbOWqlRwE612.png)
由于我没有这样的多路复用器,我开始考虑构建一个,但后来我想一定有一种方法可以在常规 GPIO 引脚上执行 I2C?是的你可以。SlowSoftI2CMaster来救援!10 分钟后,我从 Arduino Uno 读取了两个传感器。
电气连接对于图表来说太简单了。3.3v 和 GND 连接到两个传感器,A2/A3 连接到一个,A4/A5 连接到第二个(选择 Ax 引脚只是因为默认的 I2C 引脚是 A4/A5)。也许某处应该有一个上拉电阻,但是嘿-it-works-tm。:-)
Arduino上的代码很简单。读取传感器,串行打印:
#include
SlowSoftI2CMaster si1 = SlowSoftI2CMaster(A4, A5, true);
SlowSoftI2CMaster si2 = SlowSoftI2CMaster(A2, A3, true);
#define I2C_7BITADDR 0x36 //AS5600
#define RAW_ANG_HI 0x0c
#define RAW_ANG_LO 0x0d
void setup(void) {
Serial.begin(115200);
if (!si1.i2c_init()) Serial.println("I2C init 1 failed");
if (!si2.i2c_init()) Serial.println("I2C init 2 failed");
}
int readAngle(SlowSoftI2CMaster si) {
if (!si.i2c_start((I2C_7BITADDR<<1)|I2C_WRITE)) {
Serial.println("I2C device busy");
delay(500);
return -1;
}
si.i2c_write(RAW_ANG_HI);
si.i2c_rep_start((I2C_7BITADDR<<1)|I2C_READ);
byte val_hi = si.i2c_read(true);
si.i2c_write(RAW_ANG_LO);
si.i2c_rep_start((I2C_7BITADDR<<1)|I2C_READ);
byte val_lo = si.i2c_read(true);
si.i2c_stop();
return val_hi<<8 | val_lo;
}
void loop(void){
long val1 = readAngle(si1);
long val2 = readAngle(si2);
Serial.print("Sensor1=");
Serial.print(val1);
Serial.print(" Sensor2=");
Serial.println(val2);
delay(10);
}
电脑上的软件
我在我的笔记本电脑上做了一个可视化软件。简而言之,它是这样工作的:
- Arduino 在串行端口上输出线路,如“Sensor1=1234 Sensor2=456”。值是原始传感器值 0-4095。
- 我通过“sudo cu -l /dev/cu.usbmodem14101 -s 115200 > /tmp/cu_out.txt”将串行数据读入常规文件(这适用于 MacOS)
- 我有一个 Java 程序,我通过管道将文件作为输入。该程序获取每个读数并将其转换为屏幕坐标,并将最近的读数涂成红色,将所有历史读数涂成绿色。
- 这个程序写得太差了,我会把你从代码中拯救出来。有穿线。我用 AWT 来取笑。坐标系变换完全混乱。任何具有任何编码经验的人都应该能够立即更好地编写此代码,或者能够学会这样做。我不会分享这段代码。对不起。
![poYBAGOYr8CAYY44AAnIV6lYVwM776.jpg](https://file.elecfans.com/web2/M00/83/56/poYBAGOYr8CAYY44AAnIV6lYVwM776.jpg)
学习
- “Grove - 12 位磁性旋转位置传感器/编码器 (AS5600)”太棒了!
- I2C 易于使用,但类似设备的寻址可能会出现问题。如果您想要 I2C,请为自己准备一个带有多路复用器的分线板!
- 我学会了如何从我的 Mac 上的串口读取数据!一个简单的命令,我就有了一个文件中的数据,可以被任何语言编写的任何程序使用。使用奇怪的串口库等零复杂性。使用“tail -f”进行调试。美丽的!
- 分离器开源硬件
- 调频助推器开源硬件
- 开源硬件-警灯
- 脉冲发生器开源硬件
- 微型元件测试器开源硬件
- 频率发生器开源硬件
- 温差恒温器开源硬件
- 油箱加注器开源硬件
- 音箱开源硬件分享
- 避障步进器开源硬件
- 啤酒追踪器开源硬件
- 打开WiFi查找器开源硬件
- IO扩展器开源硬件
- 主流的开源硬件有哪些详细资料说明
- 基于DSP Builder的星座映射与解映射器设计
- 安信可小安派-Knob旋转编码器驱动板简介 600次阅读
- 用小安派开源硬件制作一个桌面天气站 1007次阅读
- 将Agere超级映射器设备系列连接到达拉斯T3 LIU 751次阅读
- 使用开源硬件的烹饪过程 1500次阅读
- 寻找开源硬件成功的触发器 755次阅读
- RISC-V处理器如何成为开源硬件发展的基石? 2217次阅读
- SYS/BIOS修改存储器映射的详细步骤 3894次阅读
- dfrobotDFRobot Bluno M3控制器简介 1996次阅读
- 源创通信BPI-M1+ 开源硬件开发板介绍 2811次阅读
- 源创通信开源智能路由器 MTK 7623N 介绍 3078次阅读
- 关于FPGA在开源方面的探索浅析 3864次阅读
- STM32的存储器映射详解 2.2w次阅读
- mybatis框架的核心组件和作用是什么 2.5w次阅读
- 三大主流开源硬件对比:Arduino vs BeagleBone vs Raspberry Pi 6657次阅读
- 开源硬件究竟有多“Open”?看完这个你就清楚了 7124次阅读
下载排行
本周
- 1DeepSeek:从入门到精通
- 5.36 MB | 43次下载 | 1 积分
- 2中兴通讯的PCB设计规范
- 23.03 MB | 5次下载 | 5 积分
- 3Altium-常用3D封装库(Step)接插件篇
- 4.95 MB | 2次下载 | 免费
- 4多款常用电子电路分享
- 7.96 MB | 1次下载 | 2 积分
- 5PC1902同步降压LED驱动器规格书
- 0.99 MB | 1次下载 | 免费
- 6爱华TA314/317/327维修图纸
- 3.54 MB | 1次下载 | 1 积分
- 7SOT8098-1塑料、表面贴装封装
- 180.25KB | 1次下载 | 免费
- 8SOD80C玻璃、全密封玻璃表面贴装封装规格书
- 126.34KB | 1次下载 | 免费
本月
- 1A7159和A7139射频芯片的资料免费下载
- 0.20 MB | 55次下载 | 5 积分
- 2DeepSeek:从入门到精通
- 5.36 MB | 43次下载 | 1 积分
- 3零死角玩转STM32F103—指南者
- 26.78 MB | 42次下载 | 1 积分
- 4PIC12F629/675 数据手册免费下载
- 2.38 MB | 36次下载 | 5 积分
- 5PIC16F716 数据手册免费下载
- 2.35 MB | 18次下载 | 5 积分
- 6GD32F4xx用户手册
- 14.49MB | 14次下载 | 免费
- 7dsPIC33EDV64MC205电机控制开发板用户指南
- 5.78MB | 8次下载 | 免费
- 8STC15系列常用寄存器汇总免费下载
- 1.60 MB | 7次下载 | 5 积分
总榜
- 1matlab软件下载入口
- 未知 | 935124次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420063次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233088次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191367次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183335次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81581次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73813次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65988次下载 | 10 积分
评论