logo-instructables

instructables Kontrol Kacepetan Motor VHDL Nemtokake Arah lan Kontrol Kacepetan Kiri lan Tengen

instructables-VHDL-Motor-Speed-Control-Decide-Direction-and-Speed-Kiwa-lan-Tengen-Speed-Controller-PRODUCT

CATETAN: Kaca iki minangka salah sawijining bagéan saka bangunan sing luwih gedhe. Priksa manawa sampeyan miwiti ing kene, supaya sampeyan ngerti endi sing cocog karo proyek sing luwih gedhe

Swaraview

Kontrol kacepetan lan arah motor minangka salah siji saka rong divisi utama ing robot photodetector, sing liyane yaiku photodetector utawa divisi detektor cahya. Nalika divisi photodetector fokus ing sesanti robot, kacepetan motor lan kontrol arah divisi fokus ing gerakan robot. Data proses kontrol kacepetan lan arah motor sing diwenehake saka divisi photodetector lan menehi output fisik ing bentuk gerakan motor.

Tujuan divisi iki yaiku kanggo ngontrol kacepetan lan arah motor kiwa lan tengen robot sing nggoleki cahya. Kanggo mutusake nilai kasebut, sampeyan butuh ukuran lan posisi cahya sing dijupuk kamera lan diproses kanthi ambang. Sampeyan uga mbutuhake kacepetan sing diukur ing saben motor. Saka input kasebut, sampeyan bakal bisa ngasilake nilai PWM (Pulse-Width Modulation) kanggo saben motor.

Kanggo entuk iki, sampeyan kudu nggawe modul VHDL iki (uga disambung ing ngisor iki):

  1. Kontrol
  2. Pitungan kesalahan
  3. Konversi binar
  4.  Ora ana sumber cahya

Sampeyan bisa ndeleng kode VHDL kanggo divisi iki ing kene.

Pasokan
Disaranake kanggo kode karo ISE Design Suite 14.7 amarga uga bisa digunakake kanggo nyoba kode ing VHDL. Nanging, kanggo ngunggah kode menyang BASYS 3, sampeyan kudu nginstal Vivado (ver. 2015.4 utawa 2016.4) lan nulis watesan karo extension .xdc.instructables-VHDL-Motor-Speed-Control-Decide-Direction-and-Speed-Kiwa-lan-Tengen-Speed-Controller-fig-1

Kontrol Kacepetan Motor VHDL: Nemtokake Arah lan Kacepetan, Kontrol Kacepetan Ngiwa lan Tengen: Kaca 1

LANGKAH INSTRUKSI

Langkah 1: Kontrol
Kanggo mangerteni carane ngontrol prilaku robot sing nggoleki cahya, kita bakal nerangake prilaku sing dikarepake robot nalika ndeleng sumber cahya. Prilaku iki bakal dikontrol miturut posisi lan ukuran sumber cahya.instructables-VHDL-Motor-Speed-Control-Decide-Direction-and-Speed-Kiwa-lan-Tengen-Speed-Controller-

Algoritma sing digunakake minangka analog karo pengontrol robot RC, kanthi siji tuas sing bisa diuripake ngiwa utawa nengen, lan tuas liyane sing bisa diuripake maju utawa mundur.

Kanggo nggoleki cahya, sampeyan pengin robot iki pindhah ing garis lurus yen posisi sumber cahya ana ing ngarepe robot. Kanggo nindakake iku, sampeyan pengin kacepetan sing padha ing motor kiwa lan tengen. Yen lampu dumunung ing sisih kiwa robot, sampeyan pengin motor tengen obah luwih cepet tinimbang motor kiwa supaya robot bisa nguripake ngiwa menyang cahya. Kosok baline, yen lampu dumunung ing sisih tengen robot, sampeyan pengin motor kiwa obah luwih cepet tinimbang motor tengen supaya robot bisa nguripake nengen menyang cahya. Iki padha karo tuas kiwa pengontrol RC, ing ngendi sampeyan bisa ngontrol manawa sampeyan pengin mindhah robot kiwa, nengen, utawa lurus.

Banjur, sampeyan pengin robot maju yen sumber cahya adoh (sumber cahya cilik), utawa mundur yen sumber cahya sing dideteksi cedhak banget (sumber cahya gedhe). Sampeyan uga pengin sing luwih adoh robot saka sumber cahya, luwih cepet robot obah. Iki analog karo tuas tengen controller RC, ngendi sampeyan bisa ngontrol apa sampeyan pengin maju utawa mundur, lan carane cepet sampeyan pengin pindhah.

Sampeyan banjur bisa nurunake rumus matematika kanggo kacepetan saben motor, lan kita milih sawetara kacepetan antarane -255 kanggo 255. Nilai negatif tegese motor bakal nguripake mundur, nalika Nilai positif tegese motor bakal nguripake maju.

Iki minangka algoritma dhasar kanggo gerakan robot iki. Kanggo mangerteni sing luwih lengkap babagan modul iki, klik kene.

Langkah 2: Pitungan Kesalahan
Awit sampeyan wis duwe kacepetan goal lan arah kanggo motor, sampeyan uga pengin njupuk menyang akun kacepetan diukur lan arah motor. Yen wis tekan goal kacepetan, kita pengin motor kanggo mindhah mung ing momentum sawijining. Yen durung, kita pengin nambah kacepetan motor. Ing teori Kontrol, iki dikenal minangka sistem kontrol umpan balik loop tertutup.

Kanggo mangerteni sing luwih lengkap babagan modul iki, klik kene.instructables-VHDL-Motor-Speed-Control-Decide-Direction-and-Speed-Kiwa-lan-Tengen-Speed-Controller-fig-2

Langkah 3: Konversi Binar
Saka petungan sadurunge, sampeyan wis ngerti tumindak sing dibutuhake kanggo saben motor. Nanging, petungan ditindakake kanthi nggunakake biner sing ditandatangani. Tujuan saka modul iki Ngonversi iki nilai mlebu menyang Nilai sing bisa diwaca dening generator PWM, kang arah (salah siji clockwise utawa counter-clockwise) lan kacepetan (kiro-kiro antarane 0 kanggo 255). Uga, amarga umpan balik saka motor diukur ing binar unsigned, modul liyane dibutuhake kanggo ngowahi nilai unsigned (arah lan kacepetan) menyang nilai mlebu sing bisa diwilang dening modul pitungan kesalahan. Kanggo mangerteni sing luwih lengkap babagan modul iki, klik kene.

Langkah 4: Ora Ana Sumber Cahya
Sampeyan wis nggawe robot sing obah kanggo nggoleki cahya nalika cahya dideteksi dening robot. Nanging apa sing kedadeyan nalika robot ora ndeteksi cahya? Tujuan saka modul iki yaiku kanggo ndhikte apa sing kudu ditindakake nalika kahanan kasebut ana.

Cara paling gampang lan sumber cahya kanggo nggoleki yaiku robot kanggo muter ing panggonan. Sawise muter sawetara detik, yen robot isih durung nemokake sumber cahya, sampeyan pengin robot mandheg obah, supaya bisa ngirit daya. Sawise sawetara detik liyane, robot kudu muter maneh ing panggonan kanggo nggoleki cahya. Kanggo mangerteni sing luwih lengkap babagan modul iki, klik kene.

Langkah 5: Cara Kerjane
Sampeyan bisa ndeleng gambar ing ndhuwur kanggo panjelasan iki. Kaya kasebut ing wiwitan instruksi iki, sampeyan butuh input "ukuran" lan "posisi" saka divisi ambang. Kanggo mesthekake yen input kasebut bener (kanggo contoample, nalika sampeyan nampa ukuran = 0, ukuran punika saestu nul amarga kamera ora ndeteksi cahya, lan ora amarga kamera isih initializing) sampeyan uga kudu sawetara jenis indikator, kang kita nelpon "SIAP". Data iki bakal diproses dening kontrol (Ctrl. vhd) kanggo nemtokake kacepetan goal saben motor (9 bit, mlebu).

Kanggo output sing luwih stabil ing motor, sampeyan pengin nggunakake umpan balik ing sistem loop tertutup. Iki mbutuhake input "arah" lan "kacepetan" saben motor saka divisi pangukuran kacepetan motor. Amarga sampeyan pengin nglebokake input kasebut menyang petungan, sampeyan kudu ngowahi nilai sing ora ditandatangani iki dadi binar sing ditandatangani 9-bit. Iki ditindakake dening konverter binar sing ora ditandatangani (US2S.vhd).

Apa pitungan kesalahan (error. vhd) iku nyuda kacepetan diukur saka kacepetan goal kanggo nemtokake tumindak kanggo saben motor. Iki tegese yen loro-lorone duwe nilai sing padha, pangurangan dadi nol lan motor bakal pindhah mung ing momentum. Sampeyan uga bisa nambah faktor multiplikasi supaya robot bisa tekan kacepetan goal luwih cepet.

Wiwit pengontrol motor mbutuhake kacepetan lan arah saben motor, sampeyan kudu nerjemahake nilai sing ditandatangani saka tumindak kasebut dadi rong nilai sing ora ditandatangani: kacepetan (1 bit) lan arah (8 bit). Iki ditindakake dening konverter binar sing wis ditandatangani (S2US.vhd), lan bakal dadi input menyang divisi kontrol motor.

Kita uga nambah modul kanggo nemtokake apa apa nalika cahya ora dideteksi (ora counter cahya. Bhd). Wiwit modul iki Sejatine counter, iku bakal count suwene robot perlu salah siji muter utawa tetep ing panggonan. Iki bakal njamin robot "ndeleng" lingkungane tinimbang mung apa sing ana ing ngarepe, lan ngirit daya baterei nalika ora ana sumber cahya sing kasedhiya.instructables-VHDL-Motor-Speed-Control-Decide-Direction-and-Speed-Kiwa-lan-Tengen-Speed-Controller-fig-3

Langkah 6: Gabungke Files
Kanggo nggabungake files, sampeyan kudu nyambungake sinyal saka saben modul. Kanggo nindakake iku, sampeyan kudu nggawe modul tingkat ndhuwur anyar file. Lebokake input lan output modul sadurunge minangka komponen, nambah sinyal kanggo sambungan lan nemtokake saben port menyang pasangan sing cocog. Sampeyan bisa ngrujuk sambungan ing ilustrasi ing ndhuwur, lan deleng kode ing kene.instructables-VHDL-Motor-Speed-Control-Decide-Direction-and-Speed-Kiwa-lan-Tengen-Speed-Controller-fig-4

Langkah 7: Tes Iku
Sawise rampung karo kabeh kode, sampeyan kudu ngerti yen kode sampeyan bisa digunakake sadurunge sampeyan ngunggah menyang papan, utamane amarga bagean saka kode kasebut bisa digawe dening wong liya. Iki mbutuhake testbench, ngendi sampeyan bakal input nilai goblok lan ndeleng yen kode tumindak cara kita arep kanggo nindakake. Sampeyan bisa miwiti kanthi nyoba saben modul, lan yen kabeh bisa digunakake kanthi bener, sampeyan bisa nyoba modul tingkat paling dhuwur.

Langkah 8: Coba ing Hardware
Sawise kode wis dites ing komputer, sampeyan bisa nyoba kode ing hardware nyata. Sampeyan kudu nggawe kendala file ing Vivado (.xdc file kanggo BASYS 3) kanggo ngontrol input lan output menyang port sing.

Tip Penting: Kita sinau cara hard sing komponen electrical bisa duwe nilai maksimum saiki utawa voltages. Dadi manawa kanggo ngrujuk menyang lembar data kanggo nilai. Kanggo PMOD HB5, manawa kanggo nyetel voltage saka sumber daya ing 12 volt (minangka iki dibutuhake voltage kanggo motor), lan saiki minangka sethitik minangka needed kanggo motor kanggo mindhah.

Langkah 9: Gabung karo Bagéan Liyane
Yen langkah-langkah sadurunge sukses, gabungke kode kasebut karo grup liyane kanggo kode pungkasan sing bakal diunggah menyang robot. Banjur, voila! Sampeyan wis kasil nggawe robot sing nggoleki cahya.

Langkah 10: Kontributor
Saka kiwa menyang tengen:

  • Antonius Gregorius Deaven Rivaldi
  • Felix Wiguna
  • Nicholas Sanjaya
  • Richard Medyantoinstructables-VHDL-Motor-Speed-Control-Decide-Direction-and-Speed-Kiwa-lan-Tengen-Speed-Controller-fig-6

Apik banget: Kontrol Kacepetan Motor VHDL: Nemtokake Arah lan Kacepetan, Kontrol Kacepetan Ngiwa lan Tengen: Kaca 6
Matur nuwun kanggo reviewing! Proyèk iki mung minangka bagéan saka proyek kelas (Robot Nggoleki Cahya karo papan BASYS 3 lan kamera OV7670), mula aku bakal nambah link menyang instruksi kelas!

Apik banget: Aku looking nerusake kanggo ndeleng kabeh sijine bebarengan.

Dokumen / Sumber Daya

instructables Kontrol Kacepetan Motor VHDL Nemtokake Arah lan Kontrol Kacepetan Kiri lan Tengen [pdf] Pandhuan
Kontrol Kacepetan Motor VHDL Nemtokake Arah lan Pengontrol Kacepetan Ngiwa lan Tengen, Kacepetan Motor VHDL, Kontrol Nemtokake Arah lan Kontrol Kacepetan Ngiwa lan Tengen

Referensi

Ninggalake komentar

Alamat email sampeyan ora bakal diterbitake. Kolom sing dibutuhake ditandhani *