步驟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
+關注
關注
1629文章
21754瀏覽量
604203 -
伺服電機
+關注
關注
85文章
2049瀏覽量
57962
發布評論請先 登錄
相關推薦
評論