HobbyElectro

Petrescu Cristian . Un produs Blogger.

sâmbătă, 16 august 2014

MACARA DIN MECCANO SI ARDUINO

0 comentarii | Read more...

Cum a inceput...


     Cand omul nu are ce face ... isi gaseste !  Asa si eu. Tot discutand cu un prieten (salutare Viorel) despre infinitele posibilitati pe care le ofera microcontroller-le si implicit Arduino m-am gandit ca nu ar fi rau daca as incerca sa realizez un proiect in care sa se imbine electronica cu mecanica. Cum sunt mare fan MECCANO si cum detin vreo trei kituri (mai mult sau mai putin complete) am tras concluzia ca o macara ar  fi numai buna pentru inceput.

     Asadar acest proiect nu reprezinta o provocare din punct de vedere electronic ci mai degraba din punct de vedere mecanic, deoarece a fost destul de complicat de realizat aceasta parte.



Ce s-a dorit...

     Ideea era sa realizam un mecanism de ridicare-coborare asezat pe o platforma care sa il plimbe acolo unde se gasea sarcina. Astfel, dupa multe variante (si sute de suruburi asamblate si dezasamblate) am cazut de acord  ca mecanismul trebuie sa aiba urmatoarele functii:

  1. Ridicare - Coborare carlig
  2. Translatie - pe orizontala a sarcinii
Toata hardughia trebuie sa fie manevrata dintr-un joystick!

Ce a iesit...

Se vede in poze !



VEDERE DE ANSAMBLU


MECANISME DE RIDICARE SI TRANSLATIE


VEDERE GENERALA 


PARTEA DE COMANDA

Cum s-a facut...

     Creierul este un Arduino DueMilaNove , ajutat de doua drivere de motoare de cc L293D. Fiecare Driver poate comanda 2 motoare in ambele sensuri de turatie. Pentru a scadea puterea disipata pe fiecare driver s-a considerat intercalarea motoarelor, in sensul ca daca se doreste miscarea platformei cu ambele motoare in fuctiune fiecare motor sa fie conecatat la un driver separat. Asadar fiecare driver are conectat la el doua motoare: unul al macaralei si unul care plimba platforma. Comanda motoarelor este evident realizata prin modificarea factorului de umplere (PWM). Alimentarea montajelor se relizeaza astfel:
  • pentru Arduino - baterie de 9V
  • motoare 4 baterii R6 - 6V.
     Comanda efectiva este realizata utilizand un gamepad, care a fost modificat pentru a fi interfatat cat mai usor cu Arduino. In acest sens se utilizeaza cele patru sageti pentru manevrarea platformei si doua butoane, care daca sunt tinute apasate, in combinate cu cele patru directii actioneaza mecanismul de ridicare-coborare respectiv cel de transalatie al macaralei.

     Sasiul a fost realizat din placaj din carton presat taiat cu muuulta rabdare cu traforajul (oare nu se se mai gaseste nicaieri  placaj adevarat de traforaj ?).

     Cam asta ar fi, singura parere de rau este faptul ca pentru a putea face noi proiecte va trebui demontata toata jucaria!









sâmbătă, 9 august 2014

Despre Pinguino

0 comentarii | Read more...

Zvarcolindu-ma de caldura m-am apucat sa hoinaresc hai-hui pe plaiurile internetului, ca de obicei fara un scop precis. Din-ntruna in alta am dat peste un proiect (evident open source) care incearca sa pastreze simplitatea lui Arduino utilizand insa un microcontroller de tip PIC : PINGUINO. 

De ce l-au numit asa ? Probabil dezvoltatorii sunt mari iubitori de Linux sau poate este o iornie fina la adresa celor care se perpelesc la 40 de grade Celsius facandu-i astfel  sa viseze catre meleaguri mai racoroase.  

Din cate am vazut, proiectul este inceput de cativa ani insa, desi (cel putin din punctul meu de vedere) prezinta potential, nu a facut prea mare valva.  In esenta se pot utiliza uC-le PIC din seria 18F cu conditia sa aiba suficenta memorie ROM pentru a putea incarca bootloader-ul (7KB !!!!!!) dar si un modul USB integrat hardware. Pe pagina oficiala se gasesc detalii despre uC suportate si schemele de realizare practica a placutelor de dezvoltare. 

M-am hotarat sa realizez si eu un "PINGUINO" in configuratia PIC 18F4550 cu cristal de 20MHz, concluziile fiindu-va prezentate in ele ce urmeaza. 

Plecand de la schema electronica propusa de producatori am realizat un cablaj imprimat pe care am plantat componentele.



Schema electronica originala propusa de producatori


Pentru inceput...

Initial cand am vazut schema am fost foarte incantat pentru ca am intuit faptul ca atat pentru programare cat si pentru comunicatia cu PC-ul se utilizeaza direct conexiunea USB. Adio programatoare externe oricare ar fi ele: FTDI, convertoare TTL, PICKIT 2 sau 3 etc. Dar ca de obicei exista un "dar", pe care il voi discuta ceva mai tarziu. Deocamdata toate sunt bune si frumoase.

Revenind la schema, nimic nu pare complicat: nu este decat minim-minmorum-ul necesar pentru a se putea utiliza uC-ul. In fine, poate doar RUN LED necesita ceva explicatii. In esenta este un fel de PIN 13 al lui Arduino care permite testarea placii fara a utiliza componente externe dar are si rolul de a semnaliza daca uC-ul este modul bootloader sau in modul de executie a programului scris de utilizator. Ce???? 

Da. Aici incepe prima parte a lui "dar". Dupa ce se realizeaza montajul si dupa ce se "arde" in uC bootloader-ul butonul de reset nu mai este ceea ce a fost la inceput:  un simplu buton de reset ci este unealta prin care se schimba starea uC-ului din modul de executie a programului in modul bootloader. O data apasat butonul (presupunand ca in uC se afla incarcat un program, altul decat bootloader-ul) programul utilizatorului se sterge putandu-se astfel incarca un nou program. Nu incercati sa incarcati un alt program daca uC-ul nu este modul bootloader pentru ca IDE-ul nu il va detecta. De ce asa ?? Nu stiu, dar probabil exista un scop bine intemeiat pentru care dezvoltatorii au facut chestia asta. Singura cale de a reseta uC-ul este aceea de a intrerupe alimentarea, deci un comutator fie pe masa fie pe "plus".  Revenind la RUN LED acesta pulseaza foarte repede in modul bootloader facand astfel semnalizarea posibila. Problema este ca in modul de rulare a programului scris de utilizator RUN LED se aprinde numai daca PIN 6 este pus la masa. Asadar comanda digitalWrite(USERLED, HIGH) este echivalenta cu stingerea ledului iar digitalWrite(USERLED, LOW) este echivalenta cu aprinderea ledului. De ce ?? Nu stiu. 

Cablajul...

Am realizat doua cablaje: primul dupa schema originala, executat si testat, si al doilea cu RUN LED -ul conecat cu anodul la PIN 6 pentru a preintampina problema descrisa mai sus. 

1. Schema originala - RUN LED cu catodul la PIN 6.

Scheama realizata dupa indicatiile dezvoltatorilor


Plasarea componentelor



2. Schema modificata - RUN LED cu anodul la PIN 6.


Schema modificata RUNLED cu anod la PIN6

Plasarea componentelor varianta 2

Se observa clar modul ca pentru a putea inghesui montajul intr-un spatiu cat mai  mic este necesar sa se monteze uC pe un soclu pentru ca rezistentele (R1,R2,R3) si condensatoarele (C1 si C4) SA poata fi montate sub el. Cablajele in format pdf le puteti descarca de aici.

Instalarea...

Aici incepe cea de-a doua parte a lui "dar". Pentru a putea utiliza ceea ce am realizat mai sus trebuie instalate doua drivere: primul dintre ele reprezinta driverul pentru modul de bootloader si practic face posibila transfrarea codului din PC in PIC iar cel de-al doilea este necesar atunci cand se doreste realizarea unei comunicatii seriale cu PC-ul (dupa ce a fost incarcat codul utilizatorului). Cel de-al doilea driver este utilizat de PC numai atunci cand utilizatorul a scris un cod care utilizeaza libraria CDC (Communication Device Class). Este un driver pus la dispozitie de Microchip si  realizeaza un port COM virtual pentru a se putea realiza comunicatia seriala. Pentru a nu trece prin chinurile instalarii o sa descriu aici procedura de instalare in cativa pasi simpli.
  1. Scrieti un cod care utilizeaza libraria CDC, poate fi chiar unul din cele doua exemple.
  2. Treceti Pinguino in modul bootloader apasand butonul de reset.
  3. Uploadati codul in PIC. Atentie!!!!! In IDE trebuie sa alegeti placa si botloader-ul corespunzator.
  4. Windows-ul fericit va detecta un nou device. Apoi nefericit va zice ca nu are drivere pentru el.
  5. Deschideti device manager-ul si veti vedea acolo un device numit PINGUINO cu un semn de exclamare galben.
  6. Downloadati driverul de aici.
  7. Instalati driverul in Windows 95 style :-) . 
  8. Click dreapta pe PINGUINO alegeti properties, update driver, browse my computer, let me pick, ports (com & lpt), click next, click have disk, alegeti folderul in care ati dezarhivat driverul. Windows-ul il va instala nu inainte de a va atentiona ca... bla bla bla. 

Pentru a putea trimite si primi date (la fel ca ) la Arduino va recomad din tot sufletul sa utilizati Putty.
Este gratis si functioneaza perfect. Si aici va vand un pont: dupa ce il configurati pentru modul serial pentru a
fi vizualizate datele trimise din consola este bine sa se bifeze in sectiunea Terminal Local eccho - Force on
si  Local line editing - Force on.

Utilizarea ...

Mediul de programare este destul de prietenos si se doreste a fi o clona a celui utilizat de Arduino. Si aici 
gasim o multitudine librarii unele pentru device-uri altele pentru utilizarea mai usoara a modulelor interne ale
PIC-ului (timere, intreruperi, PWM etc.).  Ca si la Arduino exista cele doua functii obligatorii void setup()
si void loop()  partea frumoasa, zic eu, este ca in setup se pot seta parametrii uC-ului in doua moduri.
Primul mod este "Arduino Style" iar cel de-al doilea este tipc pentru PIC utilizand registrii interni ai acestuia.
De fapt aceasta facilitate poate fi utilizata oriunde in program facand din PINGUINO o unealta mult mai 
versatila decat Arduino.

Incheiere...

Personal cred voi petrece ceva timp jucandu-ma cu PINGUINO testanad diverse programe. Nu este atat
de prietenos ca Arduino dar prezinta posibilitati de utilizare destul de interesante pe care daca timpul imi va
permite as dori sa le exploatez.
Iaca si ceva poze cu motajul realizat de mine:

PARTEA PLANTATA

TRASEE SI LIPITURI







Totalul afișărilor de pagină

Despre

Blog cu si despre electronica !