Dom

Kontrola električnih krugova putem usb-a. Upravljanje uređajem preko USB porta računala - Hardver - Računalo i elektronika za njega!!! Potpuna kontrola nad opremom spojenom na USB

Računalni upravljački uređaj za razne uređaje, dijagram koji je prikazan na sl. 1 priključuje se na USB priključak računala, koji danas postoji u svakom od njih. Jedini čip uređaja je uobičajeni mikrokontroler ATmega8. Neophodan je za organizaciju komunikacije u autobusu USB. Iako nema specijalizirani hardverski modul, ovu funkciju obavlja softver.

Slika 1

Otpornik R1, spojen između pozitivnog izlaza napajanja i USB D-bus linije, stavlja ga u LS mod niske brzine s brzinom razmjene od 1,5 Mbps, što vam omogućuje programsko dešifriranje računalnih poruka. Otpornici R4 i R5 eliminiraju prijelazne pojave koje nastaju tijekom razmjene informacija, što povećava stabilnost rada. Kondenzator C1 blokira impulsni šum u strujnom krugu, što također poboljšava stabilnost uređaja. Diode VD1 i VD2 služe za snižavanje napona napajanja mikrokontrolera na približno 3,6 V - to je potrebno za usklađivanje razina s USB sabirnicom.

Upravljački signali uređaja generiraju se na izlazima PB0-PB5 i PC0, PC1 mikrokontrolera. Visoka logička razina - napon je oko 3,4 V. Napon niske razine je blizu nule. Izlazi se mogu spojiti na uređaje koji troše struju ne veću od 10 mA (iz svakog izlaza). Ako su potrebne velike vrijednosti struje ili napona, tada se trebaju koristiti odgovarajući čvorovi.

Uređaj je sastavljen na prototipnoj ploči, tiskana pločica nije razvijena Korišteni su MLT otpornici, kondenzatori C2 i C3 - visokofrekventni keramički kondenzatori, C1 - K50-35 ili slični uvozni. Silicijske diode s padom napona na spoju od oko 0,7 V.

Program za mikrokontroler razvijen je u okruženju Bascom AVR verzije 1.12.0.0. Knjižnica je radila s USB sabirnicom swusb.LBX, koji izvodi softversko dekodiranje USB signala u stvarnom vremenu. Programski kod dobiven kao rezultat kompilacije iz datoteke s ekstenzijom HEX treba učitati u FLASH memoriju mikrokontrolera. Stanje konfiguracijskih bitova mikrokontrolera mora odgovarati onom prikazanom na sl. 2.

Slika 2

Kada prvi put povežete uređaj s računalom, operativni sustav će otkriti novi USB HID kompatibilan uređaj pod nazivom " uniUSB" i instalirajte potrebne upravljačke programe. U nekoliko sekundi uređaj je konfiguriran i spreman za upotrebu. Program UniUSB stvoren je za rad s njim. Predstavljen je u dvije verzije: za 32-bitni (x86) i 64-bitni ( x64) operativni sustavi obitelji Windows 32-bitna verzija je testirana na Windows 98, Windows XP, Windows 7, a 64-bitna verzija je testirana samo na Windows XP x64.

Program UniUSB napisano jezikom PureBasic(verzija 4.31) koristeći knjižnicu korisnički definiranih funkcija HID_Lib podržavajući rad sa USB HID uređaja. Izgled prozora programa prikazan je na sl. 3.

Slika 3

U istoj mapi u kojoj je njegova izvršna datoteka, trebala bi se nalaziti datoteka pod nazivom UniUSB_KOfl.txt. Ova datoteka pohranjuje skriptu za kontrolu vanjskih uređaja. Kada se program pokrene, podaci iz datoteke se učitavaju u tablicu koja se nalazi u glavnom prozoru, a po završetku rada pohranjuju se u datoteku. Klikom lijevog gumba miša na ćelije tablice možete promijeniti njihovo stanje: 1 - visoka logička razina, 0 ili prazno - niska logička razina.

Da biste dodali ili uklonili stupac tablice, desnom tipkom miša kliknite na njega i odaberite potrebnu radnju iz izbornika koji se pojavi. Kada spojite uređaj na USB priključak, program će ga detektirati i aktivirati gumb "Start" koji se nalazi na vrhu prozora na alatnoj traci. Pritiskom na ovaj gumb pokreće se proces iteracije kroz stupce tablice i postavljanja stanja izlaza naznačenih u njima. Radi veće jasnoće, brojevi izlaza koji su trenutno postavljeni na visoku logičku razinu istaknuti su lijevo od tablice. Brzina pretraživanja (vrijeme u milisekundama između prijelaza iz stupca u stupac) postavljena je u polju "Brzina, ms".

Imajte na umu da je operativni sustav Windows multitasking! To znači da se procesorsko vrijeme dijeli na mnoge procese, ponekad skrivene od korisnika, koji se redom izvršavaju, uzimajući u obzir prioritete postavljene u sustavu. Stoga ne treba očekivati ​​veliku točnost u održavanju vremenskih intervala manjih od 100 ms.

Da biste nakratko zaustavili ponavljanje kroz stupce, koristite gumb "Pauza". Ponovnim pritiskom iteracija će se nastaviti od mjesta gdje je stala. Gumb "Zaustavi" potpuno zaustavlja ponavljanje po stupcima tablice. Ako komunikacija između računala i uređaja ne uspije ili se uređaj odvoji od USB konektora računala, program će prijaviti pogrešku prikazivanjem odgovarajuće poruke u statusnoj traci.

Izvor: Radio broj 2, 2011

13-01-2014

ATiny2313

Zakharov Denis, Ukrajina

Kao što znate, postoji dovoljan broj sučelja preko kojih mikrokontroler (MC) može komunicirati s vanjskim uređajima. Ako trebate spojiti MK na osobno računalo ili prijenosno računalo, tada možemo s pouzdanjem reći da je najbolje koristiti RS-232 COM port sučelje.

Razlog za ovaj izbor je očit - gotovo svi kontroleri imaju UART hardverske module, s kojima možete prenositi informacije uz minimalnu potrošnju MK resursa. Osim toga, postoji mnogo dobro uspostavljenih programa dizajniranih za rad s COM priključkom. Budući da MK signali imaju TTL razine, potreban je pretvarač razine koji odgovara RS-232 sučelju. Često se izvodi na temelju pristupačnog i popularnog MAX232 čipa.

Slika 1.

Predstavljeni uređaj (slika 1) dizajniran je za upravljanje uređajima pomoću bilo kojeg osobnog računala s USB priključkom. Moderna računala i prijenosna računala imaju nekoliko ovih priključaka. Uz pomoć ovog kompleksa možete kontrolirati svjetlo, TV i druge uređaje. Izvršni uređaji ne moraju biti u neposrednoj blizini računala.

Uređaj se sastoji od prilično pristupačnih i uobičajenih elemenata. Oba mikrosklopa su ATtiny2313 mikrokontroleri . Prvi kontroler spojen je na USB priključak računala i funkcionira kao pretvarač USB-COM formata. Drugi se povezuje s prvim i skenira sve vremenske naredbe koje se šalju s računala preko terminalskog programa Terminal v1.9b.

Otpornik R4 spojen na USB pin 2 stavlja uređaj u LS način rada niske brzine, što omogućuje dekodiranje poruka s računala prilikom razmjene podataka brzinom od 1,5 Mbps pomoću programa.

Uz pomoć otpornika R2 i R3 eliminiraju se prijelazni pojavi. Kondenzator C5 blokira impulsni šum u strujnom krugu. Zener diode D1 i D2 potrebne su za usklađivanje logičkih razina MK i USB ulaza računala. Za besprijekoran prijenos podataka između kontrolera, frekvencije kvarcnih rezonatora moraju biti jednake 12 i 4 MHz.
Pull-up otpornike treba spojiti na /RESET pinove kako bi se izbjeglo proizvoljno resetiranje MK u budućnosti zbog utjecaja smetnji i statičkih napona. U ovoj se shemi sve naredbe prikazuju na LED diodama spojenim na priključak B. Za upravljanje bilo kojim uređajem potrebno je spojiti izlaze kontrolera na relej (slika 2).

Uređaj možete sastaviti na matičnoj ploči, iako je bolje, ipak, na punopravnoj tiskanoj ploči. Elementi se mogu postaviti, na primjer, kao što je prikazano na slici 3.

Program za mikrokontroler U1 razvio je GetChiper u okruženju Bascom-AVR. Knjižnica je radila s USB sabirnicom swusb.LBX. Uz njegovu pomoć, softversko dekodiranje USB protokola izvodi se u stvarnom vremenu. Da bi uređaj radio s računalom, morate instalirati odgovarajuće upravljačke programe tako da ih kopirate na tvrdi disk. Kada se prvi put povežete, uređaj će biti prepoznat i zatražit će upravljački program. Zatim morate navesti put do mape s datotekama i sve će raditi.

Program za mikrokontroler U2 sam napisao u okruženju AVRStudio u asemblerskom jeziku. Blok dijagram algoritma rada MC prikazan je na slici 4. UART hardverski modul bi trebao biti konfiguriran za prekid kada se primi podatak. Sam MK neće obavljati nikakvu funkciju dok se ne dogodi prekid. Da biste smanjili potrošnju energije, možete koristiti način mirovanja, ali u ovom dizajnu to nije bilo potrebno učiniti. Čim uslijede naredbe s PC terminala, MK će odmah prijeći na njihovo skeniranje. Kontroler trenutno podržava sljedeći sustav naredbi:

-na1, na2, na3, na4, na5, na6, na7, na8- naredbe za postavljanje portova u "log. jedan";
-isključeno1, isključeno2, isključeno3, isključeno4, isključeno5, isključeno6, isključeno7, isključeno8- naredbe za postavljanje portova u "log. 0";
-ser - postavlja sve portove u aktivno stanje "log. jedan";
-clr- resetirati sve portove u stanje "log.0".

Nakon što završite s unosom svake naredbe, pritisnite Enter. Tako će MK moći odrediti kraj naredbe i početi je skenirati. Za svaku ispravnu naredbu, kontroler će odgovoriti s "ok". Ako unesete netočne podatke, tada će se "greška" vratiti na liniju terminala. Primjer izvođenja naredbe prikazan je na slici 5.

Verzija firmvera 1.0. Osigurače je potrebno namjestiti prema slici 6. U tijeku je izrada sljedeće verzije firmware-a gdje će se odvijati samoučenje MC-a i mijenjanje komandnih sustava u terminalu.

MK softver, Proteus virtualni model i PC driver -
Protokol prijenosa podataka između MK i računala - preuzimanje

  • .... zapravo, želio bih vidjeti vezu između USB porta jednog računala i COM porta drugog ... ili LPT porta trećeg ...
  • Hvala vam! Tipkarska greška ispravljena :)
  • Zašto koristiti 2 MK? Ima li Attiny2313 malu bljeskalicu? Ili jednostavno nema dovoljno I/O portova? Onda u redu, možete vidjeti da USB visi na INT0 / INT1.
  • Otpor zavojnica releja male snage je u području od 100-200 Ohma, ne uzimajući u obzir zasićeni tranzistor (ovo nije starter, a ne kontaktor). Dakle, 50-200 mA neće se bojati prikladnog ključa. Materijal je vrlo zanimljiv u smislu vezivanja MK na USB bez ikakvih čipova sučelja i bez prisustva hardverskog USB-a u MK strukturi. Ali s obzirom na ciljeve izvornog izvora http://www.recursion.jp/avrcdc/cdc-232.html, jedan od dva MK-a i dalje obavlja funkcije USB-COM pretvarača. I vrlo jeftin pretvarač, što svakako veseli.
  • Evo jednog zanimljivog građanina uhvaćenog s "plemenitim manirima", sudeći po nadimku. O kakvim ekstremima govorimo? Čini se da materijal niti ne spominje tip releja ili tranzistora. A ako se relej napaja preko 5V USB-a, onda bih, naravno, želio smanjiti potrošnju s hosta na računalu. To se može postići optokaplerima i dodatnim napajanjem releja sa strane opterećenja, što komplicira sklop. Ili još par opcija. Je li naglasak u članku na optimizaciji? Autor je postigao svoj cilj i čini pravu stvar što nije izdvojio određeni honorar. Za onoga tko će ponoviti, ovaj čvor je dovoljan.
  • Da, članak je još uvijek isti ... ali isplati li se opsitatsya? I ja sam htio nešto prokomentirati čim sam pročitao, pa tako i diodu. Ali ovdje ne možete biti anonimni. Zato je autor AVR-CDC? Nisam primijetio da se negdje u krugu koriste signali DTR, DTS, RTS, CTS. V-USB nije dovoljan? Gore je već napisano o dvije "cigle" - jedna bi bila dovoljna. A o diodi je već popravljeno, hvala Budi! Dioda je potrebna za zaštitu tranzistora od naponskog impulsa samoindukcije namota releja, u trenutku otvaranja struje. Evo, usput, sjetio sam se jedne implementacije. Članak je bio u Radio magazinu, ali sam ga našao i na internetu, možete ga pogledati ako vas zanima.

Računalo, neki dijelovi, alati, svatko može organizirati jednostavno upravljanje kućanskim aparatima s ovog računala. Mnogi uređaji koji se koriste u svakodnevnom životu imaju mnoge funkcije, na primjer, većina modernih televizora može prikazati više različitih kanala, ventilator može. više različitih načina rada itd. Za tako složenu kontrolu kao što je npr. prebacivanje kanala ili modova rada, osim navedenog trebat će vam i dodatna znanja, dijelovi i alati, ali svatko tko to ima može napraviti jednostavno uključivanje i isključivanje. Arduino komunicira s računalom putem USB priključka, prijenos informacija s računala na Arduino može se izvršiti kroz razvojno okruženje za Arduino (zvano Arduino IDE) koje se može preuzeti sa stranice na službenoj Arduino stranici. Postoji mnogo različitih modula za interakciju Arduina s vanjskim svijetom, na primjer, poseban modul s relejnim blokom za prebacivanje opterećenja, korištenje takvih modula uvelike pojednostavljuje rad, ovdje ćemo razmotriti neovisnu proizvodnju modula s jednim relejem za uključivanje/isključivanje kućanskih aparata, po potrebi možete napraviti više od jednog takvog modula i koristiti ih s jednim Arduinom te tako omogućiti jednostavno upravljanje mnogim kućanskim aparatima. Arduino (bilo koji) ima niz pinova opće namjene koji su označeni na ploči jednostavno brojevima ili brojevima s valovitim znakom "~". Spajanjem Arduina na računalo i upisivanjem posebne skice (programa za Arduino) u njega (u Arduinu), možete upravljati ovim pinovima s ovog računala kroz "Arduino IDE" program tako što ćete im napraviti visok napon (oko + 5V (VISOKO) ) ili nizak (oko 0 V). (NISKO)). Također na Arduinu postoji pin "GND" (označen je na ploči). Ako postoji visok napon na jednom od izlaza opće namjene, tada spajanjem nečega što provodi struju između ovog izlaza i "GND" izlaza, električna struja će teći kroz ono što je spojeno, a vrijednost te struje ovisit će o otpornost ovog objekta i može se izračunati prema Ohmovom zakonu, tj. što je manji otpor, veća je struja, ali ako je otpor premali, previše struje će teći kroz Arduino i on će pregorjeti. Maksimalna struja koju Arduino izlaz opće namjene može proizvesti može varirati ovisno o mikrokontroleru koji se u njemu koristi, ali obično je 40 mA \u003d 0,04 A - to možda neće biti dovoljno za uključivanje releja koji će uključiti uređaj (uređaje) tako da morate koristiti dodatni za pojačanje struje element kao što je bipolarni tranzistor. Bipolarni tranzistor ima tri izvoda: emiter, kolektor i bazu. Maksimalna struja tranzistora je također ograničena kao kod Arduina i obično je veća, npr. popularni KT315 ima maksimalnu struju od 100mA = 0,1A. Bipolarni tranzistori su dvije vrste n-p-n i p-n-p, možete koristiti obje vrste, ali na različite načine, a zatim ćemo razmotriti korištenje KT315 tranzistora čiji je tip n-p-n. Da bi tranzistor pojačao struju iz Arduina, potrebno je njegovu bazu spojiti na izlaz Arduina PREKO OTPORNA otpora 1kΩ (na otporniku može pisati 1k), emiter ovog tranzistora je spojen na "GND" Arduina i minus napajanja ili "GND" izvora napajanja čiji je napon jednak naponu postojećeg namota releja (recimo 12V) spojite jedan od izlaza namota releja na kolektor tranzistora, drugi s plusom izvora napajanja (dozvoljeno je +12V) i još jedan koji ne utječe na pojačanje, ali JAKO bitan detalj je dioda koju je potrebno spojiti anodom na kolektor i katoda na plus napajanje (+12V). Ako je dioda uvezena, tada će najvjerojatnije na njenom kućištu biti svjetlosna traka - označava katodu, drugi terminal diode je anoda. Preostali izlazi releja su izlazi njegovih kontakata, ako ih ima dva i nisu zatvoreni, tada kada se na namot releja primijeni dovoljna struja, ti će se kontakti zatvoriti, moraju biti spojeni u seriju s uređajem i to serijski priključak može se uključiti u utičnicu, a zatim kada su kontakti zatvoreni, uređaj će dobiti 220V i uključit će se. Gore navedeno može se prikazati na slici:

Slika 1 - Upravljanje instrumentom s računala


Ovo je nestandardna shema za bolje razumijevanje, obično se koriste sljedeće sheme:

Slika 2 - Upravljanje uređajem s računala


Iako u ovoj shemi postoji i nestandardna oznaka Arduino ploče. Slika označava Arduino UNO (može se naručiti s ovog linka http://ali.pub/1v22bh), ali možete koristiti bilo koji drugi. Veze se mogu izvesti, na primjer, na matičnoj ploči i žicama ili lemljenjem. Nakon što je sve ispravno spojeno i provjereno, možete spojiti Arduino putem USB-a na računalo i učitati skicu na njega:

Znak pc_code=0;

Postavljanje praznine()
{
pinMode(2, IZLAZ);
Serial.begin(9600);
}

Prazna petlja()
{
if(Serial.available() > 0)
{
pc_code = Serial.read();
if(pc_code=="a")
{
digitalWrite(2, HIGH);
}
else if(pc_code=="b")
{
digitalWrite(2, LOW);
}
}
}

Kako pravilno konfigurirati Arduino i uploadati skicu na njega već je opisano na stranici "Jednostavno upravljanje koračnim motorom s računala putem arduina". Zatim, da biste uključili uređaj, trebate poslati simbol "a" na Arduino, da biste isključili simbol "b". Kako biste poslali simbol u arduino, možete u Arduino IDE-u otići na karticu Tools-Serial Monitor i u prozoru koji se pojavi u gornjem tekstualnom polju unijeti simbole i poslati pritiskom na gumb "pošalji", simbol će doći u arduino i za ovaj slučaj ako pošaljete simbol "a" tada će se uređaj uključiti, ako "b" onda se u skladu s tim isključiti. Ako Arduino ne prihvaća znakove, tada trebate postaviti istu brzinu u donjem desnom kutu prozora monitora serijskog porta kao što je navedeno na skici, tj. 9600 bauda Da biste uključili 2 uređaja, možete malo promijeniti skicu:

Znak pc_code=0;

Postavljanje praznine()
{
pinMode(2, IZLAZ);
pinMode(3, IZLAZ);
Serial.begin(9600);
}

Prazna petlja()
{
if(Serial.available() > 0)
{
pc_code = Serial.read();
if(pc_code=="a")
{
digitalWrite(2, HIGH);
}
else if(pc_code=="b")
{
digitalWrite(2, LOW);
}
else if(pc_code=="c")
{
digitalWrite(3, HIGH);
}
else if(pc_code=="d")
{
digitalWrite(3, LOW);

Sklop se temelji na registrima posmaka 74hc595, kojima upravlja mikrokontroler PIC18F252. Izlazi sklopa su logični, tj. log "1" ili log. "0". Niske su snage nye, dakle, potrebna su pojačala (tipke) za upravljanje nekim uređajima. Ne zaboravite na galvansku izolaciju kontroliranih uređaja s krugom! Upravljač se kontrolira putem USART protokola izravno s računala. Dolje se raspravlja o metodama za implementaciju protokola.

Razmotrimo dva načina za dobivanje USART-a.

1., najlakši način:
Ovo je pretvarač razine RS232 u USART. Dijagram koji je prikazan u nastavku.

Mislim da se tu nema što reći. 7.8 pinovi su spojeni na COM port računala, a 9.10 na glavni krug uređaja.

2. način: USB u COM pretvarač

Gotovo sva nova računala nemaju serijski COM port, a većina stare opreme radi preko ovog sučelja, tzv. RS232. USB serijska sabirnica pojavila se na novim računalima, ali je komunikacijski protokol preko USB-a kompliciraniji nego preko RS232.
Zahvaljujući razvoju engleske tvrtke FTDI (Future Technology Devices International), postalo je moguće pretvoriti USB u "virtualni" serijski priključak, s kojim se razmjena podataka provodi uobičajenim poznatim metodama.

Ovaj pretvarač USB u COM sučelje dizajniran je za povezivanje modema, skenera, razne mjerne opreme na USB sabirnicu, tj. zapravo, svaki uređaj koji je prethodno koristio RS-232 sučelje. Štoviše, korisnik ne treba nikakvo znanje o uređaju i radu USB-a. Softverski upravljački programi koje isporučuje FTDI ostavljaju dojam da komunikacija ide kroz uobičajeni COM port. Naravno, to vrijedi samo ako softver koristi COM port u standardnom načinu rada.
Shematski dijagram pretvarača sučelja prikazan je na slici. Njegova osnova - čip DD1 FT232BM uključen je prema standardnoj shemi koju preporučuje proizvođač.

DD2 AT93C46 EEPROM čip se može izostaviti. Pohranjuje identifikatore proizvođača (VID) i osobne (PID), serijski broj proizvoda i druge podatke. Ovo je potrebno ako je nekoliko uređaja temeljenih na FT232BM čipovima istovremeno spojeno na računalo putem USB-a. Serijski broj je posebno važan, budući da se softverski upravljački program oslanja na svoju jedinstvenost, povezujući jedan ili drugi virtualni COM port s određenim uređajem. Ako nema ROM-a, na računalo se može spojiti samo jedan uređaj koji čini virtualni COM port. Umjesto AT93C46, možete koristiti AT93C56 ili AT93C66. ROM se programira izravno u uređaju pomoću posebnog uslužnog programa koji isporučuje FTDI.

Malo sam skratio shemu i to ovako. Napajanje iz općeg kruga uređaja.


RX i TX pinovi na glavni krug uređaja. Upravljački program za ovaj MS može se preuzeti u uredu. mjesto za određeni OS.

Rad uređaja je dvosmjerna komunikacija s računalom brzinom od 115200 Kbps. s provjerom kontrolne sume naredbe. Oni. pogrešan prijenos podataka je isključen. Kada se program pokrene, ispituje prisutnost povezanog uređaja, a ako se pronađe ili izgubi tijekom procesa, program će vas obavijestiti.

Ovim uređajem upravlja program koji sam posebno napisao i nalazi se u arhivi. U principu, program je, takoreći, demonstracijski program, može kontrolirati samo izlaze. Dakle za individualni program, za konkretan slučaj, obratite nam se.



Što još čitati