Witam,
Od jakiegoś czasu zmagam się z problemem braku odczytu danych z żyroskopu w układzie MPU-6050, poprzez I2C.
Wykluczam problem z komunikacją pomiędzy układem, a mikroprocesorem(Atmega 32), ponieważ wszystkie dane z rejestru można odczytać(w tym z akcelerometru).
Podejrzewam, że żyroskop trzeba w jakiś specjalny sposób aktywować, choć przekopałem noty kilka razy to nic takiego nie spostrzegłem.
Druga możliwość jest taka, że może po prostu układ jest nie sprawny. Może ktoś miał podobny problem albo wiem jak temu zaradzić.
Poniżej zamieszczam kod programu. Na początku następuje ustawienie MPU następnie wszystkie dane z jego pamięci zostają wysłane do terminala(zamieszczam je poniżej kodu)
Następnie w pętli odczytywane są dane z czujników, dane z akcelerometru wyświetlana są na LCD,a z żyroskopu wysyłane do PC(gdzie każda wartość wynosi 0)
Dane z pamięci MPU (opis rejestru invensense.com/mems/gyro/documents/RM-MPU-6000A.pdf)
Od jakiegoś czasu zmagam się z problemem braku odczytu danych z żyroskopu w układzie MPU-6050, poprzez I2C.
Wykluczam problem z komunikacją pomiędzy układem, a mikroprocesorem(Atmega 32), ponieważ wszystkie dane z rejestru można odczytać(w tym z akcelerometru).
Podejrzewam, że żyroskop trzeba w jakiś specjalny sposób aktywować, choć przekopałem noty kilka razy to nic takiego nie spostrzegłem.
Druga możliwość jest taka, że może po prostu układ jest nie sprawny. Może ktoś miał podobny problem albo wiem jak temu zaradzić.
Poniżej zamieszczam kod programu. Na początku następuje ustawienie MPU następnie wszystkie dane z jego pamięci zostają wysłane do terminala(zamieszczam je poniżej kodu)
Następnie w pętli odczytywane są dane z czujników, dane z akcelerometru wyświetlana są na LCD,a z żyroskopu wysyłane do PC(gdzie każda wartość wynosi 0)
Kod: C / C++
Dane z pamięci MPU (opis rejestru invensense.com/mems/gyro/documents/RM-MPU-6000A.pdf)
13. 110
14. 77
15. 174
16. 124
17. 0
18. 0
19. 0
20. 0
21. 0
22. 0
23. 0
24. 0
25. 79
26. 0
27. 16
28. 0
29. 0
30. 0
31. 0
32. 0
33. 0
34. 0
35. 0
36. 0
37. 0
38. 0
39. 0
40. 0
41. 0
42. 0
43. 0
44. 0
45. 0
46. 0
47. 0
48. 0
49. 0
50. 0
51. 0
52. 0
53. 0
54. 0
55. 0
56. 1
57. 0
58. 1
59. 5
60. 8
61. 255
62. 92
63. 55
64. 84
65. 246
66. 16
67. 0
68. 0
69. 0
70. 0
71. 0
72. 0
73. 0
74. 0
75. 0
76. 0
77. 0
78. 0
79. 0
80. 0
81. 0
82. 0
83. 0
84. 0
85. 0
86. 0
87. 0
88. 0
89. 0
90. 0
91. 0
92. 0
93. 0
94. 0
95. 0
96. 0
97. 0
98. 0
99. 0
100. 0
101. 0
102. 0
103. 0
104. 0
105. 0
106. 0
107. 32
108. 0
109. 0
110. 0
111. 0
112. 0
113. 0
114. 0
115. 0
116. 0
117. 104