Placa de dezvoltare GroundStudio Jade Nano+ (review)

 Autor:   Publicat pe:    Niciun comentariu

GroundStudio este brandul sub care cei de la ArduShop produc și comercializează mai multe plăci de dezvoltare și module. Am achiziționat încă de la lansare câteva dintre acestea pentru a vedea cum se comportă. Placa de dezvoltare Jade Nano+ are un format similar cu Arduino Nano și este disponibilă pentru suma de 40 de lei (la momentul scrierii acestui articol).

Placa vine cu două barete de pini de 1 x 15 și una de 2 x 3 (conectorul ICSP). Acestea nu sunt lipite pe PCB-ul de 1,6 mm grosime, culoare mov. Spre deosebire de Arduino Nano, aceasta are conector USB tip C și un circuit integrat diferit pentru interfața USB-serial. Este vorba de HT42B534-2 de la Holtek, despre care se spune că implementează, pe lângă interfața CDC (port serial) și interfață HID (human interface device) ce permite configurarea ca dispozitiv particularizat, de exemplu mouse sau tastatură. Voi reveni asupra acestui aspect.

Jade Nano+ lângă o placă Nano compatibilă Arduino
Jade Nano+ lângă o placă Nano compatibilă Arduino

Extindere rețea folosind un access point wired

 Autor:   Publicat pe:    Niciun comentariu

Se întrevede adesea necesitatea extinderii rețelei de internet de acasă. Fie ai mai multe dispozitive conectate, fie semnalul de la router-ul principal este atenuat de pereți ducând la conexiuni instabile și de viteză mică. Modalități de extindere a rețelei sunt mai multe, dar în acest articol mă voi axa pe utilizarea unuia sau a mai multor puncte de acces conectate la router prin fir.

Acoperirea WiFi poate fi extinsă prin folosirea unui range extender. Acestea sunt dispozitive care se conectează wireless la rețeaua existentă și oferă astfel un punct de acces wireless suplimentar. Ușor de instalat și configurat, acestea au de obicei un singur port LAN (RJ45) pentru conectarea unui dispozitiv client. Există totuși un dezavantaj important la utilizarea lor: conectarea wireless la rețeaua WiFi existentă nu rezolvă problema semnalului. Chiar dacă dispozitivele ce se conectează la punctul de acces al range-extender-ului vor indica semnal bun, conexiunea dintre acesta din urmă și router-ul principal poate fi instabilă sau de viteză mai mică.

Extindere rețea folosind un access point wired

Senzor volumetric (alarmă deschidere ușă sau geam spart)

 Autor:   Publicat pe:    Niciun comentariu

Dispozitivul prezentat în continuare detectează mici variații în presiunea aerului dintr-o încăpere, datorate deschiderii unei uși sau spargerii unui geam dintr-o fereastră și activează un releu. Poate fi util atât în sisteme de alarmă, cât și pentru a automatiza un sistem de iluminare. Deși utilizează ca senzor un microfon uzual de tip electret, nu reacționează la sunet. Folosit ca alarmă, releul nu va fi acționat dacă se află cineva în cameră, spre deosebire de senzorii de mișcare de tip infraroșu sau cu ultrasunete, care trebuie dezactivați în această situație.

Am găsit acest circuit în revista de electronică Conex Club și am decis să îl realizez practic, fără a avea prea multe așteptări de la un senzor de presiunea atmosferică cu microfon. Circuitul este unul analogic, fără microprocesoare. Semnalul captat de microfon este amplificat și filtrat de amplificatoare operaționale, iar releul este controlat de două integrate de tip timer 555.

Senzorul volumetric construit

Senzorul volumetric construit

Afișare valori numerice pe display cu MAX7219

 Autor:   Publicat pe:    Niciun comentariu

MAX7219 este un controller pentru afișaje cu LED-uri în conexiune catod comun. Integratul este cunoscut mai ales datorită afișajelor matriciale 8x8, însă acesta poate controla la fel de bine și afișaje cu 7 segmente. Fiindcă vreau să construiesc un volt-ampermetru pentru o sursă de alimentare, am ales un afișaj cu 7 segmente și 8 caractere (digits) controlat de acest integrat. Conectarea la placa de dezvoltare este simplă, interfața fiind una serială de tip SPI, iar nivelele de tensiune sunt 5 V. Dar, partea de software nu este la fel de simplă, biblioteca LedControl pentru MAX7219 neavând funcții care să afișeze valori numerice de tipul float.

În acest articol voi realiza un montaj cu o placă de dezvoltare cu microcontroller ATmega328p care evaluează două intrări analogice și afișează tensiunea citită pe un afișaj cu 8 caractere controlat de MAX7219. Mai mult de atât, voi crea și câteva mesaje predefinite cu caractere ce pot fi afișate și pe afișaje cu 7 segmente.

Afișare valori numerice pe display cu MAX7219

Afișare valori numerice pe display cu MAX7219

Îmbunătățirea aspectului Arduino IDE

 Autor:   Publicat pe:    Niciun comentariu

Arduino IDE este mediul de dezvoltare oficial pentru plăcile Arduino dar și pentru multe alte platforme compatibile. Aspectul mediului de dezvoltare este mult simplificat, fără bare de unelte și panouri laterale ca alte IDE-uri. Această simplitate nu se rezumă doar la aspect. Unele funcții utile, cum ar fi auto-completarea unor cuvinte cheie lipsesc. Altele, cum ar fi numerotarea rândurilor de cod, sunt implicit dezactivate.

Actual, se află în dezvoltare o versiune modernă, îmbunătățită, numită Arduino Pro IDE. Se află încă în stadiul beta, iar până ce va fi lansată oficial, există câteva îmbunătățiri ce pot fi aduse mediului clasic de dezvoltare Arduino IDE. Vom vedea în această postare cum activează câteva funcții utile, dar și cum se schimbă tema și fontul editorului.

Arduino IDE cu temă de culoară întunecată

Arduino IDE cu temă de culoară întunecată

Termometru cu Arduino și ieșire... video

 Autor:   Publicat pe:    Niciun comentariu

Semnalul video analogic a fost înlocuit treptat cu cel digital care oferă o calitate și o rezoluție mai bune ale imaginii, fără perturbări. Astfel, dispozitivele de recepție a semnalului digital au devenit din ce în ce mai ușor de găsit și prețul lor a scăzut. Dar, generarea și modularea în radiofrecvență (RF) a unui semnal video digital (stream) este dificilă, necesitând echipamente costisitoare. În schimb, vechiul semnal video analogic este ușor de generat și poate fi modulat RF cu dispozitive simple. Modulatoare RF pot fi găsite în console de jocuri vechi, receptoare, playere VCR etc.

Un mod simplu de a genera semnalul video analogic este folosind un microcontroller. În continuare voi folosi o placă Arduino compatibilă împreună cu biblioteca TVout. ATmega 328p nu este foarte performant în acest scop, dar poate genera un semnal video alb-negru ce simulează un afișaj de 128x96 pixeli. Biblioteca folosește întreruperi, de aceea unele funcții ale microcontroller-ului nu pot fi folosite concomitent cu generarea semnalului video.

Termometru cu Arduino și ieșire video

Joc de lumini secvențiale cu NE555 și CD4017

 Autor:   Publicat pe:    Niciun comentariu

Utilizând circuitele integrate NE555 și CD4017, pot fi realizate aplicații variate, de la divertisment la utilizări în domeniul semnalizărilor diverse. În continuare este prezentat un circuit clasic care comandă un număr de până la 10 LED-uri, ce se aprind secvențial, unul după altul („lumină curgătoare”). Numărul LED-urilor poate fi redus, dacă este necesar. CD4017 are un pin de resetare, care este conectat la masă. Dacă se reconectează acest pin la una din ieșirile ce comandă LED-uri, secvența de aprindere ajunge până la acesta, apoi resetează integratul și o ia de la început.

Circuitul NE555 este configurat ca astabil de joasă frecvență. Frecvența este ajustabilă între anumite limite cu ajutorul unui rezistor semireglabil. R1, R2+RV1 și C2 determină frecvența de oscilație cuprinsă între 10 și 65 Hz (cu valorile din schemă). Poți calcula frecvența de oscilație a unui astabil cu NE555 folosind calculatorul de aici.

Joc de lumini secvențiale cu NE555 și CD4017

Construire suport multifeed pentru LNB-uri

 Autor:   Publicat pe:    Niciun comentariu

Chiar dacă o antenă de satelit este proiectată să recepționeze semnalul de la un singur satelit (poziție orbitală), adăugând LNB-uri suplimentare lângă cel central se pot recepționa sateliți aflați pe mai multe poziții orbitale relativ apropiate. Se realizează astfel un sistem de recepție multifeed. Acesta are avantaje și dezavantaje. Principalul avantaj față de un sistem motorizat este comutarea instantanee a canalelor de pe diferiți sateliți, fără a aștepta repoziționarea antenei. Dezavantajul este că semnalul recepționat de LNB-urile plasate în altă poziție decât focarul principal al antenei este mai slab. Totuși, performanțele sunt acceptabile cu antene de mici dimensiuni (90 cm).

Suporturi pentru mai multe LNB-uri se găsesc prin magazinele de specialitate. Multe dintre ele sunt proiectate pentru 2 sau 4 LNB-uri și nu permit prea multe ajustări, unele fiind specifice pentru o poziție orbitală. Vom încerca să construim un suport pentru LNB-uri și vom afla cum se calculează distanța dintre ele. Toate LNB-urile din sistemul de recepție trebuie să se afle la aceeași distanță de centrul antenei (distanța focală constantă) și trebuie să urmeze proiecția inversată a orbitei Clarke. Distanța focală este specifică antenei, iar proiecția orbitei depinde de diametrul antenei, locația în care se face recepția și sateliții aleși. Distanța dintre LNB-uri este proporțională cu diametrul antenei.

Sistem de recepție multifeed cu 8 LNB-uri

Sistem de recepție multifeed cu 8 LNB-uri (foto de Paul Lucas pe Flickr)

Acționare motoare pas cu pas cu Arduino (cod sursă)

 Autor:   Publicat pe:    Niciun comentariu

Motoarele pas cu pas sunt motoare fără perii care efectuează mișcări de rotație discrete în pași incrementali, spre deosebire de rotația continuă a unui motor electric obișnuit. Acest pot efectua un număr exact de pași, fiind construite din mai multe bobine alimentate într-o ordine specifică, de o secvență de impulsuri. Motoarele pas cu pas unipolare au două bobine, fiecare cu priză mediană. Aceste prize se conectează împreună la un pol al sursei de alimentare, iar cele patru terminale ale bobinelor sunt alimentate secvențial de driver (aceste motoare au minim 5 fire de conexiune). Celălalt tip de motor pas cu pas este motorul bipolar, cu două bobine, alimentate secvențial cu polaritate directă și apoi inversă (aceste motoare au 4 fire de conexiune).

Un driver cu tranzistoare pentru motoare pas cu pas unipolar și metode simple de generare a impulsurilor au fost prezentate în articolul anterior. Funcțiile de generare a impulsurilor din acel articol sunt mult prea simple și permit rotirea într-o singură direcție, în multipli de 4 pași. În acest articol voi exemplifica încă o dată modurile de acționare a bobinelor motoarelor pas cu pas și voi prezenta niște funcții care permit efectuarea de pași individuali și schimbarea direcției de rotație.

Acționare motoare pas cu pas cu Arduino (cod sursă)

Releu cu senzor (de lumină) construit cu module

 Autor:   Publicat pe:    Niciun comentariu

Popularitatea plăcilor de dezvoltare a dus la apariția a tot felul de module de expansiune pe care le poți conecta la acestea. Modul de conectare trebuie să fie unul simplu, și cum bareta de pini de 2,54 mm este folosită de majoritatea porturilor disponibile pe plăcile de dezvoltare cu microprocesor, au apărut firele de conexiune specifice (dupont). La rândul lor, modulele vin cu port prevăzut cu baretă de pini. Se găsesc module cu diverse funcții (senzori analogici, senzori digitali, LED-uri, afișaje și LCD-uri, relee, drivere, adaptoare de interfață). Unele nu pot fi utilizate decât cu un microprocesor, fiind prevăzute cu port de comunicație digitală.

Dar, există și module analogice care, deși pot fi conectate la o intrare sau ieșire a microprocesorului, nu au nevoie de acesta pentru a funcționa. În acest articol vom vedea cum poți acționa un releu cu un senzor. Nu doar un tip de senzor. Ambele dispozitive sunt de fapt module și vor fi interconectate direct, fără microprocesor. Vom analiza și schema electrică a acestor module.

Montaj cu senzor infraroșu pentru obstacole și releu

Montaj cu senzor infraroșu pentru obstacole și releu

Programatorul de memorii CH341A

 Autor:   Publicat pe:    Un comentariu

CH341A este un cip cu interfață USB și mai multe porturi: paralel, serial, I2C și SPI. Este utilizat de unele programatoare de memorii seriale (din seriile 24xx și 25xx). Unul dintre cele mai populare dispozitive, dar și printre cele mai ieftine, este programatorul negru „MiniProgrammer”. Vei afla în acest articol cum să instalezi și să utilizezi acest programator pentru rescrierea memoriilor cu interfață I2C și SPI. Acestea sunt utilizate pe scară largă la plăci de bază pentru stocarea firmware-ului BIOS, dar și la alte dispozitive pentru stocare firmware și configurări. Poți să restaurezi modul de funcționare după scrieri nereușite ale firmware-ului (în timpul operațiunilor de actualizare) folosind acest programator.

Deși a devenit foarte popular, programatorul negru are ceva probleme cu nivelurile de tensiune. Dacă l-ai achiziționat deja, îl poți modifica în sensul furnizării aceleiași tensiuni atât la alimentarea memoriei cât și pe interfața de comunicații. Vom vedea apoi cum instalezi driver-ele și se software folosești pentru comunicarea cu programatorul. În cele din urmă, vom vorbi despre adaptoarele pe care le poți adăuga acestuia.

Programatorul negru CH341A MiniProgrammer

Programatorul negru CH341A MiniProgrammer

Alimentator reglabil 0-30 V 1,5 A cu LM317

 Autor:   Publicat pe:    Niciun comentariu

O sursă de tensiune cu ieșire reglabilă este absolut necesară pentru oricine are de a face cu dispozitive și circuite electronice. LM317 este probabil cel mai folosit circuit integrat pentru construirea de surse liniare de alimentare. Acest integrat este folosit și aici. Tensiunea minimă de ieșire a lui LM317 nu poate fi mai mică de 1,25 V. Însă, următorul circuit folosește o sursă suplimentară de tensiune negativă, derivată din aceeași ieșire a transformatorului. Folosind tensiunea negativă, ieșirea poate fi coborâtă până la 0 V. Placa de circuit conține încă o sursă simplă, liniară, cu stabilizator fix. Scopul acesteia este de a alimenta un voltampermetru digital de panou sau un ventilator pentru răcire.

Alimentator reglabil 0-30 V 1,5 A cu LM317

Alimentatorul cu LM317 construit

Arduino: întreruperi în clase și funcții callback

 Autor:   Publicat pe:    Niciun comentariu

Arduino este o platformă de dezvoltare cu sursă deschisă, ușor de folosit, datorită limbajului de programare mult simplificat și a hardware-ului flexibil. Mediul de dezvoltare Arduino IDE vine cu biblioteci predefinite cu funcții ușor de înțeles pentru setarea și citirea stării pinilor, dar și pentru comunicarea cu diverse module folosind protocoale standard. Limbajul de programare nu este altceva decât C/C++.

Dacă ai în plan un proiect mai mare sau dacă îți creezi o bibliotecă pentru Arduino, vei ajunge să definești noi clase C/C++. O clasă este o extindere a conceptului de structură, care unește nu numai date și proprietăți, dar și funcții și metode care prelucrează aceste date. Spre deosebire de structuri, nu toți membrii claselor sunt accesibili din afara clasei. Controlul accesului se face folosind specificatorii de acces. Mai multe informații despre clase în programarea C/C++ poți găsi aici.

Arduino: întreruperi în clase și funcții callback

Server web securizat pe NodeMcu ESP8266

 Autor:   Publicat pe:    Niciun comentariu

NodeMcu este o placă de dezvoltare bazată pe platforma ESP8266. Acest microcontroller este destinat utilizării în aplicații IoT, fiind dotat cu conectivitate WiFi. În articolele anterioare am arătat că plăcile de dezvoltare cu acest cip pot fi programate în mediul de dezvoltare Arduino și am creat un server web simplu.

În ziua de astăzi, securitatea este foarte importantă. Poate vei folosi ESP8266 doar în rețeaua locală sau poate vei permite accesul la serverul ce rulează pe acesta din exterior. În ambele situații, utilizarea de conexiuni securizate este importantă. În ultimii ani majoritatea site-urilor web au trecut de la protocolul standard HTTP la cel securizat, HTTPS. Pentru a putea oferi conținut securizat, serverul trebuie să prezinte clientului un certificat semnat de o autoritate emitentă de încredere. Certificatele au valabilitate limitată.

Server web securizat pe NodeMcu ESP8266

Utilizarea testerului de componente GM328A

 Autor:   Publicat pe:    4 comentarii

Testerul GM328A este un dispozitiv proiectat pentru identificarea pinilor și măsurarea caracteristicilor tranzistoarelor. Este bazat pe un microcontroller ATmega328. Ideea unui tester de tranzistori a apărut într-un articol publicat de Markus Frejek în 2013 (în Embedded Projects Journal Ausgabe 11, paginile 16-17). Karl-Heinz Kübbler a îmbunătățit software-ul acestui dispozitiv și a adăugat funcții suplimentare pentru măsurarea caracteristicilor altor componente electronice. Dispozitivul a devenit popular, în prezent găsindu-se la magazine sub formă de kit sau deja asamblat. Există mai multe variante comerciale: LCR-T3, LCR-T4, WEI_M8, GM328, GM328A.

Software-ul este foarte versatil și poate rula pe mai multe microcontroller-e din familia ATmega. Îți poți construi și singur acest dispozitiv, folosind o placă de dezvoltare cu procesor ATmega, un afișaj și câteva componente. Totuși, microcontroller-ul testerului rulează la frecvența de 8 MHz față de frecvența 16 MHz utilizată de majoritatea plăcilor Arduino sau similare, deci ar fi nevoie de modificarea plăcii. Așa că am ales versiunea GM328A preasamblată a dispozitivului pentru că folosește un microcontroller cu memorie flash de 32 kbytes (mai multe funcții disponibile) și pentru că poate genera semnale PWM, poate măsura tensiune și frecvență.

Testerul de tranzistori GM328A

Corector de ton stereo cu tranzistori

 Autor:   Publicat pe:    2 comentarii

Corectorul de ton este un circuit adăugat înaintea unui amplificator audio de putere. Acesta permite utilizatorului să ajusteze amplificarea specifică a unor frecvențe din spectrul audio. Corectoarele de ton pot fi simple circuite de accentuare a frecvențelor joase sau egalizatoare complexe. Circuitul prezentat aici este unul simplu, cu un potențiometru care acționează pe frecvențele din treimea inferioară a spectrului audio (modificare bass) și unul care acționează pe frecvențe din treimea superioară (modificare treble).

Schema nu conține și potențiometrul de volum, dar acesta poate fi adăugat ușor înaintea intrării corectorului. Se recomandă ca nivelul semnalului la intrare să nu depășească 1 Vp-p (nivelul standard oferit de majoritatea surselor audio). Când ambele potențiometre au cursorul la jumătatea cursei, circuitul atenuează ușor semnalul (-1...-2 dB). Astfel, cu o intrare de 1 Vp-p, ieșirea nu va fi mai mică de 0,8 Vp-p.

Corector de ton stereo cu tranzistori

Corectorul de ton constuit pe placa de circuit

Senzorii de temperatură și umiditate DHT11 și DHT22

 Autor:   Publicat pe:    Niciun comentariu

DHT11 și DHT22 sunt senzori integrați de temperatură și umiditate. Conțin un termistor, un transductor capacitiv și un microcontroller (MCU) care realizează conversia analog - digitală și trimite printr-un protocol serial valoarea parametrilor măsurați. Protocolul este unul specific, dar ușor de implementat în software. Cei doi senzori sunt similari și au aceeași pini. Vom vedea în acest articol cum putem determina acești senzori să trimită date către placa de dezvoltare și cum putem prelucra aceste date.

Totuși, DHT22 (cunoscut ca și AM2302) este versiunea mai performantă. Ambele versiuni se alimentează la tensiuni cuprinse între 3,3 și 5 V, deci nu sunt probleme de conectare la plăcile de dezvoltare uzuale. Spre deosebire de DHT11, care are o acuratețe de 5% RH pentru umiditate, respectiv 2 grade Celsius pentru temperatură, AM2302 este mai performant, cu o acuratețe de 2% RH, respectiv 0,5 grade Celsius. Dezavantajul acestuia din urmă este că citirea parametrilor se poate face o dată la 2 secunde (este mai lent), pe când DHT11 poate fi citit la fiecare secundă. De asemenea, prețul lui DHT22 este mai mare.

Module cu senzor DHT11 (stânga) și AM2302/DHT22 (dreapta)

Module cu senzor DHT11 (stânga) și AM2302/DHT22 (dreapta)

Programare placă STM32 bluepill în Arduino IDE

 Autor:   Publicat pe:    Niciun comentariu

Blue pill este o placă de dezvoltare cu microcontroller STM32F103. Deși nu este la fel de populară ca Arduino, este mai ieftină și mai performantă. STM32F103 conține un procesor ARM Cortex-M3 ce poate lucra la frecvența maximă de 72 MHz. Mai conține 20 kbyți de memorie RAM și 64 sau 128 kbyți de memorie flash. Are port USB nativ, două porturi seriale, generator PWM pe 16 biți și convertor AD pe 12 biți. Față de Arduino, funcționează la 3,3 V. Totuși, câțiva pini tolerează tensiuni de 5 V.

Programarea plăcii folosind kitul de dezvoltare oficial este dificilă pentru începători. Dar, există posibilitatea programării în mediul Arduino. Înainte de toate, suportul pentru această placă trebuie instalat în Arduino IDE. Dacă vei folosi portul micro USB pentru programare, un bootloader trebuie scris înainte în memoria plăcii. Acest lucru se poate face cu programatorul specific ST-Link sau cu un adaptor USB-serial la 3,3 V. Atât scrierea bootloader-ului, cât și încărcarea ulterioară a schițelor se pot face cu ajutorul acestor dispozitive suplimentare.

Set up STM32 "blue pill" for Arduino IDE

Măsurare presiune atmosferică cu senzor BMP280

 Autor:   Publicat pe:    Niciun comentariu

BMP280 este un senzor digital de presiune atmosferică proiectat pentru dispozitive mobile. Senzorul are o capsulă foarte mică, de numai 2 x 2,5 milimetri. Conectarea la o placă de dezvoltare ar fi foarte dificilă, dacă nu ar exista module cu barete de pini standard. O altă problemă este că tensiunea nominală de alimentare a senzorului este de 1,8 V. Totuși, suportă tensiuni de 3,3 V. BMP280 măsoară presiunea atmosferică și temperatura. Știind că există o corelație între presiune și altitudine, pe aceasta din urmă o putem calcula.

Până la urmă am conectat senzorul la o placă de dezvoltare pe 5 V din cauza display-ului. Am trei valori de afișat, așa că am utilizat un afișaj grafic cu controller ST7920, în locul unuia alfanumeric. Deși acesta poate funcționa la 3,3 V, modul în care este configurat din fabricație nu permite setarea contrastului suficient de bună la 3,3 V. Display-ul este conectat prin interfață SPI, deci numai 4 fire sunt folosite (3 pentru SPI și unul pentru reset). BMP280 suportă atât interfață SPI cât și I2C. Deoarece singurul convertor de nivel pe care îl am este unul construit de mine pentru I2C, am ales această interfață pentru senzor.

Senzorul BMP280 pe placa de test

Senzorul BMP280 pe placa de test

KiCad: desenare simboluri componente

 Autor:   Publicat pe:    Niciun comentariu

KiCad reprezintă o suită de aplicații gratuite și cu sursă deschisă pentru desenarea de scheme electronice și proiectarea de circuite imprimate. Este una din puținele suite de acest tip oferită gratuit și fără limitări. Mai mult de atât, rulează pe toate sistemele de operare (Windows, Linux, Mac). KiCad nu vine cu limitări în ceea ce privește dimensiunea circuitului imprimat. Numărul maxim de straturi este 32 pentru conexiunile electrice.

Chiar dacă există o bibliotecă vastă de simboluri de componente în KiCad, uneori va trebui să creezi propriile simboluri. Despre asta vom discuta în acest articol. Voi desena mai multe simboluri pentru a evidenția niște aspecte ale proiectării de simboluri în KiCad.