Prezentare I2C

Astăzi, în prezența a 3 studenți (câți studenți, atâți profesori) de la AII am susținut o prezentare a magistralei I2C. Am vorbit câte un pic de protocol, de DDC, de SMBus, de TWI-ul de pe ATMega și de pe NXT-uri. Cred ca am avut cam multe slide-uri :)

În aceeași companie, Alex Iordan a susținut o prezentare despre magistrala Seriplex, utilizată în medii industriale pentru dispozitive care au nevoie de lațime mică de bandă și delay-uri și interferențe mici.

Atașez prezentarea mea aici, în speranța că cineva o va găsi interesantă.

Și prezentarea Seriplex, de Alex :D

Roboteală

La sugestia lui Matei am făcut marțea trecută o scurtă întâlnire cu vechea echipă de „tineret” de la roboți (Simina, Adi, Matei). dar au venit și Raluca (care e colegă cu noi la doctorat) și Manuela. Tot la ideea lui Matei, am hotărât să demarăm un concurs intern, eventual ceva pregătitor pentru competiția de la Vienna de anul viitor.

Momentan discutăm, dar cel mai probabil competiția va fi de puck collect (adunare de jetoane) și va fi deschisă tuturor doritorilor :). Vom publica detalii în curând pe ed304.cs.pub.ro.

Între timp, am aflat de o competiție nouă, în care va fi implicată anul ăsta și școala noastră: Freescale Race Challenge. Ideea e foarte simplă, Freescale si Carrera dau mașinuțe, circuite integrate și un PCB fiecărei echipe, și tu trebuie să îi dai minte mașinuței aleia să meargă pe o șină cât mai repede, să învețe traseul și să nu iasă niciodată de pe șină la viraje. Abia aștept! :)

De exemplu: http://www.youtube.com/watch?v=QArqoEMoyXY

First robot meeting

Azi am reușit în sfârșit să mă adun cu colegii mei de echipă pentru robot să vorbim de planurile pentru măreața noastă intrare în competiția Eurobot. Deja ar fi a patra participare la rând, dar performanțele noastre nu au crescut cu creșterea experienței, ci, dimpotrivă, au scăzut, iar anul trecut nu am reușit să trecem nici de faza națională :P

Anul ăsta însă suntem hotărâți să facem treaba cât se poate de bine, și să ne mișcam mai din timp și să facem cel mai super robot ever build by man. Poate :) Mă simt foarte motivat să lucrez la robotu ăsta, nu știu de ce, am un feeling că suntem suficient de pregătiți, măcar pentru top16. Acuma noi cu planurile totdeauna am stat bine, cu implementarea, mai puțin :)

Săptămâna viitoare îmi propun să re-inaugurez http://ed304.cs.pub.ro, să începem din nou echipele de roboți pentru competițiile de la Vienna, Eurobot, dar și pentru Barcelona, unde anul ăsta va fi prima noastră participare.

rect2952

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.