步骤1:硬件和材料
该项目分为3个主要小节:机械部分(“我们需要什么?”),电气部分(“我们如何捆绑东西?”)和软件部分(“我们如何使其工作?”)。
那么,我们需要什么?
用于机械部分的材料: (图1 )
-一个塑料盒
-金属支架
-外部电源
-电缆扎带
-1个铁钉子
-易于弯曲的金属线
-较轻
-钳子
-铝箔
-金属支架
-粗针
-小号L型金属支架(应接近声纳传感器的大小)
-和一辆自行车(显然= D)
电气部件的材料和硬件:( 。2和3 )
-Basys3开发板
-3 X Pmod MAXSONAR
-Pmod NAV
-Pmod BT2
-Pmod GPS
-3 X伺服电机
-2个LEDs
-2个电阻
-2个按钮
-固定输出线性稳压器(LM7805)
-电池9 V
-9V电池连接器
-引脚
-焊接板(我们的尺寸约为95 x 47 mm,然后将其切成小块)
-电线
-便携式智能手机电池充电器
软件部分:
-Vivado Design Suite WebPACK(我们使用的是2016.4版本)
-Android Studio
步骤2:组装物理组件
现在可以在自行车上组装组件了!
任务1:在自行车上建立盒子并将其安装
我们将塑料支架绑在自行车的后部。此步骤特定于一个人拥有的自行车的类型;如果您有一个自行车行李架,则可以简化此操作(实际上,如果有,则只需跳过第一步,然后转到第二步-不幸的是我们没有一个,所以我们不得不即兴创作)。
1。从后轮在保护翼上开4个孔,它们之间的距离分别为11厘米和2.5厘米。我们用铁钉子和锤子打孔。铁钉的直径应足够大,以使电线穿过孔。我们必须用一块木头支撑它,以防止后轮被钉子刺穿。
2。在塑料盒中的四个长孔中,在长11厘米,宽2.5厘米的矩形的角处,以塑料盒为中心(图4 )。我们通过加热一小部分金属丝的尖端并刺穿塑料来制成孔。
3。将盒子装到自行车上。我们使用金属丝,方法是从末端上下颠倒插入,然后将金属丝绑在中间以固定支架,并防止其移动。金属线应更长一些,因为稍后将用于将板固定在盒子中。
等一下!结果可以在图中看到。 5 :)
任务2:构建对声纳Pmod的支持
因为我们无法直接在声纳上修复声纳Pmod伺服,我们为其创建了一个支撑,该支撑将安装在伺服电机的头部。同样,如果您要根据所使用的伺服器的类型以不同的方式执行此步骤,则可以自由操作,尽管我们仍将描述如何以这种方式执行此操作:
1。我们使用加热的针尖在伺服器的十字旋转头上钻了更大的孔。针应足够粗,以使您的线材穿过针孔。
2。用金属线将金属支架连接到伺服器的塑料轮上。
3。使用两个束线带将声纳传感器固定在支架上,如图图6 所示。
任务3:将伺服器,声纳和支架安装在盒
我们用胶带和回形针将舵机固定在盒上。我们还在特定位置切割了盒子,以使组件合适,并且伺服器可以旋转。通过在塑料盒上打孔(黄色)或通过粘贴塑料来安装灯。的图。 11
任务4:捆绑所有组件
如图中所示。 12 ,在盒子里,我们有Basys3开发板,GPS和BT2模块;用电线,电缆扎带和胶带将它们固定。在它们的顶部,用硬纸板隔开的面包板带有用于接地和为伺服器供电的引脚。图13 。
第3步:处理电气部件
下一步,我们需要以某种方式将电气部件连接到板上。..由于传感器随附的收到的Digilent 6/12引脚电缆连接器很短,我们不得不通过焊接电线和引脚来扩展连接器用锡。 图7.a 和 7.b 显示了我们应在项目中的Basys3板与Pmod之间建立的连接。
此步骤再次分为几个任务。
任务1 :将每个按钮焊接到一块焊板上,然后将其连接到两根导线上,这两根导线的长度相等,可以从自行车的一个手柄上取下到前面提到的自行车背面的板上。一根线将接地,另一根线将连接到电路板的引脚。一个按钮需要2 X 160厘米的电线。 (图8)
任务2 :对LED和电阻进行相同的操作。因为我们决定将信号灯放在较早安装的盒子的背面,所以所需的电线将不再像上面提到的那样长。每根电线30厘米对我们来说绰绰有余。 (图9)
任务3 :如果要连接3个伺服器,电路板的电源将不足。因此,我们决定为每个伺服器放置9V电池。因为使用的伺服器在4.8V-》 6V的电压下工作,所以我们添加了一个固定输出线性稳压器(LM7805),该稳压器为我们提供了5V的输出,用于为伺服器供电。 (图10)
未来的更新将包括Pmod的最终接线。现在,这是使用6/12针Digilent电缆连接器完成的。
步骤4:测试外围设备
所有内容均已在VHDL中编程。在本节中,我们将解释每个实现背后的逻辑。我们还提供下面的代码。
作为蓝牙模块的PmodBT2是使用UART协议控制的。从数据表我们知道它的波特率为115200。我们需要知道接收和发送操作的过采样率。尽管我们还为接收部分提供了代码,但我们现在仅使用传输功能。传输的过采样率计算为板频率/蓝牙波特率,在本例中为100MHz/115200 =868。有关如何控制和连接蓝牙的更多信息,请参见Internet。尽管pmod有12个引脚,但我们将仅连接RX,TX的2个引脚,GROUND和VCC的2个引脚。
PmodMAXSonar使用PWM(脉冲宽度调制)协议进行编程,尽管您可以使用其他编程协议。我们将需要引脚4(PWM输出),引脚5(GND)和引脚6(VCC)。 RX引脚将被上拉并设置为输出以连续传输数据。我们忽略了模拟和TX引脚。该分量的输出将是英寸的范围,该范围将通过对PWM输入脉冲的长度(即147微秒)进行计数来获得。每次计数器达到14699时,我们都会增加英寸,如果读数大于零,则会重置缓冲区以准备新的读数。
我们使用蓝牙模块将声纳读数传输到手机。我们计算出,要发送数据,我们需要将传输过采样率乘以所需的位数乘以2。过采样率是867,位数是16,乘以2,得到27774。使用计数器,每次达到该值时,我们就传输范围。可以根据需要进一步调整该值。
LED的一根线接地,另一根线接地。按钮的连接方式相同。面板等待按钮被按下。当它在按钮引脚上记录更改时,它开始闪烁一个LED。另一个按下的按钮将停止相应的指示灯。指示灯在逻辑上“绑定”到按钮。另一个导致另一个按钮。
注意:必须将按钮信号线所在的端口设置为在XDC文件中上拉才能正常工作。
Servos输入PWM的周期应为2ms。这意味着50 Hz频率。由于Basys3内部时钟的频率为100MHz,为了获得所需的50Hz时钟周期,我们将100MHz/50Hz = 2000000计数。基于特定的填充因子,我们将获得一定程度的伺服磁头移动,该角度再次实现为计数器。
使用模块SPI_communication_NAV_AG通过设置寄存器来从加速度计获取数据。想读取数据。例如,如果希望从x轴读取数据,可以将spi_addr设置为“ 0101001”。由于我们希望一直进行通信,因此我们将enable设置为1。从加速度计的X轴读取数据(主从SPI通信)。用重力加速度单位解释数据,并检查其是否在阈值内:1-5 g。如果阈值之间的读数值通知了制动信号灯。
注意:这些值可从观察中得知
GPS用于识别自行车的行驶速度。数据通过UART协议收集,并以5条消息的形式出现。我们只需要第五个VTG即可获得速度。来自GPS的所有信息都通过BT2发送到应用,最终在其中进行解析,并提取所需的数据。
第5步:对电路板进行编程
我们现在准备为当前的系统赋予生命!
1。打开Vivado Design Suite并创建一个新项目。
2。为项目指定所需的名称,创建一个约束文件,然后选择零件xc7a35tcpg236-1,它是Basys3板上的fpga核心。
3。为代码文件中提供的每个组件创建新的设计源,或仅将它们上载。
4。将我们提供的约束文件放入您的项目中(如果需要,可以根据自己的需要对其进行自定义)。
5。综合并实施您的设计。生成比特流,打开新目标并编程设备:)
-
FPGA
+关注
关注
1624文章
21597浏览量
601008 -
伺服电机
+关注
关注
85文章
2018浏览量
57597
发布评论请先 登录
相关推荐
评论