Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: SDFileSystem emic2 mbed-rtos mbed
Revision 1:f3d363ca2343, committed 2017-12-04
- Comitter:
- nnguyen45
- Date:
- Mon Dec 04 20:14:24 2017 +0000
- Parent:
- 0:5887cb744114
- Commit message:
- Updated button array to include almost all letters
Changed in this revision
diff -r 5887cb744114 -r f3d363ca2343 button.cpp
--- a/button.cpp Mon Dec 04 19:58:40 2017 +0000
+++ b/button.cpp Mon Dec 04 20:14:24 2017 +0000
@@ -10,20 +10,15 @@
// button constructor
button::button(PwmOut servo, DigitalIn pb, int id)
: servo(servo), pb(pb), state(0), press(0), id(id) {}
-/*button::button(PwmOut servo, DigitalIn pb, AnalogIn lp)
- : servo(servo), pb(pb), linpot(lp), press(0), state(0) {}
-*/
-//Serial pc(USBTX, USBRX);
// FUNCTIONS
-
// get servo pin
PwmOut button::getServoPin()
{
return servo;
}
-// get servo pin
+// set button state
void button::setState(int mystate)
{
state = mystate;
@@ -34,12 +29,6 @@
press = mypress;
}
-// get servo pin
-/*void button::setMode(int mymode)
-{
- mode = mymode;
-}*/
-
// get current state of the button
int button::getState()
{
@@ -54,29 +43,23 @@
int button::getPress()
{
- //pc.printf("%d", press);
return press;
}
// get current state of the button
int button::getLp()
{
- /* if (linpot < 2)
- return 1;
- else*/
return 0;
}
// move servo into the slot
void button::moveServoIn()
{
- //myled = 1;
// rotate 90 degrees one way
for(int i=4; i<=7; i++) {
servo = i/100.0;
wait(0.01);
}
- //press = 1;
switch (id) {
case 1:
led2 = 0;
@@ -114,7 +97,6 @@
// move servo out of the slot
void button::moveServoOut()
{
- //myled = 0;
for(int i=7; i>4; i--) {
servo = i/100.0;
wait(0.01);
@@ -126,7 +108,6 @@
int button::updateState()
{
- //myled = 0;
// state 0 - button is up, pb = 0
if (pb == 0 && state == 3) {
// nothing happens here, servo is still
@@ -137,12 +118,6 @@
moveServoIn();
state = 1;
press = 1;
-
- // Speaker says stuff
- /*myTTS.volume(18); //max volume
- myTTS.speakf("S");//Speak command starts with "S"
- myTTS.speakf("Hey, you pressed a pin!"); // Send the desired string to convert to speech
- myTTS.speakf("\r"); //marks end of speak command*/
}
// state 2 - button is down, pb = 0
if (pb == 0 && state == 1) {
@@ -156,9 +131,6 @@
press = 0;
}
// state 4 - handle debouncing while button is down
- /*if (pb1 = 1 && state == 2) {
- count++;
- }*/
return state;
}
diff -r 5887cb744114 -r f3d363ca2343 button.h
--- a/button.h Mon Dec 04 19:58:40 2017 +0000
+++ b/button.h Mon Dec 04 20:14:24 2017 +0000
@@ -13,20 +13,14 @@
int state; // where is the button (0 - 4)
int press; // is the button up or down
int id; // this is the ID, each button should have a unique id
- // int mode; // is the system in reading or typing mode
- //AnalogIn linpot;
public:
// constructors
button(); // Default
button(PwmOut servo, DigitalIn pb, int id);
- //button(PwmOut servo, DigitalIn pb, AnalogIn linpot);
- // button(PwmOut servo, DigitalIn pb, AnalogIn linpot);
// functions
PwmOut getServoPin(); // get the servo pin
- //void setState(int state); // set state
- //void setMode(int mode); // set mode
void setState(int); // set what state the button is in - up or down
void setPress(int); // set the button press
void moveServoIn(); // move servo into the slot
diff -r 5887cb744114 -r f3d363ca2343 buttonArray.cpp
--- a/buttonArray.cpp Mon Dec 04 19:58:40 2017 +0000
+++ b/buttonArray.cpp Mon Dec 04 20:14:24 2017 +0000
@@ -1,27 +1,17 @@
#include "mbed.h"
#include "buttonArray.h"
-// type mode
-
// buttonArray constructor
buttonArray::buttonArray(button b1, button b2, button b3, button b4, button b5, button b6)
: button1(b1), button2(b2), button3(b3), button4(b4), button5(b5), button6(b6) {}
-//Serial pc(USBTX, USBRX);
-
// FUNCTIONS
// map input braille to ascii
// braille respresentation here - https://en.wikipedia.org/wiki/Braille_ASCII
char buttonArray::checkVal(char* braille)
{
- //pc.printf(" checkVal \n");
- //char* braille;
char val = 'K';
- /*int test = button1.getPress();
- sprintf(braille, "%d%d%d%d%d%d", test, button2.getPress(),
- button3.getPress(), button4.getPress(), button5.getPress(), button6.getPress());*/
- //pc.printf(" %s \n", braille);
if (strcmp(braille, "000000") == 0) val = 'X';
if (strcmp(braille, "011111") == 0) val = 'A';
if (strcmp(braille, "001111") == 0) val = 'B';
@@ -31,27 +21,26 @@
if (strcmp(braille, "001011") == 0) val = 'F';
if (strcmp(braille, "001001") == 0) val = 'G';
if (strcmp(braille, "001101") == 0) val = 'H';
- if (strcmp(braille, "101101") == 0) val = 'I';
+ if (strcmp(braille, "101011") == 0) val = 'I';
if (strcmp(braille, "101001") == 0) val = 'J';
+ //if (strcmp(braille, "011111") == 0) val = 'K';
+ if (strcmp(braille, "000111") == 0) val = 'L';
if (strcmp(braille, "010011") == 0) val = 'M';
+ if (strcmp(braille, "010001") == 0) val = 'N';
if (strcmp(braille, "010101") == 0) val = 'O';
- /*if (strcmp(braille, "011111") == 0) val = 'K';
- if (strcmp(braille, "011111") == 0) val = 'L';
- if (strcmp(braille, "011111") == 0) val = 'N';
- if (strcmp(braille, "011111") == 0) val = 'P';
- if (strcmp(braille, "011111") == 0) val = 'Q';
- if (strcmp(braille, "011111") == 0) val = 'R';
- if (strcmp(braille, "011111") == 0) val = 'S';
- if (strcmp(braille, "011111") == 0) val = 'T';
- if (strcmp(braille, "011111") == 0) val = 'U';
- if (strcmp(braille, "011111") == 0) val = 'V';
- if (strcmp(braille, "011111") == 0) val = 'W';
- if (strcmp(braille, "011111") == 0) val = 'X';
- if (strcmp(braille, "011111") == 0) val = 'Y';
- if (strcmp(braille, "011111") == 0) val = 'Z';*/
+ if (strcmp(braille, "000011") == 0) val = 'P';
+ if (strcmp(braille, "000001") == 0) val = 'Q';
+ if (strcmp(braille, "000101") == 0) val = 'R';
+ if (strcmp(braille, "100011") == 0) val = 'S';
+ if (strcmp(braille, "100001") == 0) val = 'T';
+ if (strcmp(braille, "010110") == 0) val = 'U';
+ if (strcmp(braille, "000110") == 0) val = 'V';
+ if (strcmp(braille, "101000") == 0) val = 'W';
+ //if (strcmp(braille, "010010") == 0) val = 'X';
+ if (strcmp(braille, "010000") == 0) val = 'Y';
+ //if (strcmp(braille, "010100") == 0) val = 'Z';
// check if reset
if (strcmp(braille, "111111") == 0) val = 'Z';
- //pc.printf(" %c \n", val);
return val;
}
@@ -74,7 +63,6 @@
int* buttonArray::pinsUp(char val)
{
int* pinsup;
- //pinsup = new int[7];
char* braille = getBraille(val);
int j = 1;
for (int i = 0; i < 6; i++) {
@@ -92,16 +80,13 @@
// takes in current and actual char as input and returns status of each char
int* buttonArray::wrongPins(char* inarr, char actual)
{
- // TODO check initial value of wrong
int* wrong;
wrong = new int[7];
char* actarr = getBraille(actual);
- //pc.printf("wrong pins");
int j = 1;
for (int i = 0; i < 6; i++) {
if(inarr[i] != actarr[i]) {
wrong[j] = i+1;
- //pc.printf("%d ", wrong[j]);
j++;
}
}
@@ -147,8 +132,7 @@
void buttonArray::setup()
{
- // servos begin at 30 degrees
- // replace with a button setup function
+ // servo setup function; servos begin at 30 degrees
button1.setup();
button2.setup();
button3.setup();