CNCU-NEMBO

CNCU PCA9685 Servo Driver i2C Interface

CNCU-PCA9685-Servo-Driver-i2C-Interface-PRODUCT

Maagizo ya Matumizi ya Bidhaa

  • Unapoona ERR 40 kwenye mashine:
  • Weka mashine imewashwa, hii ni muhimu sana.
  • Ondoa betri kutoka kwa Live Position.
  • Weka betri kutoka kwa Nafasi Iliyohifadhiwa hadi kwenye Mkao Hai.
  • Anzisha tena mashine.
  • Kumbuka kununua betri mbili mpya ili uzihifadhi kwenye Hifadhi kwa mabadiliko yanayofuata ya betri.

Wasiliana na Usaidizi wa AM.CO.ZA ukikumbana na matatizo ya kubadilisha betri au nafasi ya mashine ikibadilika wakati wa mchakato. Pia unaweza kuwasiliana kupitia WhatsApp kwa namba 060 600 6000 kwa usaidizi.

Zaidiview

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-1

Kuendesha injini za servo ukitumia maktaba ya Arduino Servo ni rahisi sana, lakini kila moja hutumia pini ya thamani - bila kusahau nguvu fulani ya usindikaji ya Arduino. Adafruit 16-Channel 12-bit PWM/Servo Driver itaendesha hadi servo 16 juu ya I2C ikiwa na pini 2 pekee. Kidhibiti cha PWM kilicho kwenye ubao kitaendesha chaneli zote 16 kwa wakati mmoja bila usindikaji wa ziada wa Arduino. Zaidi ya hayo, unaweza kuunganisha hadi 62 kati yao ili kudhibiti hadi servos 992 - zote zikiwa na pini 2 sawa!
Adafruit PWM/Servo Driver ndio suluhisho bora kwa mradi wowote unaohitaji huduma nyingi.

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-2

Pinouts

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-3

  • Kuna seti mbili za pini za pembejeo za kudhibiti kila upande. Pande zote mbili za pini zinafanana! Tumia upande wowote unaopenda, unaweza pia kuunganisha kwa urahisi kwa kuunganisha mbili upande kwa upande

Pini za Nguvu

  • GND - Hii ni pini ya ardhi ya nguvu na ishara, lazima iunganishwe
  • VCC - Hii ni pini ya nguvu ya mantiki, unganisha hii kwa kiwango cha mantiki unachotaka kutumia kwa pato la PCA9685, inapaswa kuwa 3 - 5V max! Inatumika pia kwa vivutaji vya 10K kwenye SCL/SDA kwa hivyo isipokuwa kama una vivutaji vyako, ilingane na kiwango cha mantiki cha kidhibiti kidogo pia!
  • V+ - Hii ni pini ya hiari ya nguvu ambayo itatoa nguvu iliyosambazwa kwa seva. Ikiwa hutumii kwa servos unaweza kuondoka bila muunganisho. Haitumiwi kabisa na chip. Unaweza pia kuingiza nguvu kutoka kwa kizuizi cha terminal cha pini 2 kilicho juu ya ubao. Unapaswa kutoa 5-6VDC ikiwa unatumia servos. Ikibidi, unaweza kwenda juu zaidi hadi 12VDC, lakini ukiharibu na kuunganisha VCC kwa V+ unaweza kuharibu ubao wako!

Pini za Kudhibiti

  • SCL - Pini ya saa ya I2C, unganisha kwenye laini yako ya saa ya I2C ya kidhibiti kidogo. Inaweza kutumia mantiki ya 3V au 5V, na ina mvutano dhaifu wa VCC
  • SDA - Pini ya data ya I2C, unganisha kwenye laini yako ya data ya I2C ya kidhibiti kidogo. Inaweza kutumia mantiki ya 3V au 5V, na ina mvutano dhaifu wa VCC
  • OE - Wezesha pato. Inaweza kutumika kuzima matokeo yote haraka. Pini hii inapokuwa chini, pini zote huwashwa. Pini inapokuwa juu, matokeo yanazimwa. Imevutwa chini kwa chaguomsingi kwa hivyo ni pini ya hiari!

Bandari za Pato

  • Kuna bandari 16 za pato. Kila mlango una pini 3: V+, GND na pato la PWM. Kila PWM inaendesha kivyake kabisa lakini lazima zote ziwe na masafa sawa ya PWM.
  • Hiyo ni, kwa LEDs labda unataka 1.0 KHz lakini servos zinahitaji 60 Hz - kwa hivyo huwezi kutumia nusu kwa LEDs @ 1.0 KHz na nusu @ 60 Hz.
  • Zimeundwa kwa servos lakini unaweza kuzitumia kwa LEDs! Kiwango cha juu cha sasa kwa kila pini ni 25mA.
  • Kuna vipingamizi vya ohm 220 kwa mfululizo na Pini zote za PWM na mantiki ya matokeo ni sawa na VCC kwa hivyo kumbuka hilo ikiwa unatumia LEDs.

Bunge

Sakinisha Vichwa vya Servo

  • Sakinisha 4 3 × 4 pini vichwa vya kiume kwenye nafasi zilizo na alama kando ya ubao.

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-4

Solder pini zote

  • Kuna mengi yao!

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-5

Ongeza Vichwa kwa Udhibiti

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-6

Sakinisha Vituo vya Nguvu

  • Ikiwa unafunga bodi nyingi za dereva, unahitaji tu terminal ya nguvu kwenye ya kwanza.

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-7

Kuunganisha

Kuunganisha kwa Arduino

  • PWM/Servo Driver hutumia I2C kwa hivyo inachukua waya 4 pekee kuunganisha kwenye Arduino yako:

Wiring ya "Classic" Arduino:

  • +5v -> VCC (hii ni nguvu ya BREAKOUT pekee, SIO nishati ya servo!)
  • GND -> GND
  • Analogi 4 -> SDA
  • Analogi 5 -> SCL

Wiring wakubwa wa Mega:

  • +5v -> VCC (hii ni nguvu ya BREAKOUT pekee, SIO nishati ya servo!)
  • GND -> GND
  • Digital 20 -> SDA
  • Dijitali 21 -> SCL

R3 na baadaye waya za Arduino (Uno, Mega & Leonardo):
(Bodi hizi zimeweka wakfu pini za SDA & SCL kwenye kichwa kilicho karibu na kiunganishi cha USB)

  • +5v -> VCC (hii ni nguvu ya BREAKOUT pekee, SIO nishati ya servo!)
  • GND -> GND
  • SDA -> SDA
  • SCL -> SCL

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-8

Pini ya VCC ni nguvu tu ya chip yenyewe. Ikiwa unataka kuunganisha servos au LED zinazotumia pini za V+, LAZIMA uunganishe pini ya V+ pia. Pini ya V+ inaweza kuwa ya juu hadi 6V hata ikiwa VCC ni 3.3V (chip ni salama 5V). Tunapendekeza kuunganisha nguvu kupitia block terminal ya bluu kwa kuwa inalindwa na polarity.

Nguvu kwa Huduma
Seva nyingi zimeundwa kufanya kazi kwa takriban 5 au 6v. Kumbuka kwamba servos nyingi zinazohamia kwa wakati mmoja (hasa kubwa zenye nguvu) zitahitaji sasa nyingi. Hata servos ndogo huchota mamia kadhaa ya mA wakati wa kusonga. Baadhi ya servos za High-torque zitachora zaidi ya 1A kila moja chini ya mzigo.
Chaguzi nzuri za nguvu ni:

Sio wazo nzuri kutumia pini ya Arduino 5v kuwasha huduma zako. Kelele za umeme na 'kahawia' kutokana na mchoro wa ziada wa sasa unaweza kusababisha Arduino yako kufanya kazi kimakosa, kuweka upya na/au joto kupita kiasi.

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-9

Kuongeza Capacitor kwenye nafasi ya capacitor ya thru-hole
Tunayo doa kwenye PCB ya kutengenezea kwenye capacitor ya elektroliti. Kulingana na matumizi yako, unaweza kuhitaji au usihitaji capacitor. Ikiwa unaendesha servo nyingi kutoka kwa usambazaji wa umeme ambao huzama sana wakati servos inasonga, n * 100uF ambapo n ni idadi ya servos ni mahali pazuri pa kuanzia - kwa mfano 470uF au zaidi kwa servos 5. Kwa kuwa inategemea sana mchoro wa sasa wa servo, torque kwenye kila motor, na usambazaji wa nishati gani, hakuna "thamani moja ya capacitor ya kichawi" tunaweza kupendekeza ndiyo sababu hatujumuishi capacitor kwenye kit.

Kuunganisha Servo
Servo nyingi huja na kiunganishi cha kawaida cha kike cha pini-3 ambacho kitachomeka moja kwa moja kwenye vichwa kwenye Kiendeshaji cha Servo. Hakikisha unalinganisha plagi na waya wa ardhini (kawaida nyeusi au kahawia) na safu ya chini na waya wa mawimbi (kawaida manjano au nyeupe) juu.

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-10

Kuongeza Huduma Zaidi
Hadi servos 16 zinaweza kuunganishwa kwenye ubao mmoja. Ikiwa unahitaji kudhibiti servos zaidi ya 16, bodi za ziada zinaweza kufungwa kama ilivyoelezwa kwenye ukurasa unaofuata.

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-11

Kufunga Madereva

  • Madereva mengi (hadi 62) yanaweza kufungwa ili kudhibiti huduma zaidi.
  • Na vichwa kwenye ncha zote mbili za ubao, wiring ni rahisi kama kuunganisha a Kebo ya sambamba ya pini 6 (http://adafru.it/206) kutoka ubao mmoja hadi mwingine.

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-12

Akihutubia Mabaraza

  • Kila bodi kwenye mlolongo lazima ipewe anwani ya kipekee. Hii inafanywa na warukaji wa anwani kwenye makali ya juu ya kulia ya ubao. Anwani ya msingi ya I2C kwa kila ubao ni 0x40. Anwani ya jozi ambayo unapanga na viruka anwani inaongezwa kwa anwani ya msingi ya I2C.
  • Ili kupanga urekebishaji wa anwani, tumia tone la solder ili kuunganisha kirukaji cha anwani kinacholingana kwa kila jozi '1' kwenye anwani.

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-13

  • Ubao 0: Anwani = 0x40 Offset = binary 00000 (hakuna viruka-ruka vinavyohitajika)
  • Ubao 1: Anwani = 0x41 Offset = binary 00001 (daraja A0 kama kwenye picha hapo juu)
  • Ubao wa 2: Anwani = 0x42 Offset = binary 00010 (daraja A1)
  • Ubao wa 3: Anwani = 0x43 Offset = binary 00011 (daraja A0 & A1)
  • Ubao wa 4: Anwani = 0x44 Offset = binary 00100 (daraja A2)

nk.
Katika mchoro wako, utahitaji kutangaza mradi tofauti kwa kila bodi. Simu huanza kwa kila kitu, na inadhibiti kila servo kupitia kitu kilichoambatishwa. Kwa mfanoample:

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-14

Kutumia Maktaba ya Adafruit

  • Kwa kuwa PWM Servo Driver inadhibitiwa na I2C, ni rahisi sana kutumia na kidhibiti kidogo au kompyuta ndogo.
  • Katika onyesho hili, tutaonyesha kuitumia na Arduino IDE lakini msimbo wa C++ unaweza kutumwa kwa urahisi.

Sakinisha maktaba ya Adafruit PCA9685

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-15

  • Na chapa adafruit pwm ili kupata maktaba. Bofya Sakinisha

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-16

Jaribu na Example Kanuni:

  • Kwanza hakikisha nakala zote za Arduino IDE zimefungwa.
  • Ifuatayo, fungua IDE ya Arduino na uchague File-> Kutamples->Adafruit_PWMServoDriver- >Servo. Hii itafungua example file kwenye dirisha la IDE.

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-17

Ikiwa unatumia Kuzuka:

  • Unganisha bodi ya dereva na servo kama inavyoonyeshwa kwenye ukurasa uliopita. Usisahau kutoa nguvu kwa Vin (kiwango cha mantiki 3-5V) na V+ (nguvu ya servo 5V). Angalia LED ya kijani imewaka!

Ikiwa unatumia Shield:

  • Chomeka ngao kwenye Arduino yako. Usisahau pia italazimika kutoa 5V kwa block ya terminal ya V+. LED zote nyekundu na kijani lazima ziwashwe.

Ikiwa unatumia FeatherWing:

  • Chomeka FeatherWing kwenye Feather yako. Usisahau pia italazimika kutoa 5V kwa block ya terminal ya V+. Angalia LED ya kijani imewaka!

Unganisha Servo

  • Seva moja inapaswa kuchomekwa kwenye bandari ya PWM #0, bandari ya kwanza. Unapaswa kuona kufagia kwa servo na kurudi kwa takriban digrii 180.

Kurekebisha Huduma zako
Muda wa mapigo ya Servo hutofautiana kati ya chapa na miundo tofauti. Kwa kuwa ni mzunguko wa udhibiti wa analog, mara nyingi kuna tofauti kati ya sampchini ya chapa na modeli sawa. Kwa udhibiti sahihi wa nafasi, utataka kusawazisha upana wa minumum na upeo wa juu wa mapigo katika msimbo wako ili kuendana na nafasi zinazojulikana za servo.

Pata Kima cha Chini:

  • Kwa kutumia example code, hariri SERVOMIN hadi sehemu ya chini ya kufagia ifikie kiwango cha chini zaidi cha safari. Ni bora kukaribia hii hatua kwa hatua na kuacha kabla ya kikomo cha kimwili cha usafiri kufikiwa.

Pata Upeo wa Juu:

  • Tena kwa kutumia example code, hariri SERVOMAX hadi sehemu ya juu ya kufagia ifikie upeo wa juu wa safari. Tena, ni bora kukaribia hii hatua kwa hatua na kuacha kabla ya kikomo cha kimwili cha usafiri kufikiwa.

Tahadhari unaporekebisha SERVOMIN na SERVOMAX. Kupiga mipaka ya kimwili ya usafiri kunaweza kuvua gia na kuharibu servo yako kabisa.

Kubadilisha kutoka Digrii hadi Urefu wa Mapigo
The Kitendaji cha "ramani ()" cha Arduino (https://adafru.it/aQm) ni njia rahisi ya kubadilisha kati ya digrii za mzunguko na urefu wako wa mpigo wa SERVOMIN na SERVOMAX uliorekebishwa. Kuchukua servo ya kawaida na digrii 180 za mzunguko; ukisharekebisha SERVOMIN hadi nafasi ya digrii 0 na SERVOMAX hadi nafasi ya digrii 180, unaweza kubadilisha pembe yoyote kati ya digrii 0 na 180 hadi urefu wa mpigo unaolingana na mstari ufuatao wa msimbo:

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-18

Marejeleo ya Maktaba setPWMFreq(freq)

Maelezo

  • Chaguo hili la kukokotoa linaweza kutumika kurekebisha mzunguko wa PWM, ambao huamua ni 'mapigo' ngapi kwa sekunde yanayotolewa na IC. Imeelezwa tofauti, masafa huamua ni 'muda gani' kila mpigo uko katika muda kutoka mwanzo hadi mwisho, kwa kuzingatia sehemu zote za juu na za chini za mapigo.
  • Mzunguko ni muhimu katika PWM, kwa kuwa kuweka mzunguko wa juu sana na mzunguko mdogo wa wajibu kunaweza kusababisha matatizo, kwa kuwa 'muda wa kupanda' wa ishara (muda inachukua kutoka 0V hadi VCC) inaweza kuwa ndefu kuliko wakati ishara inatumika, na pato la PWM litaonekana kuwa laini na huenda hata lisifikie VCC, uwezekano wa kusababisha matatizo kadhaa.

Hoja

  • mara kwa mara: Nambari inayowakilisha masafa katika Hz, kati ya 40 na 1600

Example

  • Nambari ifuatayo itaweka mzunguko wa PWM hadi 1000Hz:

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-19

setPWM(chaneli, imewashwa, imezimwa)
Maelezo
Chaguo hili la kukokotoa huweka mwanzo (kuwasha) na mwisho (kuzima) wa sehemu ya juu ya mpigo wa PWM kwenye chaneli mahususi. Unabainisha thamani ya 'tiki' kati ya 0..4095 wakati ishara itawashwa, na wakati itazimwa. Idhaa inaonyesha ni yapi kati ya matokeo 16 ya PWM yanapaswa kusasishwa na thamani mpya.

Hoja

  • kituo: Kituo ambacho kinafaa kusasishwa kwa thamani mpya (0..15)
  • juu ya: Jibu (kati ya 0..4095) wakati ishara inapaswa kubadilika kutoka chini hadi juu
  • mbali: tiki (kati ya 0..4095) wakati ishara inapaswa kubadilika kutoka juu hadi chini

Example
Ex ifuatayoample itasababisha chaneli 15 kuanza chini, kwenda juu karibu 25% hadi 1024% kwenye mpigo (weka tiki 4096 kati ya 75), kurudi nyuma hadi chini 3072% ndani ya mapigo (tiki 25), na kubaki chini kwa XNUMX% ya mwisho ya mapigo:

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-20

Inatumika kama GPIO

  • Pia kuna mipangilio maalum ya kuwasha au kuzima pini kikamilifu

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-21

Hati za Maktaba ya Arduino

Python & CircuitPython

Wiring ya Microcontroller ya CircuitPython
Kwanza unganisha PCA9685 kwenye ubao wako kama inavyoonyeshwa kwenye kurasa zilizopita za Arduino. Hapa kuna example ya kuunganisha Feather M0 kwa bodi ya madereva na I2C:

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-22

Wiring ya Kompyuta ya Python

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-23

Usijaribu kuwasha servos zako kutoka kwa nguvu ya 5V ya bodi ya RasPi au Linux, unaweza kusababisha usambazaji wa umeme kukatika na kuharibu Pi yako! Tumia adapta tofauti ya 5v 2A au 4A

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-24

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-25

Ufungaji wa CircuitPython wa PCA9685 na Maktaba za ServoKit

Kwa bodi zisizo wazi kama vile Trinket M0 au Gemma M0, utahitaji kusakinisha mwenyewe maktaba zinazohitajika kutoka kwa kifurushi:

  • adafruit_pca9685.mpy
  • adafruit_bus_device
  • adafruit_register
  • adafruit_motor
  • adafruit_servokit.mpy

Kabla ya kuendelea hakikisha folda ya lib ya bodi yako au mzizi filemfumo una adafruit_pca9685.mpy, adafruit_register, na adafruit_servokit.mpy, adafruit_motor na adafruit_bus_device files na folda zilizonakiliwa.
Inayofuata unganisha kwenye mfululizo wa REPL wa bodi (https://adafru.it/Awz) kwa hivyo uko kwenye CircuitPython >>> haraka.

Ufungaji wa Python wa PCA9685 na Maktaba za ServoKit

Utahitaji kusakinisha maktaba ya Adafruit_Blinka ambayo hutoa msaada wa CircuitPython huko Python. Hii inaweza pia kuhitaji kuwezesha I2C kwenye jukwaa lako na kuthibitisha kuwa unaendesha Python 3. Kwa kuwa kila jukwaa ni tofauti kidogo, na Linux hubadilika mara kwa mara, tafadhali tembelea mwongozo wa CircuitPython kwenye Linux ili kuandaa kompyuta yako. (https://adafru.it/BSN)!

  • Mara tu hiyo ikikamilika, kutoka kwa safu yako ya amri endesha amri zifuatazo:

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-26

  • Ikiwa Python yako chaguo-msingi ni toleo la 3 unaweza kuhitaji kuendesha 'pip' badala yake. Hakikisha tu kuwa hujaribu kutumia CircuitPython kwenye Python 2.x, haitumiki!

Utumiaji wa CircuitPython & Python

  • Sehemu ifuatayo itaonyesha jinsi ya kudhibiti PCA9685 kutoka kwa haraka ya Python / REPL. Utajifunza jinsi ya kudhibiti servos kwa kushirikiana na kufifisha taa za LED kwa kuandika msimbo ulio hapa chini.

Taa za LED zinazofifia
Endesha nambari ifuatayo ili kuagiza moduli zinazohitajika na uanzishe muunganisho wa I2C na ubao wa dereva:

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-27

  • Kila chaneli ya PCA9685 inaweza kutumika kudhibiti mwangaza wa LED. PCA9685 inazalisha mawimbi ya kasi ya juu ya PWM ambayo huwasha na kuzima LED kwa haraka sana. Ikiwa LED imewashwa kwa muda mrefu kuliko kuzimwa itaonekana kung'aa machoni pako.
  • Kwanza weka LED kwenye ubao kama ifuatavyo. Kumbuka hauitaji kutumia kipingamizi kuweka kikomo cha sasa kupitia LED kwani PCA9685 itaweka kikomo cha sasa kuwa karibu 10mA:

LED cathode / mguu mfupi kwa PCA9685 channel GND / ardhi. Anode ya LED / mguu mrefu kwa PCA9685 chaneli PWM.

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-28

  • Darasa la PCA9685 hutoa udhibiti wa mzunguko wa PWM na mzunguko wa wajibu wa kila kituo. Angalia Nyaraka za darasa la PCA9685 (https://adafru.it/C5nkwa maelezo zaidi.
  • Kwa taa za LED zinazofifia kwa kawaida huhitaji kutumia masafa ya kasi ya mawimbi ya PWM na unaweza kuweka masafa ya PWM ya bodi hadi 60hz kwa kuweka sifa ya masafa:

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-29

  • PCA9685 inasaidia chaneli 16 tofauti zinazoshiriki masafa lakini zinaweza kuwa na mizunguko ya wajibu huru. Kwa njia hiyo unaweza kupunguza taa 16 za LED kando!
  • Kitu cha PCA9685 kina sifa ya chaneli ambayo ina kitu kwa kila chaneli ambacho kinaweza kudhibiti mzunguko wa wajibu. Ili kupata chaneli mahususi tumia [] kuorodhesha katika chaneli.

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-30

  • Sasa dhibiti mwangaza wa LED kwa kudhibiti mzunguko wa wajibu wa chaneli iliyounganishwa kwenye LED. Thamani ya mzunguko wa wajibu inapaswa kuwa thamani ya biti 16, yaani 0 hadi 0xffff, ambayo inawakilisha ni asilimia ngapi ya muda ambapo mawimbi huwashwa dhidi ya kuzima. Thamani ya 0xffff ni mwangaza 100%, 0 ni 0% mwangaza, na kati ya thamani hutoka 0% hadi 100% mwangaza.
  • Kwa mfanoampna kuwasha LED kabisa na mzunguko wa wajibu wa 0xffff:

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-31

  • Baada ya kutekeleza amri hapo juu unapaswa kuona taa ya LED ikiwa mwangaza kamili! Sasa zima LED na mzunguko wa wajibu wa 0:

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-32

  • Jaribu thamani ya kati kama 1000:

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-33

  • Unapaswa kuona taa ya LED ikiwa na mwanga hafifu. Jaribu kufanya majaribio na thamani zingine za mzunguko wa wajibu ili kuona jinsi LED inavyobadilisha mwangaza!
  • Kwa mfanoampna kufanya taa ya LED iwake na kuzima kwa kuweka duty_cycle kwenye kitanzi:

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-34

  • Hizi kwa vitanzi huchukua muda kwa sababu 16-bits ni nambari nyingi. CTRL-C kusimamisha kitanzi kufanya kazi na kurudi kwenye REPL.

Ex KamiliampKanuni

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-35

Udhibiti wa Huduma

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-36

  • Hakikisha kuwa umewasha au kuchomeka umeme wa nje wa 5V kwenye ubao wa PCA9685 pia!
  • Kwanza utahitaji kuagiza na kuanzisha darasa la ServoKit. Lazima ubainishe idadi ya chaneli zinazopatikana kwenye ubao wako. Kipindi cha kuzuka kina chaneli 16, kwa hivyo unapounda kipengee cha darasa, utabainisha 16 .

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-37

  • Sasa uko tayari kudhibiti huduma za mzunguko wa kawaida na endelevu.

Huduma za Kawaida

  • Ili kudhibiti servo ya kawaida, unahitaji kutaja kituo ambacho servo imeunganishwa. Kisha unaweza kudhibiti harakati kwa kuweka pembe kwa idadi ya digrii.
  • Kwa chaguo-msingi, darasa la Servo litatumia masafa ya uanzishaji, upana wa chini wa mpigo, na viwango vya juu zaidi vya upana wa mpigo ambavyo vinapaswa kufanya kazi kwa servo nyingi. Hata hivyo, angalia nyaraka za darasa la Servo (https://adafru.it/BNE) kwa maelezo zaidi juu ya vigezo vya ziada ili kubinafsisha mawimbi yanayotolewa kwa huduma zako.

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-38

  • Ukiwa na Servo, unabainisha nafasi kama pembe. Pembe daima itakuwa kati ya 0 na safu ya uanzishaji iliyotolewa wakati Servo ilipoundwa. Chaguo-msingi ni digrii 180 lakini servo yako inaweza kuwa na ufagiaji mdogo-badilisha pembe ya jumla kwa kubainisha kigezo cha actuation_angle katika kianzilishi cha darasa la Servo hapo juu.
  • Sasa weka pembe hadi 180, uliokithiri wa masafa:

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-39

  • Ili kurudisha servo kwa digrii 0:

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-40

  • Kwa servo ya kawaida, unabainisha nafasi kama pembe. Pembe daima itakuwa kati ya 0 na masafa ya uanzishaji. Chaguo-msingi ni digrii 180 lakini servo yako inaweza kuwa na ufagiaji mdogo. Unaweza kubadilisha pembe ya jumla kwa kuweka actuation_range .
  • Kwa mfanoample, kuweka safu ya uanzishaji hadi digrii 160:

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-41

  • Mara nyingi safu ambayo servo inatambua hutofautiana kidogo kutoka kwa seva zingine. Ikiwa servo haikufagia masafa kamili yaliyotarajiwa, basi jaribu kurekebisha upana wa kiwango cha chini zaidi na wa juu zaidi wa mpigo ukitumia set_pulse_width_range(min_pulse, max_pulse) .
  • Kuweka upana wa mapigo hadi kiwango cha chini cha 1000 na kisichozidi 2000:

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-42

  • Hiyo ndiyo tu kuna kudhibiti servos za kawaida na kuzuka kwa PCA9685, Python na ServoKit !

Huduma za Mzunguko unaoendelea

  • Ili kudhibiti servo inayoendelea ya mzunguko, lazima ueleze kituo ambacho servo imewashwa.
  • Kisha unaweza kudhibiti harakati kwa kutumia koo.
  • Kwa mfanoample, kuanza servo inayoendelea ya kuzungusha iliyounganishwa kwa chaneli 1 kwa kusonga mbele kamili:

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-43

  • Kuanzisha servo inayoendelea ya kuzungusha iliyounganishwa kwenye chaneli 1 kwa msisitizo kamili wa kurudi nyuma:

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-44

  • Kuweka nusu throttle, tumia decimal:

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-45

  • Na, ili kusimamisha harakati za servo zinazoendelea za kuzunguka weka throttle hadi 0 :

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-46

  • Hiyo ndiyo tu kuna kudhibiti servos za mzunguko na PCA9685 kuzuka kwa chaneli 16, Python na ServoKit!

Ex KamiliampKanuni

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-47

Hati za Python

Hati za Python: ServoKit

Vipakuliwa

Files

Uchapishaji wa Kiufundi na Uundaji

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-48 CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-49

Mashimo ni 2.5mm kwa kipenyo

CNCU-PCA9685-Servo-Driver-i2C-Interface-FIG-50

Maswali Yanayoulizwa Mara kwa Mara

  • Je, bodi hii inaweza kutumika kwa LEDs au servos tu?
    • Inaweza kutumika kwa LEDs na vile vile kifaa kingine chochote kinachoweza kutumia PWM!
  • Nina matatizo ya ajabu wakati wa kuchanganya ngao hii na Adafruit LED Matrix/7Seg Backpacks
    • Chip ya PCA9865 ina anwani ya "Simu Zote" ya 0x70. Hii ni pamoja na anwani iliyosanidiwa. Weka mikoba kushughulikia 0x71 au kitu kingine chochote isipokuwa 0x70 chaguo-msingi ili kumaliza suala hilo.
  • Nikiwa na LEDs, inakuwaje siwezi kupata LEDs kuzima kabisa?
    • Ikiwa ungependa kuzima LEDs kabisa utumie (katika Arduino) weka PWM(pin, 0, 4096); haijawekwa (pini, 0, 4095);

Nyaraka / Rasilimali

CNCU PCA9685 Servo Driver i2C Interface [pdf] Maagizo
PCA9685 Servo Driver i2C Interface, PCA9685, Servo Driver i2C Interface, Driver i2C Interface, i2C Interface, Interface

Marejeleo

Acha maoni

Barua pepe yako haitachapishwa. Sehemu zinazohitajika zimetiwa alama *