Jeffrey Cross
Jeffrey Cross

Projek XLR8 Menggabungkan FPGA Kelajuan dengan Arduino Coding

Papan baru XLR8

Terdapat beberapa papan dan klon yang sesuai Arduino di pasaran. Walau bagaimanapun, kebanyakan tawaran sedikit melampaui apa yang Arduino mampu sendiri. Tetapi, walaupun kelihatan seperti Arduino Uno, papan baru XLR8 (diucapkan "Mempercepatkan") dari Teknologi Alorium agak berbeza.

Bagi mereka yang tidak tahu, FPGA, atau Field Programmable Gate Array, hampir sama seperti anda boleh merancang cip anda sendiri. Setiap FPGA terdiri daripada blok logik yang boleh dikonfigurasikan (CLBs), yang sangat fleksibel dan boleh melaksanakan sebarang fungsi asas. Secara berkala ia adalah litar yang boleh ditiru di mana, bukannya melaksanakan fungsi dalam perisian, anda boleh melakukannya dalam perkakasan. Manfaat FPGA adalah anda boleh menyesuaikannya untuk melakukan tugas apa saja. Walau bagaimanapun, perbezaan besar antara FPGA dan mikrokontroler biasa adalah bahawa, dari kotak, ia tidak melakukan apa-apa.

XLR8 adalah papan FPGA yang terletak di sekitar Altera MAX10, melaksanakan mikrokontroler ATmega yang serasi dengan program dan ruang ingatan data yang sama seperti ATmega328. Sekarang papan adalah kitaran tepat kepada ATmega standard tetapi, sekurang-kurangnya dalam teori, ada ruang kepala yang cukup di FPGA untuk menjalankan teras ATmega pada lebih dari dua kali ganda kelajuan jam Arduino Uno standard.

Berkesan, sekurang-kurangnya ke Arduino IDE, papan ini kelihatan seperti Arduino Uno. Begitu banyak supaya anda boleh memilih Uno sebagai jenis papan anda, kemudian menyusun dan memuat naik lakaran anda ke atas USB seperti biasa.

Tetapi perkara tidak betul-betul apa yang mereka nampak di permukaan. Juga di atas kapal FPGA adalah apa yang disebut Alorium "Xcelerator Blocks," atau XBs. Ini menyediakan fungsian yang dioptimumkan untuk perkakasan yang seharusnya dilaksanakan di dalam perisian.

Dari pintu gerbang mereka menyediakan dua jenis blok. Urus niaga pertama dengan matematik titik terapung - dan jika anda pernah melakukan matematik yang serius di Arduino, anda akan memahami dengan segera apa masalah besar yang boleh berakhir - blok lain mengendalikan kawalan servo. Kedua-dua blok boleh diakses menggunakan perpustakaan Arduino yang disediakan.

Sebagai contoh, untuk menggunakan pecutan yang ditawarkan oleh blok matematik titik terapung, anda perlu menukar kod anda untuk menggunakan panggilan fungsi khusus XLR8. Jadi, sebagai contoh:

c = a + b;

menjadi,

c = xlr8FloatAdd (a, b);

Tetapi jika ia kelihatan seperti usaha yang terlalu banyak, anda akan senang mengetahui bahawa blok kawalan servo boleh dimasukkan ke dalam kod anda tanpa sebarang perubahan kecuali termasuk fail header yang lain.

Ini bermakna jika anda telah membina robot dan mengalami servo jitter akibat gangguan servis, anda boleh mengganti papan ini untuk papan Arduino di robot anda dan, dengan satu baris kod, menghapuskan servo jitter. Bagi sesetengah membina yang akan menjadi penyelamat kehidupan.

Saya mempunyai perkakasan pra-pengeluaran di atas meja saya selama kira-kira sebulan sekarang, dan ketika saya tidak melakukan banyak kerja servo, saya harus menjejaki matematik titik terapung ke Arduino secara tetap. Walaupun sudah menjadi kesukaran untuk mengubah kod saya, pecutan perkakasan telah banyak melancarkan pelaksanaan. Saya, sebenarnya, agak terkesan.

Saya duduk dengan Jason Pecor untuk bercakap mengenai papan XLR8, dan dia mengatakan ini mengenai servo dan XBs terapung:

Kami telah membangunkan blok servo yang menghilangkan jitter / twitch yang biasa dengan pustaka servo Arduino standard. Kami mempamerkan fungsi ini dengan persediaan yang bagus di Maker Faire Milwaukee yang termasuk RedBoard, Lembaga XLR8 kami, dan beberapa petunjuk laser yang dipasang pada servos yang membuat perbandingan sisi yang baik.

Perkara yang keren mengenai contoh servo ialah satu-satunya perbezaan antara lakaran yang berjalan di kedua papan adalah perpustakaan servo termasuk baris. Selebihnya lakaran tetap sama, tetapi semua fungsi kawalan servo memanggil fungsi perkakasan dalam fabrik FPGA.

Kami juga mempunyai demo pintar dengan peminat, tiub yang jelas, dan bola ping-pong yang memberikan gambaran yang baik terhadap blok Floating Point kami apabila dibandingkan dengan titik terapung yang berasaskan Atmega.  

Blok lain yang sedang dipertimbangkan untuk senarai hit kami termasuk: Kawalan PID, Pemasa NeoPixel / Pengawal, Pelbagai UART, Fungsi Audio dan fungsi DSP.

Kebimbangan sebenar saya dengan XLR8 adalah, sekurang-kurangnya pada awalnya, Alorium akan memberikan sokongan terhad kepada pengguna yang ingin mencipta XB mereka sendiri. Walaupun mereka mengatakan bahawa,

Di bawah jalan raya, kami merancang untuk menyediakan akses kepada kod sumber dan dokumentasi yang mencukupi untuk membolehkan seseorang yang mahir dengan Verilog atau VHDL, dan dengan Quartus, untuk mencipta XB mereka sendiri.

Saya fikir mereka perlu menangani perkara ini lebih cepat daripada kemudian. Kerana sos rahsia sebenar lembaga ini diikat dengannya menjadi FPGA, dan keupayaan untuk menggunakannya. Sekarang ini alat yang hebat untuk pengguna yang menghadapi masalah servo jitter atau masalah terapung. Tetapi dengan sokongan yang baik untuk mencipta XB anda sendiri, ia boleh menjadi alat yang serius untuk Pembuat yang berpengalaman menghadapi pelbagai masalah.

The XLR8 kini crowdfunding di Kickstarter, dan masih mempunyai dua minggu lagi untuk meneruskan kempen.

Kongsi

Meninggalkan Komen