Operácie

Bluetooth Wolverine claws: Rozdiel medzi revíziami

Z SensorWiki

(Opis projektu)
(Popis riešenia)
 
(15 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 ==
Riadok 9: Riadok 11:
 
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.
  
__TOC__
+
 
  
 
'''Prečo?'''  
 
'''Prečo?'''  
Riadok 29: Riadok 31:
 
'''Ako?'''
 
'''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č. <br >
+
* 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]]
 
[[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>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.
+
<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]]
 
[[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č.
Snímkad.PNG


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.
Snímkab.PNG

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:
ClawScheme.jpg


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


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

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

ClawPartsScheme.png

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:

RudSamplee.gif


ClawFinal.jpg


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.