
Мазмуну:
2025 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2025-01-23 14:51

Бул окуу куралы, биз servo моторун көзөмөлдөө үчүн Verilog кодун жазганы жатабыз. Серво SG-90 Waveshare тарабынан чыгарылган. Серво моторун сатып алганда, сиз иштөө чыңалуусун, максималдуу моментти жана сунушталган Pulse Width Modulation (PWM)… ж. Бирок, FPGA DuePrologic 3.3V киргизүү чыңалуусун камсыз кылат, мында SG -90 сервосунун иштөө чыңалуусу 5V - 7V. Электр энергиясынын жоктугунан, мен серво моторун ийгиликтүү айландыруу үчүн калибрленген PWM тизмесин берем.
Биздин милдет: Серво мотору 5 секунддук мезгил менен алдыга жана артка бурулат
Толук меню:
1 -кадам: Электрондук схеманы куруу

2 -кадам: Pin Planner орнотуу

Пин пландоочунун туура коюлганын текшерүү үчүн "Кирүү/чыгууну тапшырууну талдоону баштоо" баскычын чыкылдатыңыз. Болбосо, бардык порт аттарын өзүңүз импорттоого туура келет.
3 -кадам: Verilog Code
Биз "servo_count" таймерин түзөбүз. "Servo_A" ЖОГОРУ болгондо, PWM 1.5ms, демек, servo 120 градуста жайгашкан. Тескерисинче, "servo_A" ТӨМӨН болгондо, PWM 0.15 мс, ошондуктан серво 0 градуста калат.
дайындоо XIO_2 [3] = servo_pulse; // V үчүн
reg [31: 0] servo_count;
баштапкы баштоо
servo_count <= 32'b0;
servo_A <= 1'b0;
аяктоо
дайыма @(posedge CLK_66)
баштоо
servo_count <= servo_count + 1'b1;
эгер (servo_count> 400000000) // Саат цикли 66МГц, 1/66M * 400000000 ~ 5 секунд
баштоо
servo_A <=! servo_A;
servo_count <= 32'b0;
аяктоо
аяктоо
reg [31: 0] ex_auto;
баштапкы баштоо
ex_auto <= 32'b0;
servo_auto <= 1'b0;
аяктоо
дайыма @(posedge CLK_66)
баштоо
эгер (servo_A == 1'b1)
баштоо
ex_auto <= ex_auto + 1'b1;
эгер (ex_auto> 100000) // Саат цикли 66 МГц, бул PWM ~ 1.5ms, серво 120 градуска айланат
баштоо
servo_auto <=! servo_auto;
ex_auto <= 32'b0;
аяктоо
аяктоо
эгер (servo_A == 1'b0)
баштоо
ex_auto <= ex_auto + 1'b1;
эгер (ex_auto> 10000) // Саат цикли 66МГц, бул PWM ~ 0.15ms, серво 0 градуска айланат
баштоо
servo_auto <=! servo_auto;
ex_auto <= 32'b0;
аяктоо
аяктоо
аяктоо
4 -кадам: Verilog кодун жүктөө


"Компиляцияны баштоону" чыкылдатыңыз. Эгерде эч кандай ката билдирүүсү көрүнбөсө, аппараттык орнотууну аягына чыгаруу үчүн "Программистке" өтүңүз. Керек болсо, "Файлды өзгөртүү" бөлүмүндө pof файлын жаңыртууну унутпаңыз. Кодду жүктөө үчүн "Старт" чыкылдатыңыз.
Кантсе да, сиз servo мотор мезгил -мезгили менен айланып турганын көрүшүңүз керек.
Сунушталууда:
Arduino Бир нече Серво Моторун Кантип Туташтыруу керек - PCA9685 Үйрөткүчү: 6 кадам

Arduino бир нече сервокоторлорду кантип туташтыруу керек - PCA9685 үйрөткүчү: Бул окуу куралында биз бир нече моторду туташтыруу керек болгондо PCA9685 модулун жана arduino.PCA9685 модулун колдонуу менен бир нече servo моторлорду кантип туташтырууну үйрөнөбүз. : //www.adafruit.com/product/815Види караңыз
FPGA циклону IV DueProLogic Controls Raspberry Pi Камерасы: 5 кадам

FPGA Cyclone IV DueProLogic Controls Raspberry Pi Camera: FPGA DueProLogic расмий түрдө Arduino үчүн иштелип чыкканына карабастан, биз FPGA жана Raspberry Pi 4B байланышын түзөбүз. Үч тапшырманы бул окуу куралы ишке ашырат: (A) Бир убакта эки баскычты басыңыз FPGA бурчту буруш үчүн
FPGA циклону IV DueProLogic - баскыч жана LED: 5 кадам

FPGA Циклон IV DueProLogic - Баскыч жана LED: Бул окуу куралыбызда биз тышкы LED схемасын башкаруу үчүн FPGAны колдонобуз. Биз төмөнкү тапшырмаларды аткарабыз (A) LEDди башкаруу үчүн FPGA циклонунун IV DuePrologic баскычтарын колдонуңуз. (B) Flash LED & мезгил -мезгили менен өчүрүүVideo demo Lab
1 серво моторун колдонгон жөө робот: 13 кадам (сүрөттөр менен)

1 серво моторун колдонгон жөө робот: Мен бул роботту YouTubeдан көргөндөн бери кургум келет. Бир аз издеп көргөндөн кийин, мен ал жөнүндө көбүрөөк маалымат таап, өзүмдүкүн жасоону чечтим. Бул жөө баскычты куруунун максаты, мен аны мүмкүн болушунча кичине кылып жасоо болчу
Серво моторун жана ылдамдыкты көзөмөлдөөнү колдонуу менен айлануучу күйөрман: 6 кадам

Серво моторун жана ылдамдыкты көзөмөлдөөчү айлануучу күйөрман: Бул үйрөткүчтө биз желдеткичти servo мотор, потенциометр, arduino жана Visuino аркылуу жөнгө салынуучу ылдамдыкта айлантууну үйрөнөбүз