Aparat de alba-neagra

Poață Andrei-Cătălin 336CB

Introducere

Proiectul curent reprezinta un aparat de alba-neagra care va juca jocul in mod automat. Nu pot spune ca are un scop anume, este doar un aparat facut for fun.

Ideea mi-a venit atunci cand m-am gandit la un lucru cat mai fun si in acelasi timp si incitant pentru proiect si m-am gandit ca un aparat de alba-neagra care joaca in true romanian fashion (adica incearca sa si pacaleasca jucatorii) ar fi destul de interesant, din prisma crearii mecanismului de trisare.

Util nu pot spune ca ar fi pentru cineva, cu exceptia cazului in care se doreste sa se mearga la “facut bani” in alte tari in true romanian fashion si acea persoana nu vrea sa isi piarda timpul asteptand in jurul atractiilor turistice, asa ca alege sa puna un robot acolo.

Descriere generală

Din cele 10 servomotoare, 2 se vor ocupa de rotirea paharelor, 4 se vor ocupa de fixarea si ridicarea paharelor, iar celelalte 4 vor fi folosite pentru pacalirea jucatorilor. Force Sensors vor fi folositi pentru selectarea paharului in care jucatorul crede ca se gaseste mingea. Butoanele vor fi pentru reset si alegerea intre modul manual si modul automat.

Hardware Design

Schema bloc

Proiectul va contine:

  • 10 servomotoare
  • 1 display LCD bazat pe I2C
  • 1 placa de dezvoltare Arduino Uno
  • 3 rezistente
  • 5 butoate

Implementare

Cablajul

Cele 2 platforme rotitoare

Software Design

Codul a fost scris in ArduinoIDE si s-au folosit urmatoarele librarii:

  • Servo.h → Pentru controlul servomotoarelor cu ajutorul PWM si celor 6 pini cu PWM si alti 4 analogi (folositi pentru a “simula” PWM).
  • LiquidCrystal_I2C.h → Pentru controlul mai usor al display-ului LCD pe baza de I2C
  • debounce.h → Pentru un debounce mai elegant pentru butoane

In mare parte exista functii:

  • handlere pentru activitatea butoanelor
  • functie de reveal a paharului ales si, in cazul unei alegeri gresite, a paharului corect
  • functie de reset care aduce jocul in starea initiala (scor 0 si obiect in mijloc)
  • functii pentru rotirea platformelor din stanga si dreapta
  • functii de debug pentru verificarea functionalitatilor

Pentru marea majoritate a functiilor de mai sus am avut grija sa sincronizez functionarea motoarelor pentru a nu avea multiple motoare ce functioneaza in acelasi timp, care consuma de la aceeasi sursa de 5V.

Rezultate Obţinute

Concluzii

Aparatul face ce trebuie, se misca sincronizat, nu exista demand prea mare de tensiune pentru placa si a fost destul de smooth miscarea. A fost un proiect destul de fun si chiar am invatat putin sa mesteresc.

Download

Jurnal

Bibliografie/Resurse

pm/prj2023/iotelea/andrei.poata.txt · Last modified: 2023/05/29 21:19 by andrei.poata
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0