REKLAMA

PIC16F1459_40x70_sch_pcb_PDFs.zip

Jednodniowe DIY - obrotowa platforma (2 osie) na USB pod kamerkę ze śmieci

https://obrazki.elektroda.pl/6028895200_1549881230_thumb.jpg Witajcie moi drodzy To dziwne coś powstało w jeden dzień. Byłem ciekawy na ile da się złożyć obrotową platformę pod kamerkę z tego co jest pod ręką. Platforma posiada dwie osie obrotu: prawo-lewo oraz góra-dół. Całość złożona jest: - kamerki PAL na 12V - konwertera "PAL na USB" aby móc odbierać obraz na PC - kontrolera USB na PIC16F1459 - dwóch silniczków 28BYJ-48 (jeden widoczny na zdjęciu, drugi jest w platformie) - dodatkowej płytki ze złączami - odpadów, w tym starego PCB... Całość pozwala zdalnie zobaczyć co się dzieje w całym pokoju, pod warunkiem że podłączę się do tamtejszego komputera przez program typu TeamViewer (i też tak robię). Opis konstrukcji Konstrukcja powstała w jeden dzień z tego co było w szufladzie oraz z innych odpadów. Nie robiłem do niej żadnego schematu (ani elektronicznego, ani mechanicznego). Do samej konstrukcji mechanicznej użyłem tylko: - dwa silniki 28BYJ-48 (najtańsze od chińczyków) - płyta główna z monitora CRT (a w zasadzie sam laminat - z elektrośmieci) - plastikowe opakowanie (ze śmieci...) - zestaw śrubek M2, M3, M4 (z szuflady) Od strony elektronicznej użyłem: - dwa sterowniki dla 28BYJ-48 (te z LEDami, najtańsze od chińczyków) - płytkę uniwersalną z kondensatorem, 7805, złączami na wyjście video PAL oraz wejście zasilania jack 12V - moją płytkę PIC16F1459 ze złączem USB (odpowiada ona za komunikację i steruje silnikami krokowymi) Od strony "kamerkowej" użyłem: - kamera PAL FPV Camera 700TVL (najtańsza od chińczyków) - konwerter "PAL do USB" Video DVR (jego kupowałem w Polsce, chyba na słynnym portalu aukcyjnym) Całość wymaga zasilacza 12V ze względu na to, że takiego napięcia potrzebuje kamerka AL FPV Camera 700TVL. Ramię i jego łączenia z silniczkami Ramię zostało zrobione z laminatu z płyty głównej od monitora CRT, który wcześniej oczyściłem z elementów i nadmiaru cyny. Wszystko zostało docięte na oko i połączone śrubkami. W jednym miejscu użyłem również dwóch małych kątowniczków. Największym problemem okazały się mocowania do silników, ponieważ ich rotory nie mają otworu na śrubkę tak jak inne popularne silniczki, więc musiałem poradzić sobie "na dziko" i dopasować je na wcisk: https://obrazki.elektroda.pl/5500141600_1549878819_thumb.jpg Całością się już trochę bawiłem i na razie trzyma się dość dobrze, ale nie zdziwię się, jak wkrótce się rozwali. Software (sterowanie) Sterowanie odbywa się poprzez USB. Sercem konstrukcji jest PIC16F1459. Jego firmware napisałem w mikroC PRO for PIC. Na firmware składa się komunikacja USB (odbiór pakietów-rozkazów jak ma się poruszyć silnik) oraz samo sterowanie silnikiem. Tak wygląda szkielet programu (główna pętla w main oraz przerwanie od USB): unsigned char readbuff absolute 0x040; // Buffers should be in USB RAM, please consult datasheet unsigned char writebuff absolute 0x140; void interrupt(){ USB_Interrupt_Proc(); // USB servicing is done inside the interrupt } void main(void){ (...) while(1) { while(HID_Read()) { // tu 'readbuff' zawiera pakiet przeslany przez USB if(readbuff==0) { // itp itd } // itp itd } (...) } } Dla silnika krokowego przygotowałem własny zestaw funkcji który obejmuje: /* Inicjuje strukture motor_t, jako argumenty przyjmuje wskaźniki na banki (PORTA, PORTB, itp) oraz numery bitów. Czyli silnik może być sterowany przez 4 dowolne piny. */ void MOTOR_Init(motor_t *m, int *bank1, int bit1, int *bank2, int bit2, int *bank3, int bit3, int *bank4, int bit4); /* Ustawia komende przejścia danej ilości kroków w danym kierunku. */ void MOTOR_GoTo(motor_t *m, int dir, int loops); /* Zatrzymuje silnik (komenda stop) */ void MOTOR_Stop(motor_t *m); /* Aktualizuje ruch silnika, nie może być wołane za często. Ja wołam z odstępem Delay_us(2000); */ void MOTOR_Run(motor_t *m); Funkcje nie były tworzone z myślą o wydajności, lecz o przydatności. Biblioteka obsługuje dowolną ilość silniczków, deklaruje się je tak: motor_t motorH; motor_t motorV; Potem można na nich używać funkcji MOTOR_*. Po stronie komputera znajduje się z kolei aplikacja napisana w Visual Studio. https://obrazki.elektroda.pl/5855799100_1546299554_thumb.jpg Aplikacja ma dwa zestawy przycisków prawo-lewo góra-dół. Jeden pozwala na precyzyjne sterowanie silnikami, drugi po jednym kliknięciu wykonuje obrót o większy kąt. Software (kamerka) Użyta kamerka to FPV Camera 700TVL. Na jej wyjściu jest sygnał PAL, który dopiero potem idzie do konwertera PAL na USB i poprzez USB odbierany jest w komputerze z pomocą odpowiedniego programu. Nic nie stoi tu na przeszkodzie by użyć normalną kamerkę USB, ale tak jak napisałem - użyłem tego co miałem pod reką. Użyty program to honestech VHS to DVD 2.0 SE, ale do konwertera PAL->USB (PAL/VHS NA PC VIDEO GRABBER EASY CAP) który używam pasują też chyba inne aplikacje. Sam program wygląda tak: https://obrazki.elektroda.pl/7351750700_1549879350_thumb.jpg https://obrazki.elektroda.pl/6936549600_1549879350_thumb.jpg W celu najlepszego odbioru obrazu z kamerki należy odpowiednio go skonfigurować, tzn. wybrać czy sygnał wejściowy to PAL, czy SECAM, oraz jaki dokładnie podtyp PAL/SECAM https://obrazki.elektroda.pl/5040749700_1546303094_thumb.jpg W przypadku złego ustawienia w programie obraz może być wyświetlany niepoprawnie: https://obrazki.elektroda.pl/6805337500_1546303140_thumb.jpg https://obrazki.elektroda.pl/3060785200_1546303139_thumb.jpg Konwerter PAL->USB wygląda tak: https://obrazki.elektroda.pl/3763915700_1549879534_thumb.jpg https://obrazki.elektroda.pl/9382782800_1549879535_thumb.jpg Sam program (honestech VHS to DVD 2.0 SE) pobrałem z internetu, ponieważ do kupionego przeze mnie konwertera PAL na USB nie była dołączona żadna płytka, ani nawet instrukcja. PCB sterowania przez USB na PIC16F1459 Tę płytkę chyba już kiedyś wrzucałem na elektrodę, ale przypomnę tu coś o niej. Na pokładzie znajduje się 8-bitowy PIC16F1459 (14kB pamięci Flash, 1kB RAM) ze sprzętowym wsparciem USB. Na płytce nie ma żadnego rezonatora kwarcowego, ponieważ PIC16F1459 ma wewnętrzny rezonator wystarczająco dobry do użycia go przy komunikacji USB. Płytka w Eagle: http://obrazki.elektroda.pl/8510604300_1472728542_thumb.jpg Warstwa opisowa: http://obrazki.elektroda.pl/8392202100_1472728521_thumb.jpg Wykonanie: https://obrazki.elektroda.pl/4699329500_1546293201_thumb.jpg Całość zrobiłem parę lat temu z pomocą metody żelazkowej. Podsumowanie Zdawać by się mogło, że nawet takie proste sterowanie kamerką w dwóch osiach wymaga dużo pracy i nakładów finansowych, ale jak widać tak nie jest. Sam jestem zaskoczony, że udało mi się to w jeden dzień złożyć z tego, co było pod ręką, i że całość w takiej formie jak na zdjęciach ma prawo trzymać się kupy :D Kosztorys Dość trudno tu będzie przedstawić koszty całości, ale spróbuję wypisać te ceny które znam. FPV Camera 700TVL- 20 zł (chińskie A) 28BYJ48 z płytką sterownika - 2*6=12 zł (chińskie A) PAL/VHS NA PC VIDEO GRABBER EASY CAP - 20 zł (polski portal aukcyjny) PIC16F1459 - 10 zł (tme) Laminat, drobnica, zasilacz 12V - z szuflady Ale tak naprawdę całość kosztowała mnie 0 złotych i powstała z tego, co było pod ręką. Załączniki: - program na PC (z kodem źródłowym!): 952624 - firmware na PIC (z kodem źródłowym!): 952625 - sam kod obsługi silnika krokowego: 952623 - pliki Eagle płytki od PIC16F1459: 952622 - pliki pdf do termotransferu od w/w plytki: 952621


Pobierz plik - link do postu
  • PIC16F1459_40x70_sch_pcb_PDFs.zip
    • PIC16F1459_40x70_1-sch.pdf
    • PIC16F1459_40x70_1_doc.pdf
    • PIC16F1459_40x70_1.pdf


PIC16F1459_40x70_sch_pcb_PDFs.zip > PIC16F1459_40x70_1-sch.pdf

VDD

VDD

JP5
GND 1
VDD 2
RA5 3
RA4 4

VDD
5
4
3
2
1

VUSB

C1
3
4

1
2

.47u

IC SP

1

VI

VO

VDD
3
3
2
1

1
2
3

VDD

GND

C2

GND

PW

IC 1
7805T V

GND
VDD

VDD
JP4

VBUS
C3

1
2
3
4

C4

2

J1

M C LR

10k
S1

JP3
RC0 1
RC1 2
RC2 3
RB4 4
RB5 5
RB6 6

100n 47u

100n

GND
GND

GND
GND

1k

1
2

R3

1k

GND

LE D 2

V PP

R1

IC S PD A T
IC S PC LK

JP2
RC5 1
RC4 2
RC3 3
RC6 4
RC7 5
RB7 6

LE D 1

RC0
RC1

VDD

GND

D+
D-

VBUS

RA4
RA5
RB4
RB5
RB6
RB7
RC2
RC3
RC4
RC5
RC6
RC7

RA4
RA5
RB4
RB5
RB6
RB7
RC2
RC3
RC4
RC5
RC6
RC7

R2

GND

X6

VDD

VDD
VSS

GND

+

USB

4
3
2
1

JP6

PN 61729-S

GND


PIC16F1459_40x70_sch_pcb_PDFs.zip > PIC16F1459_40x70_1_doc.pdf

1J

S- 9 2 7 1 6 N P

SCI N O R TCELE

6X

3 2 1
V T 5 0 8 7 1 CI n 0 0 1

2C

k1 2R
3R

n001 3C

k1

2 DEL

1 DEL

DNG
DNG
V5
V5

9 5 4 1 F 6 1 CI P
DRAOB VED

WP

DEL
DNG

5CR
4CR
3CR
6CR
7CR
7BR

6PJ
5 P J3 P J
2PJ

0CR
1CR
2CR
4BR
5BR
6BR

u74
4C
1C

DNG
V5
5AR
4AR

9541F61

u 7 4.

P S CI

.5

k01

1S
1R

2

.1

PPV
CCV
DNG
DGP
CGP

4

1
3

TESER

4PJ