Orodha ya maudhui:

Arduino 2-in-1 Model Mdhibiti wa Treni: Hatua 4
Arduino 2-in-1 Model Mdhibiti wa Treni: Hatua 4

Video: Arduino 2-in-1 Model Mdhibiti wa Treni: Hatua 4

Video: Arduino 2-in-1 Model Mdhibiti wa Treni: Hatua 4
Video: Control Speed of Stepper Motor using L298N with Push Button Switches STLPB-01 2024, Julai
Anonim
Arduino 2-in-1 Model Mdhibiti wa Treni
Arduino 2-in-1 Model Mdhibiti wa Treni

Miaka arobaini iliyopita nilitengeneza kasoro ya treni ya op-amp ya msingi kwa marafiki kadhaa, na kisha karibu miaka minne iliyopita niliiunda tena kwa kutumia mdhibiti mdogo wa PIC. Mradi huu wa Arduino unarudia toleo la PIC lakini pia unaongeza uwezo wa kutumia unganisho la Bluetooth badala ya swichi za mwongozo za kukaba, kuvunja na kudhibiti mwelekeo. Wakati muundo ninaowasilisha hapa unalengwa kwa motor volt 12 ya modeli ya volt, inaweza kubadilishwa kwa urahisi kwa anuwai ya matumizi mengine ya udhibiti wa magari ya DC.

Hatua ya 1: Upanaji wa Upana wa Pulse (PWM)

Kubadilisha Upanaji wa Pulse (PWM)
Kubadilisha Upanaji wa Pulse (PWM)

Kwa wale ambao hawajui PWM, sio ya kutisha kama inavyosikika. Yote inamaanisha kwa maombi yetu rahisi ya kudhibiti gari ni kwamba tunazalisha wimbi la mraba la masafa kadhaa, halafu tunabadilisha mzunguko wa ushuru. Mzunguko wa ushuru hufafanuliwa kama uwiano wa wakati ambao pato ni kubwa kimantiki ikilinganishwa na kipindi cha umbo la mawimbi. Unaweza kuona wazi kabisa kwenye mchoro hapo juu na fomati ya juu katika mzunguko wa ushuru wa 10%, umbo la mawimbi la kati katika mzunguko wa ushuru wa 50%, na muundo wa chini wa 90 90. Mstari uliofunikwa uliofunikwa kwenye kila umbizo la mawimbi inawakilisha voltage sawa ya DC inayoonekana na motor. Kwa kuwa Arduino ina uwezo wa PWM uliojengwa ndani, ni rahisi sana kuunda aina hii ya udhibiti wa magari ya DC. Faida nyingine ya kutumia PWM ni kwamba inasaidia kuweka motor kutoka kwa uanzishaji ambao unaweza kutokea wakati wa kutumia DC moja kwa moja. Ubaya mmoja wa PWM ni kwamba wakati mwingine kuna kelele inayosikika kutoka kwa gari kwa masafa ya PWM.

Hatua ya 2: Vifaa

Vifaa
Vifaa
Vifaa
Vifaa
Vifaa
Vifaa

Picha ya kwanza inaonyesha unganisho la Arduino kwa swichi na moduli ya dereva wa LM298. Kuna vipinga dhaifu vya kuvuta ndani kwa Arduino kwa hivyo hakuna vizuizi vya kuvuta vinahitajika kwa swichi. Kubadili mwelekeo ni ubadilishaji rahisi wa SPST (single pole single cast). Swichi za Throttle na Brake zinaonyeshwa kama vifungo vya kushinikiza vya kawaida vya kufungua, vya kitambo.

Picha ya pili inaonyesha unganisho la Arduino kwa moduli ya Bluetooth na moduli ya dereva wa LM298. Pato la Bluetooth TXD linaunganisha moja kwa moja na pembejeo ya serial ya Arduino RX.

Picha ya tatu ni moduli ya daraja-H-L298N. Moduli ya LM298 ina mdhibiti wa volt ya 5 ambayo inaweza kuwezeshwa na jumper. Tunahitaji volts +5 kwa Arduino na Bluetooth lakini tunataka volts +12 kuendesha gari. Katika kesi hii tunatumia volts +12 kwa pembejeo ya "+ 12V nguvu" ya L298N na tutaacha kisasi cha "5V kuwezesha" mahali. Hii inaruhusu mdhibiti wa volt 5 kutoa kwa unganisho la "+5 nguvu" kwenye moduli. Unganisha hiyo kwa Arduino na Bluetooth. Usisahau kuunganisha waya za ardhini kwa uingizaji wa +12 na pato la +5 kwenye moduli "nguvu GND".

Tunataka voltage ya pato kwa motor kutofautiana kulingana na PWM iliyotengenezwa na Arduino badala ya kuwa imejaa kabisa au imezimwa. Ili kufanya hivyo, tunaondoa warukaji kutoka "ENA" na "ENB" na unganisha pato letu la Arduino PWM na "ENA" kwenye moduli. Kumbuka kuwa pini halisi ya kuwezesha ndio iliyo karibu zaidi na ukingo wa bodi (karibu na pini za "pembejeo"). Pini ya nyuma kwa kila kuwezesha ni +5 volts kwa hivyo tunataka kuhakikisha kuwa hatuunganishi na hiyo.

Pini "IN1" na "IN2" kwenye moduli zimeunganishwa na pini husika za Arduino. Pini hizo zinadhibiti mwelekeo wa magari na, ndio, kuna sababu nzuri ya kuruhusu Arduino iwadhibiti badala ya kuunganisha tu kubadili kwenye moduli. Tutaona kwa nini katika majadiliano ya programu.

Hatua ya 3: Moduli ya Bluetooth

Moduli ya Bluetooth
Moduli ya Bluetooth

Picha iliyoonyeshwa hapa ni mfano wa moduli za Bluetooth zinazopatikana. Unapotafuta kununua, unaweza kutafuta kwa maneno "HC-05" na HC-06 ". Tofauti kati ya hizi mbili ziko kwenye firmware na kawaida kwenye idadi ya pini kwenye ubao. Picha hapo juu ni ya moduli ya HC-06 na inakuja na firmware rahisi ambayo inaruhusu usanidi wa kimsingi tu. Imewekwa pia kama "Mtumwa" kifaa cha Bluetooth tu. Kwa maneno rahisi ambayo inamaanisha kuwa inaweza kujibu tu amri kutoka kwa kifaa cha "Mwalimu" na haiwezi kutoa amri peke yake. Moduli ya HC-05 ina uwezekano zaidi wa usanidi na inaweza kuwekwa kama kifaa cha "Mwalimu" au "Mtumwa". HC-05 kawaida huwa na pini sita badala ya nne tu zilizoonyeshwa hapo juu kwa HC-06. Pini ya Serikali sio muhimu sana lakini pini muhimu (wakati mwingine huenda kwa majina mengine kama "EN") inahitajika ikiwa unataka kufanya usanidi wowote. Kwa ujumla, moduli hazihitaji usanidi wowote ikiwa uko sawa na kiwango cha baud chaguo-msingi cha 9600 na haujali kutoa jina maalum kwa moduli. Nina miradi kadhaa ambapo ninatumia hizi kwa hivyo napenda kuzitaja ipasavyo.

Kusanidi moduli za Bluetooth inahitaji kwamba ununue au ujenge kiolesura kwa bandari ya serial RS-232 au kwa bandari ya USB. Sitashughulikia jinsi ya kujenga moja kwenye chapisho hili lakini unapaswa kupata habari kwenye wavuti. Au nunua tu kiolesura. Amri za usanidi hutumia maagizo ya AT kama vile zilitumika katika siku za zamani na modemu za simu. Nimeambatanisha mwongozo wa mtumiaji hapa ambao unajumuisha maagizo ya AT kwa kila aina ya moduli. Jambo moja la kumbuka ni kwamba HC-06 inahitaji amri za UPPERCASE na kamba ya amri lazima ikamilishe ndani ya sekunde 1. Hiyo inamaanisha kuwa minyororo mirefu zaidi ya vitu kama kubadilisha viwango vya baud itahitaji kukatwa na kubandikwa kwenye programu yako ya terminal au utahitaji kuweka faili za maandishi za kutuma. Mahitaji ya UPPERCASE ni ikiwa tu unajaribu kutuma amri za usanidi. Njia ya mawasiliano ya kawaida inaweza kukubali data-8 yoyote.

Hatua ya 4: Programu

Programu ni rahisi sana kwa toleo la mwongozo na toleo la Bluetooth. Ili kuchagua toleo la Bluetooth sua maoni "#fafanua BT_Ctrl".

Wakati niliandika nambari ya PIC nilijaribu mzunguko wa PWM na mwishowe nikakaa kwa 500-Hz. Niligundua kuwa ikiwa masafa yalikuwa ya juu sana basi moduli ya LM298N haikuwa na uwezo wa kujibu haraka kwa mapigo. Hiyo ilimaanisha kuwa pato la voltage halikuwa laini na inaweza kuchukua anaruka kubwa. Arduino ina amri za PWM zilizojengwa lakini zinakuruhusu tu kutofautisha mzunguko wa ushuru na sio masafa. Kwa bahati nzuri, masafa ni karibu 490-Hz kwa hivyo iko karibu na 500-Hz niliyotumia kwenye PIC.

Moja ya "huduma" za kuruka kwa gari moshi ni hali ya kasi ya kuongeza kasi na kusimama ili kuiga jinsi treni halisi inavyofanya kazi. Ili kutimiza hilo, ucheleweshaji wa wakati rahisi umeingizwa kwenye kitanzi kwa toleo la mwongozo la programu. Kwa thamani iliyoonyeshwa, inachukua takriban sekunde 13 kwenda kutoka volts 0 hadi 12 au kutoka volts 12 kurudi sifuri. Ucheleweshaji unaweza kubadilishwa kwa urahisi kwa muda mrefu au mfupi. Kesi pekee ambapo kasi haifanyi kazi ni wakati ubadilishaji wa mwelekeo unabadilishwa. Kwa madhumuni ya ulinzi mzunguko wa ushuru wa PWM umewekwa mara moja kwa 0% wakati wowote ubadilishaji huu unabadilishwa. Hiyo, kwa kweli, inafanya ubadilishaji wa Mwelekeo pia mara mbili kama kuvunja dharura.

Ili kuhakikisha utunzaji wa moja kwa moja wa swichi ya mwelekeo ninaweka nambari yake ndani ya kidhibiti cha kukatiza. Hiyo pia inatuwezesha kutumia kazi ya "kukatiza mabadiliko" kwa hivyo haijalishi ikiwa mabadiliko ni kutoka chini hadi juu au juu hadi chini.

Toleo la Bluetooth la programu hutumia amri za herufi moja kuanzisha kazi za Usambazaji, Reverse, Brake, na Throttle. Kwa kweli, amri zilizopokelewa hubadilisha swichi za mwongozo lakini husababisha majibu sawa. Programu ninayotumia kudhibiti Bluetooth inaitwa "Mdhibiti wa Serial wa Bluetooth" na Prototypes Zifuatazo. Inakuwezesha kusanidi kitufe cha kawaida na uweke minyororo ya amri na majina kwa kila kitufe. Pia hukuruhusu kuweka kiwango cha kurudia kwa hivyo ninaweka vifungo vya Brake na Throttle kwa 50ms kutoa sekunde 14 za kasi. Nimelemaza kazi ya kurudia kwa vitufe vya Mbele na Kubadilisha.

Hiyo ni kwa chapisho hili. Angalia Maagizo yangu mengine. Ikiwa una nia ya miradi ya PIC microcontroller angalia wavuti yangu kwenye www.boomerrules.wordpress.com

Ilipendekeza: