BrachioGraph:树莓派绘图机 – 趣无尽 |
您所在的位置:网站首页 › 树莓派绘图 › BrachioGraph:树莓派绘图机 – 趣无尽 |
BrachioGraph:树莓派绘图机 2019年11月13日 cherry 未分类 1
树莓派×1 舵机×3 木棍×2 夹子×1 胶水×1 提示: 1、推荐使用 SG90 舵机。 2、用尺寸为 8cm(长)×16cm(宽)×11cm(高)的木棍作为绘图机的「手臂」。制作的绘图机适用于在 A5 上作画。请点击此处的可视化脚本,帮助了解手臂的几何形状和绘图区域之间的关系。 https://brachiograph.readthedocs.io/en/latest/how-to/visualise-behaviour.html#visualise-area 安装部件安装连接处
使用胶水将舵机连接到底座上。如图所示有两种方法,可以任选其一,安装时舵机需要高于底座。
安装内臂
将舵机的角粘到内臂上,让其与旋转中心相距约8厘米(或根据你的具体情况而定)。
安装外臂 将舵机和夹子粘到外臂上,把笔夹在夹子上,同时让笔和和外部手臂的旋转中心保持适当的距离。按照图中舵机的位置将最后一个舵机安装到位,让其角可以安全旋转,并且可以使笔抬离纸张。 组装绘图机该项目使用厘米为长度单位。
如何使用树莓派驱动绘图机,该指南将详细的讲解使用树莓派 Zero 用作绘图机引擎的方法: https://brachiograph.readthedocs.io/en/latest/how-to/prepare-pi.html#prepare-pi brachiograph.py 还需要一些其他组件。建议在 Python 软件包中使用 virtualenv,但无论选择何种方式,软件都要在 Python3 环境中。 虚拟环境(可选)创建并激活Python 虚拟化环境 请执行以下操作: python3 -m venv env source env/bin/activatetmux tmux是管理终端会话的一种常见的的方法。 即使你的连接断开了,它也可以使你重新加入会话并不会丢失命令的位置。用下面的命令安装: sudo apt-get install tmuxPip 如果还未安装或者还没有使用虚拟环境,请执行以下操作: sudo apt-get install python3-pip此版本的 pip 需要使用 pip3 调用。因此,如果你未使用 Python 虚拟环境,请在以下的口令中将 pip 替换为 pip3。 PIGPIO PIGPIO 这是一个很棒的库,它可以实现对树莓派的 GPIO 引脚的硬件控制。这对精确计时脉冲很重要而且它还带有一个用于底层代码的 Python 接口。 sudo apt-get install pigpiod pip install pigpio # use pip3 if not using a virtual environmentPillow Pillow 是一个 Python 的映像库。 http://abyz.me.uk/rpi/pigpio/index.html 它可以在不需要驱动绘图机的情况下,将位图图像转换为矢量: https://www.piwheels.org/project/Pillow/ sudo apt install libwebp6 libtiff5 libjbig0 liblcms2-2 libwebpmux3 libopenjp2-7 libzstd1 libwebpdemux2 libjpeg-dev pip install pillow # use pip3 if not using a virtual environmentNumpy Numpy 是一个 Python 的数学库。 https://www.piwheels.org/project/numpy/ sudo apt install libatlas3-base libgfortran5 pip install numpy # use pip3 if not using a virtual environmentGit 如果还未安装,请运行: sudo apt-get install git其他的 Python 软件包 使用 pip 安装 Python 3 版本: tqdm#用于绘图时的进度指示器 readchar#允许 BrachioGraph.drive() 方法接受用户输入 pip install tqdm readchar # use pip3 if not using a virtual environmentClone BrachioGraph 库 如果还未安装,请按照该步骤复制 BrachioGraph 存储库: git clone [email protected]:evildmp/BrachioGraph.git或者,如果你需要使用 HTTPS 的话: git clone https://github.com/evildmp/BrachioGraph.git 将绘图机连接到树莓派1、将三个舵机连接到树莓派。
创建一个 BrachioGraph 实例,启动树莓派并运行: sudo pigpiod cd BrachioGraph python3然后,使用你之前记录的 inner_arm 和 external_arm 的变量值: from brachiograph import BrachioGraph bg = BrachioGraph(inner_arm=;inner_arm;, outer_arm=;outer_arm;)系统将创建一个 BrachioGraph 实例并进行初始化。同时调整电机,使笔处于标称值: x= -inner_arm y= outer_arm 这将对应于: 上部手臂处于 -90 度,脉冲宽度为 1500μS。 下部手臂处于 90 度,脉冲宽度为 1500μS。 提升电机处于笔的上方,脉冲宽度为 1700μS。 检查运动状态确保绘图机手臂按照预计的方向移动。运行: bg.set_angles(angle_1=-90, angle_2=90)不用做任何事情,手臂应该运行在相应的角度。 现在可以尝试以 5 度为增量改变值(一次更改一次),例如: bg.set_angles(angle_1=-95, angle_2=90) # should move the inner arm 5 degrees anti-clockwise增大值使手臂顺时针移动,减小值使手臂逆时针移动。为避免剧烈的移动,请勿一次超过五度或十度的移动。 这些运动有可能会反向,因为不同的舵机或相同的舵机因为安装不一样也可能在相同的输入时产生反向的运动。 在这种情况下,你需要通过显式 servo_1_degree_ms(默认值:-10)和 servo_2_degree_ms(默认值:10)的值,将其合并到 BrachioGraph 定义中。例如,如果外部手臂的运动被反转,则需要运行以下命令初始化绘图机: bg = BrachioGraph(inner_arm=;inner_arm;, outer_arm=;outer_arm;, servo_2_degree_ms=-10) 安装手臂按图所示,安装好「手臂」并放置好铅笔。
找出一对不错的向上或向下的值。然后,通过提供的 pw_up 和 pw_down 值包含在 BrachioGraph 的初始化中。 当然,手臂可能还是会偏离几度,不用太担心。 使用 BrachioGraph 开始驱动 bg.drive_xy()控制项: 0: 退出 a: 增加 x 坐标 1cm s: 减少 x 坐标 1cm A: 增加 x 坐标 0.1cm S: 减少 x 坐标 0.1cm k: 增加 y 坐标 1cm l: 减少 y 坐标 1cm K: 增加 y 坐标 0.1cm L: 减少 y 坐标 0.1cm 使用它来发现 BrachioGraph 可以绘制的框的边界。 记下 bounds 的值,即边界位置: [, |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |