Talaan ng mga Nilalaman:

Arduino Uno Sa Spindle at Pitch Motor: 19 Hakbang
Arduino Uno Sa Spindle at Pitch Motor: 19 Hakbang

Video: Arduino Uno Sa Spindle at Pitch Motor: 19 Hakbang

Video: Arduino Uno Sa Spindle at Pitch Motor: 19 Hakbang
Video: Using LM393 IR Module as DC Motor Speed Sensor with Arduino 2024, Hulyo
Anonim
Image
Image
Ginamit na Mga Mapagkukunan
Ginamit na Mga Mapagkukunan

Ngayon ay pag-uusapan natin ang tungkol sa isang napakahalagang paksa sa mekanika at mechatronics: ang mga elemento ng machine. Sa artikulong ito, partikular naming tutugunan ang mga spindle, na nagtatampok ng ilang mga kagiliw-giliw na tampok at application. Pa rin, magpapakita kami ng ilang mga paraan ng pagkalkula ng kilusan na dulot ng isang suliran at nagpapakita ng isang pagpupulong na pagsubok.

Ginawa ko ang pagpupulong sa ibaba, samakatuwid, na inilalantad ang pagsulong ng isang suliran ng 2mm at isa pa na 8mm. Ang TR8 spindles na ginagamit ko ay karaniwang ginagamit sa maliliit na router at 3D printer, lalo na sa Z axis. Naaalala na sa pamamagitan ng mastering ng ilang mga konsepto na gagana kami sa dito, makakagawa ka ng disenyo ng anumang uri ng makina.

Hakbang 1: Ginamit na Mga Mapagkukunan

  • Trapezoidal spindle 8mm ang lapad at 2mm pitch
  • Trapezoidal spindle 8mm ang lapad at 8mm sa pitch
  • 8x2 spindle flanged chestnut
  • 8x8 spindle flanged chestnut
  • Mga bearings para sa 8mm diameter spindles
  • Linear cylindrical guide na 10mm ang lapad
  • Cylindrical roller bearings para sa 10mm na mga gabay
  • Mga bracket para sa mga gabay na 10mm na cylindrical
  • NEMA 17 Mga Motors
  • Mga coupling ng baras
  • Arduino Uno
  • Driver DRV8825
  • 4x4 matrix keyboard
  • Ipakita ang Nokia 5110
  • Sari-saring mga bahagi ng plastik
  • Bolts at mani
  • Batayan ng kahoy
  • Panlabas na supply ng kuryente na 12V

Hakbang 2: Tungkol sa Mga Spindle - Ano ang mga Ito?

Tungkol sa Spindles - Ano ang mga Ito?
Tungkol sa Spindles - Ano ang mga Ito?

Ang mga spindle ay mga elemento ng machine, tulad ng mga turnilyo. Iyon ay, ang mga ito ay tuwid na mga bar na nabuo ng mga thread ng tuluy-tuloy na mga hakbang. Ginagamit ang mga ito sa mga mekanismo na nangangailangan ng linear na paggalaw at pagpoposisyon. Maaari silang magsikap ng mataas na pwersa sa pag-igting at pag-compress at magpadala ng metalikang kuwintas. Pinapayagan nila ang paggalaw gamit ang awtomatikong pag-lock. Maaari silang maitayo ng iba't ibang mga materyales, na pinaka-karaniwang aluminyo at bakal.

Habang ang mga kumpanya ng Tsino ay gumagawa ng mga trapezoidal spindle, iminumungkahi ko sa iyo na makuha ang ganitong uri ng produkto sa halip na ang kilalang nut bolt. Ito ay dahil sa mas kaakit-akit na presyo at drag, na isinasaalang-alang kong kakila-kilabot.

Sa larawan inilalagay ko ang pinakamahusay na spindle na mayroon, sa palagay ko, iyon ang recirculate ball spindle. Kadalasan ito ay gawa sa isang napakahirap na bakal, at ang mga bola ay umiikot dito, sa loob ng kastanyas. Bukod sa katumpakan na mahusay, iha-highlight ko rin ang tibay, dahil ang ganitong uri ng spindle ay maaaring magparami ng bilyun-bilyong mga paggalaw nang hindi sinisira ang mekanismo. Ang isang mas murang pagpipilian, na kung saan ay ang ginagamit namin dito, ay ang trapezoidal spindle.

Hakbang 3: Tungkol sa Mga Spindle - Mga Single at Ball Thread

Tungkol sa Spindles - Mga Single at Ball Thread
Tungkol sa Spindles - Mga Single at Ball Thread

Ang mga spindle ng bola, sa larawan sa kaliwa, ay may kalahating bilog na mga kanal kung saan gumulong ang mga bola. Ang mga ito ay medyo mas mahal at may mababang alitan kumpara sa solong mga spindle ng tornilyo, na humahantong sa isang mas mataas na ani (lumiligid na alitan).

Ang mga solong sinulid na spindle sa kanang bahagi ng imahe ay karaniwang may mga profile na trapezoidal, dahil ang geometry na ito ay mas naaangkop upang maglapat ng mga puwersa sa direksyon ng ehe at makinis na paghahatid ng paggalaw. Ang mga ito ay medyo mura at may mataas na alitan kumpara sa recirculate ball spindles, na humahantong sa isang mababang ani, ibig sabihin slip slip.

Hakbang 4: Tungkol sa Mga Spindle - Mga Aplikasyon

Tungkol sa Spindles - Mga Aplikasyon
Tungkol sa Spindles - Mga Aplikasyon

Maaaring mailapat ang mga spindle sa anumang mekanismo kung saan kinakailangan ang linear na paggalaw. Malawakang ginagamit ang mga ito sa industriya sa makinarya at proseso.

Ang ilang mga application ay may kasamang:

  • Angat ng kargamento
  • Mga pagpindot
  • Mga strawberry at lathes
  • Mga Kagamitan sa CNC
  • Mga Makina na Pambalot
  • Mga 3D Printer
  • Laser Equipment ng Pagputol at Pagputol
  • Mga proseso sa industriya
  • Ang mga system ng pagpoposisyon at linear

Hakbang 5: Tungkol sa Mga Spindle - Parameter

Tungkol sa Spindles - Mga Parameter
Tungkol sa Spindles - Mga Parameter

Mayroong maraming mga katangian ng isang suliran na dapat isaalang-alang kapag nagdidisenyo ng isang mekanismo. Bilang karagdagan sa diameter at pitch nito, kinakailangan upang makilala ang lakas nito, ang sandali ng pagkawalang-kilos (paglaban sa pagbabago sa estado ng pag-ikot), nakabubuo na materyal, ang bilis ng pag-ikot kung saan ito ay sasailalim, direksyon ng operasyon (pahalang o patayo), ang inilapat na pagkarga, bukod sa iba pa.

Ngunit, batay sa naka-built na mga mekanismo, maaari nating mai-intuit ang ilan sa mga parameter na ito.

Kilalanin natin ang ilang kabutihang panlahat. Magsimula tayo sa HAKBANG.

Hakbang 6: Tungkol sa Mga Spindle - Hakbang (pag-aalis at Bilis)

Tungkol sa Spindles - Hakbang (pag-aalis at Bilis)
Tungkol sa Spindles - Hakbang (pag-aalis at Bilis)

Natutukoy ang haba ng paglalakbay ng nut sa bawat rebolusyon. Karaniwan ito sa mm / rebolusyon.

Ang isang 2 mm na suliran bawat rebolusyon ay magdudulot ng isang pag-aalis ng 2 mm sa bawat pagliko na ginaganap ng spindle. Ito ay naiimpluwensyahan ang linear tulin ng nut, dahil sa pagtaas ng bilis ng pag-ikot, ang bilang ng mga rebolusyon bawat yunit ng oras ay tataas at dahil dito ang distansya din na nilakbay.

Kung ang isang 2mm spin bawat rebolusyon ay umikot sa 60 RPM (isang rebolusyon bawat segundo), ang kulay ng nuwes ay lilipat sa 2mm bawat segundo.

Hakbang 7: Assembly

Assembly
Assembly
Assembly
Assembly

Sa aming pagpupulong, mayroon akong dalawang motor at ang aming keyboard na may display, na mukhang isang calculator, dahil gumawa ako ng isang takip para sa kanila sa 3D printer. Sa display ng Nokia mayroon kaming mga sumusunod na pagpipilian:

F1: Crescent - Ang Fuso ay mula sa kasalukuyang posisyon patungo sa posisyong tinutukoy ko

F2: Pababa - Lumiko

F3: Bilis - Maaari ko bang baguhin ang lapad ng pulso

F4: ESC

Hakbang 8: Pag-mount - Mga Materyales

Pag-mount - Mga Materyales
Pag-mount - Mga Materyales

A - 10mm Mga Gabay sa Linear

B - Trapezoidal spindles ng mga hakbang 2 at 8mm

C - Base sa Pagbabarena

D - Mga bearings para sa spindles

E - Mga may hawak ng gabay

F - Mga Chestnut

G - Mga Bearing

H - Mga Coupling

Ako - Mga Engine

J - Iba't ibang mga bahagi ng plastik (cursor, engine bracket, wedges, suporta sa keyboard at pagpapakita

Hakbang 9: Assembly - Hakbang 01

Assembly - Hakbang 01
Assembly - Hakbang 01

Kasunod sa pagbabarena ng base (C), tipunin namin ang dalawang motor (I). Upang mai-fasten ang mga ito, gumagamit kami ng mga braket na ginawa sa 3D printer (J). Huwag higpitan ang alinman sa mga turnilyo sa hakbang na ito sa pagpoposisyon. Papayagan nito ang mga kinakailangang pagsasaayos sa hakbang sa pagkakahanay.

Hakbang 10: Assembly - Hakbang 02

Assembly - Hakbang 02
Assembly - Hakbang 02

Kasunod pa rin sa pagbabarena ng base (C), iposisyon ang mga gabay na daang-bakal (E) at ang mga gulong (D). Detalye para sa plastic shim (J) na ginamit upang ayusin ang taas ng mga bearings.

Hakbang 11: Pag-mount - Hakbang 03

Pag-mount - Hakbang 03
Pag-mount - Hakbang 03

Lumilikha kami ng isang cursor gamit ang isang naka-print na bahagi upang ikonekta ang tindig (G) sa nut (F). Gumamit kami ng dalawang cursor, ang isa sa kanan isa pa pakaliwa. Ang pagpapaandar nito ay upang ipahiwatig ang posisyon sa isang sukat kahit kailan nais naming matukoy ang pag-aalis na sanhi ng spindle.

Hakbang 12: Assembly - Hakbang 04

Assembly - Hakbang 04
Assembly - Hakbang 04
Assembly - Hakbang 04
Assembly - Hakbang 04

Ipasok ang gabay (A) at ang suliran (B) sa kani-kanilang tindig (D) at suporta (E), sa tapat ng motor, pagkatapos ay ipasok ang gabay at ang suliran sa tindig (G) at kastanyas (F) at sa tip ng spindle ay inilalagay din namin ang coupler (H). Kinukuha namin silang dalawa hanggang sa maabot nila ang kanilang huling puntos (kabaligtaran ng suporta at motor).

Gaanong higpitan ang mga tornilyo upang payagan ang ibang pagsasaayos. Ulitin ang pamamaraan gamit ang natitirang gabay at spindle. Sa lahat ng mga sangkap na nakaposisyon, ginagawa namin ang pagkakahanay ng mga bahagi, tinatapos ang yugto ng pagpupulong ng mekanikal.

Hakbang 13: Pag-mount - Elektronika

Pag-mount - Elektronika
Pag-mount - Elektronika
Pag-mount - Elektronika
Pag-mount - Elektronika
Pag-mount - Elektronika
Pag-mount - Elektronika

Gamit ang isang naka-print na lalagyan ng plastic, siniguro namin ang display na Nokia 5110 at isang 4x4 matrix keypad. Sa mas mababang puwang ng stand ay maninirahan sa Arduino Uno, ang driver na DRV8825.

Gamit ang magagamit na pagbabarena sa base, pinapabilis namin ang pagpupulong.

Hakbang 14: Electric Scheme

Electric Scheme
Electric Scheme

Ang diagram ng mga kable ay simple. Mayroon kaming DRV8825 at ang parehong dalawang 17 salamin, iyon ay, ang parehong hakbang na ipinapadala namin sa isa ay papunta sa isa pa. Ano ang nagbabago na sa isa sa mga makina mayroon akong 8mm spindle at sa iba pang 2mm spindle. Malinaw, kung gayon, na ang una, na may 8mm spindle, ay mas mabilis. Nasa diagram pa rin ang display at ang 4x4 keyboard, na dapat maging matrix.

Hakbang 15: Source Code

Pagsasama ng mga aklatan at paglikha ng mga bagay

Mayroon kaming isang Lib na ginawa ko, na kung saan ay StepDriver.h. Inihanda ito para sa 8825, 4988 at pati na rin sa mga driver ng TB6600. Lumilikha ako sa hakbang na ito ng object DRV8825, ang d1.

// Biblioteca responsável por capturar a tecla que foi pressionada no teclado # include // Biblioteca responsável pelos graficos do display #include // Biblioteca responsável pela comunicacao do display #include // Configuracao de pinos do Display // pin 6 - Serial clock out (SCLK) // pin 5 - Serial data out (DIN) // pin 4 - Data / Command select (D / C) // pin 3 - LCD chip select (CS / CE) // pin 2 - LCD reset (RST) Adafruit_PCD8544 display = Adafruit_PCD8544 (6, 5, 4, 3, 2); // Biblioteca de motor de passo #include // Instancia o driver DRV8825 DRV8825 d1;

Patuloy at mga variable sa buong mundo

Sa bahaging ito ng code tinatrato ko ang matrix, na itinuro ko sa isa pang aralin sa video (LINK KEYBOARD). Gayunpaman, pinag-uusapan ko ang tungkol sa Keypad object, bukod sa distansya at bilis.

const byte LINHAS = 4; // número de linhas do tecladoconst byte COLUNAS = 4; // número de colunas do teclado // define uma matriz com os símbolos que deseja ser lido do teclado char SIMBOLOS [LINHAS] [COLUNAS] = {{'A', '1', '2', '3'}, { 'B', '4', '5', '6'}, {'C', '7', '8', '9'}, {'D', 'c', '0', 'e '}}; byte PINOS_LINHA [LINHAS] = {A2, A3, A4, A5}; // pinos que petunjuk tulad ng linhas do teclado byte PINOS_COLUNA [COLUNAS] = {0, 1, A0, A1}; // pinos que nagpapahiwatig bilang colunas do teclado // instancia de Keypad, responsável por capturar a tecla pressionada Keypad customKeypad = Keypad (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS); // variáveis resposnsáveis por armazenar o valor digitado char customKey; unsigned long distancia = 0; unsigned mahabang velocidade = 2000;

Pag-andar ng pagbabasa ng keyboard

Sa hakbang na ito mayroon kaming code na tumutukoy sa display, na gumagana sa pagtaas at pagbawas ng pag-print.

// Funcao responsavel por ler o valor do usuario pelo teclado ------------------------------------ --- unsigned long lerValor () {// Escreve o submenu que coleta os valores walang display display.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (27, 2); display.setTextColor (PUTI); display.print ("VALOR"); display.setTextColor (BLACK); display.fillRect (0, 24, 21, 11, 2); display.setCursor (2, 26); display.setTextColor (PUTI); display.print ("CLR"); display.setTextColor (BLACK); display.setCursor (23, 26); display.print ("LIMPAR"); display.fillRect (0, 36, 21, 11, 2); display.setCursor (5, 38); display.setTextColor (PUTI); display.print ("F4"); display.setTextColor (BLACK); display.setCursor (23, 38); display.print ("VOLTAR"); display.setCursor (2, 14); display.display (); String valor = ""; char tecla = false;

looping naghihintay para sa mga pindutan na pinindot

Ipinapaliwanag namin dito ang Loop programming, iyon ay, kung saan mo ipinasok ang mga halaga.

// Loop infinito enquanto nao chamar o bumalik habang (1) {tecla = customKeypad.getKey (); kung (tecla) {switch (tecla) {// Se teclas de 0 a 9 forem pressionadas case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case '0': valor + = tecla; display.print (tecla); display.display (); pahinga; // Se tecla CLR foi pressionada case 'c': // Limpa a string valor valor = ""; // Apaga o valor do display display.fillRect (2, 14, 84, 8, 0); display.setCursor (2, 14); display.display (); pahinga; // Se tecla ENT foi pressionada case 'e': // Retorna o valor return valor.toInt (); pahinga; // Se tecla F4 (ESC) foi pressionada case 'D': return -1; default: masira; }} // Limpa o char tecla tecla = false; }}

Pag-andar ng motor drive

Ang function na "ilipat" ay nagtrabaho sa hakbang na ito. Nakukuha ko ang bilang ng mga pulso at ang direksyon at pagkatapos ay gumawa ako ng isang "para".

// Funcao responsavel por mover o motor ----------------------------------- void mover (unsigned mahabang pulsos, bool direcao) {para sa (unsigned long i = 0; i <pulsos; i ++) {d1.motorMove (direcao); }}

setup ()

Inililipat ko ngayon ang display at ang pagsasaayos ng driver, at inilagay ko pa rin ang pag-pin sa loob ng source code upang gawing mas madali ito. Pinasimulan ko ang ilang mga halaga at nakikipag-usap sa mga pamamaraan na bumubuo ng mga setting.

walang bisa ang pag-set up () {// Configuracao ipakita -------- display.begin (); display.setContrast (50); display.clearDisplay (); display.setTextSize (1); display.setTextColor (BLACK); // Configuração do Driver DRV8825 ----------------- // pin GND - Paganahin (ENA) // pin 13 - M0 // pin 12 - M1 // pin 11 - M2 // pin 10 - I-reset (RST) // pin 9 - Sleep (SLP) // pin 8 - Hakbang (STP) // pin 7 - Direksyon (DIR) d1.pinConfig (99, 13, 12, 11, 10, 9, 8, 7); d1.matulog (Mababa); d1.reset (); d1.stepPerMm (100); d1.stepPerRound (200); d1.stepConfig (1); d1.motionConfig (50, velocidade, 5000); }

loop () - Ika-1 bahagi - Menu ng pagguhit

void loop () {// Escreve o Menu do Programa no display ----------------------------------- display.clearDisplay (); display.fillRect (0, 0, 15, 11, 2); display.setCursor (2, 2); display.setTextColor (PUTI); display.print ("F1"); display.setTextColor (BLACK); display.setCursor (17, 2); display.print ("CRESCENTE"); display.fillRect (0, 12, 15, 11, 2); display.setCursor (2, 14); display.setTextColor (PUTI); display.print ("F2"); display.setTextColor (BLACK); display.setCursor (17, 14); display.print ("DECRESCENTE"); display.fillRect (0, 24, 15, 11, 2); display.setCursor (2, 26); display.setTextColor (PUTI); display.print ("F3"); display.setTextColor (BLACK); display.setCursor (17, 26); display.print ("VELOCIDADE");

loop () - Bahagi 2 - Menu ng pagguhit

display.fillRect (0, 36, 15, 11, 2); display.setCursor (2, 38); display.setTextColor (PUTI); display.print ("F4"); display.setTextColor (BLACK); display.setCursor (17, 38); display.print ("ESC"); display.display (); bool esc = false;

loop () - Bahagi 3 - Tumatakbo

// Loop enquanto a tecla F4 (ESC) nao for pressionada habang (! Esc) {// captura a tecla pressionada do teclado customKey = customKeypad.getKey (); // caso alguma tecla foi pressionada if (customKey) {// Trata a tecla apertada switch (customKey) {// Se tecla F1 foi pressionada case 'A': distancia = lerValor (); // Se tecla ESC foi pressionada if (distancia == -1) {esc = true; } iba pa {// Escreve a tela "Movendo" walang display display.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (21, 2); display.setTextColor (PUTI); display.print ("MOVENDO"); display.setTextColor (BLACK); display.setCursor (2, 14); display.print (distancia); display.print ("Passos"); display.display ();

loop () - Bahagi 4 - Tumatakbo

// Ilipat o motor mover (distancia, LOW); // Volta ao menu esc = true; } pahinga; // Se tecla F2 foi pressionada case 'B': distancia = lerValor (); // Se tecla ESC foi pressionada if (distancia == -1) {esc = true; } iba pa {// Escreve a tela "Movendo" walang display display.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (21, 2); display.setTextColor (PUTI); display.print ("MOVENDO"); display.setTextColor (BLACK); display.setCursor (2, 14); display.print (distancia); display.print ("Passos"); display.display ();

loop () - Bahagi 5 - Tumatakbo

// Ilipat o motor mover (distancia, TAAS); // Volta ao menu esc = true; } pahinga; // Se tecla F3 foi pressionada case 'C': velocidade = lerValor (); kung (velocidade == -1) {esc = totoo; } iba pa {// Escreve a tela "Velocidade" walang display display.clearDisplay (); display.fillRect (0, 0, 84, 11, 2); display.setCursor (12, 2); display.setTextColor (PUTI); display.print ("VELOCIDADE"); display.setTextColor (BLACK); display.setCursor (2, 14); display.print (velocidade); display.print (char (229)); display.print ("s");

loop () - Bahagi 6 - Tumatakbo

display.fillRect (31, 24, 21, 11, 2); display.setCursor (33, 26); display.setTextColor (PUTI); display.println ("OK!"); display.setTextColor (BLACK); display.display (); // Configura nova velocidade ao motor d1.motionConfig (50, velocidade, 5000); pagkaantala (2000); // Volta ao menu esc = true; } pahinga; // Se tecla F4 (ESC) foi pressionada case 'D': // Se tecla CLR foi pressionada case 'c': // Se tecla ENT foi pressionada case 'e': // Volta ao menu esc = true; default: masira; }} // Limpa o char customKey customKey = false; }}

Hakbang 16: Tungkol sa Mga Spindle - Mga Pag-configure ng Makina

Tungkol sa Mga Spindle - Mga Konfigurasi ng Makina
Tungkol sa Mga Spindle - Mga Konfigurasi ng Makina

Sa mga machine ng CNC tulad ng mga 3D printer at router halimbawa, ang program na responsable para sa control sa pagpoposisyon ay kailangang malaman kung paano magaganap ang mga paggalaw bilang isang pagpapaandar ng bilang ng mga pulso na ibinigay sa stepper motor.

Kung pinapayagan ng hakbang na driver ng motor ang aplikasyon ng mga micro-step, dapat isaalang-alang ang pagsasaayos na ito sa pagkalkula ng ginawa ng pag-aalis.

Halimbawa, kung ang isang 200-hakbang na motor bawat rebolusyon ay konektado sa isang driver na nakatakda sa 1/16, pagkatapos ay 16 x 200 na pulso ang kinakailangan para sa isang solong rebolusyon ng suliran, iyon ay, 3200 pulso para sa bawat rebolusyon. Kung ang spindle na ito ay may pitch ng 2mm bawat rebolusyon, aabutin ng 3200 pulso sa driver para ilipat ng nut ang 2mm.

Sa katunayan, ang mga tagokontrol ng software ay madalas na gumagamit ng isang dahilan upang tukuyin ang ratio na ito, ang "bilang ng mga pulso bawat millimeter" o "mga hakbang / mm".

Hakbang 17: Marlin

Si Marlin
Si Marlin

Halimbawa, sa Marlin, nakikita natin ang seksyon ng @seksyon na paggalaw:

/ **

* Mga Default na Hakbang ng Axis Bawat Yunit (mga hakbang / mm)

* Override sa M92

* X, Y, Z, E0 [, E1 [, E2 [, E3 [, E4]

* /

# tukuyin ang DEFAULT_AXIS_STEPS_PER_UNIT {80, 80, 3200, 100}

Sa halimbawang ito, maaari nating tapusin na ang mga axis ng X at Y ay may katumpakan na 80 pulso upang ilipat ang 1mm, habang ang Z ay nangangailangan ng 3200 pulso at ang extruder E0 ay nangangailangan ng 100.

Hakbang 18: GRBL

GRBL
GRBL

Sa ibaba nakikita natin ang mga utos ng pagsasaayos ng GRBL. Gamit ang $ 100 na utos, maaari nating ayusin ang bilang ng mga pulso na kinakailangan upang maging sanhi ng isang isang millimeter na offset sa X-axis.

Sa halimbawa sa ibaba maaari nating makita na ang kasalukuyang halaga ay 250 pulso bawat mm.

Ang Y at Z axes ay maaaring itakda ayon sa pagkakabanggit $ 101 at $ 102.

Inirerekumendang: