5
Studenti: Tudorache Alexandru-Gabriel, Vasile Bogdan-Catalin si Cozminca Ana Maria Email: [email protected] 1. Rezumat, resurse materiale, timp/atributii echipa 2. Raport sintetic alternative solutie 3. Ciorna solutie 4. Descriere activitati implementare, secventa test 5. Raport final/ prezentare 1. Proiectul va avea la baza controlul unui motor BLDC care va primi semnale de la FRDM; pe Raspberry PI va rula un server ce va primi instructiuni de la un browser; FRDM-ul va primi aceste semnale de la Raspberry Pi prin intermediul unui modul Bluetooth (1 modul Bluetooth pe Rasp PI si unul pe FRDM), iar apoi va fi actionat motorul. Schema proiectului: Detalii implementare/dispozitive folosite : Raspberry Pi cu distributia de Linux Raspbian Jessie, la care am atasat modulul Bluetooth cu rol de master RN-45 (cel rosu din prima imagine) la pinii seriali Tx si Rx. Acesta comunica cu un alt dispozitiv Bluetooth, slave, HC-06, conectat la pinii seriali ai dispozitivului FRDM KL-25Z. Initial am folosit o baterie auto pentru alimentarea driver-ului pentru motorul BLDC, dar ulterior am folosit o sursa de la un calculator mai vechi pentru a alimenta (la 12 V) driver-ul si FRDM-ul (la 5 V) (in cadrul proiectului sursa joaca rol de transformator, fiind alimentata de la o priza / 220 V). Programarea dispozitivelor Bluetooth a constat in rularea de comenzi AT pe modulul RN-45: a trebuit setat in modul auto (SM, 3), scrisa adresa dispozitivului HC-06 pe acesta (pentru a juca rol de releu - tot ce primeste da mai departe pe aceasta adresa: SR, adresa_HC-06) si de asemenea: SA, 0 - pentru a dezactiva autentificarea. Comunicarea se realizeaza la viteza de 9600 bps. Pentru programarea motorului BLDC (controlul turatiei acestuia realizandu-se prin generarea unui semnal de

Studenti: Tudorache Alexandru-Gabriel, Vasile Bogdan ... · Initial am folosit o baterie auto pentru alimentarea driver-ului pentru motorul BLDC, dar ulterior am folosit o sursa de

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Studenti: Tudorache Alexandru-Gabriel, Vasile Bogdan ... · Initial am folosit o baterie auto pentru alimentarea driver-ului pentru motorul BLDC, dar ulterior am folosit o sursa de

Studenti: Tudorache Alexandru-Gabriel, Vasile Bogdan-Catalin si Cozminca Ana Maria

Email: [email protected]

1. Rezumat, resurse materiale, timp/atributii echipa

2. Raport sintetic alternative solutie

3. Ciorna solutie

4. Descriere activitati implementare, secventa test

5. Raport final/ prezentare

1. Proiectul va avea la baza controlul unui motor BLDC care va primi semnale de la FRDM; pe Raspberry PI va rula

un server ce va primi instructiuni de la un browser; FRDM-ul va primi aceste semnale de la Raspberry Pi prin

intermediul unui modul Bluetooth (1 modul Bluetooth pe Rasp PI si unul pe FRDM), iar apoi va fi actionat

motorul.

Schema proiectului:

Detalii implementare/dispozitive folosite: Raspberry Pi cu distributia de Linux Raspbian Jessie, la care am atasat

modulul Bluetooth cu rol de master RN-45 (cel rosu din prima imagine) la pinii seriali Tx si Rx. Acesta comunica cu un alt

dispozitiv Bluetooth, slave, HC-06, conectat la pinii seriali ai dispozitivului FRDM KL-25Z.

Initial am folosit o baterie auto pentru alimentarea driver-ului pentru motorul BLDC, dar ulterior am folosit o sursa

de la un calculator mai vechi pentru a alimenta (la 12 V) driver-ul si FRDM-ul (la 5 V) (in cadrul proiectului sursa joaca rol

de transformator, fiind alimentata de la o priza / 220 V).

Programarea dispozitivelor Bluetooth a constat in rularea de comenzi AT pe modulul RN-45: a trebuit setat in

modul auto (SM, 3), scrisa adresa dispozitivului HC-06 pe acesta (pentru a juca rol de releu - tot ce primeste da mai departe

pe aceasta adresa: SR, adresa_HC-06) si de asemenea: SA, 0 - pentru a dezactiva autentificarea. Comunicarea se realizeaza

la viteza de 9600 bps.

Pentru programarea motorului BLDC (controlul turatiei acestuia realizandu-se prin generarea unui semnal de

Page 2: Studenti: Tudorache Alexandru-Gabriel, Vasile Bogdan ... · Initial am folosit o baterie auto pentru alimentarea driver-ului pentru motorul BLDC, dar ulterior am folosit o sursa de

PWM) am folosit urmatorul algoritm: am asteptat 5 secunde (wait(5)) apoi am generat un semnal de valoare maxima

(motor.write(0.99)), iar o perioada de asteptare ( wait(2)), apoi am generat o valoare minima (motor.write(0.01)). Dupa 2

secunde de asteptare, motorul poate fi controlat prin generarea unui PWM cu o valoare intre cele 2 definite mai sus (mai

multe in codul de mai jos de pe FRDM).

In ceea ce priveste configurarea server-ului Apache pe Raspberry, elementele cheie in configurarea acestuia au fost:

• instalarea modulului Apache cu php ->

sudo apt-get install apache2 -y | apt-get install libapache2-mod-php5;

• adaugarea user-ului creat de server, www-data, in lista de useri cu drepturi speciale / privilegii -> rulam comanda:

sudo visudo si adaugam la sfarsit user-ul www-data;

• dupa fiecare script creat in Python sunt necesare comenzile:

sudo chown www-data:www-data /var/www/script_Python -> pentru ca user-ul www-data sa fie proprietar asupra acestora

( + sudo chmod 775 /var/www) si

sudo chmod 777 script_Python -> pentru ca user-ul www-data sa aiba drepturile necesare de executie.

• codul html si php se gaseste in fisierul index.php, situat in /var/www/html/index.php; partea php din acesta este:

if (isset($_POST['on']))

{

shell_exec('sudo python /var/www/serial_send_1.py');

}

if (isset($_POST['off']))

{

shell_exec('sudo python /var/www/serial_send_0.py');

}

if (isset($_POST['power_plus']))

{

shell_exec('sudo python /var/www/serial_send_plus.py');

}

if (isset($_POST['power_minus']))

{

shell_exec('sudo python /var/www/serial_send_minus.py');

}

Alte portiuni din cod:

• unul din script-urile Python, ce este rulat in urma apasarii unui buton de pe pagina web ->

/var/www/serial_send_1.py:

import serial, time

from time import sleep

ser=serial.Serial('/dev/ttyAMA0', 9600, timeout=5);

ser.write('1');

• codul de pe FRDM:

Page 3: Studenti: Tudorache Alexandru-Gabriel, Vasile Bogdan ... · Initial am folosit o baterie auto pentru alimentarea driver-ului pentru motorul BLDC, dar ulterior am folosit o sursa de

#include "mbed.h"

#include "Servo.h"

Serial BTSerial(PTA2,PTA1);

Servo motor(PTD4);

// Serial BTSerial(USBTX, USBRX);

DigitalOut myled(LED1);

DigitalOut myled2(LED2);

DigitalOut myled3(LED3);

int value = 0;

int main() {

myled=0;

wait(5);

motor.write(0.99); // max

wait(2);

motor.write(0.01); // min

wait(2);

myled=1;

char data;

BTSerial.baud(9600);

float engine_power = 0.0;

myled2=1;

myled3=1;

while(1)

{

if(BTSerial.readable())

{

data=BTSerial.getc();

if(data =='1') // POWEEEEEER

{

myled2=0;

myled3=1;

engine_power += (float) 0.03;

motor.write(engine_power);

}

if(data =='0') // - power

{

myled2=1;

Page 4: Studenti: Tudorache Alexandru-Gabriel, Vasile Bogdan ... · Initial am folosit o baterie auto pentru alimentarea driver-ului pentru motorul BLDC, dar ulterior am folosit o sursa de

myled3=0;

engine_power -= (float)0.03;

motor.write(engine_power);

}

if(data =='2') //on

{

engine_power = 0.3;

motor.write(engine_power);

}

if(data =='3') //off

{

engine_power = 0.0;

motor.write(engine_power);

}

}

}

}

Proiectul final:

Page 5: Studenti: Tudorache Alexandru-Gabriel, Vasile Bogdan ... · Initial am folosit o baterie auto pentru alimentarea driver-ului pentru motorul BLDC, dar ulterior am folosit o sursa de

2. Alte observatii: am ales Raspberry Pi pentru o mai buna intelegere a sa, deoarece probabil o parte din proiectul dezvoltat

acum va fi folosit si in cadrul proiectului de licenta, impreuna cu un dispozitiv LeapMotion (care va fi conectat prin USB),

intre care stim ca exista compatibilitate (http://blog.leapmotion.com/integrate-leap-motion-arduino-raspberry-pi/ ).

De asemenea, am folosit o platforma de dezvoltare Raspberry PI in cadrul concursului ElectroMobility de anul

trecut si dorim sa ne aprofundam cunostintele (pentru controlul motorului atunci am folosit un ATMega16, acum vom folosi

FRDM KL-25Z, integrand cunostintele de anul trecut de la PM); link-uri documentatie Raspberry PI - motor BLDC:

https://solenerotech1.wordpress.com/2013/09/09/tutorialhow-to-control-a-brushless-motor-with-raspberry-pi/

https://dronesandrovs.wordpress.com/2012/11/24/how-to-control-a-brushless-motor-esc-with-arduino/

Comunicatia intre Raspberry si FRDM se va realiza prin intermediul bibliotecilor pentru comunicatia seriala, la care vom

atasa module Bluetooth HC-06; link-uri tutoriale Bluetooth:

http://www.instructables.com/id/Cheap-2-Way-Bluetooth-Connection-Between-Arduino-a/

http://www.instructables.com/id/Arduino-AND-Bluetooth-HC-05-Connecting-easily/