Bluetooth Wolverine claws
Zo stránky SensorWiki
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.