Cum se face un conector USB. Creăm cel mai simplu dispozitiv USB pentru comunicarea cu programul nostru. Organizam conectarea automata a dispozitivului

Când au apărut casetofonele și CD playerele, mașinile au început să fie echipate cu radiouri auto. Dar odată cu dezvoltarea electronicelor radio, au apărut unitățile flash USB, care au înlocuit complet alte medii. Nu ocupă mult spațiu, puteți înregistra un număr mare de fișiere muzicale pe ele, în timp ce în timpul călătoriei muzica nu va fi întreruptă de conducerea off-road. Cum să faci un port USB (adaptor) pentru casetofone radio obișnuite cu propriile mâini este descris în acest articol.

[Ascunde]

Ghid despre cum să faci o intrare USB în radioul auto

Aproape toate mașinile moderne sunt echipate cu un radio auto. Mulți șoferi nu doresc să-l schimbe cu un nou dispozitiv chinezesc pentru a obține o intrare USB. Pentru a putea asculta muzică de pe o unitate flash USB, trebuie să conectați un adaptor USB la unitatea principală (autorul videoclipului este oleg ko).

Pregătirea

Nu va dura mult timp, dar trebuie să aveți cunoștințe de inginerie radio și să puteți utiliza un fier de lipit. În primul rând, trebuie să achiziționați un player MP3 care poate citi unități flash și carduri de memorie. Este important să aibă o ieșire pentru căști. Acest lucru este necesar pentru a putea capta semnalul audio.

Puteți folosi trimmerul FM, care este echipat cu o ieșire audio. Avantajul mașinii de tuns este că vine cu telecomandă.


Etape

După ce ați cumpărat un dispozitiv potrivit cu o ieșire audio și după ce ați pregătit instrumentele necesare, vă puteți pune la treabă.

Conexiunea constă din următorii pași:

  1. Scoatem dispozitivul și scoatem mecanismul unității de bandă sau unitatea CD din acesta.
  2. Lipim firul de alimentare pozitiv de la player la contactul radio. După pornire, ar trebui să apară o tensiune de 9 sau 12 V.
  3. Pentru un player MP3, trebuie să includeți un convertor de tensiune de la 12 volți la 5 volți în circuit. Trimmer-ul are încorporat.
  4. Pentru a conecta sunetul, trebuie să luați un fir ecranat și să îl conectați la ieșirea audio a playerului. Dacă nu există un astfel de fir, atunci trebuie să găsiți un preamplificator pe placă, la el se duce firul de care avem nevoie.
  5. Găsim ieșirea semnalului audio pe microprocesor. Lipim condensatorii, iar în locul lor dăm un semnal audio de la player.
  6. Acum instalați placa playerului MP3. Când faceți acest lucru, aveți grijă să nu evitați un scurtcircuit.
  7. Puteți face o intrare USB într-un orificiu pe panou în care au fost introduse discuri sau casete.
  8. Butoanele pentru controlul playerului sunt afișate pe tastele de control situate pe panoul frontal.
  9. În continuare, rămâne să-și adune personalul la loc.

Acum puteți asculta muzică de pe dispozitive digitale printr-un port USB DIY. Pentru a face acest lucru, porniți modul TAPE sau AUX. Piesele sunt controlate fie folosind butoanele de pe panou, fie cu telecomanda dacă a fost folosit un trimmer FM.

Concluzie

Avantajele conectării unui adaptor USB la radio:

  • Ușor de instalat;
  • unitatea flash este lipsită de dezavantajele redării CD-urilor atunci când laserul se arde și există probleme cu redarea discurilor;
  • multe fișiere sunt plasate pe unitatea flash USB, sunt ușor de actualizat și completat;
  • înregistrarea este redată la calitatea în care a fost înregistrată;
  • puteți utiliza un dispozitiv standard;
  • Intrarea USB nu preia bricheta.

Astfel, conectarea unui port USB nu este dificilă. Principalul lucru este să poți folosi un fier de lipit și să înțelegi măcar puțin în electronică.

Conectând adaptorul pentru unități flash la radioul auto, puteți economisi la cumpărarea unui dispozitiv nou echipat cu un adaptor USB.

Să începem cu minimul:
include 18f2455 -- biblioteca pentru MK folosit
--
enable_digital_io() -- comutați toate intrările în modul digital
--
alias buton este pin_B7 -- deoarece avem un buton conectat, declarați-l
pin_B7_direction = intrare -- butonul funcționează pentru noi la intrare
--
-- o singură linie - și avem tot ce aveți nevoie pentru a lucra cu USB CDC
include usb_serial -- biblioteca usb
--
usb_serial_init() -- --inițializați USB CDC
buclă pentru totdeauna-- bucla principală, rulează continuu
usb_serial_flush() -- actualizare USB. Această procedură face tot ce este necesar
-- acțiuni pentru menținerea conexiunii cu PC-ul
buclă de capăt

După compilarea acestui cod, scrierea fișierului HEX rezultat în MK folosind un bootloader și pornirea dispozitivului, puteți observa cum este definit un nou dispozitiv în sistem: Virtual com-port.

Acum că dispozitivul funcționează deja, să-l învățăm să comunice.

Pentru a citi octetul primit există o funcție usb_serial_read( octet ) :boolean. Dacă există un octet primit, acesta îl stochează în variabila specificată și revine Adevărat, altfel revine fals.

Există o procedură pentru trimiterea unui octet date_serial_usb. Este deghizat ca o variabilă, deci pentru a trimite un octet, este suficient să-i atribuiți valoarea octetului trimis.

Să declarăm o variabilă de dimensiunea unui octet înainte de bucla principală, în bucla principală vom verifica prezența octeților primiți și îi vom trimite înapoi dacă există.

include 18f2455
--
enable_digital_io()
--
alias buton este pin_B7
pin_B7_direction = intrare
--
--
include usb_serial
--
usb_serial_init()
var octet cap -- declara o variabilă
buclă pentru totdeauna-- bucla principală
usb_serial_flush()
dacă(usb_serial_read(ch)) apoi-- dacă se primește un octet, acesta va fi scris în ch
usb_serial_data=ch -- trimite octetul primit înapoi
sfârşitul dacă
buclă de capăt

Compilăm, ținem apăsat butonul, distorsionăm puterea, lansăm bootloader-ul, schimbăm firmware-ul, îl lansăm.
Dispozitivul a fost detectat din nou în sistem, acum avem nevoie de software pentru a testa funcționarea dispozitivului.

Deși nu avem al nostru, folosim un terminal gata făcut: am folosit programul RealTerm.
Deschidem portul cu numărul dorit și trimitem datele.


Și primim înapoi ceea ce am trimis. Deci totul funcționează așa cum ar trebui.

Moale

Deci, microcontrolerul nostru poate primi octeți și îi poate trimite imediat înapoi. Acum să scriem propriul nostru software pentru a comunica cu el (voi folosi Delphi).

Creăm un nou proiect, împrăștiem componentele necesare sub forma:
SpinEdit1 - pentru a specifica numărul portului
Buton1 - pentru a stabili o conexiune
Buton2 - pentru a întrerupe conexiunea
SpinEdit2 - pentru a introduce un octet în formă zecimală
Button3 - pentru a trimite un octet
Memo1 - pentru a afișa informațiile primite.

După cum am menționat mai sus, trebuie să lucrați cu portul com în același mod ca și cu un fișier text obișnuit: folosind funcțiile CreateFile, WriteFile și ReadFile.

Pentru a nu intra în detalii, să luăm o bibliotecă gata făcută pentru lucrul cu un port com: ComPort.

Agățăm sarcina necesară pe fiecare buton și obținem codul final:

unitate Unit1;

interfata

utilizări
Windows, Mesaje, SysUtils, Variante, Clase, Grafică, Controale, Formulare,
Dialoguri, StdCtrls, Spin, ComPort;

tip
TForm1 = clasa (TForm)
SpinEdit1: TSpinEdit;
Buton1: TBbutton;
Buton2: TBbutton;
SpinEdit2: TSpinEdit;
Buton3: TBbutton;
Memo1:TMemo;
procedura OnRead(Sender: TObject; ReadBytes: array of Byte );
procedură Button1Click(Expeditor: TObject);
procedura Button2Click(Expeditor: TObject);
procedura FormDestroy(Sender: TObject);
procedura Button3Click(Expeditor: TObject);
privat
(Declarații private)
Port: TComPort;
public
(Declarații publice)
Sfârşit;

var
Form1: TForm1;
num: întreg;
implementare

Procedura TForm1.Button1Click(Expeditor: TObject);
ÎNCEPE
Port:= TComPort.Create(SpinEdit1.Value, br115200); // creează o conexiune
Port.OnRead:= OnRead; //creează un flux pentru citirea datelor primite
Button2.Enabled:= true ; //activează butonul de închidere a conexiunii
Sfârşit;

Procedura TForm1.Button2Click(Expeditor: TObject);
ÎNCEPE
Port liber; //închide conexiunea
Button2.Enabled:= false ; //dezactivează butonul
Sfârşit;

Procedura TForm1.Button3Click(Expeditor: TObject);
ÎNCEPE
dacă Button2.Enabled atunci Port.Write();
Sfârşit;

Procedura TForm1.FormDestroy(Sender: TObject);
ÎNCEPE
dacă Button2.Enabled atunci
Port liber;
Sfârşit;

Procedura TForm1.OnRead(Sender: TObject; ReadBytes: array of Byte );
var
i:întreg;
ÎNCEPE
pentru i:= Low(ReadBytes) to High(ReadBytes) nu //treceți prin matricea de octeți primiți
ÎNCEPE
Memo1.Text:= Memo1.Text + "." +InttoHex(ReadBytes[i],2); //adăugați valoarea sa HEX în fereastră
inc(num); //numărați numărul de octeți primiți
Sfârşit;
dacă num > 10 atunci începe
Memo1.Lines.Add("" ); //linie de transfer
num:=0;
Sfârşit;
Sfârşit;

Începem, stabilim o conexiune, trimitem octeți:

Deci, cel mai simplu terminal al nostru este gata să funcționeze cu cel mai simplu dispozitiv USB.

După cum puteți vedea, citirea și scrierea sunt matrice dinamice de octeți.

Prin prelucrarea informațiilor primite, este posibil să se întocmească protocolul de schimb necesar adecvat sarcinii curente.

include 18f2455
--
enable_digital_io()
--
alias buton este pin_B7
pin_B7_direction = intrare
--
--
include usb_serial
--
usb_serial_init()
var octet cap
var octet i -- declara a doua variabilă
buclă pentru totdeauna-- bucla principală
usb_serial_flush()
dacă(usb_serial_read(ch)) apoi-- dacă octetul este primit, efectuați acțiunile necesare
caz ch de -- iterează peste numărul de octeți
0: usb_serial_data = 0xff
1: usb_serial_data = Buton -- trimite starea butonului
IN CAZ CONTRAR bloc-- dacă se primește altceva
pentru 16 folosind i buclă-- trimiteți 10 octeți de date
usb_serial_data = ch +i -- ch la ch+15
buclă de capăt
bloc final
caz final
sfârşitul dacă
buclă de capăt

Caracteristici suplimentare

Dacă te oprești acolo, primești un articol obișnuit cu o descriere detaliată a unui exemplu de utilizare a bibliotecii, din care există suficiente pe web. Prin urmare, voi adăuga câteva informații mai detaliate.

Simplificați trimiterea datelor

Trimiterea informațiilor câte un octet nu este întotdeauna convenabilă. Biblioteca poate fi foarte utilă imprimare. Conține proceduri pentru trimiterea datelor de toate lungimile posibile în toate formatele posibile: byte, hex, dec, bin, boolean, care pot simplifica ieșirea datelor în program.
> include imprimarea
...
vardword date
print_dword_hex (usb_serial_data, date)

Numele tuturor comenzilor poate fi găsit în fișierul bibliotecă.

Se așteaptă conexiunea la PC

Dacă înainte de a începe ciclul principal al microcontrolerului este necesar să stabiliți mai întâi o conexiune cu computerul, atunci puteți adăuga liniile înaintea acestuia.
in timp ce(usb_cdc_line_status() == 0x00) buclă
buclă de capăt

Legați numărul portului la dispozitiv

Dacă lăsați totul așa cum este, sistemul va aloca primul număr de port liber pentru fiecare nouă conexiune. Și asta înseamnă că trebuie să fii cu ochii pe el.
Pentru a preveni acest lucru, trebuie să atribuiți un număr de serie unic dispozitivului înainte de a conecta biblioteca USB:
Numărul poate fi de orice lungime și poate conține diferite caractere.
const byte USB_STRING3=
{
24 , -- lungimea matricei
0x03 , --bDescriptorType
"0" , 0x00 ,
"1" , 0x00 ,
"2" , 0x00 ,
"3" , 0x00 ,
"4" , 0x00 ,
"5" , 0x00 ,
"6" , 0x00 ,
"7" , 0x00 ,
"8" , 0x00 ,
"9" , 0x00 ,
"X" 0x00
}

Schimbați numele dispozitivului cu al dvs

Puteți schimba numele dispozitivului vizibil în sistem înainte de a instala driverele declarând o matrice cu numele, cum ar fi numărul de serie, acest lucru trebuie făcut înainte de a conecta biblioteca USB.
const byte USB_STRING2=
{
28 , --
0x03 , --bDescriptorType
"D", 0x00 ,
"e", 0x00 ,
"m", 0x00 ,
"o", 0x00 ,
" " , 0x00 ,
"B", 0x00 ,
"o", 0x00 ,
"A", 0x00 ,
"r", 0x00 ,
"d", 0x00 ,
" " , 0x00 ,
"=" , 0x00 ,
")" 0x00
}

Dar din păcate, după instalarea driverelor, dispozitivul își va schimba numele în cel specificat în fișierul .inf, așa că vom schimba și numele acolo


DESCRIPTION="Demo CDC"

Organizam conectarea automata a dispozitivului

Din păcate, nu există modalități directe de a finaliza această sarcină, așa că trebuie să inventezi.

În primul rând, trebuie să atribuiți un producător și o valoare unică a produsului dispozitivului dvs. pentru a-l identifica cu ușurință printre sute de alte firmware-uri CDC standard.
VID și PID sunt date pentru bani, așa că hai să mergem pe calea chinezilor: să ne luăm în liniște valorile evident libere.

Firmware:
Două variabile trebuie declarate în firmware înainte de a conecta biblioteca USB

const cuvânt USB_SERIAL_PRODUCT_ID = 0xFF10
const cuvânt USB_SERIAL_VENDOR_ID = 0xFF10

În loc de FF10, puteți introduce oricare două cuvinte (2 octeți). Rezultatul final este conținut în arhiva atașată.

Șoferi:
Deoarece driverele nu sunt proiectate pentru combinația noastră de VID și PID, vom adăuga manual valorile noastre la fișierul .inf:


%DESCRIPTION%=DriverInstall, USB\VID_FF10&PID_FF10


%DESCRIPTION%=DriverInstall, USB\VID_FF10&PID_FF10

Moale:
Pentru a captura evenimentele de conectare/deconectare a dispozitivului, vom conecta biblioteca ComponentUSB. Nu consider necesar să explic fiecare rând: toate modificările pot fi văzute în proiectul atașat.

Rezultat

Este greu de văzut în captură de ecran, dar butonul de trimitere este activ doar atunci când există un dispozitiv conectat, iar la fiecare 50 ms programul trimite o solicitare pentru a obține starea butonului (care, totuși, este greșită, deoarece apăsarea butonului ar trebui procesată pe MK).

După cum puteți vedea, organizarea schimbului de date între MK și PC prin USB nu este cea mai dificilă sarcină. Conexiunea rezultată poate fi folosită nu numai în scopuri finale: este potrivită și pentru depanarea unui program. La urma urmei, trimiterea rezultatelor calculelor, stările curente ale registrelor și variabilelor către un computer este mult mai clară decât să clipească o pereche de LED-uri în cod Morse.

Și în sfârșit: vă sfătuiesc să căutați codul sursă al lămpii de stare. Acolo puteți găsi o opțiune destul de bună pentru procesarea datelor primite pentru a organiza un protocol de schimb convenabil.

În acest articol, voi descrie mai multe moduri de a crea o unitate flash USB bootabilă gratuit și fără prea mult efort:

Permiteți-mi să explic de ce am ales aceste trei opțiuni, deci:

Avantajele creării unei unități flash USB bootabile folosind programul UltraISO sunt că, chiar și în modul de încercare (gratuit), acest program vă va ajuta să creați o unitate flash USB bootabilă fără probleme și are, de asemenea, multe funcții diferite. Contra (dacă pot fi considerate ca atare) este că trebuie descărcat și instalat, procesul de instalare în sine constă în apăsarea butonului Next de 4 ori. În opinia mea, soluția ideală de la terți pentru a crea o unitate flash USB bootabilă pentru Windows XP, 7, 8.

Creând o unitate flash USB bootabilă folosind utilitarul de la Microsoft - Instrumentul de descărcare USB / DVD, avantajul acestei metode este că, fără abilități și abilități speciale, datorită câteva clicuri de mouse, obțineți o unitate flash USB bootabilă. Minus - este necesară o imagine ISO oficială (descărcată de pe site-ul Microsoft) a sistemului de operare, altfel utilitarul poate să nu accepte imaginea dvs. ISO și să refuze să o scrie pe o unitate flash USB sau va da o eroare la crearea imaginii (eu personal am intampinat astfel de probleme, motiv pentru care consider necesar sa le semnalez).

Și, în sfârșit, crearea unei unități flash USB bootabile folosind linia de comandă Windows 7. Un mare plus al acestei metode este că nu trebuie să instalați nimic, ci pur și simplu introducând câteva comenzi, obțineți o unitate flash USB bootabilă cu Windows XP , 7, 8. Dezavantajele acestei metode nu le cunosc nici măcar... probabil doar în urâțenia ei, întrucât toate comenzile sunt executate pe linia de comandă.

Deci, pentru a crea o unitate flash USB bootabilă, veți avea nevoie de:

1 unitate flash cu o capacitate de cel puțin 4 Gb (totul trebuie șters de pe unitatea flash, deoarece va fi formatat)

2 Imagine de sistem ISO

3 BIOS, care vă va permite să începeți instalarea de pe o unitate flash USB

4 Utilitar de creare a imaginilor (UltraISO, Instrument de descărcare USB/DVD)

Dacă aveți toate acestea, atunci să începem:

Creați o unitate flash USB bootabilă folosind UltraISO.

În primul rând, descărcați cea mai recentă versiune UltraISO .

După aceea, începeți instalarea programului, faceți clic "Mai departe"

Suntem de acord cu acordul de licență

Alegeți sau lăsați locația implicită de instalare a programului

După aceea, se va deschide programul UltraISO, faceți clic „Fișier deschis”

Alegeți o imagine ISO a sistemului, în acest exemplu va fi folosit Windows 8

După aceea apăsăm „Pornire - Inscripționați imaginea de pe hard disk...”

În fereastra următoare, selectați dispozitivul pe care va fi scrisă imaginea și faceți clic "Record".

După aceea, va apărea o fereastră de avertizare care afirmă că totul va fi șters de pe unitatea flash, faceți clic "Da".

Procesul de înregistrare va începe apoi și va dura câteva minute.

După finalizarea procesului de scriere pe o unitate flash USB, aceasta devine bootabilă.

În acest articol, voi descrie mai multe moduri de a crea o unitate flash USB bootabilă gratuit și fără prea mult efort:

Permiteți-mi să explic de ce am ales aceste trei opțiuni, deci:

Avantajele creării unei unități flash USB bootabile folosind programul UltraISO sunt că, chiar și în modul de încercare (gratuit), acest program vă va ajuta să creați o unitate flash USB bootabilă fără probleme și are, de asemenea, multe funcții diferite. Contra (dacă pot fi considerate ca atare) este că trebuie descărcat și instalat, procesul de instalare în sine constă în apăsarea butonului Next de 4 ori. În opinia mea, soluția ideală de la terți pentru a crea o unitate flash USB bootabilă pentru Windows XP, 7, 8.

Creând o unitate flash USB bootabilă folosind utilitarul de la Microsoft - Instrumentul de descărcare USB / DVD, avantajul acestei metode este că, fără abilități și abilități speciale, datorită câteva clicuri de mouse, obțineți o unitate flash USB bootabilă. Minus - este necesară o imagine ISO oficială (descărcată de pe site-ul Microsoft) a sistemului de operare, altfel utilitarul poate să nu accepte imaginea dvs. ISO și să refuze să o scrie pe o unitate flash USB sau va da o eroare la crearea imaginii (eu personal am intampinat astfel de probleme, motiv pentru care consider necesar sa le semnalez).

Și, în sfârșit, crearea unei unități flash USB bootabile folosind linia de comandă Windows 7. Un mare plus al acestei metode este că nu trebuie să instalați nimic, ci pur și simplu introducând câteva comenzi, obțineți o unitate flash USB bootabilă cu Windows XP , 7, 8. Dezavantajele acestei metode nu le cunosc nici măcar... probabil doar în urâțenia ei, întrucât toate comenzile sunt executate pe linia de comandă.

Deci, pentru a crea o unitate flash USB bootabilă, veți avea nevoie de:

1 unitate flash cu o capacitate de cel puțin 4 Gb (totul trebuie șters de pe unitatea flash, deoarece va fi formatat)

2 Imagine de sistem ISO

3 BIOS, care vă va permite să începeți instalarea de pe o unitate flash USB

4 Utilitar de creare a imaginilor (UltraISO, Instrument de descărcare USB/DVD)

Dacă aveți toate acestea, atunci să începem:

Creați o unitate flash USB bootabilă folosind UltraISO.

În primul rând, descărcați cea mai recentă versiune UltraISO .

După aceea, începeți instalarea programului, faceți clic "Mai departe"

Suntem de acord cu acordul de licență

Alegeți sau lăsați locația implicită de instalare a programului

După aceea, se va deschide programul UltraISO, faceți clic „Fișier deschis”

Alegeți o imagine ISO a sistemului, în acest exemplu va fi folosit Windows 8

După aceea apăsăm „Pornire - Inscripționați imaginea de pe hard disk...”

În fereastra următoare, selectați dispozitivul pe care va fi scrisă imaginea și faceți clic "Record".

După aceea, va apărea o fereastră de avertizare care afirmă că totul va fi șters de pe unitatea flash, faceți clic "Da".

Procesul de înregistrare va începe apoi și va dura câteva minute.

După finalizarea procesului de scriere pe o unitate flash USB, aceasta devine bootabilă.

Flash Drive USB- un dispozitiv obișnuit pe care probabil îl are toți cei care au acasă un computer personal. Există o mare varietate de unități flash disponibile astăzi. De regulă, au o carcasă din plastic sau metal, deși există mai multe opțiuni originale. Dar ce să faci dacă carcasa unității tale flash este deteriorată sau din anumite motive nu ți se potrivește, dar nu vrei să cumperi una nouă? În acest articol, vă vom arăta cum să înlocuiți carcasa veche din plastic sau metal a unității flash cu una nouă din lemn.

Cum să faci o carcasă pentru o unitate flash?

Pentru a face o carcasă din lemn pentru o unitate flash, avem nevoie de următoarele instrumente:

Unitate flash USB fără carcasă.

Bucată de lemn.

Burghiu sau alt dispozitiv de foraj.

Hârtie abrazivă.

Silicon.

Clips, 2 buc.

Creion.

Să începem să facem!

1. Mai întâi, determinați dimensiunea carcasei de care aveți nevoie și utilizați un ferăstrău pentru a tăia un dreptunghi de dimensiunea potrivită dintr-o bucată de lemn folosind semnele marcate.

3. Folosind un dispozitiv de găurit, tăiați găuri non-traversante în bucățile mari și medii de lemn și un orificiu traversant în cea mai mică bucată. Găurile ar trebui să fie dimensionate astfel încât să se potrivească cu ușurință și să țină stick-ul USB. În partea din mijloc, care va servi drept capac, trebuie făcute mici goluri în interiorul găurii, astfel încât capacul să se poată închide etanș și să se deschidă ușor.

4. Introduceți unitatea flash USB în orificiul de trecere al piesei mici, astfel încât conectorul să iasă pe o parte, iar restul unității flash să fie pe cealaltă. Dacă unitatea flash nu stă strâns în gaură, fixați-o cu silicon.

5. Acum lipiți partea lungă proeminentă a unității flash în orificiul celei mai mari piese, după ce ați aplicat lipici fierbinte pe ambele părți și, folosind o presă, lipiți-le într-o singură carcasă. Este necesar să folosiți o presă, astfel încât ambele părți să fie bine fixate împreună, iar după șlefuire, nu sunt vizibile goluri între ele.

6. Acum șlefuiți cu grijă întregul corp cu șmirghel pentru a-i oferi un aspect mai îngrijit și mai fin. De asemenea, puteți acoperi carcasa cu vopsea sau lac.Unitatea noastră flash originală din lemn este gata!