Table of Contents

Zizou v1.0

Introducere

Scop: participarea la Robochallenge, la proba de fotbal.

Responsabilitățile studenților din echipa de la concurs:

1. Bărbulescu Mihai 331CA - modulele electronice (schematic, PCB design, debugging)
2. Cătuneanu Mircea 333AB - mecanica + asamblare
3. Stratulat Adrian 331CA - cod OpenCV pe RaspberryPI (procesarea imaginilor)
4. Traistă-Popescu Vlad 331CA - cod Atmega (recepția serială, preluarea informațiilor de la senzori, deciziile trimise către motoare etc.)

Descriere generală

Regulile pentru implementarea robotului:

Mai multe detalii despre regulament pe pagina oficiala

Schema bloc

Detalii schemă bloc:

Pentru prima versiune fiecare modul din schema bloc chiar a fost realizat pe câte o plăcuță cu fotorezist (vezi aici un tutorial cu realizarea de cablaje cu fotorezist), iar legăturile au fost realizate cu cablu panglică.

Hardware Design

Lista de piese

Mecanice Link
Tablă găsită în laborator
Coolere de la calculatoare vechi
2 x Motoare pentru roți http://www.robofun.ro/mecanice/motoare/motoare_pololu_metalice_37Dx52L_29:1
Roți găsite în laborator
Motor pentru prindere mingi luat dintr-o imprimantă veche

Scheme electrice ale modulelor

Fig 1: Driverul NCV7729 cu protectie. “Firele amestecate” de la JP1 sunt așa doar pentru că a fost mai ușor de făcut PCB-ul, însă nu a fost o idee bună.

Fig 2: Driverul L298 cu protecție la supracurent dar și la supratensiuni. Mai multe detalii pot fi găsite aici. Cablajul a fost modificat față de cel inițial pentru a ne putea încadra în dimensiuni

Fig 3: Montaj pentru compararea unei tensiuni (Vin) cu o referință aleasă (Vref) pentru a obține un nivel logic, în funcție de rezultatul input versus referință. De obicei nivelele logice sunt: HIGH, dacă Vin > Vref și LOW altfel. Vref se reglează din potențiometru.

1_2_45_.jpg Fig 4: Pinout 74HCT245, buffer bidirecțional. Pentru a fi unidercțional am ales să legăm OE\ la GND și DIR la Vcc. Intrarea era astfel A la care se leagă Raspberry PI și ieșirea e B, unde legam Atmega.

Software Design

Procesarea imaginilor a fost realizată cu ajutorul webcam-ului pe Raspberry PI, folosind OpenCV. Sarcina principală a acestuia este să trimită celui care ia deciziile finale informații despre poziția mingilor detectate în teren.

Atmega este cel care ia deciziile pe baza a ceea ce vedeau senzorii. Datele de la Raspberry PI cu privire la pozițiile mingilor în teren sunt recepționate pe serială și Atmega poate alege să ignore aceste informații dacă există un pericol (spre exemplu: a detectat obstacol sau poate faulta adversarul, care poate însemna depunctare, dacă se duce după mingea de care tocmai i s-a spus).

De asemenea, trebuie configurat un timer care sa contorizeze câte secunde au trecut de la pornire, din următoarele considerente:

Rezultate Obţinute



Watch 24 april 2013 RoboChallenge - Robo Fotbal in Tech & Gaming  |  View More Free Videos Online at Veoh.com

Înregistrări complete ale concursului Robochallenge 2013, ajuns la a șasea ediție, puteți găsi aici.

Concluzii

Ne-om fi calificat noi la etapa națională, dar vara asta trebuie să tragem tare pentru a îl îmbunătăți. Dacă sunteți interesați să contribuiți la îmbunătățirea lui sau pur și simplu să vă învățați să vă construiți un robot pentru concursuri sau un proiect al vostru, dați un semn!

Bibliografie/Resurse

Datasheets

Atmega324PA
NCV7729-D
L298P
74HCT245
LM324N
LM7805

Software

Online OpenCV documentation
Conversia RGB to HSV în OpenCV, care a fost foarte utilă în detectarea mai corectă a mingilor
Laboratoarele 2 și 3 de PM
AVR general IO defs - foarte utile (dar trebuie folosite cu atenție!) dacă vrei să scrii un cod pentru un proiect cu un anumit hardware și vrei ulterior să modifici design-ul.

Mulțumiri

Răzvan Tătăroiu (pentru ajutor și pentru suportul moral dinaintea concursului =) )
Cristian Dumitru Trancă (pentru Raspberry PI și ajutor)
Centrului INGEAR ,