Table of Contents

Camera glisanta

Autor: Iercosan-Lucaci Alexandru 336CA

Introducere

Proiectul reprezinta suportul mecanic si de software pentru a transforma o camera fixa intr-o camera care poate glisa de-a lungul unei axe. Glisarea camerei poate fi controlata cu un display sau direct, de catre alte echipamente, prin interfata electronica.

Descriere generala

Cadrul principal al proiectului este o sina facuta din 2 axe de precizie. Electronica principala (microcontroller-ul, ecranul, interfata umane) sta intr-o carcasa printata la un capat. Celalalt capat al sinei are un opritor mecanic. De-a lungul sinei exista o cremaliera.

Patina glisanta este o componenta (la fel ca restul pieselor mecanice, fabricata la imprimanta 3D) care se poate deplasa de-a lungul sinei. De patina sunt fixate camera video si un motor cu roata dintata, care asigura deplasarea.

Hardware design

Electronica:

Mecanica:

Mai jos avem o schema de bloc cu componentele proiectului si echema electrica:

Software design

Am impartit codul pe 3 compoente functionale:

Display

Display-ul este responsabil sa faca interfata cu utilizatorul. Utilizatorul poate modifica 2 parametri (durata de stationare si numarul de opriri), si poate solicita trecerea fortata la urmatorul punct de oprire.

Componenta de software de display se ocupa cu afisarea meniurilor de selectare si editare. Cand valorile se editeaza, se trimite un update catre Planner.

Planner

Planner-ul primeste de la display cei doi parametri configurabili (durata de stationare si numarul de opriri) si este responsabil sa-i trimita Executor-ului pozitia la care sa mearga.

Acesta verifica regulat daca a expirat timpul de stationare, si daca da, trece la urmatorul punct de oprire.

Executor

Executor-ul este o componenta care ruleaza pe un interrupt la Timer2 al procesorului, la o frecventa de 50KHz. Aceasta tine minte pozitia la care se afla camera si primeste de la Planner pozitia la care trebuie sa ajunga.

La fiecare executie se verifica in ce directie trebuie sa se deplaseze si merge in acea directie. Daca a ajuns la destinatie, nu face nimic.

Tot executor-ul este responsabil de operatia de “Home” care ruleaza la inceputul programului. Din cauza ca un motor stepper nu poate sti in ce pozitie este cand aparatul este pornit, operatia de “Home” muta camera care un capat de cursa. Cand ajunge la capat, declanseaza un microswitch, moment in care se stie cu precizie care este pozitia.

Se poate intampla ca cele 3 butoane sa emita semnale oscilante intermediare cand sunt apasate, efectiv cauzand inregistrarea lor de mai multe ori. Pentru a preveni acest fenomen am implementat un algoritm simplu de debouncing. Dupa ce un buton este apasat, timp de 80ms, orice apasare succesiva a acelui buton este ignorata.

Rezultate obtinute

Camera glisanta functioneaza corect.

Pe parcursul proiectului am intampinat diverse dificultati:

Download

Aici se gaseste codul sursa pentru placa Arduino: camera_glisanta.zip

Bibliografie/resurse

https://youtu.be/QGTbm5zG8JY - Video prezentare

https://draw.io - Program folosit pentru desenat organigrama

https://kicad.org - Program folosit pentru desenat schema electrica