电子说
第1步:工具和材料
工具和材料
我决定用纸板制作卡片送纸器。它便宜且易于操作。
以下是我使用的内容:
工具:
材料:
Cutter
切割垫
标尺
橡皮筋
刮刀
剪线钳和剥线器
螺丝刀
铅笔,记号笔
砂纸
文件
丙烯酸颜料和刷子
热胶枪
含水粘合剂或含溶剂的粘合剂。
烙铁和锡焊料
台锯
纸板(主要材料,我用的厚度为3毫米)
用于稳定的细木条(它们必须放在纸板内!)
一些填充物(稳定和视觉外观)
一些乐高轴,轮子和齿轮(在“机械部件”的步骤中,您可以详细了解我使用的内容)
弹簧(在轮子之间产生一些压力)
橡皮筋(对于额外的抓地力非常重要)
Raspberry PI
覆盆子PI电源
Adafruit伺服阀盖
Adafruit微动开关
FEETECH FS90R微型连续旋转伺服
伺服电源
SD卡使用Raspbian操作系统
Adafruit Python PCA9685 lib
USB鼠标和键盘
HDMI电缆和显示器
部分电线
第2步:原型设计
原型设计
我想与您分享我在原型设计阶段的想法,思维过程和决策。在我看来,这个阶段是项目中最有趣的部分。从无到有想法。
机制
为了理解整个机制,我分析了最好的喂料器之一那存在;打印机。它完全符合我的需要。我在eBay上买了一台便宜的8欧元的打印机,然后把它拆开,直到我可以仔细查看所需的机制。
我测试了很多:
用一张纸
带有一张WoW(魔兽世界)卡
有很多卡
它完美无缺。说实话,我没想到这种行为,但即使使用交易卡,机制也一次只能拔出一张卡。
从我的观点来看,机制的秘诀是:
将纸张压到主卷上的区域
第二个直接接触的小卷筒主要卷
第二卷和主卷用橡胶覆盖
修补
是时候复制打印机功能了。我用一块宜家纸板做了 1st 测试,以感受尺寸。非常简单并且减少了进给机制。
之后我创建了 2nd 版本,其中包含一个用于MDF卡的容器。非常难看,但它正在发挥作用。在测试时,我意识到:
我需要一些斜坡来处理从卡片馈送器出来的卡片。
没有必要为卡片设置单独的容器。
在 3rd 版本中,我切换回纸板,我觉得在这个原型的创作过程中恋爱。使用正确的工具和正确的处理材料 sooooo 很棒。
第3步:设计
设计
借鉴第二和第三《的经验/strong》版本以及关于对称性和平等性的一些想法,我在计算机上创建了最终和 4th 原型。我在Fusion360/Inventor中设计了所有内容,并使用了所有内置函数,如:
渲染
动画
绘图
我用卡尺从原型中取出了重要的测量值并将它们转移到2D草图中。我在Inventor和计算中依赖的所有其他测量。这就是奇怪尺寸的原因。所有角度和许多距离都是相同的。 63 x 88 mm的交易卡大小也是设计过程中的一个重要因素。
所有进一步规划的基础是外部[2]。所有其他部分都面向它。内部[1]主要用于稳定。前[4]和后[5]防止卡片脱落。斜坡[3]用作弹出卡片的幻灯片。卡片通过顶部/背面插入机器并放在卡片托盘上[10]。
[x]数字是对图纸的引用
尺寸:
外面210,79 x 185,32mm
内部188,74 x 185,32mm
正面73 x 84mm
返回79 x 185,32mm
卡片托盘70 x 67mm
坡道67 x 73mm
第4步:基本形状
基本形状
(你可以在最后一步找到所有的pdf文件!)
我在设计阶段创建的各个形状都打印在A3纸上。我把它们粘在一块3毫米瓦楞纸板上。在两侧涂上胶水和纸(废料)非常重要。如果没有,纸板会弯曲。为了安全起见,我在干燥时间对它施加了一些重量。
我也会说(目前还不确定)含水粘合剂会导致含有溶剂的粘合剂更加弯曲。 你有没有
均匀分布粘合剂也很重要。否则,气泡将在稍后出现。我用一把抹刀/刷子涂抹胶水。
我将背面加倍以稳定,这意味着我将3mm形状切成两半并将它们粘在一起。我还照顾了纸板的不同方向。水平定向的外部随后将粘合到垂直定向的内部。
在干燥时间之后,我在切割垫上用切割器和尺子切割出形状。我通过几个步骤完成了整个过程。不是一次全部材料!
第5步:稳定
稳定
切掉一切后,我用小台锯从一块大木头上切下一些小条,以稳定纸板。这些条带必须装在纸板内,所以它们必须非常薄(约2mm)。它也是保护角落和边缘的好方法。正如你在图片中看到的那样,我只是稳定了关键区域。
我用胶水将它们放入纸板中。在胶水干燥后,我用钢丝钳切掉过多的木材,使它们与形状齐平。我将所有东西安装在一起并用橡皮筋固定到位。
为了获得更好的光学效果和额外的稳定性,我用一些填充物填充纸板“孔”并打磨它们。我还应用了一些黑色,在内部创造了一点对比度。 (在后面的图片中可见)
第6步:机械部件
机械零件
由于我不想拆卸打印机,我四处寻找其他组件。我在孩子们的Lego系列中找到了我想要的东西。
使用Lego Technic组件,我从打印机内部复制了mechansim。
乐高车轴16配有两个主要的40毫米乐高车轮和一个乐高40齿轮
一个乐高车轴16,带有两个支撑10毫米乐高车轮。
我使用了一堆Lego Bushes和Lego Bushes 1/2将每个轮子或齿轮固定到位。
两侧之间的距离取决于卡片托盘的宽度。 4个垫圈是通过轴实现这个宽度的垫片。
对于正确的压力,在轮子之间,我在轴的外侧增加了两个弹簧。轮子之间的直接接触是必要的。
一个秘密和一个非常重要的部分是主轮上的橡皮筋。没有它们,它将无法很好地工作。每个轮子有三个120度角的橡皮筋。
我使卡片区域变得灵活。它可以相对于主轮调整高度。我用两个M8螺纹杆和4个M8螺母做到了这一点。
之后,我用一些热胶将所有部件粘在一起。
第7步:电气部件
电气部件
整个交易卡机器将由Raspberry PI管理,甚至是卡片供应商。
如果你需要一些覆盆子PI基础知识=》 Raspberry PI Class
连续旋转伺服系统通过标准的3针母连接器连接到Adafruit伺服阀盖,将向前移动40mm主轮,从而弹出卡片卡堆栈。 Adafruit伺服阀盖直接安装在Raspberry PI上。
我将一个Lego 24齿轮齿轮粘在一个伺服臂上,并将所有东西拧到电机上。整个装置完全适合卡托盘下方。我用一些热胶安装它。 Lego 24齿轮齿轮与主轴上的Lego 40齿轮齿轮接触。
我将一些电线焊接到Adafruit Micro Switch并将其“连接”到Raspberry PI上。通过开关,我可以将伺服开关关闭。
我将外部5V/10A电源连接到Adafruit伺服阀盖接线盒,为伺服电源供电。目前电源尺寸过大,但整个机器应该足够了。
步骤8:编码
编码
如果您需要一些Raspberry PI基础知识=》 Raspberry PI Class
我使用Raspbian OS和Adafruit Python PCA9685 lib来交互和控制卡片馈送器。
Adafruit Servo Bonnet将通过I2C与Raspberry PI“对话”。因此,我必须在Raspberry PI Kernel中激活I2C并安装2个软件包。
sudo apt-get install -y python-smbus
sudo apt-get install -y i2c-tools
我的代码基于Adafruit示例。我开箱即用,只是实现了Adafruit Micro Switch打开和关闭卡片送入器。
注意!
我是一个编码菜鸟,所以有更好的方法来编写代码。这对我的测试来说已经足够了,但我还有很多需要学习的东西。
# Simple demo of of the PCA9685 PWM servo/LED controller library.
# This will move channel 0 from min to max position repeatedly.
# Author: Tony DiCola
# License: Public Domain
from __future__ import division
import time
import RPi.GPIO as GPIO
#import the PCA9685 module.
import Adafruit_PCA9685
#NEW
GPIO.setmode(GPIO.BOARD)
GPIO.setup(18, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
#
# Uncomment to enable debug output.
#import logging
#logging.basicConfig(level=logging.DEBUG)
# Initialise the PCA9685 using the default address (0x40)。
pwm = Adafruit_PCA9685.PCA9685()
# Alternatively specify a different address and/or bus:
#pwm = Adafruit_PCA9685.PCA9685(address=0x41, busnum=2)
# Configure min and max servo pulse lengths
servo_min = 385 # Min pulse length out of 4096
servo_max = 407 # Max pulse length out of 4096
# Helper function to make setting a servo pulse width simpler.
def set_servo_pulse(channel, pulse):
pulse_length = 1000000 # 1,000,000 us per second
pulse_length //= 60 # 60 Hz
print(‘{0}us per period’.format(pulse_length))
pulse_length //= 4096 # 12 bits of resolution
print(‘{0}us per bit’.format(pulse_length))
pulse *= 1000
pulse //= pulse_length
pwm.set_pwm(channel, 0, pulse)
# Set frequency to 60hz, good for servos.
pwm.set_pwm_freq(60)
print(‘Moving servo on channel 0, press Ctrl-C to quit.。.’)
while True:
if GPIO.input(18) == GPIO.HIGH:
pwm.set_pwm(0, 0, servo_max)
time.sleep(1)
else:
pwm.set_pwm(0, 0, servo_min)
time.sleep(1)
第9步:结束
全部0条评论
快来发表一下你的评论吧 !