Styra garageporten via USB

Berätta om dina pågående projekt.
Användarvisningsbild
hanzibal
EF Sponsor
Inlägg: 2499
Blev medlem: 7 september 2010, 20:54:58
Ort: Malmö/Lund

Styra garageporten via USB

Inlägg av hanzibal »

Hejsan!

Tänkte berätta om mitt första beställningsjobb som nu är klart. För en arbetskollegas räkning har jag gjort en USB-ansluten styrning av motoriserade garageportar:
gdc_box_small.JPG
Detta är en liten låda som man kopplar in mellan en PC och sitt portsmaskineri. Enheten har 2 ingångar för mikrobrytare som monteras så att de sluts när porten befinner sig i endera extemläget. Apparaten har också en reläutgång för att pulsa portmaskineriet så att porten börjar röra på sig i endera riktningen. Allt drivs av 5V USB och drar ca 30mA när allt lyser, blinkar och klickar för fullt.

Apparaten är framtagen för Hörmann garageportar med maskineri av typen ProMatic men kan säkert användas även till andra märken och modeller och säkert också till automatiska dörrar rent generellt skulle jag tro. Förutsättningen är att de styrs med pulsbrytare.

Personligen hade jag nog föredragit någon slags radiolänk som t.ex. XBee eller WLAN men beställaren ville tvunget ha USB-anslutning till PC och därför fick det bli så. Har gjort både hård- och mjukvara till detta. Hårdvaran baseras på MCP2210 från Microchip (egentligen en PIC18F14K50) som "översätter" från USB till SPI. I nuläget används inte SPI-funktionerna utan endast de integrerade GPIO-pinnarna.

Prylen har tre on/off-sensoringångar för mikrobrytare varav två monteras så att de känner av respektive ändläge (fullt öppen eller stängd). Den tredje sensorn är för framtida utbyggnad i form av t.ex. ljusvakt eller liknande. Apparaten har också en reläutgång som kopplas till portmaskineriets pulsbrytare för att starta/stoppa/reversera maskineriet.

Gjorde en liten film som ren dokumentation för mig själv (talar engelska eftersom jag också hänger på en del US-forum):

http://www.youtube.com/watch?v=BFgh16bXk3c&feature=plcp

Till detta har jag utvecklat ett mjukvaru-API (ett slags drivrutin kan man säga) i form av en DLL-fil samt ett testprogram:
testprog_dump1.JPG
Beställaren kommer sedan att utveckla en egen webbapplikation där man (t.ex. via sin smartphone) både kan övervaka och styra porten i och utanför hemmet. Applikationen kommer också att användas som stängningsvakt och kan då automatiskt stänga porten om den exempelvis varit öppen i mer än 2 timmar eller om klockan passerat 21:30. Ifrån sovrummet kan man kolla om porten är stängd och vid behov stänga den.

Tack vare det inbyggda (men outnyttjade) SPI-interfacet kan enheten sägas vara "förberedd" för GSM-modul, detta så att man kan få larm via SMS eller automatisk uppringning med muntlig felrapport - saker som då styrs via PC så det funkar inget vidare alls vid strömavbrott :-) och vet egentligen vad den skulle larma om men fräckt vore det :-)

Har inget kopplingsschema för denna enkla konstruktion (utgick helt ifrån referensdesignen) men kan rita ett om någon *verkligen* vill ha det.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Senast redigerad av hanzibal 5 juli 2012, 13:53:04, redigerad totalt 1 gång.
Super7
Inlägg: 201
Blev medlem: 4 februari 2010, 22:00:18
Ort: Häggeby

Re: Styra garageporten via USB

Inlägg av Super7 »

När jag ser i ditt händelseminne så har jag ett tips / önskemål, skippa vilket år det hände och skriv dit 1/100-dels sekund i stället. Mycket användbart vid felsökning av konstiga händelser, va det en kontaktstuds eller faktiskt någon som tröck på knappen...
För övrigt en funktion som jag önskar fanns i diverse larmutrustningar, inbrott, drift, mm. mm.
Användarvisningsbild
SeniorLemuren
Inlägg: 8382
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Styra garageporten via USB

Inlägg av SeniorLemuren »

Borde inte signal från klämskyddet kopplas till dosan så att man får ett larm på att något gått fel vid stängning?
Användarvisningsbild
hanzibal
EF Sponsor
Inlägg: 2499
Blev medlem: 7 september 2010, 20:54:58
Ort: Malmö/Lund

Re: Styra garageporten via USB

Inlägg av hanzibal »

Super7 skrev:När jag ser i ditt händelseminne så har jag ett tips / önskemål, skippa vilket år det hände och skriv dit 1/100-dels sekund i stället. Mycket användbart vid felsökning av konstiga händelser, va det en kontaktstuds eller faktiskt någon som tröck på knappen...
För övrigt en funktion som jag önskar fanns i diverse larmutrustningar, inbrott, drift, mm. mm.
Håller med, skärmdumpen är från ett simpelt testprogram som bara skriver ut händelser efterhand som de inträffar. Drivrutinen har ingen inbyggd loggfunktion utan detta får klientapplikationen själv stå för i så fall.
SeniorLemuren skrev:Borde inte signal från klämskyddet kopplas till dosan så att man får ett larm på att något gått fel vid stängning?
Vore skitbra, visste inte om att det finns signal som talar om när klämskyddet aktiveras. Bör kunna använda den 3:e sensorn för detta.

Jag slipper i praktiken bekymra mig alls för kontaktstudsar, detta eftersom drivrutinen bara pollar enheten var 50:e millisekund (20 ggr/sek). Det som teoretiskt kan hända är att jag riskerar missa korta pulser som inträffar emellan två pollningar men sådana lär inte inträffa och även det skulle hända så spelar det ingen roll eftersom jag ändå inte är intresserad av transienter.

Istället för att polla vore det såklart bättre att reagera på interrupt men vad jag förstår är dessa inte åtkomliga vid HID-programmering, åtminstone inte under Windows XP. HID tycks generellt bygga på pollning, d.v.s att hosten alltid initierar en transaktion i och med att man begär att få en HID-rapport från enheten så det är inte säkert att det går att få några interrupter överhuvudtaget.
Senast redigerad av hanzibal 5 juli 2012, 10:36:58, redigerad totalt 1 gång.
Användarvisningsbild
PHermansson
EF Sponsor
Inlägg: 4340
Blev medlem: 22 december 2004, 00:46:38
Ort: Särestad Grästorp
Kontakt:

Re: Styra garageporten via USB

Inlägg av PHermansson »

Har för mig att det gick att använda mycket korta interruptrutiner i PIC4550. Jag har för mig jag använde Int0 och satte en variabel i interruptrutinen, inget mer. Sen använder man en state-machine i huvudkoden så att det aldrig stoppar upp för länge.
Användarvisningsbild
hanzibal
EF Sponsor
Inlägg: 2499
Blev medlem: 7 september 2010, 20:54:58
Ort: Malmö/Lund

Re: Styra garageporten via USB

Inlägg av hanzibal »

Ok, det finns också en liten flankräknare i chipet som man kan läsa av - denna klarar snabba växlingar, vet inte hur snabba men troligen tillräckligt för ändamålet.

Det jag också menade angående interrupt är att USB HID API:et i Windows inte tillhandahåller interrupter från anslutna USB-enheter - detta kan dock bero på att HID helt enkelt inte är specat så utan att hosten alltid är den part som initierar en transaktion.

Skall också nämnas att jag alltså inte kodat firmware för PIC:en utan den kommer förprogrammerad från fabrik med en snurra som implementerar en HID-klassad USB-endpoint.
Skriv svar