0
Arduino Leonardo 32u4 architecture Pullup, Pulldown Google Maps, Geoguessr, Earth Picker StreetView Schematics

Виртуальный велоспорт


Краткое описание:
  • Проект позволяет вам взаимодействовать с велосипедом / роллопом с картами Google. Благодаря магнитному контакту велосипедная прогулка предлагает еще лучший опыт работы на карте мира.
  • Принцип функциональности:
  • Пользователь путем циклирования и опрокидывания магнитного контакта дает Arduin информацию о количестве оборотов педали вокруг оси (количество оборотов). Если счетчик превышен, клавиша Arduino ASCII будет отправлена («W»), чтобы переместить виртуальную карту за одну часть заранее.
  • Проект был успешным в сфере услуг:
  • Google Maps Street View
  • GeoGuessr (StreetView с сайтом Guess - Quiz)
  • Earth Picker (StreetView с сайтом Guess - Quiz)
  • Streetview - пещеры / туристические маршруты
  • Перемещение сторон осуществляется с помощью одной из кнопок. Движение продолжается до тех пор, пока пользователь не отпустит кнопку
    Оборудование для проекта:
  • Arduino Leonardo (или другой 32u4 микроконтроллер с расширением HID) Arduino Leonardo
  • Магнитный контакт Магнитный контакт
  • 2 кнопки для поворота сторон 2 кнопки для поворота сторон
  • 2 кнопочных резистора 2 кнопочных резистора
  • Virtuálne bicyklovanie - Setup Virtual Bike

    Program PULLUP - Arduino Leonardo (32u4)

    #include <Keyboard.h>
    const int tlacidloVpred = 2; 
    int tlacidloStav; 
    int poslednetlacidloStav = HIGH; 
    unsigned long poslednezakmitCas = 0; 
    unsigned long zakmitDelay = 50; 
    int pocitadlo = 0;
    const int tlacidloVlavo = 3;
    const int tlacidloVpravo = 4;
    void setup() {
      Keyboard.begin();
      Serial.begin(115200);
      pinMode(tlacidloVpred, INPUT_PULLUP);
      pinMode(tlacidloVlavo, INPUT_PULLUP);
      pinMode(tlacidloVpravo, INPUT_PULLUP);
    }
    
    void loop() {
      int citanie = digitalRead(tlacidloVpred);
      while(!digitalRead(tlacidloVlavo)){
      Keyboard.press('a');
      delay(300);
      Keyboard.releaseAll();
        }
        while(!digitalRead(tlacidloVpravo)){
        Keyboard.press('d');
      delay(300);
      Keyboard.releaseAll();
        }
    if (citanie != poslednetlacidloStav) {
        poslednezakmitCas = millis();
      }
    
      if ((millis() - poslednezakmitCas) > zakmitDelay) {
        if (citanie != tlacidloStav) {
          tlacidloStav = citanie;
    
          if (tlacidloStav == LOW) {
            pocitadlo++;
          }
        }
      }
      poslednetlacidloStav = citanie;
      Serial.println("Hodnota counteru:");
      Serial.println(pocitadlo);
    if(pocitadlo>=5){
      Keyboard.write(218);
      pocitadlo = 0;
      Serial.println("Pohyb vpred");
      }
    }
    

    Program PULLDOWN - Arduino Leonardo (32u4)

    #include <Keyboard.h>
    const int tlacidloVpred = 2; 
    int tlacidloStav; 
    int poslednetlacidloStav = LOW; 
    unsigned long poslednezakmitCas = 0; 
    unsigned long zakmitDelay = 50; 
    int pocitadlo = 0;
    const int tlacidloVlavo = 3;
    const int tlacidloVpravo = 4;
    void setup() {
      Keyboard.begin();
      Serial.begin(115200);
      pinMode(tlacidloVpred, INPUT);
      pinMode(tlacidloVlavo, INPUT);
      pinMode(tlacidloVpravo, INPUT);
    }
    
    void loop() {
      int citanie = digitalRead(tlacidloVpred);
      while(digitalRead(tlacidloVlavo)){
      Keyboard.press('a');
      delay(300);
      Keyboard.releaseAll();
        }
        while(digitalRead(tlacidloVpravo)){
        Keyboard.press('d');
      delay(300);
      Keyboard.releaseAll();
        }
    if (citanie != poslednetlacidloStav) {
        poslednezakmitCas = millis();
      }
    
      if ((millis() - poslednezakmitCas) > zakmitDelay) {
        if (citanie != tlacidloStav) {
          tlacidloStav = citanie;
    
          if (tlacidloStav == HIGH) {
            pocitadlo++;
          }
        }
      }
      poslednetlacidloStav = citanie;
      Serial.println("Hodnota counteru:");
      Serial.println(pocitadlo);
    if(pocitadlo>=5){
      Keyboard.write(218);
      pocitadlo = 0;
      Serial.println("Pohyb vpred");
      }
    }
    

    Pullup schéma