Sunteți pe pagina 1din 8

Bionică

-referat-

Proiectul propus pentru aceasta lucrare a fost confectionarea unui braț robotic, cu structură
metalică care să fie automatizata prin programarea Arduino și a cărui mișcări să fie comandate de către
operator printr-o aplicație dezvoltată in mediul android.

Componente
Pentru a realiza brațul robotic avem nevoie de următoarele componente:

- Dispozitiv metalic de prindere (Efectoru)


- Bracket din aluminiu in forma de U

- Dispozitiv de direcționare pentru servomotoare

- Placa de dezvoltare MEGA 2560

- Servomotor MG995

- Breadboard830

- Fire tată-tată

- Cablu USB pentru conectarea MEGA 2560 la calculator

- Fir pentru Baterie de 9V


Materiale necesare pentru montare/asamblare:
- Clește

- Șurubelnița (stelară)

- Cutter

- Foarfecă

Servomotor MG995
Servomotoarele sunt folosite în aplicatii foarte variate in care este
necesara precizia. Acest tip de servomotor este unul foarte des întalnit
și îl puteți folosi pentru a construi imprimante 3D, un CNC sau la
masinute teleghidate pentru a misca rotile din fata in curbe, etc.

Pentru această lucrare au fost folosite 5 servomotoare MG995.

Specificații:

- Greutate: 55 g

- Dimensiuni: 40.7 x 19.7 x 42.9 mm approx.


Figura 4.1 Servomotor MG995
- Forța in blocare: 8.5 kgf·cm (4.8 V ), 10 kgf·cm (6 V)

- Viteza de operare: 0.2 s/60º (4.8 V), 0.16 s/60º (6 V)

- Unghi de rotație: 120 grade (+ 60 din centru)

- Tensiune de operare: 4.8 V a 7.2 V

- Lațimea benzii moarte: 5 µs

- Stabilizare la șocuri, rulmenți dubli

- Roți dințate din metal (aliaj cupru)


- Temperatura de funcționare: 0 ºC – 55 ºC

Arduino MEGA 2560

Arduino Mega 2560 este un microcontroler bazat pe ATmega2560. Dispune de 54 de intrări / ieșiri
digitale (dintre care 15 pot fi utilizate ca ieșiri PWM), 16 intrări analogice, 4 UART (porturi seriale
hardware), un oscilator de cristal de 16 MHz, o conexiune USB, o mufă de alimentare, un antet ICSP, și un
buton de resetare.
Specificații Tehnice:

- Tensiune de funcționare: 5 V;

- Tensiune de alimentare Jack: 7 V - 12 V;

- Pini I/O: 54;

- Pini PWM: 15 (din cei de I/O);


Arduino Mega 2560
- Pini analogici: 16;

- 4 x UART;

- Memorie flash: 256 KB, din care 8 KB ocupați de bootloader;

- Frecventa de funcționare: 16 MHz.

- Dimensiuni: 5.3 cm x 10 cm;

Modul Bluethoot HC-05


Modulul bluetooth HC-05 este unul de înaltă performanță și consumă foarte puțină energie. De
asemenea, dimensiunile acestuia sunt mici.
Caracteristici tehnice:
- Tensiune de alimentare: 3.6 - 6V;
- Curent consumat: maxim 30mA;
- Pinii de I/O sunt compatibili pentru 3.3V
- Comunică pe serială UART;
- Baudrate: 9600 - 460800 bps;
- Distanță de transmisie până la 10m;
- Putere de transmisie: +4dBm;
- Senzitivitate recepție: -80dBm. Modul bluethoot HC-05
- Dimensiuni: 35.7 x 15.2 mm.

Efectorul
Caracteristici tehnice:
- Material: aluminiu
- Greutate: 68g (fără motor)
- Unghi maxim de deschidere a cleștelui: 55mm
- Lungime: 108mm (cleștele închis)
- Lațime: 98mm (cleștele deschis)

Efectorul
In schema de conexiuni se regaseste conectarea servomotoarelor MG995 si a modulului bluethoot HC-
05 la placa de dezvoltare Arduino Mega
2560.

Servomotoarele au 3 pini;

- VCC (rosu)

- GND (maro)

- Semnal (galben)

Modulul bluethoot are 4 pini:


- VCC

- GND

- TXD (transmitere date) Figura 4.12 Schemă montaj


- RXD (receptie date)

Am alimentat breadboard-ul cu bateria de 9v. Am conectat pini VCC si GND de la servomotoare la


breadboard și am conectat unul dintre pini GND de la Arduino la GND-ul de la dreadboard.

Alimentarea modulului bluethoot HC-05 se face din pinii VCC (5V) respectiv GND de pe placa de dezvoltare
Arduino.

Pinul de semnal al servomotoarelor MG995 au fost conectați astfel:

Servomotorul 1 – pinul 3 I/O digitale

Servomotorul 2 – pinul 5 I/O digitale

Servomotorul 3 – pinul 6 I/O digitale

Servomotorul 4 – pinul 9 I/O digitale

Iar pinii TXD si RXD ai modulului bluethoot HC-05 au fost conectati la pinii 10 si respectiv 11 din
partea I/O digitale.
Realizarea aplicației pentru smartphone

Aceasta aplicatie dezvoltata intr-un mediu


online, are 2 părți.

Prima parte reprezinta interfața aplicației,


ceea ce utilizatorul va vedea. Aceasta interfață se
realizeaza cu blocuri de comanda ce se adaugă
într-o ecran virtual simulând ecranul
telefonului.Exemplu de bloc de comandă ar putea
fi butoane ON/OFF, spatii text, butoane de
conectare bluethoot, slidebar, etc.

La rândul ei această primă parte este


împărțita în două, partea din stanga unde se face Vizualizare blocuri comandă
vizualizarea obiectelor din planul de lucru și partea
din dreapta în care se regasesc proprietățile obiectelor: culori, mărimi, vizibilitate etc.

Partea a 2-a reprezintă interconectarea


logică a ceea ce este în spatele blocurilor de
comandă. Se regăsesc aici, tot sub formă de blocuri
care se pot conecta între ele opțiuni legate de
butoanele adaugate de clientul bluethoot etc.
Acestea pot avea operați de control, logice,
matematice, variabile liste, text, culori etc.

Acest mediu online permite instalarea unei


aplicații pe telefonul mobil android care să fie
sincronizată cu vizualizarea din mediul de
dezvoltare și ofera o anteprimă instantanee asupra
proiectului la care se lucrează. Vizualizare blocuri comandă
CODUL SURSĂ

#include <SoftwareSerial.h> // această comandă include librăria pentru modul bluethoot

#include <Servo.h> // această comandă include librăria pentru servomotoare


Servo myservo1, myservo2, myservo3, myservo4; // numele servomotoarelor

int bluetoothTx = 10; // bluetooth tx la pinul 10


int bluetoothRx = 11; // bluetooth rx la pinul 11

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);

void setup()
{
myservo1.attach(3); // pinul de semnal al servomotorul la pinul 3
myservo2.attach(5); // pinul de semnal al servomotorul la pinul 5
myservo3.attach(6); // pinul de semnal al servomotorul la pinul 6
myservo4.attach(9); // pinul de semnal al servomotorul la pinul 9
Serial.begin(9600); //această comandă realizează conecțiunea cu bluethoot

bluetooth.begin(9600);
}

void loop()
{
if(bluetooth.available()>= 2 ) //Citește semnalul de la bluethoot
{
unsigned int servopos = bluetooth.read();
unsigned int servopos1 = bluetooth.read();
unsigned int realservo = (servopos1 *256) + servopos;
Serial.println(realservo);
if (realservo >= 1000 && realservo <1180) {
int servo1 = realservo;
servo1 = map(servo1, 1000, 1180, 0, 180);
myservo1.write(servo1);
Serial.println("Servo 1 ON");
delay(10);
}
if (realservo >= 2000 && realservo <2180) {
int servo2 = realservo;
servo2 = map(servo2, 2000, 2180, 0, 180);
myservo2.write(servo2);
Serial.println("Servo 2 ON");
delay(10);
}
if (realservo >= 3000 && realservo <3180) {
int servo3 = realservo;
servo3 = map(servo3, 3000, 3180, 0, 180);
myservo3.write(servo3);
Serial.println("Servo 3 ON");
delay(10);
}
if (realservo >= 4000 && realservo <4180) {
int servo4 = realservo;
servo4 = map(servo4, 4000, 4180, 0, 180);
myservo4.write(servo4);
Serial.println("Servo 4 ON");
delay(10);
}
}
}

S-ar putea să vă placă și