Difference between revisions of "Team:NYU Shanghai/Code"

Line 1,034: Line 1,034:
  
 
<br><br>void setup() {
 
<br><br>void setup() {
  <br><span />// put your setup code here, to run once:
+
<span></span><br>// put your setup code here, to run once:
  <br>Serial.begin(9600);
+
<span></span><br>Serial.begin(9600);
  <br>Keyboard.begin();
+
<span></span><br>Keyboard.begin();
 
<br>}
 
<br>}
  
 
<br><br>void loop() {
 
<br><br>void loop() {
  
  <br><br>// incomplete code.
+
<span></span><br><br>// incomplete code.
  <br>//instructions: pass pin number, up key, down key, to read_slider, for example
+
<span></span><br>//instructions: pass pin number, up key, down key, to read_slider, for example
  <br>read_slider(0, 't', 'y');
+
<span></span><br>read_slider(0, 't', 'y');
  <br>read_slider(1, 'g', 'h');
+
<span></span><br>read_slider(1, 'g', 'h');
  <br>read_slider(2, 'b', 'n');
+
<span></span><br>read_slider(2, 'b', 'n');
  <br>read_slider(3, KEY_DOWN_ARROW, KEY_UP_ARROW);
+
<span></span><br>read_slider(3, KEY_DOWN_ARROW, KEY_UP_ARROW);
  <br>read_slider(4, KEY_RIGHT_ARROW, KEY_LEFT_ARROW);
+
<span></span><br>read_slider(4, KEY_RIGHT_ARROW, KEY_LEFT_ARROW);
  
  <br><br>//pass pin number, highkey, lowkey to control button
+
<span></span><br><br>//pass pin number, highkey, lowkey to control button
  <br>//for example
+
<span></span><br>//for example
  <br>control_button(2, 'q', 'w');
+
<span></span><br>control_button(2, 'q', 'w');
  <br>control_button(3, 'e', 'r');
+
<span></span><br>control_button(3, 'e', 'r');
  <br>control_button(4, 'a', 's');
+
<span></span><br>control_button(4, 'a', 's');
  <br>control_button(5, 'd', 'f');
+
<span></span><br>control_button(5, 'd', 'f');
  <br>control_button(6, 'z', 'x');
+
<span></span><br>control_button(6, 'z', 'x');
  <br>control_button(7, 'c', 'v');
+
<span></span><br>control_button(7, 'c', 'v');
  <br>control_button(8, 'o', 'p');
+
<span></span><br>control_button(8, 'o', 'p');
  
  <br><br>// this should all be done in loop
+
<span></span><br><br>// this should all be done in loop
 
<br>}  
 
<br>}  
  
 
<br><br>void read_slider(int slider_number, char upkey, char downkey) {
 
<br><br>void read_slider(int slider_number, char upkey, char downkey) {
  <br>int val = analogRead(slider_number);     //Read slider value from analog 0
+
<span></span><br>int val = analogRead(slider_number);<span></span><span></span><span></span>//Read slider value from analog 0
  <br>int newvolume = map(val, 0, 1023, 0, 27); //map slider value to [0,2]
+
<span></span><br>int newvolume = map(val, 0, 1023, 0, 27); //map slider value to [0,2]
  <br>if (newvolume != slidervolumes[slider_number]) {
+
<span></span><br>if (newvolume != slidervolumes[slider_number]) {
    <br>Serial.println("volume changed!");
+
<span></span><span></span><br>Serial.println("volume changed!");
    <br>control_slider(slider_number, slidervolumes[slider_number], newvolume, upkey, downkey);
+
<span></span><span></span><br>control_slider(slider_number, slidervolumes[slider_number], newvolume, upkey, downkey);
    <br>slidervolumes[slider_number] = newvolume; //change old value for comparison next time
+
<span></span><span></span><br>slidervolumes[slider_number] = newvolume; //change old value for comparison next time
  <br>}
+
<span></span><br>}
 
<br>}
 
<br>}
  
 
<br><br>void control_slider(int slider_number, int original_vol, int new_vol, char upkey, char downkey) {
 
<br><br>void control_slider(int slider_number, int original_vol, int new_vol, char upkey, char downkey) {
  <br>int keypress = original_vol - new_vol; //we get the num differences between the two tracks
+
<span></span><br>int keypress = original_vol - new_vol; //we get the num differences between the two tracks
  <br>if (keypress < 0) {
+
<span></span><br>if (keypress < 0) {
    <br>for (int i = 0; i < abs(keypress); i++) {
+
<span></span><span></span><br>for (int i = 0; i < abs(keypress); i++) {
      <br>Keyboard.write(downkey);
+
<span></span><span></span><span></span><br>Keyboard.write(downkey);
    <br>}
+
<span></span><span></span><br>}
  <br>} else {
+
<span></span><br>} else {
    <br>for (int i = 0; i < abs(keypress); i++) {
+
<span></span><span></span><br>for (int i = 0; i < abs(keypress); i++) {
      <br>Keyboard.write(upkey);
+
<span></span><span></span><span></span><br>Keyboard.write(upkey);
    <br>}
+
<span></span><span></span><br>}
  <br>}
+
<span></span><br>}
 
<br>}
 
<br>}
  
Line 1,089: Line 1,089:
  
 
<br><br>void control_button(int button_number, char highkey, char lowkey) {
 
<br><br>void control_button(int button_number, char highkey, char lowkey) {
  <br>int button_state = digitalRead(button_number);
+
<span></span><br>int button_state = digitalRead(button_number);
  
  <br><br>if (button_state != lastButtonState[button_number]) {
+
<span></span><br><br>if (button_state != lastButtonState[button_number]) {
    <br>// if the state has changed, increment the counter
+
<span></span><span></span><br>// if the state has changed, increment the counter
    <br>if (button_state == HIGH) {
+
<span></span><span></span><br>if (button_state == HIGH) {
      <br>Serial.println("1");
+
<span></span><span></span><span></span><br>Serial.println("1");
      <br>Keyboard.write(highkey);
+
<span></span><span></span><span></span><br>Keyboard.write(highkey);
      <br>delay(500);
+
<span></span><span></span><span></span><br>delay(500);
    <br>}
+
<span></span><span></span><br>}
    <br>else {
+
<span></span><span></span><br>else {
      <br>Keyboard.write(lowkey);
+
<span></span><span></span><span></span><br>Keyboard.write(lowkey);
    <br>}
+
<span></span><span></span><br>}
    <br>//no pressed = 0
+
<span></span><span></span><br>//no pressed = 0
    <br>//pressed = 1
+
<span></span><span></span><br>//pressed = 1
    <br>lastButtonState[button_number] = button_state;
+
<span></span><span></span><br>lastButtonState[button_number] = button_state;
  <br>}
+
<span></span><br>}
 
<br>}
 
<br>}
 
</font>
 
</font>

Revision as of 02:54, 18 September 2015

Code