Operácie

Bluetooth Wolverine claws: Rozdiel medzi revíziami

Zo stránky SensorWiki

StudentDTV (diskusia | príspevky)
Bez shrnutí editace
StudentDTV (diskusia | príspevky)
 
(23 medziľahlých úprav od rovnakého používateľa nie je zobrazených.)
Riadok 4: Riadok 4:
|Študijný odbor:  || Aplikovaná informatika || 3. Bc.  ('''2019''')  
|Študijný odbor:  || Aplikovaná informatika || 3. Bc.  ('''2019''')  
|}
|}
__TOC__


== Opis projektu ==
== Opis projektu ==


Cieľom projektu, bolo vytvoriť automaticky vysúvané Wolverinove pazúry. <BR> Pôvodný plán bolo ovládanie pazúrov pomocou čerelnky Mindwave Mobile. Z tohto plánu však vzišlo z dôvodu chorobnej lenivosti a následnej časovej tiesni autorov, a tak su pazúry ovládané telefónom, pomocou technológie bluetooth.
Cieľom projektu, bolo vytvoriť automaticky vysúvané Wolverinove pazúry. <BR> Pôvodný plán bolo ovládanie pazúrov pomocou čerelnky Mindwave Mobile. Z tohto plánu však vzišlo z dôvodu chorobnej lenivosti a následnej časovej tiesni autorov, a tak su pazúry ovládané telefónom, pomocou technológie bluetooth.


'''Prečo?'''  
'''Prečo?'''  
Riadok 15: Riadok 19:
* Wolverine je cool
* Wolverine je cool


'''Čo potrebujeme?'''


'''Ako ?'''
*Arduino nano
 
*6xAA batéria
# Najprv sme si rozplánovali princíp vysúvania pazúrov. Pôvodný plán bol pripevniť na motorček, ktorý by poháňal závitnicovú tyč.
*Holder pre 6 AA batérií
[[Súbor:Príklad.jpg]][[Súbor:Príklad.jpg]]
*l298n motor driver
# Vyspecifikovat potrebny material (uprednostnujeme vlastnych alebo existujucich komponentov, v pripade potreby vieme pomoct)<BR> vystupom bude zhmotneny napad a aj navod - krok za krokom pre reprodukciu produktu
*HC-05 bluetooth module
#
*kábliky
#
*3D tlačiareň
#
#
 
[http://www.example.com link title]
 
[[Súbor:MojObrazok2.jpg|center|300px]]
 
[[Médiá:MojZdrojak.c]]
 
 
'''Použité zdroje:'''


* Zoznam použitej literatúry, vrátane katalógových údajov (datasheet), internetových odkazov a pod.
'''Ako?'''


__TOC__
* Najprv sme si rozplánovali princíp vysúvania pazúrov. Pôvodný plán bol pripevniť na motorček, ktorý by poháňal závitnicovú tyč. <br >
[[Súbor:Snímkad.PNG|center|600px]]
<br>Následne sme však, kvôli rýchlosti presedlali na nápad s ozubeným kolieskom a koľajničkou.
<br>
* Základ bol vymodelovať všetky komponenty. Na modelovanie sme používali začiatočnícky prehliadačový program Tinkercad. Schránka pazúrov sa zväčšovala s pribúdajúcimi komponentami, a taktiež s nápadom, že motorček s ozubeným kolesom bude prilepený o spodnu stranu strednej časti schránky, na druhej strane ktorej budú pazúry s koľajničkou.
[[Súbor:Snímkab.PNG|center|900px]]
Použité modely:
[[Médiá:Case1.stl]]
[[Médiá:Case2.stl]]
[[Médiá:Case3.stl]]
[[Médiá:Claws.stl]]
[[Médiá:Pinion.stl]]
<br>
* Ďalšie v poradí je správne zapojenie jednotlivých komponentov ako na obrázku (alebo krajšie), podľa nákresu nižšie:
[[Súbor:ClawScheme.jpg|center|900px]]
<br>
* Prilepenie motorčeka o spodnú stranu strednej časti caseu:
[[Súbor:ClawApart.jpg|center|900px]]
<br>
* Zloženie caseu a vloženie drápov do vybrúsenej a namazanej drážky:
[[Súbor:Claw.jpg|center|900px]]


== Analýza ==
== Analýza ==


V tejto časti popíšete ako idete daný problém riešiť. Uvediete sem aj všetky potrebné technické údaje,
* Problém nastal pri zisťovaní data rateu modulu HC-05, ktorý potrebuje pre správny prenos informácií, pretože iné modely ho majú rôzne. Nakoniec sa ukázala byť funkčná hodnota 9600 baud.
ktoré sú potrebné na úspešné vyriešenie projektu. Napríklad:
 
* popis komunikačnej zbernice (i2c, 1-wire, RS-232 a pod.)
* obrázok zapojenia vývodov použitej súčiastky
* odkaz na katalógový list
* priebehy dôležitých signálov
* este jedna polozka
 


== Popis riešenia ==
== Popis riešenia ==


Sem opíšete ako konkrétne ste problém vyriešili. Začnite popisom pripojenia k procesoru
Využívali sme Rx a Tx pin pre komunikáciu s HC-05 a iné digitálne piny, ktoré sme si v kóde nakonfigurovali.
(nezabudnite na schému zapojenia!) a zdôraznite ktoré jeho periférie ste pritom využili.  


'''Schéma zapojenia snímača'''
'''Schéma zapojenia snímača'''
[[Súbor:Zapojenie.png]]
[[Súbor:ClawPartsScheme.png|center|900px]]
 
[[Súbor:Example.jpg]]
 
Pozn.: Názov obrázku musí byť jedinečný, uvedomte si, že Obr1.jpg už pred vami skúsilo
nahrať už aspoň 10 študentov.


[[Súbor:MojObrazok.jpg|center|250px]]
Na vyslanie signálu z telefónu som použil aplikáciu Android bluetooth controller, kde som nastavil výstupnú hodnotu tlačidla na "a".


=== Algoritmus a program ===
=== Algoritmus a program ===


Uveďte stručný popis algoritmu, v akom jazyku a verzii vývojového prostredia ste ho vytvorili.
<source lang="c">
Je vhodné nakresliť aspoň hrubú štruktúru programu napríklad vo forme vývojového diagramu.  
void setup()
Rozsiahly program pre lepšiu prehľadnosť rozdeľte do viacerých súborov.
{
  pinMode(enB, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
  Serial.begin(9600);        //Nastavenie data rateu v bitoch za sekundu (baud) pre sériový prenos dát


Vyberte podstatné časti zdrojového kódu, použite na to prostredie ''source'':
void eject()
{
  analogWrite(enB, 255);
  // Nastavenie rýchlosti motorčeka na 255 z možných 0~255
  digitalWrite(in3, HIGH);
  digitalWrite(in4, LOW);
  delay(1000);
  // now turn off motors
  digitalWrite(in3, LOW);
  digitalWrite(in4, LOW);
}


<source lang="c">
void back(){
/* A nezabudnite zdroják hojne komentovať  */
  analogWrite(enB, 255);
 
  // Nastavenie rýchlosti motorčeka na 255 z možných 0~255
int main(void) {
  digitalWrite(in3, LOW);
      
  digitalWrite(in4, HIGH);
     printf("Hello, World!\n");
  delay(1000);
     return(0);
  // now turn off motors
  digitalWrite(in3, LOW);
  digitalWrite(in4, LOW);
}
void loop()
{
  if(Serial.available() > 0) 
  {
     Incoming_value = Serial.read();      //Čítanie dát z telefónu
    Serial.print(Incoming_value);        //Výpis do serial monitoru
     Serial.print("\n");                
     if(Incoming_value == 'a'){          //Pri získaní vstupu "a" z telefónu sa striedavo vykonávajú funkcie eject() a back()
      if(count % 2 != 0){
        eject();
      }
      else{
        back();
      }
      count++;
    }
  }
}
}
</source>
</source>


Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!
Zdrojový kód: [[Médiá:ClawKod.c|clawKod.c]]
 
Zdrojový kód: [[Médiá:Serial.h|serial.h]] a [[Médiá:Pip.c|main.c]]
 
[[Médiá:MojProgram.c|program.c]]




=== Výsledok ===
=== Výsledok ===


Nezabudnite zdokumentovať výsledok vašej práce. Určite sem patria fotografie, video
Ukážka výsledného produktu na platenom modelovi:
a zhodnotenie ako ste spokojní s výsledkom,
[[Súbor:RudSamplee.gif|center|450px]]
 
<br>
Kľúčové slová 'Category', ktoré na konci stránky nemeňte.
[[Súbor:ClawFinal.jpg|center|450px]]
<br>
S celkovým výsledkom sme celkom spokojný, aj keď sme museli privrieť oči pri veľa nedostatkoch ktoré vznikali počas procesu tvorby, ako napríklad nedoliehanie ozubeného kolieska na koľajničku, taktiež ich rozdielne veľkosti. Sú to problémy, ktoré by sa dali odstrániť jednoduchým znovavytlačením niektorých dielov, no kvôli časovej tiesni (ktorej predchádzala masívna prokrastinácia) sme to nestíhali. Každopádne, to vyzeralo skoro ako podľa mojich počiatočných predstáv a to je to, pre čo sa to oplatí robiť. Pocit z vytvorenia funkčného produktu podľa počiatočnej predstavy od základov.




[[Category:DTV2019]]
[[Category:DTV2019]]

Aktuálna revízia z 02:00, 11. jún 2019

Autor: Martin Hrebeňák, Filip Furtkevič
Študijný odbor: Aplikovaná informatika 3. Bc. (2019)

Opis projektu

Cieľom projektu, bolo vytvoriť automaticky vysúvané Wolverinove pazúry.
Pôvodný plán bolo ovládanie pazúrov pomocou čerelnky Mindwave Mobile. Z tohto plánu však vzišlo z dôvodu chorobnej lenivosti a následnej časovej tiesni autorov, a tak su pazúry ovládané telefónom, pomocou technológie bluetooth.


Prečo?

  • Nápad je naším srdciam blízky
  • Marvel tématika hýbe dnešným svetom
  • Wolverine je cool

Čo potrebujeme?

  • Arduino nano
  • 6xAA batéria
  • Holder pre 6 AA batérií
  • l298n motor driver
  • HC-05 bluetooth module
  • kábliky
  • 3D tlačiareň

Ako?

  • Najprv sme si rozplánovali princíp vysúvania pazúrov. Pôvodný plán bol pripevniť na motorček, ktorý by poháňal závitnicovú tyč.


Následne sme však, kvôli rýchlosti presedlali na nápad s ozubeným kolieskom a koľajničkou.

  • Základ bol vymodelovať všetky komponenty. Na modelovanie sme používali začiatočnícky prehliadačový program Tinkercad. Schránka pazúrov sa zväčšovala s pribúdajúcimi komponentami, a taktiež s nápadom, že motorček s ozubeným kolesom bude prilepený o spodnu stranu strednej časti schránky, na druhej strane ktorej budú pazúry s koľajničkou.

Použité modely: Médiá:Case1.stl Médiá:Case2.stl Médiá:Case3.stl Médiá:Claws.stl Médiá:Pinion.stl

  • Ďalšie v poradí je správne zapojenie jednotlivých komponentov ako na obrázku (alebo krajšie), podľa nákresu nižšie:


  • Prilepenie motorčeka o spodnú stranu strednej časti caseu:


  • Zloženie caseu a vloženie drápov do vybrúsenej a namazanej drážky:

Analýza

  • Problém nastal pri zisťovaní data rateu modulu HC-05, ktorý potrebuje pre správny prenos informácií, pretože iné modely ho majú rôzne. Nakoniec sa ukázala byť funkčná hodnota 9600 baud.

Popis riešenia

Využívali sme Rx a Tx pin pre komunikáciu s HC-05 a iné digitálne piny, ktoré sme si v kóde nakonfigurovali.

Schéma zapojenia snímača

Na vyslanie signálu z telefónu som použil aplikáciu Android bluetooth controller, kde som nastavil výstupnú hodnotu tlačidla na "a".

Algoritmus a program

void setup()
{
  pinMode(enB, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
  Serial.begin(9600);         //Nastavenie data rateu v bitoch za sekundu (baud) pre sériový prenos dát

void eject()
{
  analogWrite(enB, 255);
  // Nastavenie rýchlosti motorčeka na 255 z možných 0~255
  digitalWrite(in3, HIGH);
  digitalWrite(in4, LOW);
  delay(1000);
  // now turn off motors
  digitalWrite(in3, LOW);
  digitalWrite(in4, LOW);
}

void back(){
  analogWrite(enB, 255);
  // Nastavenie rýchlosti motorčeka na 255 z možných 0~255
  digitalWrite(in3, LOW);
  digitalWrite(in4, HIGH);
  delay(1000);
  // now turn off motors
  digitalWrite(in3, LOW);
  digitalWrite(in4, LOW); 
}
 
void loop()
{
  if(Serial.available() > 0)  
  {
    Incoming_value = Serial.read();      //Čítanie dát z telefónu
    Serial.print(Incoming_value);        //Výpis do serial monitoru
    Serial.print("\n");                  
    if(Incoming_value == 'a'){           //Pri získaní vstupu "a" z telefónu sa striedavo vykonávajú funkcie eject() a back()
      if(count % 2 != 0){
        eject();
      }
      else{
        back();
      }
      count++;
    }
  }
}

Zdrojový kód: clawKod.c


Výsledok

Ukážka výsledného produktu na platenom modelovi:



S celkovým výsledkom sme celkom spokojný, aj keď sme museli privrieť oči pri veľa nedostatkoch ktoré vznikali počas procesu tvorby, ako napríklad nedoliehanie ozubeného kolieska na koľajničku, taktiež ich rozdielne veľkosti. Sú to problémy, ktoré by sa dali odstrániť jednoduchým znovavytlačením niektorých dielov, no kvôli časovej tiesni (ktorej predchádzala masívna prokrastinácia) sme to nestíhali. Každopádne, to vyzeralo skoro ako podľa mojich počiatočných predstáv a to je to, pre čo sa to oplatí robiť. Pocit z vytvorenia funkčného produktu podľa počiatočnej predstavy od základov.