File tree Expand file tree Collapse file tree 3 files changed +36
-56
lines changed
Expand file tree Collapse file tree 3 files changed +36
-56
lines changed Original file line number Diff line number Diff line change @@ -94,39 +94,37 @@ void publishImu() {
9494 sendMessage (packeter.msg , msg_size);
9595}
9696
97- void parseMessage () {
97+ void getData (size_t size) {
98+
99+ for (size_t i=0 ; i<size; i++){
100+ data[i]=alvik.ext_wire ->read ();
101+ }
102+
103+ }
98104
105+ void rotateCmd () {
99106 float angle;
100- uint8_t code;
107+ size_t sz = sizeof (angle);
108+ getData (sz);
109+ memcpy (&angle, data, sz);
110+
111+ alvik.rotate (angle);
112+ }
113+
114+ void parseMessage () {
101115
102116 switch (command){
103117 case ' R' :
104- // for (size_t i = 0; i < 9; i++) {
105- // packeter.buffer.push(alvik.ext_wire->read());
106- // }
107- data[0 ]=alvik.ext_wire ->read ();
108- data[1 ]=alvik.ext_wire ->read ();
109- data[2 ]=alvik.ext_wire ->read ();
110- data[3 ]=alvik.ext_wire ->read ();
111- memcpy (&angle, data, 4 );
112-
113- // packeter.unpacketC1F(code, angle);
114- // alvik.rotate(angle);
115- alvik.serial ->println (angle);
116- if (angle > 0 ) {
117- alvik.setLedRight (COLOR_VIOLET);
118- } else {
119- alvik.setLedRight (COLOR_RED);
120- }
121- // Serial.println("rotate");
118+ rotateCmd ();
119+ break ;
120+ default :
122121 break ;
123122 }
124123
125124}
126125
127126void receiveEvent (int event){
128127 command=alvik.ext_wire ->read ();
129- // Serial.println("requested\t"+String(command));
130128 parseMessage ();
131129
132130}
Original file line number Diff line number Diff line change 33#define ARDUINO_ALVIKCARRIER_ALVIKI2C_H
44
55#include < Wire.h>
6- #include < ucPack.h>
76#define wire Wire1
87
98#define ALVIK_I2C_ADDRESS 0x2B
@@ -37,6 +36,17 @@ class AlvikI2C{
3736 wire.readBytes (version, 3 );
3837 }
3938
39+ void rotate (float angle) {
40+ int msg_size = sizeof (angle);
41+ uint8_t msg[msg_size];
42+
43+ wire.beginTransmission (address);
44+ wire.write (' R' );
45+ memcpy (msg, &angle, sizeof (angle));
46+ wire.write (msg, sizeof (angle));
47+ wire.endTransmission ();
48+ }
49+
4050 String getVersionString () {
4151 String versionStr = String (version[0 ]) + " ." +
4252 String (version[1 ]) + " ." +
Original file line number Diff line number Diff line change 44
55AlvikI2C alvik;
66
7- int msg_size;
8-
9- float f = 90 ;
10- uint8_t msg[100 ];
11-
127void setup () {
138
149 alvik.begin ();
@@ -25,40 +20,17 @@ void setup() {
2520
2621}
2722
28- void print_msg (size_t size) {
29-
30- for (size_t i = 0 ; i < size; i++) {
31- Monitor.print (msg[i], HEX);
32- Monitor.print (" " );
33- }
34- Monitor.println (" " );
35-
36- }
37-
3823void loop () {
3924
4025 Monitor.println (alvik.getVersionString ());
4126 delay (1000 );
4227
43- // f = 90.0;
44- // wire.beginTransmission(address);
45- // wire.write('R');
46- // //msg_size = packeter.packetC1F('R', f);
47- // memcpy(msg, &f, sizeof(f));
48- // //wire.write(packeter.msg, msg_size);
49- // wire.write(msg, sizeof(f));
50- // wire.endTransmission();
51- // delay(1000);
52- //
53- // f = -90.0;
54- // wire.beginTransmission(address);
55- // wire.write('R');
56- // //msg_size = packeter.packetC1F('R', f);
57- // memcpy(msg, &f, sizeof(f));
58- // //wire.write(packeter.msg, msg_size);
59- // wire.write(msg, sizeof(f));
60- // wire.endTransmission();
61- // delay(1000);
28+ alvik.rotate (10.0 );
29+ delay (1000 );
30+
31+ alvik.rotate (-10.0 );
32+ delay (1000 );
33+
6234//
6335// wire.beginTransmission(address);
6436// wire.write('I');
You can’t perform that action at this time.
0 commit comments