Difference between revisions of "Otočné zrkadielko"
Dermiskova (talk | contribs) |
m |
||
(28 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | + | ||
<hr /><p> | <hr /><p> | ||
− | <b>Čo budem potrebovať? </b> | + | <b>Čo budem potrebovať? </b><br> [[File:zrkadlo.jpg|150px|thumb|middle|Zrkadlo]] |
* Budem potrebovať nejaké otočné zrkadielko, ktoré si poupravíme z jedného boku | * Budem potrebovať nejaké otočné zrkadielko, ktoré si poupravíme z jedného boku | ||
* Servo SG90 | * Servo SG90 | ||
Line 14: | Line 14: | ||
<hr /> | <hr /> | ||
− | <b>Prečo?</b> | + | <b>Prečo?</b><br> |
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ť. | 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 /> | <hr /> | ||
− | <b>Ako na to?</b> | + | <b>Ako na to?</b><br> |
− | Všetky súbory nájdete tu: | + | Všetky súbory nájdete tu: [[Media:projekt-zrkadlo-Lenka-Dermiskova.zip|projekt-zrkadlo-Lenka-Dermiskova.zip]] |
− | |||
Najprv si komponenty pripojíme k Arduinu. <br> | Najprv si komponenty pripojíme k Arduinu. <br> | ||
− | Ja som začala Touch | + | Ja som začala Touch tlačidlami <br> |
1/0 pripojíme porty 2,4,6,8 ( žltá farba v Arduine nano strong), <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> | GND pripojíme na GND(čo sú čierne porty v Arduine nano strong) <br> | ||
Line 30: | Line 29: | ||
Servo FS90R som dala na port 12 <br> | Servo FS90R som dala na port 12 <br> | ||
− | 3D | + | <b>3D tlačený model som si stiahla zo stránky : </b> |
− | https://www.thingiverse.com/thing:3958326 | + | https://www.thingiverse.com/thing:3958326 <br> |
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ť, | 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é. | vymodelujeme si vlastné. | ||
+ | |||
<div><ul> | <div><ul> | ||
− | <li style="display: inline-block;"> [[File:Kopmonenty.png| | + | <li style="display: inline-block;"> [[Image:primeriavanie_kolieska.jpg|500px|thumb|left|z procesu vývoja...]] </li> |
+ | <li style="display: inline-block;"> [[Image:vytlacene_komponenty.jpg|500px|thumb|left|vytlačené komponenty...]] </li> | ||
+ | <li style="display: inline-block;"> [[File:Kopmonenty.png|580px|thumb|middle|Komponenty pre 3D tlač]] </li> | ||
</ul></div> | </ul></div> | ||
+ | <div><ul> | ||
potom čo si všetko zložíme a po upevňujeme, to bude vyzerať takto: | potom čo si všetko zložíme a po upevňujeme, to bude vyzerať takto: | ||
− | [[File: | + | <li style="display: inline-block;"> [[File:kompoo.jpg|600px|thumb|middle|Zapojenie]] </li> |
+ | <li style="display: inline-block;"> [[File:104137429_956224818165140_1651990881914556093_n.jpg|600px|thumb|middle|Zapojenie]] </li> | ||
+ | |||
+ | </ul></div> | ||
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 | 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. | + | to som pripevnila servo drátikom. <br>Všetko v základni som musela dobre prichytiť aby mi to nebránilo-spomaľovalo v otáčaní vpravo-vľavo.<br> |
− | Video na pozretie neúplného celku: | + | Do platne ktorá sa bude otáčať som musela spraviť v prostriedku otvor na káble k servu, ktoré otáča zrkadlom hore-dole. |
+ | Video na pozretie neúplného celku: | ||
+ | |||
+ | <youtube>A13F9UIeCZc</youtube> | ||
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.: | 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.: | ||
− | |||
− | Otočné zrkadielko som nastavila v otáčaní vpravo-vľavo na 8- | + | <youtube>Rh-GozEJP1c</youtube> |
+ | |||
+ | Otočné zrkadielko som nastavila v otáčaní vpravo-vľavo na 8-em 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. | ktoré idú k vrchnému servo, ktoré otáča zrkadlo hore-dole. | ||
+ | |||
+ | <div><ul> | ||
+ | <li style="display: inline-block;"> [[File:zrkadlo.jpg|580px|thumb|middle|Zrkadlo]] </li> | ||
+ | </ul></div> | ||
− | <hr /> | + | <hr /> |
− | < | + | ===Kód pre otáčanie zrkadielka:=== |
+ | <hr /> | ||
+ | <syntaxhighlight lang="c"> | ||
− | #include <Servo.h> | + | #include <Servo.h> |
− | const int touchPravy = 2; | + | const int touchPravy = 2; |
− | const int touchLavy = 4; | + | const int touchLavy = 4; |
− | const int touchHore = 6; | + | const int touchHore = 6; |
− | const int touchDole = 8; | + | const int touchDole = 8; |
− | int val1 = 0; | + | int val1 = 0; |
− | int val2 = 0; | + | int val2 = 0; |
− | int val3 = 0; | + | int val3 = 0; |
− | int val4 = 0; | + | int val4 = 0; |
− | int poziciaOtoc = 0; | + | int poziciaOtoc = 0; |
− | int sklopNaklonPozicia = 90; | + | int sklopNaklonPozicia = 90; |
int krpos = 1000;<br> | int krpos = 1000;<br> | ||
− | Servo s2; | + | Servo s2; |
− | Servo s; | + | Servo s; |
void setup() { | void setup() { | ||
s.attach(10); | s.attach(10); | ||
Line 151: | Line 167: | ||
− | </ | + | </syntaxhighlight> |
Latest revision as of 12:00, 17 June 2021
Čo budem potrebovať?
- 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
Prečo?
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ť.
Ako na to?
Všetky súbory nájdete tu: projekt-zrkadlo-Lenka-Dermiskova.zip
Najprv si komponenty pripojíme k Arduinu.
Ja som začala Touch tlačidlami
1/0 pripojíme porty 2,4,6,8 ( žltá farba v Arduine nano strong),
GND pripojíme na GND(čo sú čierne porty v Arduine nano strong)
VCC pripojíme na 5V (červené porty v Arduine nano strong)
Servo SG90 som dala na port 10
Servo FS90R som dala na port 12
3D tlač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é.
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.
Do platne ktorá sa bude otáčať som musela spraviť v prostriedku otvor na káble k servu, ktoré otáča zrkadlom hore-dole.
Video na pozretie neúplného celku:
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.:
Otočné zrkadielko som nastavila v otáčaní vpravo-vľavo na 8-em 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.
Kód pre otáčanie zrkadielka:
#include <Servo.h>
const int touchPravy = 2;
const int touchLavy = 4;
const int touchHore = 6;
const int touchDole = 8;
int val1 = 0;
int val2 = 0;
int val3 = 0;
int val4 = 0;
int poziciaOtoc = 0;
int sklopNaklonPozicia = 90;
int krpos = 1000;<br>
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");
}
}
}