Compare commits
2 commits
60cb6e0977
...
4bd4003416
Author | SHA1 | Date | |
---|---|---|---|
4bd4003416 | |||
6cd1e20666 |
3 changed files with 170 additions and 167 deletions
|
@ -1,9 +1,11 @@
|
|||
#include <unordered_map>
|
||||
|
||||
#include "WiFi.h"
|
||||
#include "AsyncUDP.h"
|
||||
#include "wifi_config.h"
|
||||
AsyncUDP udp;
|
||||
|
||||
int bindex = 0;
|
||||
char in_char = ' ';
|
||||
|
||||
#include "ESP32Servo.h"
|
||||
struct ServoPin {
|
||||
|
@ -28,115 +30,115 @@ ServoPin servos[6] = {
|
|||
struct BrailleChar {
|
||||
int servoStates[6];
|
||||
};
|
||||
BrailleChar brailleAlphabet[27] = {
|
||||
{{0, 0,
|
||||
0, 0,
|
||||
0, 0
|
||||
}}, // _
|
||||
{{1, 0,
|
||||
0, 0,
|
||||
0, 0
|
||||
}}, // a
|
||||
{{1, 0,
|
||||
1, 0,
|
||||
0, 0
|
||||
}}, // b
|
||||
{{1, 1,
|
||||
0, 0,
|
||||
0, 0
|
||||
}}, // c
|
||||
{{1, 1,
|
||||
0, 1,
|
||||
0, 0
|
||||
}}, // d
|
||||
{{1, 0,
|
||||
0, 1,
|
||||
0, 0
|
||||
}}, // e
|
||||
{{1, 1,
|
||||
1, 0,
|
||||
0, 0
|
||||
}}, // f
|
||||
{{1, 1,
|
||||
1, 1,
|
||||
0, 0
|
||||
}}, // g
|
||||
{{1, 0,
|
||||
1, 1,
|
||||
0, 0
|
||||
}}, // h
|
||||
{{0, 1,
|
||||
1, 0,
|
||||
0, 0
|
||||
}}, // i
|
||||
{{0, 1,
|
||||
1, 1,
|
||||
0, 0
|
||||
}}, // j
|
||||
{{1, 0,
|
||||
0, 0,
|
||||
1, 0
|
||||
}}, // k
|
||||
{{1, 0,
|
||||
1, 0,
|
||||
1, 0
|
||||
}}, // l
|
||||
{{1, 1,
|
||||
0, 0,
|
||||
1, 0
|
||||
}}, // m
|
||||
{{1, 1,
|
||||
0, 1,
|
||||
1, 0
|
||||
}}, // n
|
||||
{{1, 0,
|
||||
0, 1,
|
||||
1, 0
|
||||
}}, // o
|
||||
{{1, 1,
|
||||
1, 0,
|
||||
1, 0
|
||||
}}, // p
|
||||
{{1, 1,
|
||||
1, 1,
|
||||
1, 0
|
||||
}}, // q
|
||||
{{1, 0,
|
||||
1, 1,
|
||||
1, 0
|
||||
}}, // r
|
||||
{{0, 1,
|
||||
1, 0,
|
||||
1, 0
|
||||
}}, // s
|
||||
{{0, 1,
|
||||
1, 1,
|
||||
1, 0
|
||||
}}, // t
|
||||
{{1, 0,
|
||||
0, 0,
|
||||
1, 1
|
||||
}}, // u
|
||||
{{1, 0,
|
||||
1, 0,
|
||||
1, 1
|
||||
}}, // v
|
||||
{{0, 1,
|
||||
1, 1,
|
||||
0, 1
|
||||
}}, // w
|
||||
{{1, 1,
|
||||
0, 0,
|
||||
1, 1
|
||||
}}, // x
|
||||
{{1, 1,
|
||||
0, 1,
|
||||
1, 1
|
||||
}}, // y
|
||||
{{1, 0,
|
||||
0, 1,
|
||||
1, 1
|
||||
}} // z
|
||||
std::unordered_map<char, BrailleChar> brailleMap = {
|
||||
{'_', {{0, 0,
|
||||
0, 0,
|
||||
0, 0
|
||||
}}},
|
||||
{'a', {{1, 0,
|
||||
0, 0,
|
||||
0, 0
|
||||
}}},
|
||||
{'b', {{1, 0,
|
||||
1, 0,
|
||||
0, 0
|
||||
}}},
|
||||
{'c', {{1, 1,
|
||||
0, 0,
|
||||
0, 0
|
||||
}}},
|
||||
{'d', {{1, 1,
|
||||
0, 1,
|
||||
0, 0
|
||||
}}},
|
||||
{'e', {{1, 0,
|
||||
0, 1,
|
||||
0, 0
|
||||
}}},
|
||||
{'f', {{1, 1,
|
||||
1, 0,
|
||||
0, 0
|
||||
}}},
|
||||
{'g', {{1, 1,
|
||||
1, 1,
|
||||
0, 0
|
||||
}}},
|
||||
{'h', {{1, 0,
|
||||
1, 1,
|
||||
0, 0
|
||||
}}},
|
||||
{'i', {{0, 1,
|
||||
1, 0,
|
||||
0, 0
|
||||
}}},
|
||||
{'j', {{0, 1,
|
||||
1, 1,
|
||||
0, 0
|
||||
}}},
|
||||
{'k', {{1, 0,
|
||||
0, 0,
|
||||
1, 0
|
||||
}}},
|
||||
{'l', {{1, 0,
|
||||
1, 0,
|
||||
1, 0
|
||||
}}},
|
||||
{'m', {{1, 1,
|
||||
0, 0,
|
||||
1, 0
|
||||
}}},
|
||||
{'n', {{1, 1,
|
||||
0, 1,
|
||||
1, 0
|
||||
}}},
|
||||
{'o', {{1, 0,
|
||||
0, 1,
|
||||
1, 0
|
||||
}}},
|
||||
{'p', {{1, 1,
|
||||
1, 0,
|
||||
1, 0
|
||||
}}},
|
||||
{'q', {{1, 1,
|
||||
1, 1,
|
||||
1, 0
|
||||
}}},
|
||||
{'r', {{1, 0,
|
||||
1, 1,
|
||||
1, 0
|
||||
}}},
|
||||
{'s', {{0, 1,
|
||||
1, 0,
|
||||
1, 0
|
||||
}}},
|
||||
{'t', {{0, 1,
|
||||
1, 1,
|
||||
1, 0
|
||||
}}},
|
||||
{'u', {{1, 0,
|
||||
0, 0,
|
||||
1, 1
|
||||
}}},
|
||||
{'v', {{1, 0,
|
||||
1, 0,
|
||||
1, 1
|
||||
}}},
|
||||
{'w', {{0, 1,
|
||||
1, 1,
|
||||
0, 1
|
||||
}}},
|
||||
{'x', {{1, 1,
|
||||
0, 0,
|
||||
1, 1
|
||||
}}},
|
||||
{'y', {{1, 1,
|
||||
0, 1,
|
||||
1, 1
|
||||
}}},
|
||||
{'z', {{1, 0,
|
||||
0, 1,
|
||||
1, 1
|
||||
}}}
|
||||
};
|
||||
|
||||
void setup()
|
||||
|
@ -147,7 +149,7 @@ void setup()
|
|||
WiFi.mode(WIFI_STA);
|
||||
WiFi.begin(ssid, pass);
|
||||
while (WiFi.status() != WL_CONNECTED) {
|
||||
delay(500);
|
||||
delay(1000);
|
||||
Serial.print(".");
|
||||
// and print status
|
||||
Serial.println(WiFi.status());
|
||||
|
@ -164,8 +166,9 @@ void setup()
|
|||
// so do this instead
|
||||
// Serial.print(packet.data()[0]);
|
||||
// and set the bindex to that value
|
||||
bindex = packet.data()[0];
|
||||
Serial.print(bindex);
|
||||
// in_char = packet.data()[0];
|
||||
in_char = (char)packet.data()[0];
|
||||
Serial.print(in_char);
|
||||
Serial.println();
|
||||
uint32_t receivedData;
|
||||
memcpy(&receivedData, packet.data(), sizeof(receivedData));
|
||||
|
@ -206,6 +209,6 @@ void loop()
|
|||
|
||||
// myservo.write(bindex);
|
||||
for (int i = 0; i < 6; i++) {
|
||||
servos[i].servo.write(brailleAlphabet[bindex].servoStates[i] * 180);
|
||||
servos[i].servo.write(brailleMap[in_char].servoStates[i] * 180);
|
||||
}
|
||||
}
|
|
@ -28,159 +28,159 @@ public class Mono {
|
|||
}
|
||||
}
|
||||
|
||||
// key:(string) value:(int[] dots)
|
||||
Dictionary<string, int[]> char_cell = new Dictionary<string, int[]> {
|
||||
{ "a", new int[] {
|
||||
// key:(char) value:(int[] dots)
|
||||
Dictionary<char, int[]> char_cell = new Dictionary<char, int[]> {
|
||||
{ ' ', new int[] {
|
||||
0, 0,
|
||||
0, 0,
|
||||
0, 0
|
||||
} },
|
||||
{ 'a', new int[] {
|
||||
1, 0,
|
||||
0, 0,
|
||||
0, 0
|
||||
} },
|
||||
{ "b", new int[] {
|
||||
{ 'b', new int[] {
|
||||
1, 0,
|
||||
1, 0,
|
||||
0, 0
|
||||
} },
|
||||
{ "c", new int[] {
|
||||
{ 'c', new int[] {
|
||||
1, 1,
|
||||
0, 0,
|
||||
0, 0
|
||||
} },
|
||||
{ "d", new int[] {
|
||||
{ 'd', new int[] {
|
||||
1, 1,
|
||||
0, 1,
|
||||
0, 0
|
||||
} },
|
||||
{ "e", new int[] {
|
||||
{ 'e', new int[] {
|
||||
1, 0,
|
||||
0, 1,
|
||||
0, 0
|
||||
} },
|
||||
{ "f", new int[] {
|
||||
{ 'f', new int[] {
|
||||
1, 1,
|
||||
1, 0,
|
||||
0, 0
|
||||
} },
|
||||
{ "g", new int[] {
|
||||
{ 'g', new int[] {
|
||||
1, 1,
|
||||
1, 1,
|
||||
0, 0
|
||||
} },
|
||||
{ "h", new int[] {
|
||||
{ 'h', new int[] {
|
||||
1, 0,
|
||||
1, 1,
|
||||
0, 0
|
||||
} },
|
||||
{ "i", new int[] {
|
||||
{ 'i', new int[] {
|
||||
0, 1,
|
||||
1, 0,
|
||||
0, 0
|
||||
} },
|
||||
{ "j", new int[] {
|
||||
{ 'j', new int[] {
|
||||
0, 1,
|
||||
1, 1,
|
||||
0, 0
|
||||
} },
|
||||
{ "k", new int[] {
|
||||
{ 'k', new int[] {
|
||||
1, 0,
|
||||
0, 0,
|
||||
1, 0
|
||||
} },
|
||||
{ "l", new int[] {
|
||||
{ 'l', new int[] {
|
||||
1, 0,
|
||||
1, 0,
|
||||
1, 0
|
||||
} },
|
||||
{ "m", new int[] {
|
||||
{ 'm', new int[] {
|
||||
1, 1,
|
||||
0, 0,
|
||||
1, 0
|
||||
} },
|
||||
{ "n", new int[] {
|
||||
{ 'n', new int[] {
|
||||
1, 1,
|
||||
0, 1,
|
||||
1, 0
|
||||
} },
|
||||
{ "o", new int[] {
|
||||
{ 'o', new int[] {
|
||||
1, 0,
|
||||
0, 1,
|
||||
1, 0
|
||||
} },
|
||||
{ "p", new int[] {
|
||||
{ 'p', new int[] {
|
||||
1, 1,
|
||||
1, 0,
|
||||
1, 0
|
||||
} },
|
||||
{ "q", new int[] {
|
||||
{ 'q', new int[] {
|
||||
1, 1,
|
||||
1, 1,
|
||||
1, 0
|
||||
} },
|
||||
{ "r", new int[] {
|
||||
{ 'r', new int[] {
|
||||
1, 0,
|
||||
1, 1,
|
||||
1, 0
|
||||
} },
|
||||
{ "s", new int[] {
|
||||
{ 's', new int[] {
|
||||
0, 1,
|
||||
1, 0,
|
||||
1, 0
|
||||
} },
|
||||
{ "t", new int[] {
|
||||
{ 't', new int[] {
|
||||
0, 1,
|
||||
1, 1,
|
||||
1, 0
|
||||
} },
|
||||
{ "u", new int[] {
|
||||
{ 'u', new int[] {
|
||||
1, 0,
|
||||
0, 0,
|
||||
1, 1
|
||||
} },
|
||||
{ "v", new int[] {
|
||||
{ 'v', new int[] {
|
||||
1, 0,
|
||||
1, 0,
|
||||
1, 1
|
||||
} },
|
||||
{ "w", new int[] {
|
||||
{ 'w', new int[] {
|
||||
0, 1,
|
||||
1, 1,
|
||||
0, 1
|
||||
} },
|
||||
{ "x", new int[] {
|
||||
{ 'x', new int[] {
|
||||
1, 1,
|
||||
0, 0,
|
||||
1, 1
|
||||
} },
|
||||
{ "y", new int[] {
|
||||
{ 'y', new int[] {
|
||||
1, 1,
|
||||
0, 1,
|
||||
1, 1
|
||||
} },
|
||||
{ "z", new int[] {
|
||||
{ 'z', new int[] {
|
||||
1, 0,
|
||||
0, 1,
|
||||
1, 1
|
||||
} },
|
||||
{ " ", new int[] {
|
||||
0, 0,
|
||||
0, 0,
|
||||
0, 0
|
||||
} },
|
||||
{ ",", new int[] {
|
||||
{ ',', new int[] {
|
||||
0, 0,
|
||||
1, 0,
|
||||
0, 0
|
||||
} },
|
||||
{ ".", new int[] {
|
||||
{ '.', new int[] {
|
||||
0, 0,
|
||||
1, 1,
|
||||
0, 1
|
||||
} },
|
||||
{ "/", new int[] {
|
||||
{ '/', new int[] {
|
||||
0, 1,
|
||||
0, 0,
|
||||
1, 0
|
||||
} },
|
||||
{ ";", new int[] {
|
||||
{ ';', new int[] {
|
||||
0, 0,
|
||||
1, 0,
|
||||
1, 0
|
||||
|
@ -193,20 +193,20 @@ public class Mono {
|
|||
Colemak
|
||||
}
|
||||
|
||||
Dictionary<Layout, string[]> layouts = new Dictionary<Layout, string[]> {
|
||||
{ Layout.Colemak, new string[] {
|
||||
"q", "w", "f", "p", "g", "j", "l", "u", "y", ";",
|
||||
"a", "r", "s", "t", "d", "h", "n", "e", "i", "o",
|
||||
"z", "x", "c", "v", "b", "k", "m", ",", ".", "/",
|
||||
Dictionary<Layout, char[]> layouts = new Dictionary<Layout, char[]> {
|
||||
{ Layout.Colemak, new char[] {
|
||||
'q', 'w', 'f', 'p', 'g', 'j', 'l', 'u', 'y', ';',
|
||||
'a', 'r', 's', 't', 'd', 'h', 'n', 'e', 'i', 'o',
|
||||
'z', 'x', 'c', 'v', 'b', 'k', 'm', ',', '.', '/',
|
||||
} },
|
||||
{ Layout.Qwerty, new string[] {
|
||||
"q", "w", "e", "r", "t", "y", "u", "i", "o", "p",
|
||||
"a", "s", "d", "f", "g", "h", "j", "k", "l", ";",
|
||||
"z", "x", "c", "v", "b", "n", "m", ",", ".", "/",
|
||||
{ Layout.Qwerty, new char[] {
|
||||
'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p',
|
||||
'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', ';',
|
||||
'z', 'x', 'c', 'v', 'b', 'n', 'm', ',', '.', '/',
|
||||
} },
|
||||
};
|
||||
|
||||
public string KeyToChar(int index) {
|
||||
public char KeyToChar(int index) {
|
||||
return layouts[Layout.Colemak][index];
|
||||
}
|
||||
|
||||
|
@ -248,7 +248,7 @@ public class Mono {
|
|||
// xi = 0;
|
||||
// }
|
||||
if (Input.Key(Key.Down).IsJustActive()) {
|
||||
monoNet.value = 0;
|
||||
monoNet.value = ' ';
|
||||
monoNet.send = true;
|
||||
}
|
||||
|
||||
|
@ -267,7 +267,7 @@ public class Mono {
|
|||
if (index_i != last_index_i) {
|
||||
last_index_i = index_i;
|
||||
// Log.Info($"index_i: {index_i}");
|
||||
monoNet.value = index_i;
|
||||
monoNet.value = KeyToChar(index_i);
|
||||
monoNet.send = true;
|
||||
}
|
||||
}
|
||||
|
@ -295,10 +295,10 @@ public class Mono {
|
|||
|
||||
int index = y * 10 + x;
|
||||
// string text = characters[index].character;
|
||||
string keychar = KeyToChar(index);
|
||||
char keychar = KeyToChar(index);
|
||||
|
||||
Text.Add(
|
||||
keychar,
|
||||
keychar.ToString(),
|
||||
Matrix.TS(
|
||||
pos + V.XYZ(-0.3f, -0.3f, 0),
|
||||
V.XYZ(-1, -1, 0) * 8.0f
|
||||
|
|
|
@ -9,13 +9,13 @@ public class MonoNet {
|
|||
byte[] wData; int wHead;
|
||||
|
||||
public bool send = true;
|
||||
public int value = 0;
|
||||
public char value = ' ';
|
||||
|
||||
|
||||
public MonoNet() {
|
||||
|
||||
socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
|
||||
string ip = "192.168.1.81";
|
||||
string ip = "192.168.0.23";
|
||||
|
||||
EndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse(ip), 1234);
|
||||
socket.Connect(serverEndPoint);
|
||||
|
|
Loading…
Add table
Reference in a new issue