Satura rādītājs:

Robotiskā roka, ko kontrolē Arduino un dators: 10 soļi
Robotiskā roka, ko kontrolē Arduino un dators: 10 soļi

Video: Robotiskā roka, ko kontrolē Arduino un dators: 10 soļi

Video: Robotiskā roka, ko kontrolē Arduino un dators: 10 soļi
Video: Главная Автоматизация с помощью SMS - Использование и коды использования GSM-клавиатуры Arduino 2024, Jūlijs
Anonim
Image
Image
Teorija aiz projekta
Teorija aiz projekta

Robotie ieroči tiek plaši izmantoti rūpniecībā. Neatkarīgi no tā, vai tas ir paredzēts montāžai, metināšanu vai pat vienu izmanto ISS (Starptautiskā kosmosa stacija) dokstacijai, tie palīdz cilvēkiem strādāt vai pilnībā aizstāj cilvēkus. Mana uzbūvētā roka ir mazāks robota rokas attēlojums, ko paredzēts izmantot kustīgiem objektiem. To kontrolē arduino pro mini, kurā jau ir iebūvēta bibliotēka servo vadīšanai. Servus kontrolē PWM (impulsa platuma modulācija), kuru nav grūti ieprogrammēt, taču šī bibliotēka to atvieglo. Lietotājs var kontrolēt šos servos, izmantojot potenciometrus, kas paredzēti sprieguma dalītājiem, vai no datora programmas, kas izmanto 4 slīdņus servomotoru vadīšanai.

Šim projektam man nācās izstrādāt savu pielāgoto PCB un izveidot to, izveidot roku 3D modeļus un rakstīt kodu, kas to visu kontrolē. Papildus tam es python kodēju papildu programmu, kas sūta signālus arduino, kas spēj atšifrēt šo signālu un pārvietot servos lietotāja iestatītajā pozīcijā.

1. solis: projekta teorija

Projekta teorija
Projekta teorija

Arduino ir lielisks tādā veidā, ka piedāvā bezmaksas bibliotēku, ar kuru strādāt. Šim projektam es izmantoju bibliotēku Servo.h, kas ievērojami atvieglo servo vadību.

Servomotoru kontrolē PWM - impulsa platuma modulācija - tas nozīmē, ka, lai kontrolētu servo, jums ir jāveido īssprieguma impulsi. Servo var atšifrēt šī signāla garumu un pagriezt noteiktā stāvoklī. Un šeit es izmantoju jau minēto bibliotēku. Man nevajadzēja patstāvīgi aprēķināt signāla garumu, bet es izmantoju bibliotēkas funkcijas, kurām es vienkārši nododu parametru grādos, un tas rada signālu.

Servo vadīšanai es izmantoju potenciometrus, kas darbojas kā sprieguma dalītāji. Arduino dēļiem ir vairāki analogie/digitālie pārveidotāji, kurus es izmantoju projektam. Būtībā arduino uzrauga spriegumu potenciometra vidējā tapā, un, ja tas griežas uz vienu pusi, spriegums uz tā ir 0 volti (vērtība = 0), bet otrā pusē - 5 volti (vērtība = 1023). Pēc tam šī vērtība tiek mērogota no diapazona 0 - 1023 līdz 0 - 180, un pēc tam tā tiek nodota jau minētajai funkcijai.

Vēl viena tēma ir sērijveida saziņa ar arduino, kuru es apskatīšu tikai īsumā. Būtībā programma, kas rakstīta datorā, nosūta lietotāja izvēlēto vērtību, arduino var to atšifrēt un pārvietot servo uz noteiktu pozīciju

2. solis: PCB projektēšana

PCB projektēšana
PCB projektēšana
PCB projektēšana
PCB projektēšana
PCB projektēšana
PCB projektēšana

Es izveidoju 2 PCB - vienu galvenajai vadībai, kur ir arduino un tapas servos, un otrais ir potenciometri. 2 PCB iemesls ir tas, ka es gribēju kontrolēt robota roku no droša attāluma. Abas shēmas ir savienotas ar noteikta garuma kabeli - manā gadījumā 80 cm.

Barošanas avotam es izvēlējos ārējo adapteri, jo manis izmantotie servo patērē daudz vairāk enerģijas, nekā var nodrošināt arduino. Kā redzat, ir daži kondensatori, kurus es vēl neesmu minējis. Tie ir kondensatori, ko izmanto filtrēšanai. Kā jūs tagad zināt, servomotoru kontrolē ar īsiem impulsiem. Šie impulsi var izraisīt to, ka barošanas sprieguma kritumi un potenciometri, kuru iepriekšējais diapazons bija 0–5 volti, tagad ir mazāki. Tas nozīmē, ka spriegums vidējā tapā mainās un arduino iegūst šo vērtību un maina stāvokli, kurā atrodas servomotors. Tas var turpināties mūžīgi, un tas izraisa nevēlamas svārstības, kuras var novērst daži kondensatori paralēli barošanai.

3. solis: PCB izgatavošana

PCB izgatavošana
PCB izgatavošana
PCB izgatavošana
PCB izgatavošana
PCB izgatavošana
PCB izgatavošana

PCB izgatavošanai iesaku izlasīt šo.

Es izmantoju dzelzs uz spīdīga papīra metodi, un tas izdevās lieliski.

Tad es lodēju detaļas uz PCB. Jūs varat redzēt, ka es izmantoju arduino ligzdu gadījumam, ja man tas būs vajadzīgs nākotnē.

4. solis: rokas projektēšana

Rokas projektēšana
Rokas projektēšana
Rokas projektēšana
Rokas projektēšana
Rokas projektēšana
Rokas projektēšana

Šī nebūt nebija grūtākā šī projekta īstenošanas daļa.

Visa konfigurācija sastāv no 8 daļām, no kurām 4 nav kustīgas daļas - potenciometru kārba un pamatne, kur atrodas arduino -, bet pārējās četras ir pati roka. Es neiedziļināšos daudzās detaļās, izņemot to, ka dizains ir diezgan intuitīvs un savā ziņā vienkāršs. Tas ir izstrādāts, lai atbilstu manam pielāgotajam PCB un servos, kurus es iekļaušu detaļu sarakstā.

5. darbība: detaļu drukāšana

Daļu drukāšana
Daļu drukāšana
Daļu drukāšana
Daļu drukāšana
Daļu drukāšana
Daļu drukāšana

Daļas tika iespiestas ar Prusa printeri. Dažas sejas vajadzēja nedaudz noslīpēt un caurumus urbt. Jānoņem arī atbalsta balsti.

6. solis: salieciet to visu kopā

Visu saliekot kopā
Visu saliekot kopā
Visu saliekot kopā
Visu saliekot kopā
Visu saliekot kopā
Visu saliekot kopā
Visu saliekot kopā
Visu saliekot kopā

Šajā solī, kā teikts nosaukumā, es to visu saliku kopā.

Sākumā es lodēju vadus uz potenciometriem un pēc tam šos vadus uz PCB. Potenciometri labi iederas caurumos, un es karsti pielīmēju PCB uz pīlāriem, kas bija uzdrukāti kastes apakšā. Jūs varat urbt caurumus plāksnē un kastē, bet es uzzināju, ka ar līmēšanu ir vairāk nekā pietiekami. Tad es aizvēru abas kastes daļas un nostiprināju tās ar 4 skrūvēm, kas iederas manis paredzētajos caurumos.

Kā nākamo soli es izveidoju plakanu lentes kabeli, lai savienotu abus dēļus.

Galvenajā kastē es lodēju vadus no savienotāja VCC tapas, lai pārslēgtos, un pēc tam uz plāksnes Vcc un no plates GND uz savienotāja GND. Tad es karsti pielīmēju savienotāju vietā un uzliku pīlārus. Savienotājs iederas tieši caurumā, tāpēc nav nepieciešama karstā līme.

Pēc tam, izmantojot skrūves, es pievienoju apakšējo servo kastes apakšai.

Pēc tam es ievietoju kastes augšējo daļu uz apakšējās daļas un tāpat kā ar potenciometra kārbu, es to nostiprināju ar 4 skrūvēm.

Nākamā daļa bija nedaudz sarežģīta, bet man izdevās salikt pārējo roku kopā ar dažādiem uzgriežņiem un spilventiņiem, un tā nebija tik stingra, kā es gaidīju, jo es izveidoju dažas pielaides starp detaļām, tāpēc ir vieglāk strādāt ar tām.

Un kā pēdējais solis es ievietoju lenti kastes apakšā, jo pretējā gadījumā tās slīdētu.

7. solis: Arduino programmēšana

Arduino programmēšana
Arduino programmēšana
Arduino programmēšana
Arduino programmēšana
Arduino programmēšana
Arduino programmēšana

Es jau minēju, kā programma teorētiski darbojas aiz projekta, bet es vēl vairāk to sadalīšu.

Tātad sākumā mums ir jānosaka daži mainīgie. Pārsvarā tas tiek kopēts 4 reizes, jo mums ir 4 servi, un, manuprāt, nav lieki veidot sarežģītāku loģiku, lai tikai padarītu programmu nedaudz īsāku.

Tālāk ir spēkā neesoša iestatīšana, kurā ir definētas servo tapas.

Tad ir tukšuma cilpa - daļa no programmas, kas darbojas bezgalīgi. Šajā daļā programma ņem vērtību no potenciometra skalas un ievada izvadi. Bet ir viena problēma, ka potenciometra vērtība diezgan nedaudz lec, tāpēc man bija jāpievieno filtrs, kas veido pēdējo 5 vērtību vidējo vērtību, un pēc tam tiek izvadīts. Tas novērš nevēlamu svārstīšanos.

Programmas pēdējā daļa nolasa datus no seriālā porta un, pamatojoties uz nosūtītajiem datiem, izlemj, ko darīt.

Lai pilnībā izprastu kodu, iesaku apmeklēt oficiālās arduino vietnes.

8. darbība: programmēšana Python

Programmēšana Python
Programmēšana Python
Programmēšana Python
Programmēšana Python
Programmēšana Python
Programmēšana Python

Šī projekta daļa nav nepieciešama, bet es domāju, ka tā šim projektam piešķir tikai lielāku vērtību.

Python piedāvā daudzas bibliotēkas, kuras var brīvi izmantot, taču šajā projektā es izmantoju tikai tkinter un sērijas. Tkinter tiek izmantots GUI (grafiskā lietotāja saskarne) un sērijveida, kā norāda nosaukums, tiek izmantots seriālai saziņai.

Šis kods izveido GUI ar 4 slīdņiem, kuru minimālā vērtība ir 0 un maksimālā 180. Jums varētu būt mājiens, ka tas ir grādos un katrs slīdnis ir ieprogrammēts, lai kontrolētu vienu servo. Šī programma ir diezgan vienkārša - tā ņem vērtību un nosūta to arduino. Bet veids, kā tas tiek nosūtīts, ir interesants. Ja izvēlaties mainīt pirmā servo vērtību uz 123 grādiem, tas tiek nosūtīts uz arduino vērtību 1123. Katra nosūtītā numura pirmais numurs norāda, kuru servo tiks kontrolēts. Arduino ir kods, kas to var atšifrēt un pārvietot pareizo servo.

9. solis: detaļu saraksts

Daļu saraksts
Daļu saraksts
  • Arduino Pro Mini 1 gab
  • Servo FS5106B 1 gab
  • Servo Futaba S3003 2 gab
  • Piespraudes galviņa 2x5 1 gab
  • Piespraudes galvene 1x3 6 gab
  • Kondensators 220uF 3 gab
  • Micro Servo FS90 1 gab
  • Savienotājs AWP-10 2 gab
  • Savienotājs FC681492 1 gab
  • Slēdzis P-B100G1 1 gab
  • Kontaktligzda 2x14 1 gab
  • TTL-232R-5v-pārveidotājs 1 gab
  • Potenciometrs B200K 4 gab
  • un daudzas citas skrūves, spilventiņi un uzgriežņi

10. solis: pēdējās domas

Paldies, ka izlasījāt šo tekstu, un es ceru, ka esmu jūs vismaz motivējis. Šis ir mans pirmais lielākais projekts, kuru es veicu pats, nekopējot lietas no interneta un pirmo pamācību ziņu. Es zinu, ka roku varētu uzlabot, bet pagaidām esmu ar to apmierināts. Visas detaļas un avota kodi ir bezmaksas, jūs varat to izmantot un mainīt jebkurā vēlamajā veidā. Ja jums ir kādi jautājumi, nekautrējieties tos uzdot komentāru sadaļā. Varat arī apskatīt videoklipus, tie nav izcilas kvalitātes, bet parāda projekta funkcionalitāti.

Ieteicams: