[ Príspevok: 1 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.02.14
Prihlásený: 13.07.19
Príspevky: 386
Témy: 152 | 152
Bydlisko: Poprad

Bicyklovanie je veľmi obľúbený šport, aj vďaka úspešnému športovcovi Petrovi Saganovi. Vášniví cyklisti brázdia naše cesty a chodníky. Nakoľko ale počasie vždy nepraje, nejeden fanúšik bicykla by uvítal bicyklovať z pohodlia domova. Preto dnes prinášam spôsob, ako to docieliť povedzme rozšírenou realitou v podobe Google máp. Na úvod si prejdeme potrebné hardvérové prostriedky pre projekt a v ďalšom kroku si rozoberieme ich funkčnosť.

Hardvérové komponenty:
    Arduino (32u4 CPU) Leonardo Bicyklovanie po Google mapách - Arduino 32u4
    Magnetický kontakt Bicyklovanie po Google mapách - Arduino 32u4
    2x tlačidlá, spínacie, pushbuttony Bicyklovanie po Google mapách - Arduino 32u4
    2x 10kohm rezistory Bicyklovanie po Google mapách - Arduino 32u4
Pre použitie systému používateľ musí zapnúť Google mapy, zvoliť si akúkoľvek lokalitu na svete a prepnúť sa do Street View módu. To zaručí pripravené rozhranie pre interakciu s bicyklom (Arduinom). Čo sa týka bicykla, je možné použiť akýkoľvek typ. Klasický, cestný, horský, rotopéd. Na pedál a konštrukciu je nutné napasovať magnetický kontakt.

Hlavným prvkom systému je použitie vývojovej dosky Arduino Leonardo, ktorá obsahuje mikroprocesor ATmega32u4. Tento typ procesora dokáže okrem ovládania GPIO pinov (ako klasické Uno) ovládať aj klávesnicu a myš, je HID zariadením (Human Interface device). Vďaka tomu máme úplne iné možnosti využitia nielen pre našu myšlienku. Magnetický kontakt slúži na záznam otočenia pedálov o celú otáčku. Programovo je implementovaný jednoduchý counter (počítadlo), ktoré sa inkrementuje pri každom otočení pedálov o 360°. Možno použiť aj optozávoru.

Pri pretečení počítadla sa vykoná podmienka a do počítača sa odošle znak šípka hore, čo používateľa posunie o krok vpred na Google mape. Tlačidlá slúžia na otáčanie pohľadu do strán, sú aktívne pokým ich používateľ drží. Programová implementácia využíva pullup a pulldown zapojenie tlačidiel. Pri pullup nie sú nutné rezistory, sú zapnuté interné pullup rezistory Arduina. Funkčnosť oboch variant je totožná.

Bicyklovanie je možné obohatiť aj o využitie VR headsetu pri Google mape. Okrem Google Maps využíva Street View aj niekoľko ďalších zaujímavých webaplikácii, ktoré je možné vyskúšať, sú to predovšetkým zaujímavé hádacie stránky (možno zapojiť celú rodinu):

    GeoGuessr
    Earth Picker
Objavujte Google mapy, hľadajte kuriozity na mapách sveta, navštívte lokality, kde ste vždy chceli ísť. Arduino s 32u4 procesorom je možné využiť aj na ďalšie zaujímavé projekty v štýle: Volant, pedále k hre s analógovou podporou s pomerne dobrým rozlíšením, ručná brzda, ovládacie panely k simulátorom a hrám. Rovnaký procesor obsahuje aj Arduino Pro Micro, ktoré sa hodí do projektov s menším počtom vstupno-výstupných pinov.
Bicyklovanie po Google mapách - Arduino 32u4
Bicyklovanie po Google mapách - Arduino 32u4
Programová implementácia pre pullup rezistory:
Kód:
#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");
  }
}

Programová implementácia pre pulldown zapojenie:
Kód:
#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");
  }
}


 [ Príspevok: 1 ] 


Bicyklovanie po Google mapách - Arduino 32u4



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Firefox nelze hledat v mapách trasy.

v Sieťové a internetové programy

2

277

05.08.2009 19:20

Dzin

V tomto fóre nie sú ďalšie neprečítané témy.

Arduino

v Assembler, C, C++, Pascal, Java

6

235

05.04.2018 17:25

ado130

V tomto fóre nie sú ďalšie neprečítané témy.

Arduino 8bit computer

v Mikropočítače

1

478

20.02.2015 13:34

jankalman

V tomto fóre nie sú ďalšie neprečítané témy.

C a arduino

v Assembler, C, C++, Pascal, Java

0

138

30.04.2018 17:37

Dolpi

V tomto fóre nie sú ďalšie neprečítané témy.

I/K: Arduino Uno

v Kúpim

0

146

13.12.2015 22:49

werwest

V tomto fóre nie sú ďalšie neprečítané témy.

Airsoft / Paintball DOMINATOR - Arduino + RFID

v Články

0

824

09.03.2019 13:16

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Ovládanie relé cez Arduino s webaplikáciou

v Články

0

841

10.02.2019 0:23

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Arduino & servo motory z Číny

v Mikropočítače

0

411

14.09.2014 23:23

FanatiKKK

V tomto fóre nie sú ďalšie neprečítané témy.

Hasičské stopky cez Arduino s displejom

v Články

0

1170

22.12.2018 22:52

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Capture points (DOMINATION) - Airsoft - Arduino + WiFi

v Články

0

2590

24.02.2019 0:27

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Arduino Uno R3 - klon + ako s ním?

v Mikropočítače

2

344

13.05.2017 15:35

werwest

V tomto fóre nie sú ďalšie neprečítané témy.

Hľadám si brigádu ako Arduino/NodeMCU programátor (PHP)

v Dopyt práce

3

4031

18.01.2019 11:15

ironwood

V tomto fóre nie sú ďalšie neprečítané témy.

Meteostanica s Arduino a Ethernetom vo Webclient móde

v Články

0

1503

16.02.2019 20:00

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

DOMINATOR cez Arduino pre Airsoft / Paintball / Nerf Wars

v Články

2

1805

30.11.2018 21:41

eon5

V tomto fóre nie sú ďalšie neprečítané témy.

Arduino a TFT LCD 3.5'' ILI9488 displej MCUFRIEND

v Mikropočítače

2

435

23.06.2017 13:21

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Ovládanie hlasom pre Arduino/NodeMCU/ESP32/Raspberry/Orange Pi ... projekty

v Mikropočítače

1

462

16.09.2017 9:16

ado130



© 2005 - 2019 PCforum, edited by JanoF