2011_P19

Table of contents

1. Rezultate [edit]

2. Download [edit]

Control robot cu convertor D/A

Descriere proiect

Proiectul in sine consta in construirea unui dispozitiv ce are capacitatea de a se deplasa atat inainte si inapoi,cat si stanga,respectiv dreapta(acest lucru este posibil prin integrarea a doua motoare,dispunerea acestora fiind doar un simplu exemplu de intuitie inginereasca).

Date proiect

Am optat pentru alegerea unui motor pentru a acoperi toate sensurile de deplasare impuse.
Cu ajutorul butoanelor de pe tastatura Z3,vom seta directia dorita(trimitere prin portul serial).Pentru modelarea circuitului s-a folosit simulatorul Proteus.

 

 

User Flow

Descriere cum poate un utilizator sa foloseasca proiectul. Pasii necesari pentru a-l pune in functiune. Elemente generale pe care le puneti la dispozitie unui utilizator.

Sectiunea aceasta va fi completata cu screenshot-uri ale proiectului vostru in functiune - frumos ar fi un film pe youtube.

Componente necesare:

 

Cod Schema

Cod Piesa (de cumparat)

R1-R3

3x RW25CF 4.7K (250 mW)

R4

1x RW25CF 100R (250 mW)

R5-R6

2x RW25CF 100K (250 mW)

C1-C2

2x CML 22pF 50V C0G

C3-C7

5x CE 1.0uF 63V 105C

C8-C9

2x CML 47nF 50V Y5V P2.5

B1

1x TS-06E (TS-3)

X1

1x Q20.000 MHz HC-49S

PIC16F628A

1x PIC16F628A-I/P

MAX232

1x MAX232N

LM7805

1x 7805

soclu 18 pini pt PIC+MAX

2x LC18

placa test 50x100 pastile

1x placa test 50x100



Schema Proteus

 

Pe langa aceastea,am folosit pentru asamblarea fizica un cablu UTP(suport pentru conexiuni),un letcon de 40W(+fludor),iar pentru verificare un multimetru.

 

 

Design software

Se compileaza proiectul intr-un compilator de C embedded reprezentat in cazul nostru de OpenWatcom.Se conecteaza prin seriala placuta EV/Z3 la placuta cu microcontrollerul nostru, si apoi se va putea controla turatia motorului prin intermediul tastaturii incorporate pe placuta EV/Z3.  Sunt utilizabile 2 taste( <, > ), pentru cresterea  si descresterea turatiei.Initial motorul va fi oprit(valoarea va fi afisata in procente,deci va fi de 0%).Odata cu apasarea butonului corespunzator valoarea turatiei va creste,respectiv va scadea din 10 in 10 procente.La apasarea tastelor mai sus mentionate placa EV/Z3 va trimite comanda catre placuta noastra,iar aceasta va actiona asupra turatiei motorului.Bineinteles ca seriala s eva ocupa cu transmiterea comenzii.

#include "platform_io.h"
const char *welcome = "Control turatie";

const char *gol = "                ";

const char *serialStart = "Please send data";

char convert (int key)

{

static char cod[19] = {'0','2','4','6','8','A','C','E','c','l','1','3','5','7','9','B','D','F','r'};

return cod[key];

}     
static SerialConfig serialConf;
unsigned char buffer[32];
int main(){

int key = 0;

char * turatie = "Turatiemoto=  0";

unsigned char comanda[1];

/* display our welcome message */

kIo.DisplayString(welcome);
/* Serial Initialization */

serialConf.baudRate   = b9600;

serialConf.parity     = none;

serialConf.stopBits   = one;

serialConf.wordLength = eight;

/* In order to check what EV/Z3 board is echoing on the serial port     * open Hyperterminal, create a new connection using the above parameters,     * Flow control: Hardware and Settings/Emulation: ANSI, connect and type some chars in it */

kIo.SerialInit(&serialConf);
/* wait for a key to be pressed */
comanda[0]='0';

while (1)    {

key = kIo.ReadKey();
if ( convert(key) == 'r')  // increment

{            comanda[0]='I';  kIo.SerialWrite(COM1, comanda, 1);

// trimite comanda pe seriala catre pic

if(i!=100)

i=i+1;

if(i>9 && i<100){

turatie[14]='0'+i/10;

turatie[15]='0';   }

if(i==100)

{

turatie[13]='1';

turatie[14]='0';

turatie[15]='0';

}        if ( convert(key) == 'l')  // decrement

{

comanda[0]='D';

kIo.SerialWrite(COM1, comanda, 1); // trimite comanda pe seriala catre pic

}

if(i!=0)


i=i-1;

if(i<10)

turatie[15]=i;       else

if(i<100)


turatie[14]='0'+i/10;

}      

if(i==100) { turatie[13]='1';

turatie[14]='0';

turatie[15]='0';

}




}        kIo.DisplayString(gol);   // pentru stergerea ecranului

kIo.DisplayString(turatie);  // pentru afisarea turatiei curente                      }

return 0;}

Rezultate [edit]

O imagine de ansamblu a cum functioneaza proiectul, screenshoturi, filmulete cu proiectul functionand. Alte detalii care le credeti importante.

Download [edit]

Arhiva cu schema hardware + cod microcontroller + tot proiectul OpenWatcom.

Arhiva va contine 2 directoare (1 singur pentru proiecte doar software)

Hardware design - schema uC + codul folosit pentru a genera fisierul .HEX

Software design - template-ul Open Watcom folosit

Status

O pagina in care sa updatati saptamanal cum stati cu proiectul. Sa spuneti ziua in care ati realizat diferite componente

Eg

16 Aprilie- Discutie initiala referitoare la planul de lucru +definitivare premise+conturare cerinte

17 Aprilie - Conturarea unei imagini de ansamblu a proiectului in sine

21 Aprilie-28 Aprilie-Documentare asupra proiectului

28 Aprilie-Achizitionare a componentelor de baza

29 Aprilie-Lipire componente placuta

30 Aprilie-Lipire componente placuta

1 Mai-Lipire componente placuta

3 Mai-Prezentare placuta in stadiu intermediar in cadrul laboratorului in scopul verificarii

4 Mai-Cumparare componente aditionale si schimbare condesatori

5 Mai-Achizitionare motoare si testare initiala a placutei

6 Mai-Obs>Placa scoate in jur de 5V,suficient pentru a alimente cele doua motoare,fara a folosi dispozitive auxiliare.

7 Mai-Definitivarea  placutei

13 Mai-Atasarea motorului

14 Mai-Design software