Idei de licențe

Înainte să plec la Vienna, am avut o discuție cu profu’ despre cum ar trebui să abordez tema de doctorat și una din chestiile ce le-am decis e că am putea să propunem niște teme de licență, să mai împart ce am eu de descoperit / inventat la mai mulți.

So, până acum am stabilit în linii mari trei idei de teme de licență:

  • Recunoaștere de texte din imagini aleatoare, în principal din outdoor (nume de străzi, firme, reclame, anunțuri, numere de mașină). Tema are două elemente, unul este stabilirea existenței unei forme de text într-o imagine (într-un mod eficient) și al doilea este recunoașterea textului efectiv (care poate fi deformat în mai multe feluri, din cauza poziției, sau a suportului – i.e. un stâlp rotund, sau să fie de sus în jos …)
  • Transformarea de forme geometrice în sunet. Stabilirea unei metode (experimentale) prin care un set de forme geometrice în sunet. Formele geometrice pot fi de la simple (gen un dreptunghi, un disc) la lucruri mai complicate, dar toate vor fi bicolore.
  • Determinarea distanței față de un obiect dat și a poziției obiectului într-un cadru prin analiza dimensiunii obiectului, într-un flux video live, și transmiterea acestei informații pe un canal audio către un utilizator.

O regulă importantă este că ne dorim să dezvoltăm / folosim algoritmi independenți de limbaj și platformă, folosind tehnologii opensource. N-aș vrea să avem programe în Matlab folosind biblioteci proprietare (ca să nu mai spunem hackuite).

Dacă sunteți interesați de așa ceva, sau poate știți pe cineva care ar putea fi, dați un semn. Revin cu detalii după ce mai stabilesc chestii.

Ceremonia de absolvire, Poli 2009

Inițial nu am vrut să merg, pentru că eram sigur că discursurile o sa fie pline de bs. Dar, pentru că odată în viață gați faculta, sâmbătă dimineața m-am trezit totuși la 8 și m-am cărat, cu căciula aia de absolvent cu ciucure, la Sala Palatului.

Una din problemele mele cele mai mai în București este aglomerația și faptul că oamenii se înghesuie ca oile. Well, deși Sala Palatului este extrem de încăpătoare, ceremonia noastră nu a făcut excepție :). Sala a fost plină până la refuz, și rectorul se chinuia, de pe scenă, să ne așeze conform organigramei. A fost cul să mă întâlnesc cu colegii cu care am lucrat în ultimele luni, și cred că așa, de pe scenă, se vedea mișto marea de oameni îmbrăcați în robe. Așa, pentru poza ;)

Au vorbit rectorul actual (unu nou, care gurile rele / bune zic că de fapt e doar locțiitor la tanti Cati – Ecaterina Andronescu, care acum joacă în deplasare, la Minister), tanti Cati în persoană, dl. prof. Dumitrache de la Automatică, încă un rector de demult și câțiva dintre șefii de promoție, inclusiv ai noștrii doi, Bogdan Țiganoaia și Ștefan Bucur. Discursurile, unele sub presiunea emoțiilor, altele sub alt fel de presiuni, au lasat să se vadă că nimic din ce s-a întâmplat sâmbătă nu a fost foarte pregătit.

Festivitatea per total a fost ok, mai ales în poze. Noi ne-am cam plictisit (mi se pare că am și văzut-o pe Roxănica moțăind la un moment dat). Mai pe la sfârșit, tot la îndemnul rectorului am dat cu toca în aer (ieeeeeeeeeeeeeeei), și imediat după aia ne-am aruncat după ele să le recuperăm, că altfel trebuiau plătite :P.

Ne-am făcut poze, ne-am felicitat, n-am mai stat nici unul la concertul Voltaj de după (sunt chiar curios câți au chiar stat, având în vedere că era ora 12 la prânz și nu anunțase nimeni nimic de concert :P). Poate ar fi totuși mult mai emoționantă o ceremonie de absolvire care să se întâmple pe facultate, nu pe întreaga Politehnică (am înțeles că sunt școli unde se practică). Cumva că te și știi cu toți participanții, măcar din vedere, știi cine-s oamenii care vorbesc, de-astea.

A fost și soră-mea, și am pus toate pozele ce le-o făcut ea la mine pe picasa. Mai pun când mai primesc și altele :) Totuși, pentru leneși:

Cul, ha?
Cul, ha?
Poza de gașcă cu Bogdan, șeful de promoție
Poza de gașcă cu Bogdan, șeful de promoție

Susținerea proiectului de diplomă

N-am mai avut vreme să scriu pe-aici. Nici măcar să mai citesc sau să gândesc altceva decât licență. De la ultimul meu post până vineri, asta a fost unica mea preocupare, cu scurte pauze pentru PW (de care voi scrie imediat), bere și (cred) un film. Deși am avut multe probleme și am terminat la limită, atât cu restanțele cât și cu proiectul de licență, stressul efectiv cauzat de el nu s-a comparat nicicum cu stressu de la admitere.

Până la urmă, proiectul meu s-a numit Platformă mobilă comandată wireless pentru explorarea unei suprafețe. Titlul este cam misleading, de fapt obiectivul proiectului meu a fost să inventez un strat între motoare și senzori și limbaje de programare pentru muritori, un fel de API către dispozitivele astea folosite în roboți autonomi.

M-am stresat mult cu susținerea, am sărit câteva nopți bune înainte de prezentare, lucrarea are până la urmă undeva pe la 50 de pagini de conținut, fără anexe, fără cod, fără altele. Robotul de test până la urmă a mers, cu o punte H (re)făcută în penultima noapte, cu ultimii bani, și cu muuuuuuulte baterii R6 :).

În ultima noapte am pregătit și prezentarea pentru susținere. 8 slide-uri. Și mi-am cumpărat și o cămașă. Neagră. M-am cam tăiat când a ajuns rândul meu la prezentare, eu mi-am notat câteva idei, extinderi ale slide-urilor, dar cum eram obosit n-o fost chiar ușor să vorbesc de la mine. A venit și dl. profesor Vârbănescu la susținere, și per total cele 10 minute au fost ok. La sfârșit, după prezentările practice, dl. Tăpuș ne-a felicitat și ne-a „făcut ingineri”. Cu diplomă. :P Nota finală a fost 9, ceea ce e foarte bine pentru media mea pe ani (7.8).

Mă voi interesa daca am voie să fac lucrarea publică, și dacă da, o voi pune aici.

Sunt foarte fericit că am reușit să fac toată lucrarea, de la concept, la implementare și la documentare, folosind doar unelte opensource. Spre exemplu:

  • Pentru scheme electrice, am folosit gschem
  • Pentru scheme conceptuale, scheme de algoritmi, scheme bloc, dia
  • Pentru cablajele imprimate, am folosit pcb, și ca să trec de la gschem la pcb, xgsch2pcb
  • Pentru diferitele figuri pentru lucrare, inkscape
  • Pentru editare texte, evident OOo, Writer
  • Pentru calcule pe date experimentale, OOo Calculator
  • Pentru prezentare, OOo Impress
  • Pentru dezvoltare de cod, evident, Eclipse, cu CDT, cu AVR Eclipse.

Concluzia e că se poate :) Și merge chiar bine :P

Update: azi Micvs, Gia și Dan au avut și ei susținerea, și au terminat, toți 3, cu 10. Felicitări ;)

Licență

Da, da, am reușit (cu greu) să scap de restanțe, și acum am voie să intru în licență acum în vară. De lunea trecută lucrez aproape nonstop, deși lucrul la proiectul ăsta l-am început undeva prin februarie.

Proiectul meu este realizarea unei platforme mobile pentru dezvoltarea de roboți autonomi. Adică o bază de la care să poți pleca mai departe să îți faci robotul.

Ieri am reușit să termin asamblarea, m-am muncit destul de mult, dar a ieșit ca în planuri, cu mici variații :) O să pun poze mâine, azi n-am mai ajuns la școală că o plouat și mi-am luat vacanță.

Până acum am făcut o punte H cu relee pentru controlul motorului principal, cu care am avut o grămadă de probleme și încă nu i-am rezolvat toate hibele, și am scris un driver în Java pentru controlul robotului prin adaptorul serial 2 wireless pe care îl avem. Bine, driver-ul mai dă mici rateuri, dar sunt fixable, cred :). Planul e să scriu drivere pentru mai multe limbaje de programare, să fie așa, ca un api către robotul ăsta. A, și am mai scris driver-ul pentru LCD, în mare. Adică mai treuie aranjat un pic :).

Poze cu placa pentru puntea H, în diferite stagii de dezvoltare:

După aplicarea foliei Press and Peel
După aplicarea foliei Press and Peel
După corodare și după muuulte găuri
După corodare și după muuulte găuri
Placa completă, cu toate piesele pe ea
Placa completă, cu toate piesele pe ea
Testare :)
Testare :)

PORTC pe ATMega32

Scriu acest post pentru că e util să înveți din nopțile pierdute ale altora, ca să ai timp să-ți pierzi nopțile pe altceva, mai interesant :).

Am ajuns târziu ieri la școală, pentru că am fost să dau jos blana, și m-am hotărât să nu plec până nu fac modulul de condus motorul să meargă (o să scriu mai pe larg despre el, în mai multe posturi despre a mea viitoare licență). Evident, treaba părea simplă și a devenit tot mai groasă pe măsură ce treceau orele.

Am scăpat de câteva conexiuni greșite, mi-am dat seama ca am pus diodele de protecție de peste bobinele de la relee pe dos, totul părea ok până într-un punct. Pun un ATMega32 nou nouț în soclu, setez direct AVR Eclipseu la 1MHz ca sa nu mai resetez fuse-uri, programez, super tare, merge. Pun multimetru pe picioarele ATMega, care ar fi trebuit să tragă tot portul C pe ieșire, pe 0. Jumate din pini erau la 0. Restu, la Vcc. WTF?

Îmi dau seama un pic mai târziu că PC0 și PC1 sunt legați la conectorul meu pentru I2C, și sunte legați la Vcc cu niște pull-up-uri ca să meargă cu brick-urile NXT. Bun. Dar restul? Mai erau cel puțini 3 pini care erau strâmbi. Din care unu exact ăla pe care mi-am legat eu ieșirile pentru comanda la motor. Am mai pierdut vreo oră, două întrebându-l pe prof, căutând scurt-uri pe placă …

Am scos porțile logice, am zis ca poate fac alea ceva. Niet, no luck. Am schimbat controller-ul cu cel de la mașinuța pentru Eurobot, aceeași poveste. Într-un final, pe la 6:45 AM, deja mă ridicasem de pe scaun să merg la șaorma, mă gândesc să mă uit eu pe datasheet la ATMega să vad dacă n-au ei ceva șmecherie cu Portu C. Urmeaza partea cu informație utilă din acest post:

Se pare că ATMega32 (și presupun că și alte ATMega-uri) au anumite PORT-uri din portul C care nu pot fi utilizate pentru I/O în momentul în care este activat JTAG-ul pe controller. Este vorba despre pinii PC5, PC4, PC3 și PC2. Soluția, evident, este să se dezactiveze JTAG-ul. Asta se poate face prin de-programarea siguranței (fuse) JTAGEN de pe ATMega. Eu am folosit AVRDude (pentru Linux), pe Windows foloseam PonyProg. Pentru AVRDude, ca să nu cauți referințe grămadă prin datasheet, există site-ul asta, care îți formează automat comanda pentru avrdude.