# EMT導管
[主要參考](https://www.instructables.com/Force-Sensing-Telescoping-EMT-Conduit-Pole/)
[應用](https://www.elationsportstechnologies.com/blog)
[測長度](https://www.instructables.com/Telescoping-EMT-Conduit-Pole-Extension-Sensing-Met/)
[原理](http://web.sanlien.com.tw/ad/san_tech.nsf/foundationview/1D17A4215508F43B482580DD0029BA7A/$FILE/%E4%B8%89%E8%81%AF%E6%8A%80%E8%A1%93103%E6%9C%9F-%E6%87%89%E8%AE%8A%E8%A6%8F%E5%9F%BA%E6%9C%AC%E5%8E%9F%E7%90%86%E8%88%87%E6%87%89%E7%94%A8.pdf)
[科展參考](https://twsf.ntsec.gov.tw/activity/race-2/2019/pdf/TISF2019-190007.pdf)
## 材料
https://shopee.tw/350Ohm-%E5%BD%8E%E6%9B%B2-%E6%87%89%E8%AE%8A%E7%89%87-%E6%84%9F%E6%B8%AC%E5%99%A8-%E6%94%BE%E5%A4%A7%E6%A8%A1%E7%B5%84-(%E5%90%AB%E5%BD%8E%E6%9B%B2%E6%84%9F%E6%B8%AC%E5%99%A8)-1528-%E5%A4%A7%E6%B4%8B%E5%9C%8B%E9%9A%9B%E9%9B%BB%E5%AD%90-i.26482219.11789269306?sp_atk=68af464b-6196-4350-9062-bb35f78325eb&xptdk=68af464b-6196-4350-9062-bb35f78325eb&fbclid=IwAR2VQl9qEuZoNwgxYZggUF85R-xEGLdZLW014prC8MaAwNtDoTCrp6Nmnyc
```python=
import numpy as np import matplotlib.pylab as mp import matplotlib.animation as ma mp.figure("Signal", facecolor='lightgray') mp.title('Signal', fontsize=20) mp.xlabel('Time', fontsize=14) # 横纵坐标标签 mp.ylabel('Signal', fontsize=14) ax = mp.gca() # 获取坐标轴 ax.set_ylim(-3, 3) # 垂直坐标范围 ax.set_xlim(0, 10) mp.tick_params(labelsize=10) # 精度值 mp.grid(linestyle=':') # 网格线 # 创建一个plot空对象(只是没有数据,仍然是一个完整的图像) pl = mp.plot([], [], c="orangered")[0] # 有很多个元素,此处取一个处理 pl.set_data([], []) # 设置数据,此处给的空数据,以便于之后将生成器的数据传入 # 接收生成器数据的更新函数 def update(data): t, v = data # 时间,生成器的值 x, y = pl.get_data() # 获取生成器数据 # 追加数据 x.append(t) y.append(v) # 移动坐标轴位置,以便持续观察数据 # 获取当前坐标轴的最小值与最大值,即坐标系的左右边界 x_min, x_max = ax.get_xlim() if t >= x_max: # 平移坐标轴:将最小值变为当前位置减去窗口宽度,最大值变为当前值 ax.set_xlim(t - (x_max - x_min), t) # 坐标系起点终点都改变了,需要重新画一个画布 ax.figure.canvas.draw() # 修改数据 pl.set_data(x, y) # 生成器函数 def generator(): t = 0 # 时间 while True: # 用正弦函数来生成数据 v = np.sin(2 * np.pi * t) * np.exp( np.sin(0.2 * np.pi * t) ) # 振幅呈正弦规律变化的正弦函数 yield t, v # yield的会保存状态的返回,与return不同 t += 0.05 # 生成动画 anim = ma.FuncAnimation(mp.gcf(), update, generator, interval=5) mp.show()
```