Advertisement
Guest User

Untitled

a guest
Nov 19th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. /*
  2. Controlare matrice mBot din joystick
  3. Acest exemplu de program controleaza un punct afisat pe matrice cu ajutorul joystick-ului
  4. Folosim ca hardware mBot, LEDMatrix si Joystick
  5. */
  6.  
  7. //Includere biblioteca
  8. #include "MeMCore.h"
  9.  
  10. //Definire constante
  11. // declarare Joystick pe portul pe care este montat Joystick-ul
  12. //declarare matrice de LED-uri pe portul pe care este montata matricea de LED-uri
  13.  
  14. //Definire variabile
  15. unsigned char drawBuffer[16]; // declarare buffer[marime]
  16. unsigned char *draw; // declarare desen punct
  17. int pozitieY = -7;
  18. int pozitieX = 0;
  19. int x = 0;
  20. int y = 0;
  21.  
  22. // Functie de control
  23. void control() {
  24. // presupunem comanda reala orice valoare in afara intervalului (-50,50)
  25. if (y > 50) { // miscare la dreapte
  26. //se goleste ecranul
  27. if (pozitieX == 15)
  28. pozitieX = 0;
  29. else
  30. pozitieX = pozitieX + 1;
  31. }
  32.  
  33. if (y < -50) // miscare la stanga
  34. if (pozitieX == 0) {
  35. pozitieX = 15;
  36. //se goleste ecranul
  37. }
  38. else
  39. pozitieX = pozitieX - 1;
  40.  
  41. if (x > 50) // miscare in jos
  42. if (pozitieY == 0)
  43. pozitieY = -7;
  44. else
  45. pozitieY = pozitieY + 1;
  46.  
  47. if (x < -50) // miscare in sus
  48. if (pozitieY == -7)
  49. pozitieY = 0;
  50. else
  51. pozitieY = pozitieY - 1;
  52.  
  53. }
  54.  
  55. void setup() {
  56. // acest cod este executat o singura data la pornire
  57. //initializare consola seriala
  58. // setare optiune de afisare: 1 (lumina normala) sau 0 (negativ)
  59. // setare luminozitate
  60.  
  61. 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
  62. memcpy(drawBuffer, draw, 16); // (destinatie, sursa, lungime)
  63. }
  64.  
  65. void loop() {
  66. // acest cod este executat si repetat la infinit
  67. // datorita modului de construire al joystick-ului, valorile din centru nu sunt intotdeauna 0
  68. x = joystick.readX();
  69. y = joystick.readY();
  70. //afisare in consola seriala "X=" si valoarea lui x
  71. //afisare in consola seriala "Y=" si valoarea lui y
  72. control();
  73. ledMx.drawBitmap(pozitieX, pozitieY, 16, drawBuffer); // (pozitieX-coordonata orizontala,pozitieY-coordonata verticala,bitmap_width=16,buffer_name)
  74. //asteapta 50 de milisecunde
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement