Ștefan-Radu MAFTEI (78317) - RoboDraw

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

RoboDraw (sau Robodró pentru prieteni) este un roboţel care vine în ajutorul celor care doresc să aibă forme desenate impecabil pe o foaie de hârtie.

  • Acesta desenează forme geometrice simple;
  • Scopul lui este de a juca rolul unei imprimante minimaliste, cu un cost redus;
  • Ideea a pornit de la o curiozitate: Cum se pot desena precis nişte contururi pe o foaie de hârtie cu ajutorul hardware-ului şi software-ului?;
  • Acest proiect este util atât pentru punerea în practică a noțiunilor de PM învățate, cât şi pentru rezultatul final care va deveni un instrument cheie pentru diferite notițe şi scheme;
  • Sursă utilă pentru acest proiect: DIY-Arduino-Drawing-Machine.

Descriere generală

RoboDraw funcţionează astfel:

  • Se apasă pe unul din cele două butoane pentru a selecta una din cele două forme prestabilite;
  • Motoarele sunt controlate pe rând, astfel încât cadrul se va mișca pe o singură axă la un moment dat (desenele sunt 2D, mișcarea fiind efectuată în planul XOY);
  • Pe cadrul motoarelor se află un marker pentru desenarea figurii;
  • Se va aprinde un LED pentru a specifica tipul de desen făcut (acesta se va stinge după ce figura este desenată).

Schema bloc:

Hardware Design

1. Listă de piese:

Denumire Informații Canitate Preț total
Placa de bază (+ componentele de bază) Placa de dezvoltare Cantitatea minimă din fiecare + 2 buc în plus la unele componente ~56 lei
DVD Writer vechi (cadrul și motoare stepper) Cadrul robotului 2 DVD Writere ⇒ 2 cadre + 2 motoare stepper Obținut
Driver pentru Motoare Stepper A4988 Control motoare stepper x2 18 lei
Placă de Test Universală 70×90 mm Circuit separat x1 8 lei
Condensator Electrolitic de 47 uF la 16 V La alimentare driver x2 1 leu
Rezistor 470 Ω Rezistență la LED x2 0.2 lei
LED roșu Semnalizare figură x2 1.8 lei
Buton Trigger desenare x2 2 lei
Baterie 9V Alimentare motoare din driver x2 20 lei
Fire (mamă-tată, tată-tată) Legarea elementelor de circuit x30 14 lei

2. Schema electrică:

Software Design

Pentru realizarea software-ului acestui proiect am lucrat pe Linux, codul fiind scris în gedit. Nu am folosit librării sau surse 3rd-party, în afara celor din laboratoare.

Pentru controlul motoarelor stepper am creat 4 funcții:

  • bot_front();
  • bot_back();
  • top_front();
  • top_back().

Acestea primesc numărul de pași pe care trebuie să îi facă motorul (bot → cel de pe cadrul de jos; top → cel de pe cadrul de sus). Pentru a controla stepper-ul am setat pe HIGH, apoi pe LOW pin-ul de STEP al driver-ului (la fiecare pas). Pentru direcția de mișcare (front sau back) am setat pinul DIR al driver-ului.

Robodró vine cu două figuri pe care le poate desena în mod implicit. Acestea sunt un dreptunghi și scări (sau trei dreptunghiuri unite la colțuri). Pentru acest lucru am utilizat două butoane care vor da o întrerupere și în rutina de tratare, în funcție de butonul apăsat, se va efectua una dintre figuri. Pentru a ști care figură se desenează și faptul că roboțelul încă desenează, am pus și două LED-uri care se aprind și se sting în funcție de butonul apăsat; când LED-ul este stins înseamnă că Robodró este pregătit să deseneze din nou.

Rezultate Obţinute

Robodró este format din plăcuța de test (pe care sunt lipite circuitele pentru drivere și butoanele cu LED-urile [Poza 1]) și cadrele cu motoare stepper (pe care se află marker-ul [Poza 2]).

O privire de ansamblu a lui Robodró:

Cele două figuri pe care Robodró știe să le deseneze:

Am atașat și un videoclip cu Robodró în acțiune: k3iJNX-BZdA

Concluzii

Proiectul a însemnat pentru mine o provocare, deoarece nu aveam caracteristicile motorului pentru a putea ști cum să le controlez. După ce am căutat și studiat pe internet numeroase site-uri am găsit chiar și un datasheet pentru ele. După ce am reușit să scriu codul pentru controlul motoarelor am observat că motoarele nu aveau putere. După ce am încercat să leg baterii in paralel am ales să le schimb cu baterii de la altă companie și a funcționat (recomand GP-Ultra 9V).

O altă problemă pe care am întâmpinat-o a fost legarea unor pini în cadrul driver-ului. La un moment dat motorul se deplasa doar daca atingeam driver-ul și asta m-a făcut să recitesc datashee-tul și să aflu că mai trebui uniți doi pini. Astfel am reușit să controlez motoarele și apoi am căutat prin încercări numărul de pași pentru a se deplasa pe tijă și timpul dintre setarea pinului de STEP.

Ca să îmi fie mai ușor de umblat cu componentele mi-am făcut pe plăcuța de test soclu pentru drivere și pentru firele motoarele. Acest lucru m-a ajutat să pot să separ componentele și să îl pot depozita mai ușor.

Acest proiect m-a ajuat să recapitulez ce am făcut în acest an la PM și să lucrez ordonat. Mi-a plăcut să creez circuitul pentru plăcuță și să lipesc componentele. Cea mai mare satisfacție a fost, totuși, când robotul a reușit să deseneze primul dreptunghi!

Download

Schema electrică (Eagle Scheme): robodro_final.sch

Codul sursă (cod + Makefile + script de încărcare): robodro_mafteistefan-radu_336cc.zip

Jurnal

  • [29.04.2018]: Dezasamblare DVD Writere și confecționare cadre pentru roboțel.
  • [4.05.2018]: Finalizarea plăcuței de bază.
  • [13.05.2018]: Am reușit să controlez motoarele.
  • [19.04.2018]: Terminare plăcuță test pentru drivere.
  • [21.05.2018]: Adăugare butoane și LED-uri pentru cele 2 moduri de funcționare.
  • [24.05.2018]: Terminare de lipit pe plăcuța de test și atașare marker pe cadru.
  • [24.05.2018]: Testare Robodró.

Bibliografie/Resurse

Următoarele resurse mi-au fost de mare ajutor pentru a putea controla motoarele din DVD Writer. În continuare sunt datasheet-urile driver-elor și stepper-elor utilizate, dar și video-uri cu explicații despre controlul unui motor de acest tip cu driver-ul ales.

Datasheets:

Link-uri utile:

  • Documentația în format PDF
pm/prj2018/adraghici/robodro.txt · Last modified: 2021/04/14 17:07 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0