Arduino + Wifly
Autor - Andrei -09/02/2011-
In acest tutorial voi prezenta un exemplu de apel HTTP ( GET HTTP ) utilizat shield-ul Wifly
Wifly este un shield produs de Sparkfun care permite placii Arduino sa se conecteze la o retea wifi.
Cel mai simplu mod de a utiliza placa este sa folosim biblioteca creata de Sparkfun
Scopul acestui tutorial este sa construim un program care face o cautare pe google.ro folosind o retea wifi.
Cum iti faci un CD-BOT in 15 minute
Autor - Viorel -02/02/2011-

Mai intai, ce este un CD-BOT ? Simplu, este un robot construit in jurul unui CDROM obisnuit.
Partea de electronica consta intr-o platforma Arduino combinata cu un shield Ardumoto (utilizat pentru controlul motoarelor).
Motoarele sunt cele produse de Tamiya (includ angrenajul), iar rotile sunt din cauciuc plin. Tot ce ai de facut este sa conectezi componentele, sa adaugi cateva baterii, si ai un robot complet functional
1. Conecteaza Ardumoto peste Arduino (2 minute)
Operatiunea este simpla, tot ce ai nevoie este sa aliniezi pinii din Ardumoto cu cei din Arduino si sa impingi usor pana cand Ardumoto este conectat cu Arduino.


2. Conecteaza motoarele (2 minute)
Ai nevoie de o surubelnita mica (sau daca nu ai, si varful unei forfecute este suficient). Conecteaza cele patru fire de control ale motoarelor la shield-ul Ardumoto. Nu prea conteaza cum anume le conectezi, pentru ca tot ce vei schimba va fi directia de mers (pe care o vei corecta din software la pasii urmatori). Singurul lucru la care trebuie sa fii atent este sa nu le conectezi incrucisat (adica fiecare motor se conecteaza la un bloc verde).

3. Conecteaza bateriile (1 minut)
Cel mai simplu mod in care iti poti alimenta robotul este cu patru baterii de 1.5 volti (sau patru acumulatori foto de 1.2 V). Conecteaza borna + a bateriilor la portul VIN din Ardumoto si borna – la portul GND. La fel de bine le poti conecta si in conectorul verde ramas liber.


4. Fixeaza componentele peste CDROM (3 minute)
Fixeaza CDROM-ul peste motoare (cu banda dublu adeziva sau cu suruburi). Apoi fixeaza bateriile si Arduino deasupra CDROM-ului (cu banda dublu adeziva).



5. Fixeaza ballcaster-ul (2 minute)
Cu banda dublu adeziva cupleaza ballcaster-ul in partea de jos a CDROM-ului.

5. Programare (5 minute)
Descarca mediul de dezvoltare Arduino de pe arduino.cc, conecteaza cablul mini-USB la calculator, cupleaza apoi celalalt capat al cablului la chip-ul FTDI, si cupleaza chip-ul FTDI la Arduino.

int pwm_a = 3;
int pwm_b = 11;
int dir_a = 12;
int dir_b = 13;
void setup() {
pinMode(pwm_a, OUTPUT); //Set control pins to be outputs
pinMode(pwm_b, OUTPUT);
pinMode(dir_a, OUTPUT);
pinMode(dir_b, OUTPUT);
analogWrite(pwm_a, 100); //set both motors to run at (100/255 = 39)% duty cycle (slow)
analogWrite(pwm_b, 100);
}
void loop() {
digitalWrite(dir_a, LOW); //Set motor direction, 1 low, 2 high
digitalWrite(dir_b, LOW); //Set motor direction, 3 high, 4 low
delay(1000);
analogWrite(pwm_a, 255); //set both motors to run at 100% duty cycle (fast)
analogWrite(pwm_b, 255);
delay(1000);
digitalWrite(dir_a, HIGH); //Reverse motor direction, 1 high, 2 low
digitalWrite(dir_b, HIGH); //Reverse motor direction, 3 low, 4 high
delay(1000);
analogWrite(pwm_a, 100); //set both motors to run at (100/255 = 39)% duty cycle
analogWrite(pwm_b, 100);
delay(1000);
}
Programul de mai sus este utilizat ca sa testezi ca toate conexiunile sunt corecte. Odata urcat pe Arduino (din meniul File alege optiunea “Upload to I/O Board”) robotul tau se va misca mai intai inainte vreme de o secunda, apoi inainte vreme de o secunda.
6. Gata !
Ai un robot complet functional in acest moment. Ce poti face mai departe ? Mai jos sunt doar cateva sugestii.
Robot line-follower
Daca adaugi un senzor de linie, obtii un robot capabil sa urmeasca o linie.
Robot autonom care ocoleste obstacole
Adaugi un senzor Sharp la robotul tau si obtii un robot autonom capabil sa ocoleasca obstacole.
Robot controlat prin Bluetooth folosind un telefon cu Android
Cupland la robotul pe care l-ai facut pana acum un conector Bluetooth si folosind un telefon echipat cu sistemul de operare Android obtii un robot comandat prin telefonul mobil.
Detalii complete despre acest proiect (inclusiv codul sursa) gasesti pe Arduino Wiki .
Robot controlat prin Internet (conexiune WIFI)
Cupland la robotul pe care l-ai facut pana acum un shield WIFI il poti controla de oriunde te-ai afla, prin Internet.
Robot luptator de sumo
Adaugand un senzor de linie si un senzor Sharp, obtii un robot luptator de sumo.
Acestea fiind spuse, spor la construit !
Daca ai nevoie se sfaturi te ajut cu drag, doar lasa-mi un comentariu sau contacteaza-ma direct prin email la viorel [dot] spinu [at] robofun [dot] ro.
Daca vrei sa vezi robotii in actiune si sa bem o cafea, te astept pe la noi cand ai timp (zona Mall Vitan).
Cablu USB-serial (FTDI compatibil) cu $5
Autor - Ro-Bot-X -01/02/2011-
Am tot citit eu pe forumul Arduino cum se poate converti un cablu de date ieftine pentru telefoane Nokia pentru programarea placutelor compatibile Arduino care nu au chip-ul FTDI integrat. M-am decis sa incerc si eu asa ceva, si, dupa mai multe cautari, am gasit un candidat perfect, si anume cablul “CA-42 USB2.0 Nokia Data Cable”. L-am comandat de la DealExtreme ( http://www.dealextreme.com/details.dx/sku.45715 ) si m-a costat $4.40 cu transport gratuit. Dureaza cam 3 saptamani pina ajunge, dar merita!
Cositorirea unui cablaj imprimat
Autor - Ionut Cotoi -24/01/2011-
Deoarece nu am mai intalnit metoda asta de a acoperi cablajele imprimate cu un strat de cositor nicaieri, m-am gandit sa impartasesc cu voi metoda mea rapida si ieftina de a stana placile de cablaj imprimat.
Pentru asta aveti nevoie de un cuptor, preferabil electric si de pasta pentru lipirea la cald a tevilor de cupru folosite la instalatiile sanitare. Pasta ar trebui sa gaseasca la orice magazin care comercializeaza materiale pentru instalatii.
Pasta pe care o folosesc eu se numeste ROSOL 3.
Mai jos puteti vedea 2 fotografii cu placa folosita de mine ca si exemplu, prima este inainte de corodare si a doua dupa. Pentru operatiunea efectiva va invit sa va uitati la filmulet.
Film documentar Arduino
Autor - alexandru.iovanovici -10/01/2011-
La cererea unor membri Tehnorama pun si aici filmul documentar despre Arduino. Mulumiri inca odata lui @mihai pentru ca ne-a dat linkul si vizionare placuta. Noi cred ca o sa il proiectam vineri la ThTM2.
Arduino The Documentary (2010) English HD from gnd on Vimeo.
Arduino The Documentary 2010
MP3 Trigger – scurt review
Autor - sebathorus -20/12/2010-
Am intrat de curand in posesia unui MP3 Trigger, realizat de Sparkfun in colaborare cu un veteran al efectelor audio – Jamie Robertson si distribuit in Romania de RoboFun.
Acest dispozitiv aduce caracteristici unice pentru dimensiunile si categoria sa de pret. Nu o sa insist asupra caracteristicilor tehnice ale produsului, prezentate destul de clar in manual, o sa incerc in schimb sa prezint pas cu pas punerea in functiune a modulului.
Pentru buna functionare a modului trebuie indeplinite cateva conditii simple:
- cardul TREBUIE sa fie formatat FAT16 – in Windows este afisat simplu FAT.
- fisierele TREBUIE sa fie format mp3 maxim 192Kbps si TREBUIE sa aiba formatul TRACKxxx.mp3, unde xxx = 001 pana la 255 (ex. TRACK001.mp3, TRACK010.mp3, etc ). Alt format al numelui fisierelor nu va functiona. Desi sunt posibile “doar” 255 de fisiere, dimensiunea lor nu este limitata.
- modulul sa fie alimentat corect. Desi manualul nu detaliaza toate posibilitatile, doua variante clare ar fi urmatoarele:
- prin conectorul de alimentare cu plusul la pinul central se aplica o tensiune intre 4,5V si 12V.
- se aplica 5V (luati de exemplu din pinul de 5V al Arduino) direct la pinul USBVCC (vezi poza). Eu am optat pentru aceasta varianta avand in vedere ca folosesc modulul impreuna cu Arduino Uno.
Selectia unuia dintre cele 2 moduri de alimentare se face cu un switch plasat intre iesirea audio si mufa de alimentare si marcat corespunzator.
Pentru redarea fisierelor de pe card exista trei posibilitati:
- butonul de navigare intalnit sub o forma sau alta cam la toate Mp3 player-ele.
- pinii de la TRIG1 la TRIG18 comandati de butoane sau circuite externe.
- modul de comanda seriala – cel mai puternic si mai flexibil dintre cele trei. Acest mod permite redarea oricarui fisier de pe card fara limitarile celorlalte moduri (navigarea din track in track sau limita de 18 track-uri a pinilor de TRIG).
Comenzile date pe serial pot fi in forma ASCII sau binar. Desi comenzile sunt destul de clare si bine explicate in manual, un exemplu concret ar fi fost minunat.
O functie importanta, inaccesibila celorlalte 2 moduri de operare, este cea de volum. Acesta variaza de la valoarea 0 (zero) care reprezinta volum maxim, pana la 64 – volum minim. Implicit volumul este undeva la jumatate sau chiar mai jos, la primul test facut doar cu butonul de navigare nivelul de redare era foarte mic. Dupa trecerea la controlul serial, situatia s-a schimbat, nivelul a devenit foarte bun. (vezi exemplu aplicatie)
In cazul meu, am folosit modulul MP3 Trigger conectat la Arduino cu scopul de-a fi controlat serial de acesta. Am facut conexiunea dintre cele 2 module dupa cum urmeaza:
GND Arduino -> GND MP3
5V Arduino -> USBVCC MP3
TX Arduino (pinul 1 digital, marcat cu Tx pe placa) -> RX MP3


Si un scurt exemplu care seteaza volumul la 20 (cam 2/3 din maxim) si reda 10 secunde din fiecare track de pe card dupa care trece la urmatorul.
———————————————————–
int track = 0;
void setup()
{
Serial.begin(38400); //initializeaza comunicatia seriala
Serial.write(‘v’); // literele mici trebuie sa fie intre ghilimele simple
Serial.write(20); // urmate de valoarea dorita fara ghilimele – in acest caz, comanda ‘v’ seteaza volumul la 20
}
void loop()
{
track = track + 1;
if (track > 255) track = 0;
Serial.write(‘t’); // literele mici trebuie sa fie intre ghilimele simple
Serial.write(track); // urmate de valoarea dorita fara ghilimele – in acest caz, comanda ‘t’ porneste fisierul cu valoarea “track”
delay(10000); //asteapta 10 secunde dupa care trece la track-ul urmator
}
————————————————————
Aici gasiti diverse variante de firmware precum si alte informatii legate de MP3 Trigger.
Ca si concluzie, MP3 Trigger-ul este un modul foarte capabil, integrarea si folosirea lui a fost destul de simpla, necesitand un minim de pregatire. Manualul este destul de explicit, totusi cateva exemple de folosire ar fi binevenite.
Arduino – conectare la Internet (basic)
Autor - Viorel -15/09/2010-
Acest proiect descrie utilizarea modulului Ethernet pentru a realiza conectarea la Internet a platformei Arduino.
La finalul tutorialului vei avea o platforma Arduino capabila sa se conecteze la Internet si sa proceseze informatie citita de pe un site Internet.
Componente: Arduino modul Ethernet
Autor - Viorel -15/09/2010-
Modulul Internet pentru Arduino permite platformei Arduino sa se conecteze la Internet. Fizic, consta intr-o placuta similara ca forma cu platforma Arduino.
Pentru a o folosi, se conecteaza deasupra Arduino, introducand pinii modulului Internet in pinii corespondenti de pe Arduino. Astfel, ai la dispozitie (aproape) toti pinii Arduino direct pe modul Internet. “Aproape”, pentru ca pinii 10, 11, 12 si 13 sunt utilizati de modulul Internet pentru conectarea cu Arduino. Toti ceilalti pini pot fi folositi in mod obisnuit.
Introducere in limbajul de asamblare al microcontrolerelor ATmega
Autor - Iulian -16/07/2010-
In acest articol doresc sa fac o descriere a limbajului de asamblare utilizat la programarea microcontrolerelor ATmega, pentru a fi inteles mai usor si mai bine de catre actualii si viitorii programatori in limbaj de asamblare.
Primul pas in a intelege limbajul de asamblare este de a studia instructiunile ce pot fi executate de catre microcontroler, iar un document ce descrie aceste instructiuni poate fi descarcat de aici.
Totusi ideea nu este numai de a invata ce face fiecare instructiune in parte, ci si de a invata aplicarea lor intr-o succesiune logica optima pentru ca acea rutina sa faca ce i se cere in cat mai scurt timp si ocupand cat mai putina memorie de program.
Pentru majoritatea programatorilor este greu de abordat limbajul de asamblare deoarece in acest caz este vorba de lucru cu variabile tinute in registri hardware sau registri alocati in memorie ram in loc de a lucra cu variabile denumite dupa cum vrea orice programator, astfel aici fiind cazul unor microcontrolere de 8biti este dificil si de a face grupuri de registri pentru a compune diferite tipuri de variabile (16,32,64 biti sau pointeri), deci in mare parte in cazul limbajului de asamblare programatorii isi cam iau adio la lucrul cu variabilele asa de usor ca in C sau C++.
Fiind asa de greu de lucrat in limbaj de asamblare multi se intreba de ce mai este folosit si mai important, de ce incerc sa invat viitorii programatori acest limbaj facand acest articon.
Singurile avantaje ale acestui limbaj sunt:
- Prin folosirea acestui limbaj codul generat ocupa intre doua si patru ori mai putina memorie de program fata de codurile generate de compilatoarele C si altele.
- Prin folosirea acestui limbaj codul generat este mai rapid de doua pana la opt ori fata de programele generate de compilatoarele C si altele.
- Posibilitatea de a manipula registrii si memoria ram cu o eficienta mult mai mare si exact cum ne dorim noi sa o faca programul generat.
O scurta analiza a platformelor software
Autor - adrianmihai -02/07/2010-
Introducere
In cadrul acestui articol voi face o scurta prezentare a platformelor software pentru programarea robotilor. Lectura placuta!
Ce este o platforma software pentru roboti?
Printr-o “platforma software pentru roboti” se intelege o suita software ce usureaza munca depusa de programator prin oferirea unor facilitati cum ar fi:
- Un mediu de dezvoltare / programare a robotului
- Un mediu de debugging / simulare a programului
- Un set de componente reutilizabile







