FEBRUARIE, 2015 NR. 1 VOL. 3 PREţ: 10 LEI
Electronica Azi HOBBY • Februarie, 2015 • Nr. 1
Sumar
DESIGN HOBBY
4 O nouă lansare Raspberry Pi - Raspberry Pi 2 Model B De curând, Broadcom a dezvoltat un nou sistem pe cip SoC, BCM2836. Acesta păstrează toate caracteristicile mai vechiului BCM2835, dar înlocuiește microprocesorul ARM11 700MHz, cu unul quad-core ARM Cortex-complex A7 cotat la 900MHz. Altfel, totul rămâne la fel. Toți conectorii sunt în același loc și au aceeași funcționalitate, iar placa se alimentează de la un adaptor micro-USB 5V.
Revista Electronica Azi Hobby poate fi cumpărată de la partenerii noştri: Direct de la magazinele:
8 Silicon Labs Energy-Harvest-RD Primii paşi în realizarea propriei aplicaţii cu senzori la distanţă
CONEX ELECTRONIC - Bucureşti Str. Maica Domnului nr. 48, Sector 2 Tel.: 021-242.22.06 office@conexelectronic.ro vinzari@conexelectronic.ro www.conexelectronic.ro
Kit-ul de dezvoltare Energy-Harvest-RD (Energy Harvesting Reference Design) este un instrument pus la dispoziţie de Silicon Labs pentru exemplificarea posibilelor aplicaţii ale microcontrolerelor wireless cu consum redus (ultra low power) în domeniul senzorilor la distanţă. Mai mult, acesta demonstrează inclusiv posibilitatea alimentării unui astfel de senzor dintr-o sursă de energie renovabilă, oferind astfel posibilitatea funcţionării pe o durată foarte mare (limitată poate doar de epuizarea ciclurilor de încărcare-descărcare ale bateriei folosite) fără necesitatea intervenţiei umane.
14 Ceas cu tuburi Nixie Ceasurile electronice cu afișaj LED cu 7 segmente sunt întâlnite foarte des în locuințe și pe lângă funcția de ceas, oferă și alarmă, fie acustică simplă, fie pornirea radioului integrat. Acest articol abordează construcția practică a unui ceas ce are la bază 4 tuburi NIXIE pentru afișarea orei (2 cifre) și a minutului (2 cifre).
Sau online de la: O’BOYLE - Timişoara Tel. +40 256-201346 office@oboyle.ro www.oboyle.ro
18 Microscop cu cameră foto USB - MK20 19 Aparat de spălare cu ultrasunete VGT-800 20 Bobina Tesla
Câştigaţi cu Electronica Azi Hobby
Bobina Tesla a fost inventată în anul 1891 de către marele fizician Nikola Tesla. Visul acestuia era de a folosi această invenţie pentru a transmite energie electrică prin aer oamenilor, fără a folosi conductori. În prezent, aceasta este folosită pentru cercetare, pentru efecte speciale în filme, dar şi pentru a produce muzică.
24 RobotOlympics - O nouă competiție de robotică, în București Pasionații de robotică din toată țara s-au întâlnit pe 14 decembrie 2014, în holul principal al Facultății de Automatică și Calculatoare, din cadrul Universității Politehnica (București), pentru a testa limitele roboților la prima ediție a concursului RobotOlympics. RobotOlympics reprezintă un nou concept în lumea competițiilor de profil și își propune să stabilească un standard cât mai înalt, atât din punct de vedere organizatoric, cât și din punct de vedere al echipelor participante.
Trimiteţi la redacţie proiectul unei aplicaţii practice şi aveţi şansa de a câştiga un sistem de evaluare şi dezvoltare “ENERGY-HARVEST-RD” de la Silicon Labs.
Colaboratori: Revista Electronica Azi - HOBBY apare de 6 ori pe an.
Management Director General - Ionela Ganea Director Editorial - Gabriel Neagu Director Economic - Ioana Paraschiv Publicitate - Irina Ganea
Revista este publicată numai în format tipărit.
Redacţie:
2015© Toate drepturile rezervate.
office@electronica-azi.ro www.electronica-azi.ro
EURO STANDARD PRESS 2000 srl Tel.: +40 (0) 31 8059955 Mobil: 0722 707-254 office@esp2000.ro www.esp2000.ro
Preţul revistei este de 10 Lei. Preţul unui abonament pe 1 an este de 60 Lei.
O parte din articolele prezentate în această ediţie au fost realizate de către tinerii pasionaţi din cadrul laboratoarelor:
CUI: RO3998003 J03/1371/1993 Tiparul executat la Tipografia Everest
2
ROBOLAB - wonderbots.cs.pub.ro
Ing. Emil Floroiu - emilfloroiu@gmail.com Ing. Daniel Rosner - daniel.rosner@cs.pub.ro Asis. Drd. Ing. Răzvan Tătăroiu razvan.tataroiu@cs.pub.ro Asis. Dr. Ing. Alexandru Radovici msg4alex@gmail.com Șl. Dr. Ing. Dan Tudose dan.tudose@cs.pub.ro Dumitru-Cristian Trancă dumitru.tranca@cti.pub.ro Daniel Ghiţă - daneelg@yahoo.com Mihaela Sârbu - mihaela.sarbu@compec.ro Mihai Crăciunescu - mihaiacr@gmail.com Cristian Dobre - dobrecristian@nighttime.ro Andrei Duluţă - andrei.duluta@gmail.com Daniel Ghilinţă - glnt94@yahoo.com
Electronica Azi HOBBY • Februarie, 2015 • Nr. 1
O nouă lansare Raspberry Pi
Raspberry Pi 2 Model B
Față de momentul lansării inițiale, 29.02.2012, a produsului Raspberry Pi, s-au realizat diverse îmbunătățiri pentru dezvoltarea acestuia. Cu vânzări de peste 200.000 de bucăți în peste 157 de țări, Raspberry Pi a devenit cel mai vândut PC de dimensiunea unui card de credit în Marea Britanie. De curând, Broadcom a dezvoltat un nou sistem pe cip SoC, BCM2836. Acesta păstrează toate caracteristicile mai vechiului BCM2835, dar înlocuiește microprocesorul ARM11 700MHz, cu unul quad-core ARM Cortex-complex A7 cotat la 900MHz. Altfel, totul rămâne la fel. Toți conectorii sunt în același loc și au aceeași funcționalitate, iar placa se alimentează de la un adaptor micro-USB 5V. 4
RASPBERRY PI 2 MODEL B În plus faţă de Raspberry Pi 1, puteţi beneficia din plin de: • Procesor 900MHz quad-core ARM Cortex-A7 • 1GB RAM
Electronica Azi HOBBY • Februarie, 2015 • Nr. 1
Pentru că are un procesor ARMv7, se poate rula întreaga gamă de distribuții ARM GNU / Linux, Microsoft anunţând şi o versiune specială de Windows 10, care va fi lansată special pentru Raspberry Pi.
Ca şi Pi 1 Model B+, noul Raspberry Pi este dotat cu: • • • • • • • • •
4 porturi USB Interfaţă GPIO cu 40 pini Port HDMI Port Ethernet (10/100) Conector audio jack 3.5mm și video compozit Interfață Camera (CSI) Interfață de afișare (DSI) Slot pentru card microSD Nucleu grafic VideoCore IV 3D
Raspberry Pi 2 are un factor de formă identic cu precedentul (Pi 1) Model B+ și are compatibilitate completă cu Raspberry Pi 1. Tot ceea ce puteați să faceți cu modelele anterioare se poate lucra și cu acesta, dar la performanţe de şase ori mai bune. Puteți observa o îmbunătățire într-o singură aplicație datorită celor 4 nuclee ale procesorului, o mai mare viteză a ceasului și a infrastructurii memoriei procesorului. De asemenea, puteți observa că navigarea pe Web este mult mai rapidă și mai sigură, arătănd o îmbunătățire considerabilă a vitezei. Aplicațiile sunt mai receptive, iar programele ruleză mai lin și mai repede. Aurocon Compec vă propune Raspberry Pi 2 Modelul B pentru utilizare, deoarece oferă o mai mare flexibilitate pentru dumneavoastră, astfel fiind mult mai util pentru proiecte de tip prototip și proiecte integrate, care necesită un consum redus de energie. Raspberry Pi 2 se poate comanda acum online de pe site-ul http://ro.rsdelivers.com/. Deasemenea, trebuie să aveţi în vedere că va trebui să instalaţi şi noul sistem de operare Raspbian dedicat pentru procesoarele din seria ARMv7. Precizăm faptul că și modelele anterioare sunt livrabile, Raspberry Pi A + (Nr.stoc RS: 833-2699), Raspberry Pi 1 Model B (Nr. Stoc RS: 756-8308) și B+ (Nr. Stoc RS: 811-1284) și le puteți comanda online de pe http://ro.rsdelivers.com/.
Mihaela Sârbu www.compec.ro
Aurocon COMPEC SRL www.compec.ro 5
VERTEX 3D PRINTER Acum, la Conex Electronic!
Printing Print technology: Fused Filament Fabrication (FFF) Layer resolution: standard: 0.1 mm (max.: 0.2 mm - min.: 0.05 mm) Build plate: 215 × 240 mm (8.46" × 9.45") Build volume: 180× 200 × 190 mm (7" × 7.8" × 7.5") Print speed: 30 mm/s - 120 mm/s Travel speed: 30 mm/s - 300 mm/s Build plate surface: Removable layer of BuildTak™ (consumable; also sold separately) Filament diameter: 1.75 mm (accepts all filament spools with a mounting hole = 53 mm). Open filament policy. Prints: PLA, ABS Testing with other materials in progress. Nozzle 1&2 diameter: 0.35mm One nozzle supplied. Second nozzle optional.
Distance between nozzles: 23.7 mm Maximum nozzle operating temperature: 270 °C Software Firmware: Modified Open Source Marlin 3D Printer Firmware - user upgradable Software: Repetier - CuraEngine - Slic3r (RepRap compatible) Hardware Dimensions: X Y Z 360 - 380 - 395 mm (14" × 15" × 15.5") (without filament spools) Frame: Polycarbonate panels and fibre reinforced molded ABS parts Electrical Communication: USB 2.0 or SD card Controller board: AVR ATmega2560 based Dual head and heated bed capable Display: 4 x 20 char. blue LCD with white backlight AC input: 100 - 240 VAC 50-60Hz 150W max.
Conex Electronic s.r.l. Tel.: 021 242.22.06 I Fax: 021 242.09.79 I office@conexelectronic.ro I www.conexelectronic.ro
6
Electronica Azi HOBBY • Decembrie, 2014 • Nr. 6
Silicon Labs Energy-Harvest-RD Primii paşi în realizarea propriei aplicaţii cu senzori la distanţă
Autor: Daniel Ghiţă daneelg@yahoo.com
Kit-ul de dezvoltare Energy-Harvest-RD (Energy Harvesting Reference Design) este un instrument pus la dispoziţie de Silicon Labs pentru exemplificarea posibilelor aplicaţii ale microcontrolerelor wireless cu consum redus (ultra low power) în domeniul senzorilor la distanţă. Mai mult, acesta demonstrează inclusiv posibilitatea alimentării unui astfel de senzor dintr-o sursă de energie renovabilă, oferind astfel posibilitatea funcţionării pe o durată foarte mare (limitată poate doar de epuizarea ciclurilor de încărcare-descărcare ale bateriei folosite) fără necesitatea intervenţiei umane. Merită menţionat aici că acest kit demonstrativ a beneficiat deja de o prezentare amănunţită într un articol dintr-un număr anterior al revistei Hobby (nr. 5, octombrie 2014), articol ce merită citit pentru detalii suplimentare. Kit-ul este compus din trei module: • Nodul wireless, bazat pe un microcontroler Silicon Labs Si1012. Dispozitivul este dotat cu un mic panou solar ce încarcă, în condiţii de iluminare suficientă, o baterie ultrasubţire THINERGY MEC101 de 0.7mAh. Nodul wireless măsoară şi transmite valoarea temperaturii ambiente (măsurată de senzorul intern de temperatură al microcontrolerului), nivelul de încărcare al bateriei precum şi nivelul luminozităţii (ca măsură a curentului furnizat de celula solară). Transmisia wireless se realizează pe frecvenţa de 919.84 MHz, folosind un protocol de comunicaţie implementat în biblioteca software EZMAC ®PRO; 8
ENERGY-HARVEST-RD • Un modul de programare/debug ToolStick Base; Modulul dispune de un conector mamă prin care acest modul se poate ataşa la nodul wireless pentru debug sau programare. În partea opusă a plăcii este dispusă o mufă USB prin care se realizează conectarea la PC.
• Un modul USB EZRadioPRO, ce are rolul de a realiza comunicaţia cu nodul/nodurile wireless şi a transmite datele primite către PC. Modulul foloseşte un microcontroler Silicon Labs C8051F342 împreună cu un transceiver Si4431.
Oarecum surprinzător este faptul că acest kit nu vine însoţit de software sau documentaţie. În cutie vom găsi însă un pliant în care se menţionează adresa paginii web de unde se pot descărca aplicaţiile şi documentaţia necesară. Un avantaj ar fi că vom lucra de la început cu cea mai nouă versiune a software-ului, însă dezavantajul este că este nevoie de acces la internet pentru a putea obţine softul necesar. Uneltele software esenţiale pentru a lucra cu acest kit de dezvoltare sunt următoarele: • Wireless Development Suite (WDS3) – este software-ul care ne permite să rulăm exemplul demonstrativ pentru care este pregătit “din fabrică” acest kit de dezvoltare. Cel mai important, cu ajutorul acestui software se va putea iniţializa modulul EZRadioPro cu firmware-ul corespunzător aplicaţiei energy harvesting, pas esenţial pentru comunicaţia cu nod(urile) wireless. Software-ul poate fi descărcat de la adresa din pagina producătorului www.silabs.com/products/mcu/Pages/ENERGY-HARVEST-RD.aspx. Tot de aici se poate descărca alt modul important: Energy Harvesting Installer (a cărui utilizare se va detalia mai ceva mai departe). • Silicon Labs IDE – reprezintă un mediu intergrat de dezvoltare pentru toată gama de microcontrolere de 8 biţi de la Silicon Labs, punând la dispoziţie un manager de proiecte, un editor de cod sursă, instrumente pentru depanare la nivel de cod sursă şi altele. În acelaşi timp oferă o interfaţă intuitivă între programator şi lanţul de unelte software (compilator, assembler, linkeditor) necesare transformării codului sursă în cod executabil. Software-ul Silicon Labs IDE se poate descărca de la adresa http://www.silabs.com/products/mcu/Pages/8-bit-microcontrollersoftware.aspx. Tot de aici se poate descărca pachetul Keil® PK51 Developer’s Kit, ce conţine întregul lanţ de unelte de compilare pentru programarea nodului wireless (şi în general pentru restul microcontrolerelor din seria 8051 de la Silicon Labs). În afară de uneltele software menţionate anterior, pentru realizarea aplicaţiei de vizualizare a datelor, am folosit compilatorul de Visual Basic din cadrul suitei de dezvoltare Microsoft Visual Studio Express 2008, ce poate fi folosită fără restricţii pentru aplicaţii non comerciale. Versiunea VS Express 2008 poate fi (încă)
Electronica Azi HOBBY • Decembrie, 2014 • Nr. 6
descărcată de pe website-ul Microsoft (de ex. de la adresa http://download.microsoft.com/download/E/8/E/E8EEB394-7F424963-A2D8-29559B738298/VS2008ExpressWithSP1ENUX 1504728.iso), dar puteţi încerca şi cu o versiune mai nouă (http://www.visualstudio.com/en-us/products/visual-studioexpress-vs.aspx). Vom începe, aşadar, prin instalarea Wireless Development Suite (WDS3). La sfârşitul instalării ni se va cere confirmarea pentru instalarea driver-ului pentru Silicon Laboratories CP210x USB to UART. După accept (recomandat), acesta se va instala (de ex. în directorul C:\SiLabs\MCU\CP210x). Vom conecta în continuare modulul EZRadioPRO la unul din porturile USB ale PC-ului. La rularea aplicaţiei WDS3, prima dată ni se va prezenta o listă cu posibile aplicaţii demonstrative, de unde trebuie aleasă opţiunea “Energy Harvesting Demo”. Dacă este prima utilizare a modulului EZRadioPRO, software-ul va încărca şi firmware-ul (ENH_Master) necesar în acesta - operaţie necesară doar o singură dată. Din acest moment, modulul este pregătit pentru a comunica cu nod(urile) wireless, iar în fereastra principală din WDS3 vor fi afişate 4 cadrane, corespunzătoare unor noduri wireless virtuale. Atât timp cât nu avem conectat niciun nod wireless, cadranul respectiv va fi afişat în nuanţe de gri.
Pentru a testa aplicaţia demo, va trebui pornit nodul wireless. În acest sens, pentru alimentarea nodului din bateria încorporată, switch-ul (S2) aflat pe acesta trebuie trecut pe poziţia SOLAR. Trebuie avut în vedere că la prima pornire este nevoie de un anumit timp (~10-30sec.) pentru încărcarea unui condensator de 100μF de pe placă (timpul este cu atât mai mic cu cât panoul solar este iluminat mai intens). Când nodul este pregătit, LED-ul D1 va clipi de 3 ori în culoarea verde. Putem apăsa în acest moment butonul S1, moment în care nodul se va asocia cu modulul EZRadioPRO şi va începe trimiterea de date, timp de 2 minute, după care va intra în modul sleep pentru minimizarea consumului de energie. Secvenţa se repetă la fiecare apăsare a butonului S1. Dacă totul a decurs OK, unul din cele 4 cadrane ale aplicaţiei demo din WDS3 se va colora şi în cadrul acestuia se vor afişa temperatura, nivelul de încărcare a bateriei şi intensitatea luminoasă incidentă pe panoul solar, valori trimise periodic de către nodul wireless. O informaţie utilă, pe care o putem deduce din tab-ul Packet, este structura pachetelor de date recepţionate. Utilitatea aplicaţiei WDS3, cel puţin din punctul de vedere al acestui articol, se opreşte aici. Mai departe, vom vedea cum putem analiza, modifica, compila şi încărca programul ce controlează un nod wireless. Pentru aceasta, primul pas este instalarea Silicon Labs IDE (ce se va instala de ex. în directorul C:/SiLabs/MCU), urmată de instalarea pachetului de dezvoltare Keil® PK51 Developer’s Kit (pe care îl vom instala de ex. în directorul C:/SiLabs/Keil). Ü 9
Electronica Azi HOBBY • Februarie, 2015 • Nr. 1
Ü
În versiunea neînregistrată, compilatorul Keil C51 poate fi folosit cu o serie de limitări, printre care aceea de lungime maximă a codului de 2048 bytes, lungime insuficientă pentru exemplul nostru. Din fericire, obţinerea unei chei de înregistrare este în prezent gratuită, necesitând completarea unui formular online, la adresa http://pages.silabs.com/lp-keil-pk51.html (în câmpul Target MCU am selectat opţiunea Si101x). După completarea şi trimiterea formularului, vom fi direcţionaţi către o nouă pagină, unde (important!), va fi afişat un număr serial, care trebuie notat. Pentru înregistrarea software-ului, se execută aplicaţia Keil uVision4 (aplicaţie ce face parte din pachetul Keil® PK51 Developer’s Kit), apoi se selectează din meniul principal: File -> License Management.
Se face click pe butonul “Get LIC via Internet”, ce va deschide un nou formular într-o pagină de browser. În acest formular vom folosi numărul serial obţinut anterior şi va trebui să completăm o serie de alte detalii personale. Cel mai important detaliu este adresa de email, unde va fi trimis codul de înregistrare! Acest cod îl introducem în fereastra de License Management deschisă anterior, în căsuţa de text “New License ID Code (LIC)”, după care se face click pe butonul “Add LIC”. Din acest moment vom putea folosi întreaga suită de dezvoltare fără nicio restricţie.
Energy Harvesting Installer de pe website-ul Silicon Labs (fişierul Energy_Harvesting_RD.exe) şi îl instalăm (de ex. în directorul C:\SiLabs\MCU\Energy_Harvesting_RD). Vom găsi în directorul unde s a realizat instalarea două noi directoare: Documentation (unde găsim două fişiere în format pdf) şi Firmware (unde vom găsi proiectul şi codul sursă al programului din nodul wireless). Pentru a deschide proiectul în mediul de dezvoltare Silicon Labs IDE, se poate da dublu click pe fişierul si1012_EH_Node.wsp. Înainte de orice, va trebui să configurăm suita de unelte de compilare, din meniul Project > Tool Chain Integration. Va trebui specificată aici calea către cele trei executabile necesare compilării: assembler (A51.exe), compiler (C51.exe) şi linker (BL51.exe). Acestea se găsesc în acelaşi director (de ex. în C:\SiLabs\Keil\C51\BIN). Odată realizat acest pas de configurare, putem compila proiectul (din meniul Project > Rebuild Project). Recomandare: înainte de a recompila proiectul, ar fi bine să facem un backup la fişierul si1012_EH_Node.hex (aflat în directorul C:\SiLabs\MCU\Energy_Harvesting_RD\Firmware\Release), acesta fiind imaginea originală a programului ce vine scris din “fabrică” în flash-ul nodului wireless. În acest mod, putem reveni oricând la funcţionalitatea iniţială a acestuia (meniul Debug -> Download Object File, alegând fişierul .hex salvat anterior). Acest lucru poate fi necesar dacă dintr-un anume motiv, după compilare şi download în microcontroler, acesta nu mai funcţionează coerspunzător. În plus, între programul rezultat după compilare (fără nicio modificare adusă codului sursă) şi programul original există şi câteva diferenţe funcţionale (codul sursă pus la dispoziţie pare a fi ceva mai “vechi” decât imaginea scrisă “din fabrică” în microcontroler). Câteva din diferenţele (nesemnificative totuşi) observate ar fi: • Cu firmware-ul original, nodul trimite date timp de 2 minute (120 de eşantioane) înainte de intrarea în modul sleep, în timp ce în codul sursă găsim specificate doar 60 de eşantioane (linia #define NUM_BLINKS 60 în fişierul nwkNode.c). • Cu programul rezultat după compilarea surselor, nodul wireless avea inţial o manifestare ciudată: la acoperirea completă a celulei solare, în loc să afişeze o intensitate de 0 lux, cum era normal, se afişa o intensitate de 1830 lux, mai mare decât atunci când celula solară primea maxim de lumină. Această eroare nu se regăseşte totuşi în firmware-ul original, semn că acesta a fost totuşi corectat după publicarea codului sursă. Sursa acestei erori o vom găsi în funcţia MeasureLightLevel(), în fişierul nwkNode.c, în liniile care urmează: ................................................................................................................................. // Apply conversion from ADC code to Light Level (Lux) // y = 1.371x - 23.561 (calibrated to MS6610 Luxmeter) // y = y / 10 light_value *= 1371; light_value -= 23561; light_value /= 10000; // Return the lux value divided by 10. return (U8) light_value;
Mai departe, vom avea nevoie de codul sursă al programului încărcat în nodul wireless. Pentru aceasta descărcăm pachetul 10
................................................................................................................................. După cum se observă, atunci când variabila light_value ia o valoare iniţială mai mică decât pragul de 23561/1371 (=17 ca valoare întreagă), rezultatul final ar trebui să fie negativ. Variabila fiind însă declarată fără semn, rezultatul operaţiei va fi o valoare pozitivă şi
ENERGY-HARVEST-RD foarte mare, când, practic, ar trebui să fie egal cu zero, iluminarea fiind sub pragul detectabil. Adăugând şi conversia (trunchierea) din număr întreg pe 32 biţi în număr întreg pe 8 biţi, rezultatul devine complet eronat. O corecţie simplă ar putea fi următoarea: ................................................................................................................................. // Apply conversion from ADC code to Light Level (Lux) // y = 1.371x - 23.561 (calibrated to MS6610 Luxmeter) // y = y / 10 if (light_value<=17) //daca intensitatea este sub pragul detectabil return (U8) 0; //returneaza zero light_value *= 1371; light_value -= 23561; light_value /= 10000; // Return the lux value divided by 10. return (U8) light_value; ................................................................................................................................. După compilarea cu succes a proiectului, programul trebuie scris în flash-ul microcontrolerului. Pentru a putea face acest lucru, va trebui mai întâi să conectăm toolstick-ul la nodul wireless. Switch-ul S2 (“Power Select”) de pe placa nodului wireless trebuie pus în poziţia “USB”. Toolstick-ul se înserează într-un port USB liber din PC. În Silicon Labs IDE, în meniul Options > Connection Options se selectează “USB Debug Adapter”.
Electronica Azi HOBBY • Februarie, 2015 • Nr. 1
Vom încheia secţiunea dedicată nodului wireless cu câteva observaţii legate de datele transmise. Dacă analizăm funcţia networkMain() din fişierul nwkNode.c, ne putem da seama că aici se execută bucla principală a programului. Aici se realizează “trezirea” din sleep a nodului şi asocierea cu dongle-ul EZRadioPRO atunci când se apasă butonul S1; Tot acum se realizează (o singura dată) şi citirea temperaturii şi încărcarea bateriei. ................................................................................................................................. // Wait (in sleep mode) to allow capacitor voltage to recover RTC_Timeout(MILLISECONDS(30)); wakeUpSource = powerSleep(RTCAWK); // Measure the battery voltage BatteryVoltage = MeasureBatteryVoltage(); // Measure the temperature Temperature = MeasureTemperature(); ................................................................................................................................. Asocierea cu EZRadioPRO se realizează doar dacă variabila NwkNodeId (identificatorul unic al nodului) are valoarea 0xFF (indicând că nu a fost încă iniţializată). Prin asociere, nodul cere modulului EZRadioPRO să îi aloce un identificator (un nr. întreg între 1 şi 4), valoarea căruia o va salva în NwkNodeId. Dacă variabila NwkNodeId este diferită de 0xFF înseamnă că nodul este deja asociat şi poate începe trimiterea unei serii de date. Va fi trimis un număr de NUM_BLINKS pachete de date, apoi nodul intră în modul sleep. ................................................................................................................................. num_blinks = (NUM_BLINKS); if(NwkNodeId != 0xFF) { for (n = 0; n < num_blinks; n++) { // Measure the light level LightLevel = MeasureLightLevel();
Odată indicată metoda de conectare, tot din meniu facem click pe Debug -> Connect (sau se apasă Alt+C). Dacă totul e OK, opţiunile care înainte erau dezactivate vor deveni accesibile: opţiunea de “Download code” (Alt+D) cât şi opţiunile pentru debug (“Refresh values”, “Reset” etc.). Altă opţiune care devine acum activă este cea din meniu, Debug -> Download Object File prin care se poate încărca în microcontroler o imagine compilată, în format .hex sau .omf. Printr-un click pe “Download code”, codul cel mai recent compilat va fi încărcat în microcontroler.
#if(MODE==RFUSB) Potentiometer = LightLevel * 10; #endif // Bring the EZRadioPRO out of a low power state EZMacPRO_Wake_Up(); while(EZMacProReg.name.MSR!=EZMAC_PRO_IDLE) { powerIdle(); } // Transmit a packet #if(MODE==EH) if(n == 1 || n==3) { networkDataRequest_temp(Temperature, BatteryVoltage, NwkDemoTxBuffer); } else { networkDataRequest_light(LightLevel, NwkDemoTxBuffer); } Ü .................................................................................................................................
11
Electronica Azi HOBBY • Februarie, 2015 • Nr. 1
Ü
După cum se poate vedea din secvenţa anterioară, nodul trimite două tipuri de pachete: primul tip conţine temperatura şi încărcarea bateriei, în timp ce al doilea conţine doar nivelul de iluminare. Primul tip de pachet este trimis doar de două ori, la începutul secvenţei (pachetele 1 şi 3), în rest fiind trimise doar pachete de tipul al doilea. Între două pachete succesive procesorul este pus în modul sleep timp de o secundă. Una din primele modificări ce pot fi aduse programului ar fi ca acesta să trimită alternativ, atât luminozitatea cât şi temperatura şi încărcarea bateriei, pe toată durata seriei. Secvenţa modificată ar fi următoarea: ................................................................................................................................. num_blinks = (NUM_BLINKS); if(NwkNodeId != 0xFF) { for (n = 0; n < num_blinks; n++) { #if(MODE==RFUSB) Potentiometer = LightLevel * 10; #endif // Bring the EZRadioPRO out of a low power state EZMacPRO_Wake_Up(); while(EZMacProReg.name.MSR!=EZMAC_PRO_IDLE) { powerIdle(); } // Transmit a packet #if(MODE==EH) if( 2*(n/2) == n) //daca n este par trimit temp. si incarcarea bateriei { // Masoara incarcarea bateriei BatteryVoltage = MeasureBatteryVoltage(); // Masoara temperatura Temperature = MeasureTemperature(); networkDataRequest_temp(Temperature, BatteryVoltage, NwkDemoTxBuffer); //trimite datele } else //daca n e impar trimit intensitatea luminoasa { // Masoara intensitatea luminoasa LightLevel = MeasureLightLevel(); networkDataRequest_light(LightLevel, NwkDemoTxBuffer); //trimite datele } .................................................................................................................................
12
Dacă dorim să amplasăm senzorul în exterior, într-un loc mai puţin accesibil, faptul că este nevoie de apăsarea unui buton de pe acesta pentru a recepţiona o serie de date nu este deloc convenabil, lucru pentru care următoarea modificare recomandată ar putea fi dezactivarea acestei funcţii şi programarea nodului pentru a transmite tot timpul, la intervale regulate. În cazul în care prin aceasta bateria s-ar consuma prea repede, se poate mări pauza între transmisii (de exemplu de la 1 secundă la 2 sau chiar mai rar). Ultima parte a acestui articol am rezervat-o realizării propriei aplicaţii de vizualizare a informaţiilor primite de la nodurile wireless. Am văzut că aplicaţia Wireless Development Suite ne pune deja la dispoziţie un ecran de vizualizare a temperaturii, încărcării bateriei şi intensităţii luminii, pentru maxim 4 senzori. Din păcate nu putem modifica în niciun fel această interfaţă, acesta fiind un program demonstrativ compilat direct în codul executabil al aplicaţiei WDS3. Dacă dorim modificarea design ului interfeţei sau chiar transmiterea şi respectiv afişarea de informaţii adiţionale despre fiecare nod, va trebui să realizăm propria aplicaţie de vizualizare. Aplicaţia va trebui să aştepte şi să testeze periodic dacă modulul EZRadioPRO este conectat la PC şi dacă este disponibil pentru realizarea comunicaţiei. Odată detectat modulul respectiv, aplicaţia va încerca să citească mesajele trimise de acesta, mesaje ce reprezintă de fapt retransmisia datelor primite de la nodurile wireless asociate. Mesajele ce conţin datele utile vor trebui interpretate pentru extragerea informaţiilor de interes, ce se vor afişa într-o interfaţă grafică. Din fericire, modul în care a fost conceput firmware-ul modulului EZRadioPRO simplifică mult realizarea conexiunii între acesta şi aplicaţia de vizualizare. Modulul în cauză, odată introdus într unul din porturile USB ale PC-ului, va fi detectat de sistemul de operare drept un dispozitiv generic din clasa USB HID (Human Interface Devices), similar de exemplu unui mouse sau unei tastaturi. Ca urmare, nu este nevoie de instalarea unui driver special pentru el. Pentru ca o aplicaţie să comunice cu un astfel de dispozitiv, aceasta are nevoie să cunoască doi parametri care identifică împreună, în mod unic, dispozitivul respectiv.
ENERGY-HARVEST-RD
Electronica Azi HOBBY • Februarie, 2015 • Nr. 1
Aceşti parametri sunt Vendor ID-ul (VID) şi Product ID-ul (PID). În cazul aplicaţiei energy harvesting, programatorii firmware-ului pentru dongle-ul EZRadioPRO au ales VID = 0x10C4 şi PID = 0x8550. Pentru ca propria aplicaţie să poată trimite/recepţiona date de la un astfel de dispozitiv există multe opţiuni. Una din ele o reprezintă utilizarea unei biblioteci dedicate, cum ar fi de exemplu libusb library (www.libusb.org), ce suportă o multitudine de limbaje de programare (C++, C#, Java etc.), atât pentru Windows cât
La primirea unui pachet de date de la unul din senzori, în cadranul dedicat se actualizează informaţiile, iar senzorul este indicat ca activ (online). Dacă timp de 5 secunde nu se mai primesc date de la senzorul respectiv, acesta este indicat ca offline. În tab-ul “Debug” am afişat în format hexazecimal pachetele de date primite de la senzor prin intermediul receptorului EZRadioPro. Pachetele primite au lungimea de 63 Bytes şi au următoarea structură:
5 Bytes
2 Bytes
1Byte
1Byte
1Byte
1Byte
1Byte
1-3Byte
Restul
Preamble
Sync
CTRL
CID
SID
DID
Type
Payload
Nefolosiţi
şi pentru Linux. Documentaţia şi exemple pentru utilizarea funcţiilor din această bibliotecă pot fi găsite pe pagina oficială, dar şi pe alte diverse website-uri sau forum-uri pe internet. Pentru exemplul ce face obiectul acestui articol am ales o a doua abordare, anume scrierea funcţiilor pentru lucrul cu dispozitivele USB HID direct în codul aplicaţiei. Exemplul de interfaţă a fost scris folosind Microsoft Visual Basic 2008. Ca şi în exemplul din WDS3, aplicaţia afişează în fereastra principală 4 cadrane dedicate celor patru senzori ce pot fi accesaţi.
De interes în cazul de faţă sunt doar câmpurile SID (Self ID), Type şi Payload (datele propriu-zise). Câmpul SID reprezintă identificatorul nodului wireless şi poate avea valorile 1, 2, 3 sau 4. Câmpul Type indică ce informaţii găsim în câmpul Payload. În funcţie de valoarea acestuia avem două cazuri: Type 0x07 0x08
Payload Baterie Luminozitate
Temperatură -
-
Variabila Baterie ocupă 1 Byte şi reprezintă nivelul de încărcare al bateriei în procente, între 0 şi 100. Variabila Luminozitate ocupă tot 1 Byte însă trebuie înmulţită cu 10 pentru a obţine valoarea finală afişată în Lux. Variabila Temperatură este transmisă pe 2 Bytes, iar pentru a afişa valoarea în ºC aceasta va trebui împărţită la 10. Odată extrase aceste informaţii din pachetul de date, nu mai ramâne decât să le afişăm pe ecran şi aplicaţia noastră de monitorizare la distanţă este finalizată! Acesta este doar un exemplu de interfaţă pentru senzorii la distanţă, ce poate fi însă dezvoltat mai departe adăugând, de exemplu, un sistem de arhivarea a informaţiilor într-o bază de date, posibilitatea vizualizării evoluţiei parametrilor monitorizaţi în timp etc. Codul sursă al interfeţei realizate în Visual Basic, împreună cu executabilul rezultat (EHDemo.exe) poate fi obţinut de la autorul articolului sau contactând redacţia revistei Electronica Azi.
Câştigaţi cu Electronica Azi Hobby Trimiteţi la redacţie proiectul unei aplicaţii practice şi aveţi şansa de a câştiga un sistem de evaluare şi dezvoltare “ENERGY-HARVEST-RD” de la Silicon Labs. Articolul propus spre publicare trebuie să conţină următoarele elemente: • Introducere (~ 50 cuvinte) • Conţinut (~ 1000 cuvinte) • Poză autor şi pentru aplicaţia propusă • Diagrame (schemă electronică, detalii, circuit PCB).
13
Electronica Azi HOBBY • Februarie, 2015 • Nr. 1
Autor:
14
Dumitru-Cristian Trancă dumitru.tranca@cti.pub.ro
TUBURI NIXIE Tuburile NIXIE, cunoscute sub numele de afișaj cu catod rece (cold cathod display), sunt dispozitive electronice de afișaj ce au la bază efectul de “glow discharge” (ionizarea gazului şi generarea plasmei la trecerea unui curent electric printr-un gaz aflat la presiune joasă). Culoarea generată depinde de gazul din interiorul tubului. Anodul este realizat dintr-o plasă metalică dispusă sub forma unui cilindru, iar în interior se află catozii. Catozii sunt conductori metalici realizați sub forma cifrelor de la 0 la 9 sau sub forma a diferite simboluri plasate unele în spatele altora. Majoritatea tuburilor NIXIE sunt construite folosind un anod (anod comun) şi zece catozi ce reprezintă cifrele de la 0 la 9. Există și tuburi care au catozii 2 câte 2 legați între ei și doi anozi, câte un anod pentru jumătate dintre catozi.
Electronica Azi HOBBY • Februarie, 2015 • Nr. 1
robust, mai eficient, mai ieftin, folosește circuite de comandă mai simple și consumă mult mai putin, dar tocmai aceasta reprezintă frumusețea acestui aparat. Tuburile NIXIE conferă ceasului o estetică aparte și sunt preferate de către pasionații de electronică, care încă trăiesc cu nostalgia tehnologiilor trecute. Construcția dispozitivului Ceasul conține mai multe componente grupate în funcție de rolul pe care îl îndeplinesc: surse de tensiune, driver pentru tuburi, microcontroler şi circuit de ceas de timp real – RTC (Real Time Clock), alarmă și butoane de comandă. Dispozitivul a fost construit pe baza următoarei scheme bloc:
Tuburile ZM1000R, produse de PHILIPS sunt un model îmbunătățit cu o durată de viață mai mare decât a altor tuburi. Curentul mediu recomandat prin ANOD este de 2.5mA. În urma experimentelor, am ales un rezistor pentru ANOD de 22K, pentru o tensiune de funcționare de 150V. Modul în care un tub va lumina (mai puternic, mai slab, sau dacă apare fenomenul de HALOU în jurul catodului activ) depinde de producător, de durata de utilizare și de condițiile în care a fost utilizat. 1. Blocul de alimentare Redresarea tensiunii alternative şi filtrarea sunt realizate folosind o punte bialternanță cu 4 diode de tip 1N4001 și este filtrată
Figura 2: Schema bloc
Figura 3: Caracteristicile ZM1000R din datasheet [2]
Figura 1: Tub Nixie [1] Tuburile NIXIE reprezintă o tehnologie de afișaj foarte veche, ce a fost înlocuită de afișajul cu LED-uri care este mult mai
Figura 4: Puntea redresoare şi circuitele stabilizatoare
folosind un condensator de 1000uF. Tensiunea redresată constituie intrarea pentru circuitele 7805 şi 7812, care generează o tensiune de ieșire stabilizată de 5V pentru alimentarea microcontrolerului şi a circuitelor integrate și de 12V pentru alimentarea alarmei și a sursei pentru Ü tuburile nixie. 15
Electronica Azi HOBBY • Februarie, 2015 • Nr. 1
Generarea de înaltă tensiune pentru alimentarea tuburilor NIXIE este realizată folosind cunoscutul circuit de temporizare 555. Cu ajutorul acestuia este realizată o sursă în comutație de tip boost, tipologie des întâlnită în multe proiecte.
tranzistorul Q20, alimentarea fiind făcută tot din înalta tensiune folosită pentru NIXIE-uri. Principiul becului cu neon este asemănător cu cel al funcționării tuburilor NIXIE, curentul fiind unul foarte mic.
grijă ca alimentarea LED-urilor să fie realizată fie din ieșirea de 12V fie din cea de 5V. Prin LED-uri, curentul este mult mai mare decât cel prin tuburile NIXIE. Dacă acestea sunt alimentate din tensiunea
2. Driver-ul pentru tuburile NIXIE Deoarece tuburile nixie utilizate sunt un model cu anod comun, aprinderea unei cifre se face prin acționarea catodului corespunzător. Pentru aceasta, am ales utilizarea unor tranzistori bipolari de tip NPN, care permit o cădere de tensiune suficient de mare (mai mult de 70-80 de V) pe joncțiunea Colector-Emitor. Modelul ales este BSX21, iar rezistența din baza acestora este de 5K. Pentru cele 2 puncte [ : ] care separă orele și minutele, se pot folosi unul sau două becuri cu neon înseriate cu o rezistență. Aceste becuri vor fi acționate folosind
Figura 5: Sursa boost pentru generarea tensiunii de 140V C.C. [3] Aceste becuri pot fi înlocuite cu 2 LED-uri înseriate cu o rezistență, dar trebuie avut
înaltă, surplusul de curent va exercita un stres suplimentar asupra sursei de înaltă tensiune, va crește foarte mult curentul de alimentare și se va degaja căldură pe rezistența înseriată cu LED-urile. Pentru a putea folosi un microcontroler de dimensiuni reduse pentru acționarea cifrelor, am folosit multiplexoare CMOS, modelul 74HC238 care au ieșiri în logică directă. Comanda tranzistoarelor prin intermediul multiplexoarelor este combinată cu comanda directă din microcontroler. 3. Microcontrolerul
Figura 6: Tranzistoarele de acționare a catozilor
Modelul de microcontroler utilizat este ATMEL ATMEGA8535, care funcționează la o frecvență a ceasului de 16MHz. Acest microcontroler poate fi înlocuit cu ATMEGA16, ATMEGA164, ATMEGA32, ATMEGA324, fiind pin la pin compatibile cu acestea. Pentru menținerea orei este utilizat un circuit RTC produs de Dallas Semiconductor DS1302. Acesta este alimentat la 5V şi orice modificare a timpului curent este stocată de către microcontroler în circuitul RTC. Acesta realizează funcția de incrementare a orei, a zilei,a lunii și a anului, el fiind interogat periodic de către microcontroler pentru a actualiza ora afișată.
Figura 7: Modul de conectare a tuburilor 16
Circuitul RTC nu are funcția de comutare la ora de vară/ora de iarnă (funcție cunoscută sub numele de Daylight Saving), însă aceasta poate fi implementată în microcontroler.
TUBURI NIXIE
Electronica Azi HOBBY • Februarie, 2015 • Nr. 1
Figura 8: Circuite de multiplexare un întrerupător. Pentru a ne asigura că tranzistorul Q3 nu este activat din cauza zgomotelor electrice apărute în circuit, semnalul de comandă a bazei este legat la GND prin întrerupător. Pentru interfațarea butoanelor, rezistențele interne de pull-up din microcontroler sunt activate la pornire. În paralel cu butoanele, sunt utilizate condensatoare de 100n, pentru anularea semnalului generat de fenomenul de bouncing al butoanelor metalice.
RTC se ţine apăsat lung butonul SET. Dacă se dorește renunțarea la operația curentă se apasă, fie butonul de ALARM OFF, fie butonul ALARM. Când butonul ALARM este apăsat, fie minutele, fie orele luminează intermitent. Prin apăsarea butoanelor de UP/DOWN ora, sau minutul, în funcție de care grup este în stadiu de luminat intermitent, pot fi modificate. Pentru scrierea noii alarme în circuitul RTC se ţine apăsat lung butonul ALARM. Dacă se dorește renunțarea la operația curentă, se apasă fie butonul de ALARM OFF fie butonul SET. În momentul în care alarma este activă, ea poate fi dezactivată prin apăsarea butonului ALARM OFF. În cazul în care se dorește oprirea definitivă (dezactivarea), aceasta se poate face prin întrerupătorul care întrerupe semnalul ALM. De asemenea, în cazul în care utilizatorul dorește oprirea afișajului, dar dorește ca funcționalitatea ceasului (alarmă) să nu fie afectată, el poate realiza acest lucru prin acționarea întrerupătorului care comută pinul de ENABLE al sursei de înaltă tensiune ce este folosită la alimentarea tuburilor pe poziția în care sursa este controlată de microcontroler prin semnalul EN_HVI, din microcontroler acest semnal fiind ținut la 0V. Pentru dezvoltări ulterioare, o mufă pin la
Figura 9: Microcontrolerul
Figura 12: Butoanele de comandă Figura 10: Circuitul RTC DS1802 4. Alarma, butoanele de configurare Alarma poate fi, fie un buzzer, fie un dispozitiv extern acționat prin releu. Aceasta poate fi complet dezactivată întrerupând semnalul de comanda ALM printr-
Figura 11: Circuitul de alarmă
Algoritmul dispozitivului Programul de pe microcontroler reprezintă implementarea în C a unui automat cu stări finite. Algoritmul, în principiu, execută periodic funcția de citire a circuitului RTC. Când butonul SET este apăsat, fie minutele, fie orele luminează intermitent. Prin apăsarea butoanelor de UP/DOWN ora, sau minutul, în funcție de care grup este în stadiu de luminat intermitent, pot fi modificate. Pentru scrierea noii ore în circuitul
pin compatibilă cu conectorul modulelor bluetooth puse la dispoziţie pe internet este prezentă. Utilizatorul poate atașa un asftel de modul care este interfațat prin serială și poate implementa funcții de configurare a ceasului folosind telefonul sau prin alte metode. Codul, precum şi schemele în format PDF şi fisierele gerber pentru PCB pot fi descărcate de pe http://brigada-diverse-4u.blogspot.ro/ navigând la proiectul Nixie Clock V1.
[1] http://en.wikipedia.org/wiki/Nixie_tube#mediaviewer/File:ZM1210-operating_edit2.jpg Poză cu un tub NIXIE de pe Wikipedia – link vizitat la 25.01.2015 [2] http://www.tubeclockdb.com/data%20sheets/ZM1000.pdf Datasheet ZM1000 – link vizitat la 25.01.2015 [3] http://www.instructables.com/id/Nixie-Tube-HV-Driver/ Sursă tensiune – link vizitat la 25.01.2015 17
Electronica Azi HOBBY • Februarie, 2015 • Nr. 1
Microscop cu cameră foto USB - MK20 Acest microscop cu cameră foto USB face fiecare detaliu vizibil pe ecranul calculatorului dumneavoastră, pentru a fi analizat, fotografiat şi stocat în hard-disk. Iluminarea optimă este garantată datorită celor 4 LED-uri încorporate în timp ce butoanele de zoom şi focus asigură claritatea detaliului. Microscopul se poate folosi cu succes pentru identificarea componentelor SMD sau pentru verificarea continuităţii circuitelor de pe plăcile electronice, pentru hobby, în atelier, la şcoală sau în cluburile de electronică. Datorită conexiunii USB, se pot face înregistrări în format video sau fotografii la o simplă apasare de buton, salvându-le direct în calculator pentru analiză ulterioară. l l l l l l l l l l l
18
Caracteristici şi funcţii: Rezoluţie 640 × 480 pixeli Zoom optic 5× Mărire maximă 130× Iluminare cu 4 LED-uri Funcţie direct-to-disk (foto sau video) Buton snapshoot, focus şi zoom Balans alb şi expunere automate Alimentare prin portul USB Poate fi folosit cu Windows (minim XP), Linux, MacOS (minim 10.4) Cablu de conectare 1,2 m Dimensiuni (L × l × h): 131 × 80 × 85 mm.
Electronica Azi HOBBY • Februarie, 2015 • Nr. 1
Aparat de spălare cu ultrasunete VGT-800 Aparatul de spălare cu ultrasunete VGT-800 cu temporizator electronic şi capac transparent este un instrument util pasionaţilor sau profesioniştilor. Prin intermediul lui se pot curăţa plăcile şi componentele electronice de resturile de pastă, adezivi sau alte substanţe chimice; se pot curăţa, de asemenea, bijuterii, monede, lentile, argintărie, piese de precizie, elemente de ceasornicărie sau CD/DVD-uri.
l l l l l l l l
Specificaţii tehnice: Tensiune 230V Putere 35W Frecvenţă ultrasunete 40 KHz Rezervor inox 0.6 litri Timer 3 minute Rezervorul de apă din oţel inoxidabil Dimensiuni: 210 × 150 × 140 mm. Dimensiune rezervor: 155 × 95 × 52 mm
Tel.: 0256-201346 office@oboyle.ro, www.oboyle.ro 19
Electronica Azi HOBBY • Februarie, 2015 • Nr. 1
Bobina Tesla Bobina Tesla a fost inventată în anul 1891 de către marele fizician Nikola Tesla. Visul acestuia era de a folosi această invenţie pentru a transmite energie electrică prin aer oamenilor, fără a folosi conductori. În prezent, aceasta este folosită pentru cercetare, pentru efecte speciale în filme, dar şi pentru a produce muzică. Autor: Daniel Ghilinţă glnt94@yahoo.com
Pornind de la un simplu transformator cu câteva particularităţi, progresele electronicii au ajutat la obţinerea unei desărcări electrice modulată audio. Iniţial, bobina Tesla folosea un circuit LC serie pentru a produce curentul alternativ necesar, iar în prezent curentul alternativ este produs cu ajutorul unui driver, fiind amplificat cu tranzistori. Principalele componente ale unei bobine Tesla sunt bobina primară, bobina secundară, driver-ul şi partea de putere, de obicei formată dintr-o punte H cu tranzistori MOSFET sau IGBT. În plus, îi putem adăuga un banc de condensatori în circuitul primar pentru a-l aduce la rezonanţă, astfel crescând intensitatea şi dimensiunea fulgerelor. De asemenea, un modulator audio poate controla frecvenţa la care au loc descărcările electrice, generând note muzicale.
Figura 1: Sistemul complet
preluate în timpul funcţionării. A doua variantă este o alegere mai bună deoarece ajută la găsirea frecvenţei exacte la fiecare moment de timp, aceasta putând să varieze în funcţie de lungimea fulgerului. Această schemă (figura 1) conţine sistemul de feedback prin care se generează semnalul dreptunghiular necesar controlării tranzistorilor. În partea stângă este implementat un circuit de phase lead cu ajutorul căruia se prelucrează semnalul pentru ca tranzistorii să comute la momentul potrivit. În continuare, semnalul ajunge la circuitul integrat TL3116, acesta fiind un comparator ce poartă rolul de a detecta trecerea prin zero. Cele două ieşiri, semnalul dreptunghiular, dar şi semnalul dreptunghiular inversat, ajung în porţi logice de tip AND, fiind sincronizate cu modulatorul şi detectorul de supracurent cu ajutorul unui circuit basculant bistabil de tip D.
DRIVER-UL CARE GENEREAZĂ CURENTUL ALTERNATIV Circuitul care generează curentul alternativ este de două tipuri. Există posibilitatea generării unei frecvenţe fixe, dar şi a unor valori
Figura 2: Schemă sistem feedback
Figura 3: Schemă detecție supracurent
Sursă: www.loneoceans.com/labs/ud27
Sursă: www.loneoceans.com/labs/ud27
20
BOBINA TESLA
Electronica Azi HOBBY • Februarie, 2015 • Nr. 1
Pentru a oferi o protecţie cât mai mare pentru tranzistori, se utilizează un circuit pentru detectarea supracurentului (figura 2).
anumit interval de timp şi vor mişca aerul din jurul lor, asemenea unui difuzor. Sunetul se propagă prin aer, creând note muzicale. Modulatorul audio (figura 4) este unul foarte simplu, având drept componente un optocuplor ce separă dispozitivul MIDI de circuit şi un microcontroler care generează semnalul PWM corespunzător fiecărei note muzicale. PUNTEA H DE TRANZISTORI Bobinele Tesla pot funcţiona, în general, la frecvenţe pornind de la ordinul zecilor de kHz şi ajungând la câţiva MHz. De obicei, se doreşte o frecvenţă de funcţionare cât mai mică deoarece ajută la o disipare a unei cantităţi cât mai mici de căldură de către tranzistori. Aceştia trebuie să reziste, în cazul celor mai puternice bobine, la intensităţi de ordinul sutelor, chiar miilor de amperi. Schema prezentată (figura 5) arată principiul fundamental de funcţionare pentru o punte H, dar în prezent, pentru bobine puternice, se folosesc module care conţin 2 sau 4 tranzistori IGBT (de exemplu CM300, CM75BU-12H, SKM400), folosite în general pentru aplicaţii Ü de putere (aparate de sudură industriale, motoare, UPS-uri).
Figura 4: Schemă gate driver Sursă: www.loneoceans.com/labs/ud27
Pentru aceasta, se foloseşte un comparator de voltaj LM311D căruia îi este dată o valoare de referinţă printr-un potenţiometru. Pentru a obţine date despre curentul care circulă în primarul bobinei Tesla, se foloseşte un transformator de curent 1:1000 şi se măsoară căderea de tensiune pe un rezistor ce are valori mici (5 – 10 ohmi). În cazul în care se detectează o valoare a tensiunii prea mare, funcţionarea circuitului va fi oprită. În schemă se pot observa şi două receptoare de fibră optică folosite pentru a recepţiona semnalul dat de modulatorul audio. Pentru a controla tranzistorii şi a oferi protecţie, driver-ul este izolat galvanic de puntea cu tranzistori. Pentru aceasta, se foloseşte un transformator 1:1 care este controlat de un gate driver (figura 3). Deoarece tranzistorii puternici au nevoie de o sarcină destul de mare pentru a comuta întrun timp foarte scurt, este nevoie de o intensitate mare. Dat fiind faptul că nu se produc uzual circuite gate driver cu valori mari pentru intensitate, se folosesc tranzistori MOSFET de tip N şi P controlaţi de un circuit de mică putere.
Figura 5: Schemă modulator audio
Sursă: http://www.http://onetesla.com
MODULATORUL AUDIO Cel mai performant modulator audio procesează un semnal MIDI dat de calculator sau instrumente muzicale şi generează un semnal PWM cu un factor de umplere nu mai mare de 5 – 10%. Astfel, fulgerele vor apărea şi vor dispărea la un
Figura 6: Schemă punte H Sursă: http://kaizerpowerelectronics.dk
21
Electronica Azi HOBBY • Februarie, 2015 • Nr. 1
Ü
Figura 8: Bloc condensatori circuit primar
Figura 7: Modul tranzistori
22
BOBINA TESLA
Electronica Azi HOBBY • Februarie, 2015 • Nr. 1
În general, modulele alese trebuie să reziste la intensităţi de ordinul sutelor – miilor de amperi. CONDENSATOR PRIMAR Condensatorul din circuitul primar este ales pentru a avea, împreună cu bobina primară, o impedanţă de sarcină cât mai mică, fiind calculat pentru o frecvenţă de rezonanţă. De asemenea, se construieşte astfel încât să reziste la tensiuni şi intensităţi mari, grupând foarte mulţi condensatori în paralel. De exemplu, putem grupa 40 de stringuri în paralel, fiecare a câte 3 condensatori în serie, pentru a obţine capacitatea şi tensiunea dorite. BOBINA PRIMARĂ ŞI SECUNDARĂ Bobina primară se construieşte după caracteristicile bobinei secundare. Cea din urmă formează un circuit rezonant obţinut din inductanţa sa şi capacitatea între spire. Se poate coborî frecvenţa de funcţionare adăugând un toroid sau o sferă acoperită cu un material conductor, acestea reprezentând o capacitate suplimentară. Pentru a realiza un astfel de dispozitiv, avem nevoie de câteva echipamente de laborator, de exemplu multimetru, osciloscop, sursă de tensiune. De asemenea, pentru construcţia fizică sunt necesare multiple echipamente de atelier. În funcţie de mărimea şi puterea dispozitivului, preţurile pot porni de la 400 – 500 RON, ajungând până la 1000 – 1500 €.
Figura 9: Bobina primară, secundară şi toroidul
23
Electronica Azi HOBBY • Februarie, 2015 • Nr. 1
RobotOlympics O nouă competiție de robotică, în București Pasionații de robotică din toată țara s-au întâlnit pe 14 decembrie 2014, în holul principal al Facultății de Automatică și Calculatoare, din cadrul Universității Politehnica (București), pentru a testa limitele roboților la prima ediție a concursului RobotOlympics. RobotOlympics reprezintă un nou concept în lumea competițiilor de profil și își propune să stabilească un standard cât mai înalt, atât din punct de vedere organizatoric, cât și din punct de vedere al echipelor participante. Autori: Mihai Crăciunescu - mihaiacr@gmail.com Andrei Duluţă - andrei.duluta@gmail.com Cristian Dobre - dobre.cristian@nighttime.ro
24
ROBOTOLYMPICS Organizare Demersurile necesare pregătirii acestui evenimentul au fost făcute de către studenți și profesori ai departamentului de Automatică și Informatică Industrială din cadrul facultății. Pe lângă aceștia, au existat mulți voluntari care au contribuit la buna organizare și desfășurare a concursului. Fie că este vorba despre rude, prieteni, colegi sau pur și simplu oameni care și-au dorit să ofere o mână de ajutor, buna desfășurare a
Electronica Azi HOBBY • Februarie, 2015 • Nr. 1
concursului le este datorată, în egală măsură. Spre bucuria participanților, sponsorul principal al competiției, Robofun, s-a asigurat că nimeni nu va pleaca acasă fără un premiu (un Reduino și o carte, la alegere). Mai mult, Robofun a pus la bătaie, pentru echipa cu cele mai multe probe câștigate, o imprimantă 3D. Probe Aflat la prima ediție, 18 echipe participante s-au putut întrece în cadrul celor patru probe:
1. 2. 3. 4.
Line Follower Enhanced; Line Follower Advanced; Labirint; Mini Sumo;
Pentru primele trei probe, echipa de organizare a pus la dispoziția concurenților proiectele tuturor traseelor finale, cu o săptămână înainte de la data care a fost programat evenimentul. De asemenea, special pentru Robot Olympics, au fost realizate o serie de obiecte specifice probelor (poduri, porți etc).
1. Line Follower Enhanced a. Descrierea probei Proba de Line Follower Enhanced presupune terminarea, într-un timp cât mai scurt, a unui traseu specific (Figura 1).
Proiect pod pivotant
b. Date traseu • Suprafața de joc este confecționată din lemn alb. • Traseul este marcat cu bandă izolieră, de culoare neagră, cu lățimea de 15mm. • Traseul nu conține intersecții. • Într-un loc al traseului, linia este Ü întreruptă pentru cel puțin 10cm. 25
Electronica Azi HOBBY • Februarie, 2015 • Nr. 1
Ü
Figura 1: Proiectul traseului de Line Follower Enhanced
26
ROBOTOLYMPICS • Pe traseu se plasează un obstacol (paralelipiped) ce trebuie ocolit. • Pe traseu există un pod pivotant. Linia neagră este continuă pe pod. • Punctul de start și sosire sunt marcate cu un chenar de 40cm × 30cm.
Electronica Azi HOBBY • Februarie, 2015 • Nr. 1
• Traseul este marcat cu bandă izolieră, de culoare neagră, cu o lățime de 15mm. • Există o porțiune de cel puțin 50cm (lungime) în care suprafața terenului este neagră, iar banda izolieră are culoarea albă. Trecerile de la zona
clasică a traseului (teren alb, bandă neagră) la această porțiune și viceversa se fac în linie dreaptă (minimum 15 cm înainte și după graniță). • Există un pod trapezoidal. Linia neagră este continuă pe pod.
c. Obiecte Pod Pivotant Podul pivotant utilizat în cadrul aceastei probe a fost confecționat din FOREX datorită rezistenței mecanice și a ușurinței cu care se prelucrează acest material. Pentru a facilita transportul și pentru a permite modificări ulterioare, fără a reface întreg obiectul, s-a urmărit o abordare cât mai modulară. 2. Line Follower Advanced a. Descrierea probei Proba de Line Follower Enhanced presupune terminarea, într-un timp cât mai scurt, a unui traseu specific, creat special pentru această competiție (Figura 2). b. Date traseu • Suprafața de joc este confecționată din lemn alb.
Proiectul podului trapezoidal
Ü
27
Electronica Azi HOBBY • Februarie, 2015 • Nr. 1
Ü
Figura 2: Proiectul traseului de Line Follower Advanced
28
ROBOTOLYMPICS
Electronica Azi HOBBY • Februarie, 2015 • Nr. 1
Ü
29
Electronica Azi HOBBY • Februarie, 2015 • Nr. 1
Figura 3: Proiectul labirintului
30
ROBOTOLYMPICS
Electronica Azi HOBBY • Februarie, 2015 • Nr. 1
• Traseul conține intersecții. • Într-un loc al traseului linia este întreruptă pentru maximum 10cm. Întreruperea nu este plasată într-o curbă. • Punctul de start și sosire este marcat printr-o poartă lată de 40cm.
3. Labirint a. Descrierea probei Proba de Labirint presupune ieșirea, întrun timp cât mai scurt, dintr-un labirint, creat special pentru această competiție. (Figura 3).
c. Obiecte Pod trapezoidal Podul trapezoidal utilizat în cadrul aceastei probe a fost confecționat din FOREX datorită rezistenței mecanice și a ușurinței cu care se prelucrează acest material.
b. Date traseu • Labirintul este montat pe un placaj din lemn alb. • Pereții labirintului sunt confecționați din polistiren de culoare deschisă, cu grosimea de 20mm. • Distanța minimă, între pereți: 25cm. • Înălțimea pereților: 20cm. • Zona de start: 10cm. • Zona de stop: 10cm. • Labirintul conține bucle (cicluri).
Pentru a facilita transportul și pentru a permite modificări ulterioare, fără a reface întreg obiectul, s-a urmărit o abordare cât mai modulară.
4. Mini Sumo a. Descrierea probei Proba de Mini Sumo presupune împingerea adversarului în afara spațiului de joc. b. Date teren • Dohyo-ul este reprezentat de un disc cu diametrul de 77cm pe a cărui circumferință se află o margine albă de 2.5cm. Înălțimea terenului este de 2.5cm. • Suprafața de joc este realizată din PAL negru. • Există o zonă de siguranță de 50cm, în jurul dohyo-ului. • Se acceptă abateri de maximum 5% la toate dimensiunile terenului. n
În urma concursului “Câştigaţi un calculator personal APC Paper de la TME!” organizat de distribuitorul de componente electronice Transfer Multisort Elektronik şi revista Electronica Azi, compania TME a hotărât premierea altor 9 participanţi la acest concurs cu câte un Speaker pentru telefoane, tablete sau laptopuri. Cei 9 câştigători aleşi prin tragere la sorţi sunt:
Andrei Banciu
Iosif Borcşa
Mircea Dolha
Florin Dughiri
Paul Dascălu
Victor Neamţu
Mihnea Pop
Doru Ursuţiu
Câştigător kit senzor pentru monitorizarea activităţii musculare v3 - de la TME. Lăcătuș Daniel, Berca, Buzău
Câştigător platformă RIoTboard de la Freescale Semiconductor. Cristian Păiuş, Bucureşti
Câştigător PICkit 3 Debug Express de la Microchip. Nicolae Fulger, Mioveni, Argeş
Câştigător placă Microstick pentru dsPIC33F şi PIC24H de la Microchip. Gheorghe Pintea, Braşov, Braşov
Attila Gyorffy
31