Spisu treści:

Animatroniczne oko: 7 kroków
Animatroniczne oko: 7 kroków

Wideo: Animatroniczne oko: 7 kroków

Wideo: Animatroniczne oko: 7 kroków
Wideo: 📕 FABUŁA FNAF SECURITY BREACH w 60s 2024, Listopad
Anonim
Image
Image
To jest to, czego potrzebujesz
To jest to, czego potrzebujesz

Pracuję jako operator CNC i uważam, że mam bardzo fajną pracę, ale chciałem sobie udowodnić, że potrafię prowadzić własne projekty. Studiowałem technikę sterowania na uniwersytecie, ale nie mam możliwości praktykowania tego w pracy, więc postanowiłem jakoś się utrzymać. Odkrycie, że technologia jest dziś tak dostępna, było bardzo ekscytujące. W przyszłości chcę budować roboty i pomyślałem, że oko to dobry początek.

Krok 1: To jest to, czego potrzebujesz

Materiały:

  • 2 białe piłki do ping-ponga
  • Rura do chłodzenia wodą z okrągłą głowicą

Narzędzia:

  • Pistolet na gorący klej
  • młyn okrągły
  • Piła
  • Młotek

Krok 2: Oczy

Oczy
Oczy
Oczy
Oczy
Oczy
Oczy

Pokrój kulki, ale nie na połówki. Niech jedna część będzie znacznie większa od drugiej, wycinamy kulki, aby móc coś włożyć do środka i potrzebujemy krawędzi do wywiercenia otworów, które pomagają kontrolować oczy.

Malować i wiercić otwory.

Krok 3: Pt Rotacja

Image
Image
Obrót pt
Obrót pt
pt Obrót
pt Obrót

Nie chciałem, żeby oko poruszało się tylko z jednej strony na drugą. Widziałem wiele instrukcji, ale nie byłem w stanie zrozumieć, jak to umożliwić. W końcu znalazłem film na You-Tube, ale nie chciałem kupować. Pierwszą próbę wykonałem z drewna i metalu z klipsów. Zabezpieczyłem kołki pistoletem do kleju, ale nie byłem zadowolony z wyników. Jako pracownik przemysłowy mam dostęp do wielu rzeczy. Zaobserwowałem, że rura do chłodzenia wodą z okrągłą głowicą wygląda dokładnie tak, jak potrzebowałem, ale była zbyt ciasna, aby swobodnie się obracać. Frezowałem wewnątrz sekcji, a następnie moja część była gotowa do swobodnego obracania.

Krok 4: Baza

Baza
Baza
Baza
Baza
Baza
Baza

Możesz użyć młotka do wygięcia podstawy, imadło stołowe pomaga uzyskać idealne 90°. Pamiętaj, aby wywiercić otwór przed gięciem, jest to znacznie łatwiejsze.

Krok 5: Kontrolowanie oczu

Kontrolowanie oczu
Kontrolowanie oczu
Kontrolowanie oczu
Kontrolowanie oczu
Kontrolowanie oczu
Kontrolowanie oczu

Krok 6: Program

Jestem bardzo nowy, więc potrzebowałem pomocy z programem, możesz zobaczyć projekt tutaj. Moje źródło

Skopiuj i wklej program w swoim środowisku Arduino.

#włączać

#define pi 3.14159265358979323846 #define twopi (2*pi) float circleradius = 50; //50 z każdej strony - nie rób więcej żadnych maksymalnych wartości granicznych float liczba_krok = 360; pływający krok;

#include //include bibliotekę serwo do sterowania serwo

Serwo horServo; //serwo dla ruchu lewo/prawo Servo vertServo; //serwo do ruchu góra/dół

bajt losowyhor; //zdefiniuj losową pozycję poziomą zmienna byte randomvert; //zdefiniuj losową zmienną pozycji pionowej int randomdelay; //zdefiniuj losową zmienną opóźnienia

#define HLEFTLIMIT 40 //definiowanie lewego limitu serwa poziomego (lewo/prawo) #define HRIGHTLIMIT 80 //definiowanie prawego limitu serwa poziomego (lewo/prawo)

#define VTOPLIMIT 70//zdefiniuj górny limit serwa pionowego (góra/dół) #define VBOTLIMIT 110 //zdefiniuj dolny limit serwa poziomego (góra/dół)

void setup() { horServo.attach(8); //serwo poziome na pinie 8 vertServo.attach(9); //pionowe serwo na pinie 9 randomSeed(analogRead(0)); //Utwórz losowe wartości za pomocą niepodłączonego pinu analogowego

kąt kroku = dwapi/liczba kroku; for(int i = 0; i

x = mapa(x, 1-promień okręgu, promień okręgu, 0, 2*promień okręgu); y = map(y, 1-promień okręgu, promień okręgu, 0, 2*promień okręgu);

horServo.write(x); //zapis do serwa poziomego vertServo.write(y); //pisz do serwa poziomego

opóźnienie(10); } }

void loop() { randomhor = random(HLEFTLIMIT, HRIGHTLIMIT); //ustaw limity randomvert = random(VTOPLIMIT, VBOTLIMIT); //ustaw limity randomdelay = random(1000, 4000); //porusza się co 1 do 4 sekund

horServo.write(losowyhor); //zapis do serwa poziomego vertServo.write(randomvert); //zapis do pionowego serwomechanizmu delay(randomdelay); //opóźnienie o losową ilość czasu (w ramach wartości ustawionych powyżej) }

Zalecana: