Difference between revisions of "Talk:Projekty-2020"

From Digitálne technológie výroby
Jump to: navigation, search
(Blanked the page)
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
<h1>Otočné zrkadielko</h1>
 
  
<hr /><p>
 
<b>Čo budem potrebovať? </b>
 
* Budem potrebovať nejaké otočné zrkadielko, ktoré si poupravíme z jedného boku
 
* Servo SG90
 
* Servo FS90R
 
* Arduino nano strong
 
* Napájanie, baterky
 
* 4 -krát tlačidlá Touch
 
* prepájacie káble typu M-F
 
* skrutky (šróby) na upevnenie držiaka na servo v základni - 2kusy
 
</p>
 
<hr />
 
 
<b>Prečo?</b>
 
Vyskúšať vytvoriť si niečo vlastné a oboznámiť sa s Arduinom. Navyše to bude unikát, ktorý v obchode len tak nenájdete. A napríklad pri šminkovaní si zrkadielko nezašpiníte len kvôli natočeniu, len ľahko pomocou tlačidla si ho natočíte ako budete potrebovať.
 
<hr />
 
<b>Ako na to?</b>
 
Všetky súbory nájdete tu:
 
https://drive.google.com/drive/u/0/folders/1XdoHModR5uVDD5H3o1uEbmd_AcxNtlTm
 
 
Najprv si komponenty pripojíme k Arduinu. <br>
 
Ja som začala Touch talčidlami <br>
 
1/0 pripojíme porty 2,4,6,8 ( žltá farba v Arduine nano strong), <br>
 
GND pripojíme na GND(čo sú čierne porty v Arduine nano strong) <br>
 
VCC pripojíme na 5V (červené porty v Arduine nano strong) <br><br>
 
 
Servo SG90 som dala na port 10 <br>
 
Servo FS90R som dala na port 12 <br>
 
 
3D talčený model som si stiahla zo stránky : 
 
https://www.thingiverse.com/thing:3958326
 
A podľa svojho projektu som po upravila niektoré komponenty (Front cover V1, small gear V1), a držiak z názvom (servo_mount_for_remote_V1) nebudem potrebovať,
 
vymodelujeme si vlastné.
 
<div><ul>
 
<li style="display: inline-block;"> [[File:komponenty.png|1058px|thumb|middle|Komponenty pre 3D tlač]] </li>
 
</ul></div>
 
 
potom čo si všetko zložíme a po upevňujeme, to bude vyzerať takto:
 
 
<img src="3D=objekty_na_zrkadlo_tlac/kompo.jpg" width="360" height="480" alt="kompomemty" id="kompomemty">
 
 
s držiakom na horné servo som improvizovala a zostrojila som ho z konštrukcie fixy, čo som prilepila o platňu taviacou pištoľou a na
 
to som pripevnila servo drátikom. Všetko v základni som musela dobre prichytiť aby mi to nebránilo-spomaľovalo v otáčaní vpravo-vľavo.
 
Video na pozretie neúplného celku: https://drive.google.com/drive/u/0/folders/1xAaZdGraONxEiZWmZgJmQa61WUsUDXxj
 
 
K finálnemu výsledku pripevníme ešte riadiaci panel a ja som ešte prefarbila na zlato otočnú platňu aj s vyrobeným držiakom z fixy-pera na servo.:
 
https://drive.google.com/drive/folders/1qKMEAsro9kWZGQv2GVC-QDTm8hpamKql
 
 
Otočné zrkadielko som nastavila v otáčaní vpravo-vľavo na 8-sť otočení, z dôvodu toho aby sa mi veľmi nezamotali káble okolo zrkadielka,
 
ktoré idú k vrchnému servo, ktoré otáča zrkadlo hore-dole.
 
 
<hr /><b>Kód pre otáčanie zrkadielka:</b><hr />
 
<div><ul>
 
 
#include <Servo.h>  <br>
 
const int touchPravy = 2; <br>
 
const int touchLavy  = 4;<br>
 
const int touchHore = 6;<br>
 
const int touchDole = 8;<br>
 
 
int val1 = 0;
 
int val2 = 0;
 
int val3 = 0;
 
int val4 = 0;
 
int poziciaOtoc = 0;
 
int sklopNaklonPozicia = 90;
 
int krpos = 1000;
 
Servo s2;
 
Servo s;
 
void setup() {
 
  s.attach(10);
 
  s2.attach(12);
 
  pinMode(touchPravy, INPUT);
 
  pinMode(touchLavy, INPUT);
 
  pinMode(touchHore, INPUT);
 
  pinMode(touchDole, INPUT);
 
  s2.write(sklopNaklonPozicia);
 
  Serial.begin(9600);
 
  Serial.println("start....");
 
  delay(1000);
 
}
 
int otocTo(Servo motorcek, int sklopNaklonPozicia, int koniec) {
 
  int naopak = 1;
 
  if (sklopNaklonPozicia > koniec){
 
    naopak = -1;
 
    }
 
  for (int i = sklopNaklonPozicia; i != koniec; i += naopak ) {
 
    motorcek.write(i);
 
    Serial.println(i);
 
    delay(krpos/5);
 
  }
 
  return koniec;
 
}
 
 
void loop() {
 
  val1 = digitalRead(touchPravy);
 
  val2 = digitalRead(touchLavy);
 
  val3 = digitalRead(touchHore);
 
  val4 = digitalRead(touchDole);
 
  if (val1 == 1) {
 
    delay(500);
 
    if (poziciaOtoc != 8) {
 
      s.write(84);
 
      Serial.println(poziciaOtoc);
 
      delay(krpos);
 
      s.write(90);
 
      poziciaOtoc += 1;
 
    }
 
    else {
 
      Serial.println("prvy else..blok..");
 
      s.write(90);
 
    }
 
  }
 
  if (val2 == 1) {
 
    delay(500);
 
    if (poziciaOtoc != -8) {
 
      s.write(95);
 
      Serial.println(poziciaOtoc);
 
      delay(krpos);
 
      s.write(90);
 
      poziciaOtoc -= 1;
 
    } else {
 
      Serial.println(poziciaOtoc);
 
      Serial.println("zle -10");
 
    }
 
  }
 
  if (val3 == 1) {
 
    delay(500);
 
    if (sklopNaklonPozicia != 120) {
 
      sklopNaklonPozicia = otocTo(s2, sklopNaklonPozicia, sklopNaklonPozicia + 10);
 
      Serial.println(sklopNaklonPozicia);
 
      delay(krpos / 2);
 
    } else {
 
      Serial.println(sklopNaklonPozicia);
 
      Serial.println("zle 3tlacidlo");
 
    }
 
  }
 
  if (val4 == 1) {
 
    delay(500);
 
    if (sklopNaklonPozicia != 40) {
 
      sklopNaklonPozicia = otocTo(s2, sklopNaklonPozicia, sklopNaklonPozicia - 10) ;
 
      Serial.println(sklopNaklonPozicia);
 
      delay(krpos / 2);
 
    } else {
 
      Serial.println(sklopNaklonPozicia);
 
      Serial.println("zle 4tlacidlo");
 
    }
 
  }
 
}
 
 
 
</ul></div>
 

Latest revision as of 17:14, 8 June 2020