Styrning av elektriska kretsar via USB. Styra enheter via en dators USB-port på ATmega8 Styra externa enheter via USB

Styr enheter via en dators USB-port.

P. VYSOCHANSKY, Rybnitsa, Transnistrien, Moldavien
En datorstyrenhet för olika enheter, vars diagram visas i fig. 1, funktionellt liknar den som beskrivs i, men ansluts till USB-porten på datorn, som (till skillnad från COM-porten) finns i var och en av dem idag. Det enda chippet i enheten är den vanliga mikrokontrollern ATmega8. Det är nödvändigt för att organisera kommunikation via USB-bussen. Även om den inte har en dedikerad hårdvarumodul, utförs denna funktion i mjukvara.

Motstånd R1, anslutet mellan den positiva terminalen på strömförsörjningen och USB D-bus-linjen, växlar den till låghastighets LS-läge med en växelkurs på 1,5 Mbit/s, vilket gör att du kan dekryptera datorns data programmatiskt. Motstånd R4 och B5 eliminerar transienta processer som uppstår under informationsutbyte, vilket ökar driftsstabiliteten. Kondensator C1 blockerar impulsbrus i strömkretsen, vilket också förbättrar enhetens stabilitet. Dioderna VD1 och VD2 tjänar till att sänka mikrokontrollerns matningsspänning till cirka 3,6 V - detta krävs för att matcha nivån med USB-bussen.
Enhetsstyrsignaler genereras vid utgångarna PB0-PB5 och PSO, PC1 på mikrokontrollern. Hög logisk nivå - spänning ca 3,4 V.
Lågnivåspänningen är nära noll. Du kan ansluta enheter till utgångarna som förbrukar en ström på högst 10 mA (från varje utgång). Om stora värden på ström eller spänning krävs, kommer de matchande noderna som visas i fig. 5 och 6. Enheten är monterad på en breadboard, ett kretskort har inte utvecklats MLT-motstånd används, kondensatorerna C2 och SZ är högfrekventa keramiska kondensatorer, C1 är K50-35 eller liknande importerade. Kiseldioder med ett spänningsfall över korsningen på ca 0,7 V. Programmet för mikrokontrollern utvecklades i Bascom-AVR-miljöversion 1.12.0.0. För att arbeta med USB-bussen används biblioteket swusb.LBX, som utför mjukvaruavkodning av USB-signaler i realtid. Den resulterande programkoden från en fil med HEX-tillägget ska laddas in i FLASH-minnet på mikrokontrollern. För detta ändamål användes programmeraren tillsammans med verktyget inbyggt i Bascom-AVR. Tillståndet för mikrokontrollerns konfigurationsbitar måste motsvara det som visas i fig. 2


När du ansluter enheten till din dator för första gången kommer operativsystemet att upptäcka en ny USB HID-kompatibel enhet med namnet "uniUSB" och installera de nödvändiga drivrutinerna. Efter några sekunder är enheten konfigurerad och redo att användas. För att arbeta med det skapades UniUSB-programmet. Den presenteras i två versioner: för 32-bitars (x86) och 64-bitars (x64) operativsystem i Windows-familjen. 32-bitarsversionen har testats i operativsystem: Windows 98, Windows XP, Windows 7 och 64-bitarsversionen har endast testats i Windows XP x64. UniUSB-programmet är skrivet på PureBasic-språket (version 4.31) med hjälp av HID Lib-biblioteket med användardefinierade funktioner, som stöder arbete med USB HID-enheter. Utseendet på programfönstret visas i fig. 3


I samma mapp med dess körbara fil bör det finnas en fil som heter UniUSB_code.txt eller UniCOM_code.txt. Det sista alternativet är nödvändigt för kompatibilitet med UniCOM-programmet som föreslås i . Den här filen lagrar skriptet för att styra externa enheter. När programmet startar laddas data från filen in i en tabell som finns i huvudfönstret och när arbetet är klart sparas det i filen. Genom att vänsterklicka på tabellceller kan du ändra deras tillstånd: 1 - hög logisk nivå, 0 eller tom - låg logisk nivå. För att lägga till eller ta bort en tabellkolumn måste du högerklicka på den och välja önskad åtgärd i menyn som visas. När du ansluter en enhet till en USB-port kommer programmet att upptäcka den och aktivera knappen som finns längst upp i fönstret i verktygsfältet. Genom att klicka på den här knappen startar processen att sortera igenom tabellkolumnerna och ställa in utdatatillstånden som anges i dem. För större tydlighet markeras till vänster om tabellen antalet utgångar där den logiska nivån för närvarande är hög. Sökhastigheten (tid i millisekunder mellan övergångar från kolumn till kolumn) ställs in i fältet "Hastighet, ms". Observera att Windows-operativsystemet är multitasking! Detta innebär att processortiden är uppdelad på många processer, ibland dolda för användaren, som exekveras i tur och ordning, med hänsyn tagen till de prioriteringar som ställts in i systemet. Därför bör man inte förvänta sig stor noggrannhet vid upprätthållande av tidsintervall på mindre än 100 ms.
För att kortvarigt stoppa sökningen av kolumner, använd knappen. Om du trycker på den igen kommer sökningen att fortsätta där den slutade. Knappen slutar helt att söka igenom tabellkolumnerna. Om informationsutbytet mellan datorn och enheten misslyckas eller enheten kopplas bort från datorns USB-kontakt kommer programmet att rapportera ett fel genom att visa ett motsvarande meddelande i statusfältet.

LITTERATUR

1. Nosov T. Styrning av enheter via COM-porten på en dator - Radio, 2007, nr 11, s. 61,62.
2. Ryzhkov A. USA-programmerare för AVR- och AT89S-mikrokontroller, kompatibel med AVR910. - Radio, 2008, nr 7, sid. 28, 29.

Baserat på material från tidningen "Radio 2`2011"
Du kan ladda ner mikrokontrollerns firmware och PC-program

Nuförtiden, i varje elverkstad, och för den delen, varje radioamatör, börjar arbetsdagen med att slå på PC:n och först därefter den extra elektriska utrustningen. I andra frågor börjar arbetsdagen med att slå på datorn, inte bara för radioamatörer, utan också för många användare av denna "enhet", som har blivit en integrerad del av våra liv. Men att slå på varje dag på morgonen och stänga av på kvällen, ja, låt oss säga, en skrivare, aktiva högtalare, en bordslampa, eller vem vet vad mer du kan hitta hos en vanlig användare, blir lite tråkigt. Baserat på de överenskomna målen var målet att skapa en belastningsomkopplare utformad för att slå på och stänga av alla relaterade enheter. Jag håller med om att man kan ta minsta motståndets väg och sätta en vanlig strömbrytare på allt, men det verkar som att det inte är så för en radioamatör.Vi kommer att göra det mycket mer bekvämt - vi kommer att bygga in maskinen i nätverksfiltret:

Eftersom enheten övervakar att enheten slås på och av enligt "slave-master"-principen är det enklaste sättet att använda en USB-port. Låt mig direkt påpeka att när du använder en USB-port fungerar enheten i bärbara datorer och datorer med en strömkälla som stänger av alla strömkällor. Till exempel, i de senaste modellerna av strömförsörjning, finns en +5 volt USB-port som standby-port även när enheten är avstängd. Enheten kommer inte att fungera med dem, eller snarare, den kommer att fungera, men är alltid på. Här är det nödvändigt att använda någon annan port som en signalkälla, och följaktligen koordinera signalen från källan och ställdonet.

I denna enhet är ställdonet ett relä med kontakter klassade till 16 ampere och en 5 volts spole. Användningen av ett relä ger galvanisk isolering av signalkällan och 220 voltsnätet.

Efter att ha genomfört en serie experiment fann man att när det strömförsörjdes, enligt passdata, +5 volt, förbrukar reläet 150 mA ström. Om du använder en stationär dator är det inga problem, eftersom +5 volts USB-porten kommer direkt från strömförsörjningen och belastar den inte hårt. Om du är nöjd med allt ovanstående kan du sluta och göra din egen version enligt diagrammet nedan.

Men om du planerar att använda en bärbar dator, är det inte tillrådligt att passera ytterligare 150 mA genom datorn; i det här fallet måste du använda en extra 5 volts strömförsörjning. I denna utföringsform användes en omkopplande strömförsörjning från en mobiltelefonladdare. Vilken oreglerad strömkälla som helst kan användas, förutsatt att den kan ge en spänning på 5 volt och en ström på cirka 250 mA, med hänsyn tagen till marginalen. Du kan också använda en annan spänning, men i det här fallet kommer det att vara nödvändigt att ta ett relä med lämplig matningsspänning.För att matcha signalkällan med reläet och strömförsörjningen är det nödvändigt att installera en transistorbrytare av följande typ:

Den valda transistorn är typ KT815 med valfri bokstav och ett motstånd på 1 kOhm, diod - KD522. Med detta anslutningsschema visade strömförbrukningen 4 mA, vilket inte är så signifikant för en bärbar dator. LED1 och LED2 indikerar kretsens status. Om så önskas, tillsammans med motstånd, kan de uteslutas från kretsen.

220 V-styrenheten är monterad i uttagets fria utrymme - nätverksfilter.Schematisk fil in planen belägen

Inte bara vilken programmerare som helst, utan även varje tillräckligt erfaren användare vet att du kan överföra mycket rutinarbete till en dator eller till exempel få den att göra något åt ​​dig när du är på semester. Så datorn klarar ganska bra med enstaviga svar på e-postmeddelanden (säg att jag fick brevet, jag kommer att svara i detalj senare). Kan en dator till exempel mata din katt? Vattna dina blommor? När allt kommer omkring är det bara att tända och släcka lamporna i din lägenhet varje kväll för att det ska verka som om du är hemma?

I Hollywood-filmer ser vi ofta hemautomatisering av det här slaget, vanligtvis knuten till filmens hjälte – en vetenskapsman eller uppfinnare, oftast lite galen, som Doc Brown från Back to the Future. Det finns legender om fidoshniks som band elektriska kontakter till skrivhuvudena på matrisskrivare så att de kunde stänga av sin dator på distans. De använde till och med det utfällbara facket på CD-enheten för att trycka på den förbannade knappen. Men är det möjligt att göra det här mer, låt oss säga, regelbundet? Naturligtvis finns det många industriella lösningar för denna typ av uppgifter. Datorer styr verktygsmaskiner, kranar, hela kraftverk, och detta förvånar i princip ingen. Dessutom klarar datorer också att tända och släcka ljuset i ett rum, detta fick till och med sitt namn - "smart hus", det enda problemet är att industridatorer inte säljs i butik, och där de säljs är de väldigt dyra, men "smarta hem"-komponenter är vanligtvis specialiserade datorer som inte kräver omprogrammering av slutanvändaren. Enkelt uttryckt gör de vad tillverkaren tänkt sig, men det är inte alltid man vill.

Våra enheter är utformade för att fylla en nisch som av någon anledning inte uppmärksammas av tillverkare av kringutrustning: att göra det möjligt för användaren av en vanlig hemdator att använda den för att hantera något mer påtagligt än e-post. För att vara mer exakt, med hjälp av våra enheter kan du få din dator att styra alla enheter där elektrisk ström flyter. Alla enheter vi för närvarande erbjuder är anslutna till en dator via en USB-port (i vissa fall kan man även använda en klassisk COM-port, men var kan man få tag i en nuförtiden). De flesta av våra enhetsmodeller har inbyggda elektromagnetiska reläer; den maximala växlingseffekten för dessa reläer är liten, bara 300 W, men detta är tillräckligt för att styra en bordslampa eller fläkt, för att slå på och stänga av aktiv nätverksutrustning (routrar, switchar, accesspunkter och liknande), och även för de flesta inte särskilt snygga datorer. Om större belastningseffekt krävs är det nödvändigt att använda externa reläer, till exempel eventuella effektreläer med en matningsspänning på 12 eller 24 V, som du också kan beställa från oss eller välja själv; Kraften hos de flesta reläer som finns på marknaden är tillräckligt för att styra värmeapparater, vattenkokare, pumpar och andra kraftfulla konsumenter av el. Vissa av våra enheter är initialt designade för att ansluta sådana reläer, medan andra kan anslutas till externa reläer via kretsar som styrs av inbyggda reläer.

Förutom att kontrollera den elektriska belastningen kan våra enheter reagera på externa "stimuli" - ingångslinjer (signalkretsar), som är vanliga elektriska ledningar som kan stängas eller öppnas. Enheten meddelar kontrolldatorn om en förändring av statusen för ingångslinjen och kan dessutom reagera på en sådan förändring oberoende genom att slå på eller stänga av vissa kontrollerade kretsar, vilket i vissa fall låter dig klara dig utan en kontrolldator (till exempel tända och släcka belysningen i ett rum, när styrdatorn inte fungerar).

Naturligtvis krävs styrmjukvara på datorsidan. För användare med programmeringskunskaper erbjuder vi (gratis) ett antal program i källkod, inklusive bibliotek med funktioner för åtkomst till våra enheter; om oberoende skrivning av programvara på värdsidan inte ingår i dina planer, kan vi erbjuda kontrollprogram i form av statiskt sammansatta (det vill säga, kräver inte installation) körbara filer för Linux och Windows. Eftersom våra enheter stöder HID-standarden krävs inga drivrutiner för dem – eller snarare, den nödvändiga drivrutinen finns redan i ditt system. Observera att den fasta programvaran för våra enheter också är tillgänglig i källtextform, och med hjälp av en programmerare (återigen, vi kan erbjuda att köpa en lämplig programmerare från oss eller välja den själv) kan du ändra beteendet hos vår enhet, anpassa den efter dina behov. Vi distribuerar både firmware och värdprogram fritt under villkoren i GNU GPL v.3-licensen.

Låt oss omedelbart notera att vi främst fokuserar på teknikälskare - människor som åtminstone är bekväma med en skruvmejsel (även om du enkelt kan klara dig utan en lödkolv; vi har redan lödat allt du behöver). Men i en begränsad upplaga släpper vi en enhet som inte ens kräver en skruvmejsel för att använda - det är en förlängningssladd med fem uttag och en inbyggd UNC-enhet som låter dig styra fyra av de fem uttagen (det sista uttaget är alltid på, den kan till exempel användas för att driva en styrdator ). Den mest uppenbara användningen av den här versionen av enheten är att styra allt som finns runt ditt datorbord: du kan till exempel använda en kombination av tangenter på tangentbordet för att få din skrivbordslampa att tändas eller släckas, sätta på och stänga av fläkten , högtalare, modem och allt annat som råkar vara inom en radie av nätsladden från din dator och har en märkeffekt på högst 300 W. En sådan anordning är dock mer en leksak än något annat; den är idealisk som en originalpresent till en teknisk nörd, men de fulla funktionerna hos våra enheter avslöjas när du självständigt installerar kontrollerade kretsar (kom ihåg att för detta behöver du bara en skruvmejsel och en trådavskiljare). Här begränsas dina möjligheter praktiskt taget bara av din fantasi. Vår enhet kan slås på istället för en ljusströmbrytare i rummet, den kan styra belysningen och ventilationen av akvariet, ett elektromagnetiskt dörrlås (mer exakt, bara själva elektromagneten, utan en dyr kontrollmodul) gör att du kan göra din dator fungerar som dörrvakt, en stegmotor öppnar och stänger fönstret, och den elektromagnetiska vattenventilen från tvättmaskinen gör att du kan automatisera vattning av inomhusblommor (här litar vi på ditt sunda förnuft: datorer går ibland sönder, du bör tillhandahålla översvämningsskydd om ditt system inte fungerar som du förväntat dig - det skulle till exempel vara rimligt att ta vatten för bevattning inte från vattenförsörjningen utan från en behållare med begränsad volym).

Nyckelord: budget smart hem, DIY-smart hem, datorströmkontroll, datorströmkontroll, hemautomation, USB-ström på, datorrumsljuskontroll, ljusstyrning, ljuskontroll, USB-ljuskontroll

– Igor (administratör)

Idag har många användare mer än en USB-enhet. Faktum är att anslutning via USB har blivit en nästan universell metod. De flesta har säkert till och med glömt bort att det finns sådana portar/kontakter som LPT och COM. Till exempel ansluts en ganska stor del av kringutrustningen (skrivare etc.) endast via USB.

USBDeview-hanterarprogram för att hantera USB-enheter

Om du har många olika USB-enheter och du aktivt använder dem, har du troligen stött på problem och begränsningar i standard Windows USB-enhetshanteraren. För att hantera anslutningar mer effektivt finns det ett speciellt verktyg som heter USBDeview från NirSoft (nedladdningslänk).

Notera: Begränsningarna för standard Windows-enhetshanteraren är ganska berättigade. Eftersom denna funktionalitet används av både erfarna och nybörjare.

Notera: Det finns ganska mycket information på utvecklarsidan. Själva nedladdningslänkarna finns längst ner.

Verktyget är bärbart och kan köras var som helst. Den körbara filen väger cirka 170 KB och kommer för både 32-bitars och 64-bitarsversioner av Windows. För ett så litet program har det ett förvånansvärt stort antal användbara funktioner.

Notera: Du kan ta reda på mer om alla dess funktioner på utvecklarens webbplats. Den här artikeln kommer bara att diskutera några av de mest använda av dem.

Som du säkert har märkt visar bilden några av de tillgängliga funktionerna. Anslut, koppla bort, ta bort, öppna, kontrollera hastighet, ändra bokstäver och mycket mer.

Användbara funktioner i USBDeview-programmet

Av olika anledningar sparar Windows-registret alla USB-enheter som någonsin anslutits till operativsystemet. USBDeview kommer att visa dig all information om alla enheter för vilka registerposter har sparats. Om det behövs kan du korrigera nödvändig information i registret (verktyget låter dig omedelbart öppna registernyckeln med information om usb-enheten).

Notera: Lagring av enhetsinformation används av åtminstone flera anledningar. För det första går det snabbare att återansluta enheten. För det andra, för enheter som kräver installation av icke-standardiserade drivrutiner, är detta en viktig funktion. Annars måste du installera drivrutinerna igen varje gång. För det tredje kan enheter tilldelas enhetsbokstäver. Och för att begränsa risken för problem med samma bokstäver är det vettigt att tilldela en unik bokstav till varje enhet.

Även om de standarder som tillämpas för att bestämma läs- och skrivhastigheten för varje version av USB-kommunikationsprotokollet, kan hastigheten variera på varje enhet. USBDeview låter dig utföra ett enkelt test med en stor fil för att skriva och läsa. Naturligtvis skulle ett mer korrekt test vara att kopiera och läsa olika grupper av filer med olika storlekar, men ändå låter även detta test dig uppskatta den ungefärliga hastigheten.

Verktyget låter dig också ändra enhetsbeteckningen. Naturligtvis finns det andra sätt, men i det här fallet kan du göra det med bara ett par klick.

Sammantaget är USBDeview en utmärkt USB-enhetshanterare.

Datorstyrenhet
olika enheter, vars diagram visas i fig. 1, funktionellt liknande
beskrivs i, men ansluts till USB-porten på en dator, vilket (till skillnad från
från COM-porten) finns i var och en av dem idag. Enhetens enda chip
- en vanlig mikrokontroller ATmega8. Det är nödvändigt för organisationen
USB-busskommunikation. Även om den saknar specialiserad hårdvara
modul, denna funktion utförs i mjukvara. Motstånd R1 ansluten mellan
pluspolen på strömförsörjningen och USB D-busslinjen, överför den till låg hastighet
LS-läge med en växelkurs på 1,5 Mbit/s, vilket gör att du kan dekryptera paket
datorn programmatiskt. Motstånd R4 och R5 eliminerar transienter
processer som uppstår under informationsutbytet, vilket ökar stabiliteten i arbetet.
Kondensator C1 blockerar impulsbrus i strömkretsen, vilket också förbättras
enhetens stabilitet. Dioderna VD1 och VD2 används för att minska spänningen
mata mikrokontrollern till cirka 3,6 V - detta krävs för
nivåmatchning med USB-bussen. Enhetskontrollsignaler genereras på
utgångarna РВ0-РВ5 och PC0, PC1 på mikrokontrollern. Hög logiknivå -
spänningen är ca 3,4 V. Lågnivåspänningen är nära noll. Till utgångarna
Du kan ansluta enheter som förbrukar en ström på högst 10 mA (från varje utgång).
Om stora ström- eller spänningsvärden krävs, bör noder användas
avtal som visas i fig. 5 och 6.

Enheten är monterad på en brödbräda,
ingen tryckt version utvecklades. MLT-motstånd, kondensatorer C2 och C3 används -
keramisk högfrekvent, C1 - K50-35 eller liknande importerad. Dioder
kisel med ett spänningsfall över korsningen på ca 0,7 V. Program för en mikrokontroller
utvecklad i Bascom-AVR-miljön version 1.12.0.0. För USB-bussdrift
Biblioteket swusb.LBX används, som utför mjukvarusignalavkodning
USB i realtid. Den resulterande programkoden
från en fil med HEX-tillägget ska laddas in i mikrokontrollerns FLASH-minne.
För detta ändamål användes programmeraren tillsammans med den inbyggda Bascom-AVR
verktyg. Tillståndet för mikrokontrollerns konfigurationsbitar måste överensstämma
visas i fig. 2. När du ansluter enheten till datorn för första gången, operativsystemet
systemet kommer att upptäcka en ny USB HID-kompatibel enhet med namnet
"uniUSB" och installera nödvändiga drivrutiner. Om några sekunder
Enheten är konfigurerad och redo att användas.

Ett program skapades för att arbeta med det
UniUSB. Den presenteras i två versioner: för 32-bitars (x86) och 64-bitars
(x64) operativsystem i Windows-familjen. 32-bitarsversionen har verifierats att fungera
i operativsystem Windows 98, Windows XP, Windows 7 och 64-bitars -
endast på Windows XP x64. UniUSB-programmet är skrivet på PureBasic-språket (version
4.31) med hjälp av HID_lib-biblioteket med användardefinierade funktioner,
stöder arbete med USB HID-enheter. Programfönstrets utseende
visas i fig. 3. I samma mapp med dess körbara fil måste det finnas
en fil som heter UniUSB_Code.txt eller UniCOM_Code.txt. Det sista alternativet krävs
för kompatibilitet med UniCOM-programmet som föreslås i . I denna fil
Skriptet för att styra externa enheter lagras. När programmet startar, data
från filen läses in i tabellen i huvudfönstret, och när den är klar
verk sparas i en fil. Genom att vänsterklicka på tabellceller kan du
ändra deras tillstånd: 1 - hög logisk nivå, 0 eller tom - låg
logisk nivå. För att lägga till eller ta bort en tabellkolumn måste du använda den
högerklicka och välj önskad åtgärd från menyn som visas.

När du ansluter en enhet till en USB-port
programmet kommer att upptäcka det och aktivera knappen längst upp
fönster i verktygsfältet. Genom att klicka på den här knappen startar processen
söka igenom tabellkolumnerna och ställa in utdatatillstånden som anges i dem. För
För större tydlighet är utdatanumren markerade till vänster om tabellen, på
som för närvarande är inställda på en hög logisk nivå. Fart
sökning (tid i millisekunder mellan övergångar från kolumn till kolumn) är inställd
i fältet "Hastighet, ms".

Observera att operativsystemet är Windows
- göra flera saker samtidigt! Detta innebär att CPU-tiden är uppdelad på många
ibland dolda från användarprocesserna som exekveras i tur och ordning med
med hänsyn till de prioriteringar som fastställts i systemet. Så förvänta dig inte mycket
noggrannhet för att hålla tidsintervall mindre än 100 ms. För kort sikt
För att sluta iterera genom kolumner, använd knappen Klicka på den igen
kommer att fortsätta söka där det stannade. Knappen slutar helt att sortera i kolumner
tabeller. Om under informationsutbytet mellan datorn och enheten
ett fel inträffar eller enheten kopplas bort från datorns USB-kontakt,
programmet kommer att rapportera ett fel genom att visa motsvarande
meddelande.

LITTERATUR

1. Nosov T. Kontroll av enheter
via datorns COM-port. - Radio, 2007, nr 11,0.61,62.

2. Ryzhkov A. Amerikansk programmerare
AVR och AT89S mikrokontroller, kompatibla med AVR910. - Radio, 2008, nr 7, sid.
28, 29.

Från redaktören. Program för mikrokontrollern och datorn finns
på vår FTP-server på ftp:// ftp.radio.ru/pub/2011/02/uniUSB.zip