Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Controlare matrice mBot din joystick
- Acest exemplu de program controleaza un punct afisat pe matrice cu ajutorul joystick-ului
- Folosim ca hardware mBot, LEDMatrix si Joystick
- */
- //Includere biblioteca
- #include "MeMCore.h"
- //Definire constante
- // declarare Joystick pe portul pe care este montat Joystick-ul
- //declarare matrice de LED-uri pe portul pe care este montata matricea de LED-uri
- //Definire variabile
- unsigned char drawBuffer[16]; // declarare buffer[marime]
- unsigned char *draw; // declarare desen punct
- int pozitieY = -7;
- int pozitieX = 0;
- int x = 0;
- int y = 0;
- // Functie de control
- void control() {
- // presupunem comanda reala orice valoare in afara intervalului (-50,50)
- if (y > 50) { // miscare la dreapte
- //se goleste ecranul
- if (pozitieX == 15)
- pozitieX = 0;
- else
- pozitieX = pozitieX + 1;
- }
- if (y < -50) // miscare la stanga
- if (pozitieX == 0) {
- pozitieX = 15;
- //se goleste ecranul
- }
- else
- pozitieX = pozitieX - 1;
- if (x > 50) // miscare in jos
- if (pozitieY == 0)
- pozitieY = -7;
- else
- pozitieY = pozitieY + 1;
- if (x < -50) // miscare in sus
- if (pozitieY == -7)
- pozitieY = 0;
- else
- pozitieY = pozitieY - 1;
- }
- void setup() {
- // acest cod este executat o singura data la pornire
- //initializare consola seriala
- // setare optiune de afisare: 1 (lumina normala) sau 0 (negativ)
- // setare luminozitate
- draw = new unsigned char[16] {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; // punct - se poate inlocui cu orice
- memcpy(drawBuffer, draw, 16); // (destinatie, sursa, lungime)
- }
- void loop() {
- // acest cod este executat si repetat la infinit
- // datorita modului de construire al joystick-ului, valorile din centru nu sunt intotdeauna 0
- x = joystick.readX();
- y = joystick.readY();
- //afisare in consola seriala "X=" si valoarea lui x
- //afisare in consola seriala "Y=" si valoarea lui y
- control();
- ledMx.drawBitmap(pozitieX, pozitieY, 16, drawBuffer); // (pozitieX-coordonata orizontala,pozitieY-coordonata verticala,bitmap_width=16,buffer_name)
- //asteapta 50 de milisecunde
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement