433MHz-communicatie met microcontrollers

Pagina: 1 ... 5 6 Laatste
Acties:
  • 169.289 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • -Tim-
  • Registratie: Januari 2006
  • Laatst online: 21:11

-Tim-

Niet geraakt is altijd mis.

Is het ook mogelijk een Kaku dimmer set aan te sturen? Desnoods door het versturen van een 'ruw' signaal?

[ Voor 32% gewijzigd door -Tim- op 30-09-2011 10:29 ]


Acties:
  • 0 Henk 'm!

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
Als die dimmer aangestuurd wordt met de "oude" remote, of iig die mogelijkheid heeft, dan moet het kunnen werken. Ik heb zo'n dimmer, maar een succes is het niet: het is niet mogelijk een bepaalde helderheid te kiezen; er is geen vast referentiepunt.

Acties:
  • 0 Henk 'm!

  • R0berto
  • Registratie: Augustus 2003
  • Laatst online: 30-09 14:54

R0berto

ja

Fuzzillogic schreef op vrijdag 16 september 2011 @ 23:54:
@R0berto, [...] Over die Alecto: je kunt Fuzzillogic in "433MHz-communicatie met microcontrollers" eens proberen. Als het werkt, dan heb je geluk gehad :)
helaas werkt het niet met die code. Ik denk voor een groot deel omdat er slechts een thermometer in de transmitter zit.

Dus dan wederom mijn vraag: hoe kan ik het signaal van uit de ether oppikken en analyseren??

Acties:
  • 0 Henk 'm!

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
R0berto schreef op vrijdag 30 september 2011 @ 15:47:
[...]
Dus dan wederom mijn vraag: hoe kan ik het signaal van uit de ether oppikken en analyseren??
Ik gebruik een digitale oscilloscoop van €200. Dat is sowieso best handig bij het knutselen. Voor deze toepassing kan het echter goedkoper: de line-in van je pc. Dat is hier onlangs ook nog even langsgekomen meen ik. "zomaar" de uitgang van de ontvanger aansluiten lijkt me geen goed idee, daar hoort toch nog minimaal een weerstand tussen. Hoeveel precies durf ik niet te zeggen. Het is iig goedkoop, doeltreffend en geeft je onbeperkte opnamemogelijkheid, wat voor het bekijken van een digitaal signaal toch erg prettig is. Er staan vast legio voorbeelden en howtos op internet.

Acties:
  • 0 Henk 'm!

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
Ik heb nu de Elro remotes toegevoegd aan de RemoteSwitch library, met dank aan Piepersnijder voor de timings en code. Ik heb zelf geen Elro-set, dus ik kan niet testen of het ook werkt. De code staat in de dev-branch in de repository. Bij "downloads" kun je een archive downloaden met het complete pakket erin.

Daar is nu ook de wiki van wat nuttigere content voorzien. Aanvullingen m.b.t. verkrijgbaarheid en compatibiliteit is welkom. Ik kan immers niet alles gaan kopen enkel om maar te gaan kijken of het werkt :)

Acties:
  • 0 Henk 'm!

Verwijderd

Ik gebruikte ook de line-in van m'n pc voor het uitpluizen van de Thierry-thermometer, met succes. Ik gebruikte geen weerstand, m'n redenatie was dat de ontwerpers (als het goed is) ervan uitgaan dat consumenten malloten zijn en dat je iedere verbinding naar de buitenwereld moet wantrouwen. Zou een weerstand sowieso helpen, zo'n ingang is toch hoogimpedant, waardoor je geen spanningsval hebt over de weerstand?

M'n geluidskaart fopte me trouwens wel behoorlijk; hij "dc-adjuste" het ingangssignaal zonder dat ik het wist, waardoor het leek alsof de spanning die ik mat (het datasignaal van de radio-ontvanger) tussen de -1.5V en +1.5V zat -- in plaats van tussen de 0 en 3V.

Acties:
  • 0 Henk 'm!

  • jongerenchaos
  • Registratie: Januari 2005
  • Laatst online: 22:02
@ Fuzzillogic

Ik heb een oplossing voor je dimmer probleem. Er is inderdaad geen vast refentiepunt, omdat bij aanschakelen de laatste dimstand wordt aangehouden. De oplossing is simpel:

Plaats voor de dimmer een ELRO of andere 433mhz schakelunit. Zodra de dimmer via de schakelunit wordt uitgeschakeld zal de dimmer weer in de 0 stand opstarten (de dimmer kan namelijk alleen de stand onthouden wanneer er spanning op de dimmer blijft staan).

Acties:
  • 0 Henk 'm!

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
jongerenchaos schreef op dinsdag 04 oktober 2011 @ 08:50:
@ Fuzzillogic

Ik heb een oplossing voor je dimmer probleem. Er is inderdaad geen vast refentiepunt, omdat bij aanschakelen de laatste dimstand wordt aangehouden. De oplossing is simpel:

Plaats voor de dimmer een ELRO of andere 433mhz schakelunit. Zodra de dimmer via de schakelunit wordt uitgeschakeld zal de dimmer weer in de 0 stand opstarten (de dimmer kan namelijk alleen de stand onthouden wanneer er spanning op de dimmer blijft staan).
Hahaa wat een work-around :) Maar ach als je de dingen toch ergens verstopt hebt liggen dan is het nog steeds goedkoper dan de meer high-end domotica :P

Ik heb de libraries in de dev-branche bijgewerkt met support voor Arduino 1.0 die binnenkort uitkomt. Voor mensen die met Mercurial en Windows werken een mooie tip met symlinks in Windows: zonder gedoe de libraries updaten! Erg handig, al zeg ik het zelf.

Acties:
  • 0 Henk 'm!

  • R0berto
  • Registratie: Augustus 2003
  • Laatst online: 30-09 14:54

R0berto

ja

nog simpeler/goedkoper: voordat je naar je gewenste punt toegaat, zorg dan dat je de dimmer naar het dichtsbijzijnde extreem brengt.
maw: wil je de dimmer naar 80% brengen, dan stuur je eerst net zo lang signalen dat hij wel op 100% moet staan (vanuit elke voorgaande stand), en dan dim je hem met 20% :)
Dit gaat er dan wel even vanuit dat je geen cyclische dimmer hebt :)

Acties:
  • 0 Henk 'm!

  • jongerenchaos
  • Registratie: Januari 2005
  • Laatst online: 22:02
@R0berto

Ik vrees dat dat niet werkt bij de ELRO KIKA systemen. Stel als je een code mist (ofwel je receiver ontvangt hem niet) welke wel is uitgezonden door je arduino krijg je al een verkeerde waarde (welke je in het systeem bij kan houden).

De dimmer kent niet een maximale hoog stand die je kan aanroepen. Als ik op de dimknop blijf drukken wordt de lichtintensiteit hoger en vervolgens weer lager (ofwel er is geen max stand die je kunt meten).

Je kunt natuurlijk ook nog een lichtsensor rondom de lamp plaatsen bijvoorbeeld, om dit te koppelen aan je arduino en hiermee een berekening te laten uitvoeren.

[ Voor 4% gewijzigd door jongerenchaos op 06-10-2011 16:04 ]


Acties:
  • 0 Henk 'm!

  • R0berto
  • Registratie: Augustus 2003
  • Laatst online: 30-09 14:54

R0berto

ja

dat bedoelde ik ook met een cyclische dimmer :)

ikzelf heb een dimmer gehad die gewoon naar het minimum of maximum ging, en daar bleef. Weet alleen niet meer welke dat was...

Acties:
  • 0 Henk 'm!

  • Sjoerd
  • Registratie: December 2003
  • Niet online
Ik ben zelf ook al een tijdje bezig met het schakelen van Home Easy apparatuur. Momenteel kan ik schakelen maar soms geeft een signaal uitsturen geen resultaat... Ik gebruik een eigen stukje code hiervoor. Verder ook bezig met een webpanel in PHP en een iPhone/iPad app. In dit panel en deze apps zullen temperaturen te zien zijn en ook de verschillende ruimtes waarmee alles geschakeld kan worden. Home Easy remote schakelen met de Arduino is nu nog niet helemaal stabiel bij mij, zijn andere systemen als KAKU met deze libraries wel 100% betrouwbaar te krijgen? Anders schaf ik maar zo'n setje aan misschien :).
Leuk om te zien dat anderen ook actief bezig zijn ;) !

@Fuzzillogic ben je geïnteresseerd in dit stukje code met alle bit reeksen? Mogelijk kan jij het nog wat verbeteren (als je fouten ziet) of het implementeren in de library :) ?

[ Voor 14% gewijzigd door Sjoerd op 18-10-2011 21:55 ]

Modelbouw - Alles over modelbouw, van RC tot diorama


Acties:
  • 0 Henk 'm!

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
Ik kan alleen uit eigen ervaring getuigen dat de library voor de blokker/action/kaku behoorlijk goed werken, zowel zenden als ontvangen. Ik gebruik het dagelijks, om te "vertalen" van action- en kaku-zenders naar een blokker-ontvanger. Gelijktijdig speelt de Arduino als repeater voor een cresta-setje.
De dev-branch werkt ook met Arduino 1.0 RC en is eigenlijk aan te raden boven de default branch. (Wordt tijd dat ik de boel merge..)

Home Easy-support zou fijn zijn, maar ik heb geen enkele mogelijkheid om het te testen bij gebrek aan deze set. Als de code heel afwijkend is van de oude KaKu's, dan is een losse library de betere optie, net zoals het nu voor de CrestaReceiver werkt.



Ik vraag me af of er interesse is in een kit/all-in-one-vorm van dit systeem? Daarbij kun je denken aan een mooi kastje voor aan de muur met display, ingebouwde 433MHz zender en ontvanger. Dat aangevuld met een losse Cresta sensor en een kaku-achtige set met 3 ontvangers + remote. De µC is Arduino-compatible zijn (a la Leonardo) en gewoon met de Arduino IDE + open source libraries te programmeren. Eventueel nog mogelijkheid tot externe uitbreiding, via I2C/SPI/COM oid. Voordeel van dit alles: een laagdrempelig systeem dat gegarandeerd met elkaar samenwerkt.

Helaas ben ik slechts een softwaredeveloper met zeer beperkte kennis van elektrotechniek. Ik weet niet eens waar ik een mooie passende behuizing vandaan moet toveren, laat staan dat ik een kwalitatief goed printje kan ontwerpen.

Mensen hier met ideeën?

Acties:
  • 0 Henk 'm!

  • Sjoerd
  • Registratie: December 2003
  • Niet online
@Fuzzillogic vanmiddag maar even een setje bij de Action gehaald. Ook van Impuls al wijkt de remote iets af van de eerdere afbeeldingen in dit topic. Na wat prutsen is het gelukt, ik kan de receivers prima aansturen met de Arduino. Dank voor de library met duidelijke voorbeelden en comments.
Als je echt interesse hebt om alles HomeEasy compatible te maken ben ik bereid een setje naar je op te sturen om mee te testen (zou hem dan uiteindelijk ook weer wel graag terug hebben :+). Het is de volgende set klik een vrij prijzige set dus :+. Het voordeel van HomeEasy is wel het ruime assortiment. Ik heb nog niet kunnen ontdekken of IMPULS (Action) ook inbouw schakelaars heeft? Dit zou helemaal ideaal zijn namelijk.

Ik denk zeker wel dat hier interesse voor is. Ben zelf echter PHP/webdeveloper en mijn kennis gaat dus ook niet zo ver qua elektronica. Een leuke GUI of controle panel in elkaar knutselen kan ik dan weer wel :) .

Modelbouw - Alles over modelbouw, van RC tot diorama


Acties:
  • 0 Henk 'm!

  • jongerenchaos
  • Registratie: Januari 2005
  • Laatst online: 22:02
Ik ben weer verder gekomen met de HomeEasy set (met het aanleren van codes).

Als je vanuit de library de KlikaanKlik uit codes gebruikt en deze leer je aan bij de HomeEasy device dan werkt dit zonder problemen (aan & uitschakelen).
Alleen het vertalen van de homeeasy afstandsbediening (zend unit) is mij nog niet gelukt.

Acties:
  • 0 Henk 'm!

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
Sjoerd schreef op woensdag 19 oktober 2011 @ 20:26:
Als je echt interesse hebt om alles HomeEasy compatible te maken ben ik bereid een setje naar je op te sturen om mee te testen (zou hem dan uiteindelijk ook weer wel graag terug hebben :+).
Thanks for the offer, maar het is ook een beetje zonde om €20 en meer te spenderen aan verzendkosten voor een set van €40 :)

Ik heb nog wel een kaku-zender uit de A-serie hier, die komt meen ik overeen qua code. Een ontvanger daarvoor schrijven zou niet al te moeilijk zijn.
Ik denk zeker wel dat hier interesse voor is. Ben zelf echter PHP/webdeveloper en mijn kennis gaat dus ook niet zo ver qua elektronica. Een leuke GUI of controle panel in elkaar knutselen kan ik dan weer wel :) .
PHP devven is ook mijn belangrijkste bron van inkomsten. Maar hardware-dingetjes maken is een stuk tastbaarder, dat heeft toch wel meer charme eigenlijk.

Acties:
  • 0 Henk 'm!

  • stavast
  • Registratie: Mei 2004
  • Laatst online: 27-10-2022
Fuzzillogic schreef op woensdag 19 oktober 2011 @ 00:03:
Ik vraag me af of er interesse is in een kit/all-in-one-vorm van dit systeem? Daarbij kun je denken aan een mooi kastje voor aan de muur met display, ingebouwde 433MHz zender en ontvanger. Dat aangevuld met een losse ......
Mensen hier met ideeën?
Ik ben net verhuisd en ga weer vanaf nul beginnen. in mijn oude huis was ik trouwens bezig om het scada pakket Mango te koppelen met arduino. Ik zag dat er een CAN-Bus shield was waarmee mogelijk nog meer mogelijkheden zijn om Mango te koppelen. alle gegevens zouden dan centraal gebracht kunnen worden op één arduino met een CAN-Bus shield.

Eind november ben ik een weekje vrij, ik hoop er dan wat meer tijd in te kunnen stoppen en mogelijk mijn ideeën met jullie te kunnen delen. Zelf ben ik werkzaam in de Industriële Automatisering waarbij ik met name gespecialiseerd ben in SCADA systemen. volgens mij komen we met zn allen een heel eind, al dan niet tot het eind ;-)

Acties:
  • 0 Henk 'm!

  • pacificocean
  • Registratie: Mei 2006
  • Laatst online: 28-09 19:24
Fuzzillogic schreef op woensdag 19 oktober 2011 @ 00:03:
Ik kan alleen uit eigen ervaring getuigen dat de library voor de blokker/action/kaku behoorlijk goed werken, zowel zenden als ontvangen. Ik gebruik het dagelijks, om te "vertalen" van action- en kaku-zenders naar een blokker-ontvanger. Gelijktijdig speelt de Arduino als repeater voor een cresta-setje.
De dev-branch werkt ook met Arduino 1.0 RC en is eigenlijk aan te raden boven de default branch. (Wordt tijd dat ik de boel merge..)

Home Easy-support zou fijn zijn, maar ik heb geen enkele mogelijkheid om het te testen bij gebrek aan deze set. Als de code heel afwijkend is van de oude KaKu's, dan is een losse library de betere optie, net zoals het nu voor de CrestaReceiver werkt.



Ik vraag me af of er interesse is in een kit/all-in-one-vorm van dit systeem? Daarbij kun je denken aan een mooi kastje voor aan de muur met display, ingebouwde 433MHz zender en ontvanger. Dat aangevuld met een losse Cresta sensor en een kaku-achtige set met 3 ontvangers + remote. De µC is Arduino-compatible zijn (a la Leonardo) en gewoon met de Arduino IDE + open source libraries te programmeren. Eventueel nog mogelijkheid tot externe uitbreiding, via I2C/SPI/COM oid. Voordeel van dit alles: een laagdrempelig systeem dat gegarandeerd met elkaar samenwerkt.

Helaas ben ik slechts een softwaredeveloper met zeer beperkte kennis van elektrotechniek. Ik weet niet eens waar ik een mooie passende behuizing vandaan moet toveren, laat staan dat ik een kwalitatief goed printje kan ontwerpen.

Mensen hier met ideeën?
Het is mij eindelijk gelukt om de Arduino werkend te krijgen. Heb toch maar een Action setje gekocht. Het protocol van het Lidl setje is toch net iets anders. Nu eens kijken of ik daar uitkom. Tevens een Bluetooth module in bestelling staan om dat ding ook via Android te kunnen bedienen: https://sites.google.com/site/jsrsprojects/androidir En eigenlijk wil ik dat ding ook via mijn IR afstandsbediening kunnen bedienen. Dus nog ff kijken hoe dat zit met zo'n IR ontvanger. Nu nog ergens tijd zien te vinden. Overigens is er al iemand met Android aan de gang gegaan. http://www.youtube.com/watch?v=cXc8SxjUVcs

En was deze website hier al bekend?
http://www.nodo-domotica.nl/

[ Voor 3% gewijzigd door pacificocean op 28-10-2011 13:49 ]


Acties:
  • 0 Henk 'm!

  • NIB0R
  • Registratie: Maart 2009
  • Laatst online: 20:33
Kan iemand verifiëren dat de Elro nu ook werkt met de libraries van Fuzzillogic? Ik ben daar erg benieuwd naar. Ik heb het elro systeem, maar krijg me 433 transmitter pas maandag. Voor de rest heb ik alle code al klaar staan voor gebruik.
Ik ben aan het knutselen aan een html pagina om mijn elro systeem via het internet te bedienen. De bediening over internet werkt. Ben nu bezig met de html interface.
Tot dusver heb ik http://dl.dropbox.com/u/22241326/test_layout.html
Dit is voornamelijk gekopieerd van een voorbeeld wat ik op internet heb gevonden.
Is er iemand heel handig met html die dit zo 1 2 3 in elkaar kan zetten?

Acties:
  • 0 Henk 'm!

  • Piepersnijder
  • Registratie: December 2009
  • Niet online
Dat kan zeker. Ik heb zelf die library aangepast voor de Elro.

Acties:
  • 0 Henk 'm!

  • 10ii
  • Registratie: Oktober 2011
  • Laatst online: 19-12-2022
Nib0r ben toevallig met een soortgelijk domotica project bezig.

Webserver draaien op mijn Arduino door middel van Get opdrachten van mijn website activeer ik acties.
Deze acties zijn het aansturen van KAKU apparaten en DMX controller voor een viertal led tegels.

Zie hier de website die ik hier voor gemaakt heb:
http://dl.dropbox.com/u/13122831/Website%20arduino/index.htm

Ik draai dit vanuit een SD kaart omdat ik anders niet genoeg geheugen heb.
Om de status weer te geven importeer ik gegevens uit een text file die ik na elke actie update.


Laatst een AWST 8800 wandschakelaar aangeschaft om alles met een knop uit te kunnen zetten.
Natuurlijk niet bij stilgestaan dat dit een ander protocol betreft. Al iemand hier het een en ander van aan de gang?

Acties:
  • 0 Henk 'm!

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
Piepersnijder schreef op maandag 31 oktober 2011 @ 18:03:
Dat kan zeker. Ik heb zelf die library aangepast voor de Elro.
En die aanpassingen zitten dus in de dev-branch op bitbucket :)

Acties:
  • 0 Henk 'm!

  • stavast
  • Registratie: Mei 2004
  • Laatst online: 27-10-2022
Zat de NewKaku al ergens in een library? wil hem namelijk uit de nodo software halen en in de library stoppen.. (of is dit vloeken in de kerk?)

weet niet of ik er de tijd voor heb...

Acties:
  • 0 Henk 'm!

  • NIB0R
  • Registratie: Maart 2009
  • Laatst online: 20:33
stavast schreef op dinsdag 01 november 2011 @ 22:37:
Zat de NewKaku al ergens in een library? wil hem namelijk uit de nodo software halen en in de library stoppen.. (of is dit vloeken in de kerk?)

weet niet of ik er de tijd voor heb...
Dat is precies wat ik ook zoek. De nieuwe KAKu codering in de library stoppen.
Ik heb ook de code gevonden van de Nodo. Ik heb gister al geprobeerd gericht te zoeken naar de nieuwe KAKU codering in de Nodo code. Wel al wat gevonden. Maar ik weet niet of ik in staat ben om het eruit te halen. Ik kan programmeren. Maar daar is ook alles mee gezegd :P

Ik hoop dat iemand die hier beter in is en tijd heeft een blik kan werpen op de integratie van de nieuwe KAKU codering in de library.

Acties:
  • 0 Henk 'm!

  • stavast
  • Registratie: Mei 2004
  • Laatst online: 27-10-2022
ik heb de code van de (library) kaku en de nodo kaku gepakt als referentie en ben zo terug gaan kijken. op deze manier kom je een heel eind. Enige dat verschil is voorname het opbouwen van Raw2KakU

Acties:
  • 0 Henk 'm!

  • pacificocean
  • Registratie: Mei 2006
  • Laatst online: 28-09 19:24
Wat is jullie reden om new kaku uit nodo te halen en in de library te stoppen? Ik zo het juist andersom doen. Ation blokker set etc in nodo stoppen.

Acties:
  • 0 Henk 'm!

  • stavast
  • Registratie: Mei 2004
  • Laatst online: 27-10-2022
pacificocean schreef op dinsdag 01 november 2011 @ 23:56:
Wat is jullie reden om new kaku uit nodo te halen en in de library te stoppen? Ik zo het juist andersom doen. Ation blokker set etc in nodo stoppen.
via die library kun je code makkelijker en overzichtelijker maken en handiger kunnen toepassen bij de communicatie over ethernet.

erg leuk die node, maar geen wifi connectie. erg jammer. dus ik ben bezig om een android app te maken waar mee je via wifi <--> arduino 433 kunt zenden en ontvangen. denk bijvoorbeeld aan lampen, temperatuur metingen, gas, water, elektra metingen. verwarming hoop ik ook te kunnen regelen, evenals het openen van mijn deur..

Acties:
  • 0 Henk 'm!

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
pacificocean schreef op dinsdag 01 november 2011 @ 23:56:
Wat is jullie reden om new kaku uit nodo te halen en in de library te stoppen? Ik zo het juist andersom doen. Ation blokker set etc in nodo stoppen.
De insteek van Nodo is anders dan van de 433MHz library: daar waar Nodo een complete oplossing is voor domotica is deze library enkel bedoeld als bouwsteen voor je eigen sketches. Nodo heeft een event-systeem waarmee je je eigen domotica-bediening kunt maken, maar vroeger of later loop je toch tegen grenzen aan. Met deze library liggen die grenzen veel verder: je programmeert immers gewoon in Arduino/C++ wat toch ietsje krachtiger is ;)

Daarnaast is de code van Nodo imho niet altijd even fraai. Het is vrijwel geheel imperatief, niet object georiënteerd en qua efficiëntie op geheugengebruik valt er ook het e.e.a. te verbeteren. Dat, en omdat Nodo gemaakt is voor één specifiek doel is het lastiger om je eigen features eraan toe te voegen.

Mijn casus: ik heb 2 arduino's in gebruik m.b.v. deze library. De een "vertaalt" blokker/action/kaku-remotes naar de blokker-ontvangers die ik gebruik en is tevens repeater voor een Cresta weerstation. Dat zou allebei een prima taak voor Nodo kunnen zijn (als er support was voor het weerstation)
De andere arduino gebruik ik in de woonkamer, als ontvanger voor Cresta sensor en zet de temperatuur + trendgrafiekje op een 20x4 (lekker groot dus) LC-display. Dat lijkt mijn géén taak voor Nodo. Het zou sowieso niet in het geheugen passen, de data voor trendgrafiekje zoals ik het nu heb is redelijk RAM-intensief.

Enfin, met de library kun je een Nodo-achtig systeem maken. Dat vereist wel dat je zelf gaat programmeren, wat imo erg eenvoudig is gemaakt. Met Nodo hoef je je handen niet vuil te maken met Arduino/C/C++, maar is wel beperkter.

Acties:
  • 0 Henk 'm!

  • WVL_KsZeN
  • Registratie: Oktober 2002
  • Laatst online: 22:48
Waar bestellen jullie je spullen eigenlijk? Ik ben op zoek naar een arduino, 433 zender, 433 ontvanger, een paar max3323 chips en een breadbordje. Kan niks vinden dat alles kan leveren, tis of het een of het ander...

/me heeft eindelijk ook een icoontje.. woef.. boeien..


Acties:
  • 0 Henk 'm!

  • stavast
  • Registratie: Mei 2004
  • Laatst online: 27-10-2022
WVL_KsZeN schreef op vrijdag 04 november 2011 @ 12:52:
Waar bestellen jullie je spullen eigenlijk? Ik ben op zoek naar een arduino, 433 zender, 433 ontvanger, een paar max3323 chips en een breadbordje. Kan niks vinden dat alles kan leveren, tis of het een of het ander...
nuelectronics.com (freeduino, arduino, enz..), ebay.nl (hard to get dingen, prijs vergelijking enz), dickbest.nl (al mijn overig spul).

hou samenkopen.net ook goed in de gaten, komen af en toe leuke dingen voorbij.. jammer genoeg ben je net te laat voor de laatste actie.voor 433 spul kun je nog terecht bij samenkopen.net. hou er wel rekening mee dat je langer moet wachten op je spullen. meestal koop ik van alles een paar stuks, altijd handig!

Acties:
  • 0 Henk 'm!

Verwijderd

Eergisteren ook een paar AtMega's328 en 433 rx/tx binnen gekregen om een arduino in elkaar te steken

Om terug te komen op de Nieuwe KaKu code's:
Op CO vond ik dit topic met timings.

even quick en dirty de onderstaande code (zonder dim) geschreven voor het aansturen van de zender.

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/*
NewKaku 

Timing
T = korte periode = 275 µs (of 375, werkt ook)
lange periode = 3 of 4*T (werkt ook allebei)
         _   _
'0':    | |_| |____ (T,T,T,3T)
       _      _
'1':    | |____| |_ (T,3T,T,T)
       _   _
dim:    | |_| |_    (T,T,T,T) 

Het frame bestaat normaal uit 32 bits:
startpuls (T hoog, 9*laag)
26  adres
1   groep-bit
1   on/off/[dim]
4   unit (indien meerdere kanalen op één zender)
[4] [dimniveau]
stoppuls (T hoog, verder laag)
*/


//defineer TransmitterPin
short int SendPin = 11;
//defineer pulsetijd in us
short int PulseTime = 275;
//defineer lange puls vermenigvuldingsfactor
short int LongPulseTimeMultiplier = 3;
//defineer hoe vaak de code te herhalen;
short int TimesToRepeat = 3;
//defineer Wachttijd tussen herhalen van commando
short int TimeBetweenRepeat = 1000;



//defineer de 32 Bits om te verzenden
char FrameToSend[]= "ABCDEF30onA"; //Om in de toekomst omzetten naar leesbaar formaat
//                         adres ABCDEF3              groep 0      aan        unit A
//          5*hex(0t/mF)ABCDEF     2*bin(0t/m3)3      bin(0/1)   bin(0/1)   hex(0t/mF)
//       101010111100110111101111      11                0           1        1010
// BitCommandToSend = 10101011110011011110111111011010; 
char BitCommandToSend[ ] = "10101011110011011110111111011010"; 
void setup() {
}

void loop() {
    //herhaal verzenden "TimesToRepeat" keer
    for (int i = 0; i < TimesToRepeat; i++){

          //stuur startpuls
            digitalWrite(SendPin, HIGH);
            delayMicroseconds(PulseTime); 
            digitalWrite(SendPin, LOW); 
            delayMicroseconds(PulseTime*9);
          
          // stuur 32 bits frame
            for (int i = 0; i < 32; i++){
              
              //wanneer het te zenden bit 1 is
              if(BitCommandToSend[i] == 1 ){
                digitalWrite(SendPin, HIGH);
                delayMicroseconds(PulseTime);
                digitalWrite(SendPin, LOW);
                delayMicroseconds(PulseTime*LongPulseTimeMultiplier);
                digitalWrite(SendPin, HIGH);
                delayMicroseconds(PulseTime);
                digitalWrite(SendPin, LOW);
                delayMicroseconds(PulseTime);
              }
              
              //Wanneer het te zenden bit 0 is
              else if(BitCommandToSend[i] == 0 ){
                digitalWrite(SendPin, HIGH);
                delayMicroseconds(PulseTime);
                digitalWrite(SendPin, LOW);
                delayMicroseconds(PulseTime);
                digitalWrite(SendPin, HIGH);
                delayMicroseconds(PulseTime);
                digitalWrite(SendPin, LOW);
                delayMicroseconds(PulseTime*LongPulseTimeMultiplier);
              }
        }
    
          //stuur StopPuls
            digitalWrite(SendPin, HIGH);
            delayMicroseconds(PulseTime); 
            digitalWrite(SendPin, LOW);
            delayMicroseconds(PulseTime*5);
    }   
    delayMicroseconds(TimeBetweenRepeat); 
    
}


Helaas heb ik dit niet werkend gekregen, de hardware werkt probleemloos met Fuzzilogic's Code
Iemand een suggestie?

Acties:
  • 0 Henk 'm!

  • stavast
  • Registratie: Mei 2004
  • Laatst online: 27-10-2022
uit de software van het NODO project heb ik onder staande kunnen halen. aanroepen gaat als volgt:

NewKAKU_2_RawSignal(command2event(100, 100,1));

ik heb dit net gekoppeld met mn ethernetshield (28J60 versie). doordat je in een loop zit blijft de zender constant zenden. vandaar die teller AvoidOverflow. heb deze alleen nog niet getest... en volgens mij gaat hij ook niet werken. ik weet het wel zeker eigenlijk. heeft iemand een beter alternatief? mogelijk een toggle value oid?

Met dank aan Paul Tonkes, ontwikkelaar van de NODO

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// Control New KAKU system via Ethershield (type 28J60)

#include "etherShield.h"
#include "ETHER_28J60.h"
#include <NewKAKU.h>

#define RF_TransmitPowerPin         4  // +5 volt / Vcc spanning naar de zender.
#define RF_TransmitDataPin          5  // data naar de zender

static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24};   // this just needs to be unique for your network, 
                                                                // so unless you have more than one of these boards
                                                                // connected, you should be fine with this value.
                                                           
static uint8_t ip[4] = {192, 168, 123, 111};                       // the IP address for your board. Check your home hub
                                                                // to find an IP address not in use and pick that
                                                                // this or 10.0.0.15 are likely formats for an address
                                                                // that will work.

static uint16_t port = 80;                                      // Use port 80 - the standard for HTTP
ETHER_28J60 e;

void setup()
{ 
  e.setup(mac, ip, port);
  delay(1000);
}

void loop()
{
  char* params;
  if (params = e.serviceRequest())
  {
    e.print("<H1>Web Remote</H1>");
    if (strcmp(params, "?cmd=on") == 0)
    {
      NewKAKU_2_RawSignal(command2event(100, 100,1));
      e.print("<A HREF='?cmd=off'>Turn off</A>");
    }
    if (strcmp(params, "?cmd=off") == 0) 
    {
      NewKAKU_2_RawSignal(command2event(100, 100,0));
      e.print("<A HREF='?cmd=on'>Turn on</A>");
    }
    e.respond();    
  }
}



Library:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#include "NewKAKU.h"

/*********************************************************************************************\
* NewKAKU
* Encoding volgens Arduino Home Easy pagina
* Pulse (T) is 275us PDM
* 0 = T,T,T,4T, 1 = T,4T,T,T, dim = T,T,T,T op bit 27
*
* NewKAKU ondersteund:
*   on/off       ---- 000x Off/On
*   all on/off   ---- 001x AllOff/AllOn
*   dim absolute xxxx 0110 Dim16        // dim op bit 27 + 4 extra bits voor dim level
*
*  Nodo Event            = TTTTUUUUCCCCCCCC1111111122222222       -> T=Type, U=Unit, 1=Par-1, 2=Par-2
*  Nodo commando NewKAKU = TTTTUUUUPPPPPPPPAAAAAAAALLLLCCCC       -> T=Type, U=Unit, P=CMD_NEWKAKU_SEND, A=User adres, L=dimlevel, c=commando
*  NewKAKU (org.)        = AAAAAAAAAAAAAAAAAAAAAAAAAACCUUUU(LLLL) -> A=KAKU_adres, C=commando, U=KAKU-Unit, L=extra dimlevel bits (optioneel)
*  NewKAKU van Nodo      = 000000000000000000AAAAAAAACC0001(LLLL) -> H=Nodo_home, A=User adres, D=Dim, C=commando, L=extra dimlevel bits (optioneel)
*  Bit                   = 01234567890123456789012345678901 2345  -> Bit-0 gaat als eerste door de ether.
*                                    1111111111222222222233 3333 
*
\*********************************************************************************************/

#define NewKAKU_RawSignalLength      132
#define NewKAKUdim_RawSignalLength   148
#define NewKAKU_1T                   275        // us
#define NewKAKU_mT                   500        // us, midden tussen 1T en 4T 
#define NewKAKU_4T                  1100        // us
#define NewKAKU_8T                  2200        // us, Tijd van de space na de startbit
#define VALUE_OFF 0
#define VALUE_ON 1
#define RAW_BUFFER_SIZE            200 // Maximaal aantal te ontvangen bits*2
#define TX_REPEATS                 5
#define RF_TransmitPowerPin         4  // +5 volt / Vcc spanning naar de zender.
#define RF_TransmitDataPin          5  // data naar de zender
#define SIGNAL_TYPE_NODO             1
#define UNIT                       0x1 // Unit nummer van de Nodo. Bij gebruik van meerdere nodo's deze uniek toewijzen [1..F]
unsigned int RawSignal[RAW_BUFFER_SIZE+2];
byte TransmitRepeat     = TX_REPEATS;
boolean Simulate; 
byte Unit; 

  

/*********************************************************************************************\
* Deze routine berekent de RAW pulsen uit een CMD_NEWKAKU plaatst deze in de buffer RawSignal
\*********************************************************************************************/

void NewKAKU_2_RawSignal(unsigned long CodeNodo)    //aanspreken met NewKAKU_2_RawSignal(command2event(CMD_KAKU_NEW, Par1, Par2)) (???, DEVICEID, 0/1) ??? had ik 100 staan.
  {
  unsigned long bitstream=0L;
  byte Bit, Level, i=1;
  byte x; /// aantal posities voor pulsen/spaces in RawSignal
  byte y; 
  pinMode(RF_TransmitDataPin,OUTPUT);
  pinMode(RF_TransmitPowerPin,OUTPUT);

  // bouw het KAKU adres op
  bitstream=1|(CodeNodo>>2)&0x3FC0;  // Door gebruiker gekozen adres uit de Nodo_code toevoegen aan adres deel van de KAKU code. Tevens compatibiliteit met Versie 1.1 door 1e bit te zetten (Home adres 1)

  // zet commando bit en level
  Level=CodeNodo&0xff;
  if(Level==VALUE_ON || Level==VALUE_OFF)
    {
    bitstream|=(Level==VALUE_ON)<<4; // bit-5 is het on/off commando in KAKU signaal
    Level=false;
    x=130;// verzend startbit + 32-bits = 130
    }
  else
    {
    Level--;// Dim level 0..15
    x=146;// verzend startbit + 32-bits = 130 + 4dimbits = 146
    }
 
  // bitstream bevat nu de KAKU-bits die verzonden moeten worden.

  for(i=3;i<=x;i++)RawSignal[i]=NewKAKU_1T;  // De meeste tijden in signaal zijn T. Vul alle pulstijden met deze waarde. Later worden de 4T waarden op hun plek gezet
  
  i=1;
  RawSignal[i++]=NewKAKU_1T; //pulse van de startbit
  RawSignal[i++]=NewKAKU_8T; //space na de startbit
  
  y=31; // bit uit de bitstream
  while(i<x)
    {
    if((bitstream>>(y--))&1)
      RawSignal[i+1]=NewKAKU_4T;     // Bit=1; // T,4T,T,T
    else
      RawSignal[i+3]=NewKAKU_4T;     // Bit=0; // T,T,T,4T

    if(x==146)  // als het een dim opdracht betreft
      {
      if(i==111) // Plaats van de Commnado-bit uit KAKU 
        RawSignal[i+3]=NewKAKU_1T;  // moet een T,T,T,T zijn bij een dim commando.
      if(i==127)  // als alle pulsen van de 32-bits weggeschreven zijn
        {
        bitstream=(unsigned long)Level; //  nog vier extra dim-bits om te verzenden
        y=3;
        }
      }
    i+=4;
    }
  RawSignal[i++]=NewKAKU_1T; //pulse van de stopbit
  RawSignal[i]=NewKAKU_1T*32; //space van de stopbit tevens pause tussen signalen
  RawSignal[0]=i; // aantal bits*2 die zich in het opgebouwde RawSignal bevinden
  
  RawSendRF(); // zend het signaal
  }
  
  unsigned long command2event(int Command, byte Par1, byte Par2)
    {
    return ((unsigned long)SIGNAL_TYPE_NODO)<<28   | 
           ((unsigned long)Unit)<<24            | 
           ((unsigned long)Command)<<16           | 
           ((unsigned long)Par1)<<8               | 
            (unsigned long)Par2;
    }

  
  void RawSendRF(void)
  {
  int x;
    
  if(Simulate)return;    
  digitalWrite(RF_TransmitPowerPin,HIGH); // zet de 433Mhz zender aan
  delay(5);// kleine pause om de zender de tijd te geven om stabiel te worden 
  
  for(byte y=0; y<TransmitRepeat; y++) // herhaal verzenden RF code
    {
    x=1;
    while(x<=RawSignal[0])
      {
      digitalWrite(RF_TransmitDataPin,HIGH); // 1
      delayMicroseconds(RawSignal[x++]); 
      digitalWrite(RF_TransmitDataPin,LOW); // 0
      delayMicroseconds(RawSignal[x++]); 
      }
    }
    digitalWrite(RF_TransmitPowerPin,LOW); // zet de 433Mhz zender weer uit
   }
  

Acties:
  • 0 Henk 'm!

  • NIB0R
  • Registratie: Maart 2009
  • Laatst online: 20:33
Stavast. Als ik het goed begrijp. kan je met "NewKAKU_2_RawSignal(command2event(100, 100,1)"
Een 'nieuw kaku' apparaat aansturen. hierbij is de eerste "100" een vaste waarde. Waarvan jij ook niet weet waarom je die moet sturen. die laatste "1" is het aan/uit schakelen van het device. Dan is die middelste je zender ID. Wat zijn de grenzen tot waar ik die kan aanpassen? 0 tot 999? 0 tot FFF?

Ik hoop dat de 'nieuwe kaku' binnenkort in de library opgenomen kan worden. Of in een nieuwe library.

Vraag aan Fuzzlogic. Kan je met de ShowreceivedCode ook de code van een nieuwe kaku ontvangen?

Acties:
  • 0 Henk 'm!

  • stavast
  • Registratie: Mei 2004
  • Laatst online: 27-10-2022
NIB0R schreef op zaterdag 05 november 2011 @ 17:40:
Stavast. Als ik het goed begrijp. kan je met "NewKAKU_2_RawSignal(command2event(100, 100,1))"
Een 'nieuw kaku' apparaat aansturen. hierbij is de eerste "100" een vaste waarde. Waarvan jij ook niet weet waarom je die moet sturen. die laatste "1" is het aan/uit schakelen van het device. Dan is die middelste je zender ID. Wat zijn de grenzen tot waar ik die kan aanpassen? 0 tot 999? 0 tot FFF?

Ik hoop dat de 'nieuwe kaku' binnenkort in de library opgenomen kan worden. Of in een nieuwe library.

Vraag aan Fuzzlogic. Kan je met de ShowreceivedCode ook de code van een nieuwe kaku ontvangen?
Klopt helemaal ja grenzen zijn 0-255. Nadat het werkte heb ik het gelijk hier neer gezet, misschien dat er dan anderen ook even naar kunnen kijken. misschien zitten er veel overbodige dingen in.

het is op dit moment al een library! ik kan je ook de .h file geven?

Acties:
  • 0 Henk 'm!

  • NIB0R
  • Registratie: Maart 2009
  • Laatst online: 20:33
Het is idd een library, maar Ik dacht meer aan een net stukje code. De command2event lijkt me een omweg enzo. Desalniettemin ben ik heel blij dat je dit hebt gemaakt en bedacht. Mij was het niet gelukt. Maar ik denk dat dit nog meer versimpeld kan worden.

Iets in de trend van functies als "newkaku_send(sender ID, on/off)". Je weet wel heel basic. Makkelijk te behappen voor de niet zulke hele goede programmeurs zoals ik :P. Helemaal ideaal zou zijn een receive functie net als in de fuzzlogic library zit. Dat je eenmalig je zender kan inlezen en hem daarna met je Arduino kan immiteren. Of je arduino waarschuwen als een externe newkaku remote wordt gebruikt.


ps. is de 0-255 niet wat weinig? ik dacht dat new kaku 2,7 miljoen unieke ID's had?

Acties:
  • 0 Henk 'm!

  • stavast
  • Registratie: Mei 2004
  • Laatst online: 27-10-2022
NIB0R schreef op zaterdag 05 november 2011 @ 18:22:
Het is idd een library, maar Ik dacht meer aan een net stukje code. De command2event lijkt me een omweg enzo. Desalniettemin ben ik heel blij dat je dit hebt gemaakt en bedacht. Mij was het niet gelukt. Maar ik denk dat dit nog meer versimpeld kan worden.

Iets in de trend van functies als "newkaku_send(sender ID, on/off)". Je weet wel heel basic. Makkelijk te behappen voor de niet zulke hele goede programmeurs zoals ik :P. Helemaal ideaal zou zijn een receive functie net als in de fuzzlogic library zit. Dat je eenmalig je zender kan inlezen en hem daarna met je Arduino kan immiteren. Of je arduino waarschuwen als een externe newkaku remote wordt gebruikt.


ps. is de 0-255 niet wat weinig? ik dacht dat new kaku 2,7 miljoen unieke ID's had?
Om het in de lijn te brengen met fuzzlogic is inderdaad een tweede stap. ik heb nu de functie van het NODO project gepakt en deze enigszins gewijzigd en er een library van gemaakt. nu ik de code en opbouw van het signaal beter begrijp kan ik verder gaan.

ik haal die 0-255 ook alleen maar uit het nodo programma :). daar kan je maar 255 devices selecteren. ik weet verder niet hoe deze ID dan verder wordt opgebouwd. ik kan via NODO beheer tool mijn kaku koppelen en vervolgens gebruik ik het gebruikte ID om via de library de kaku te schakelen. aan 255 devices heb ik voorlopig wel voldoende ;-) ga jij heel de buurt automatiseren >:)

dit staat overigens in het nodo beheer programma:

"Volgens deze codering heeft iedere KAKU zender een uniek adres. Het adres zoals de Nodo dit verzendt wordt samengesteld uit o.a. het UNIT-nummer van de Nodo en het opgegeven adres. Hiermee zijn dus 65536 adressen mogelijk. De waarde zelf geeft het dimmerniveau aan. "

volgens mij maakt NODO gebruik van een zelf gemaakte bitstream. in feite maakt het niet echt uit welke data je stuurt zolang deze maar overeen komt met het nieuwe kaku protocol. hier maakt nodo dus gebruik van. aan de hand van NODO ID en het DeviceID dat je kiest zal er een "NewKaku ID" ontstaan. hier zouden we dus op kunnen acteren. denk dat dit de grootste vervuiler is binnen de library. Het NODO ID moet dus buitenspel gezet worden, en de functie zal dit wegvallen moeten opvullen.

[ Voor 13% gewijzigd door stavast op 05-11-2011 20:40 ]


Acties:
  • 0 Henk 'm!

  • T_E_O
  • Registratie: Oktober 1999
  • Laatst online: 27-09 20:07
Heb zelf intussen ook wat probeerseltjes gebrouwen nav de "Nodo" die ik in elkaar geknutseld heb. Zo kan ik intussen gewoon de Hex-codes voor infrarood-signalen gebruiken, zoals ze op bijvoorbeeld deze pagina verzameld worden. Daardoor heb ik nu de discrete on/off-codes voor m'n TV en versterker, zodat ik nu een knopje "versterker aan" kan maken ipv "versterker power" :)

Ook ben ik een eindje onderweg met het uitpuzzelen van 't HomeEasy-EU protocol (met automatische codes). Erg ingewikkeld lijkt het niet te zijn, maar door beperkte ervaring op dit gebied heb ik misschien nog 'n keer wat hulp nodig daarbij.

Wat van dringender aard is, is dat m'n infrarood-signalen slecht werken zodra m'n (LCD-)televisie ingeschakeld staat. Als ik 't ding op de spaarstand "scherm uit" zet, dan is dat meteen opgelost, dus ik vermoed dat het beeldscherm voor interferentie zorgt ofzo. Wellicht heb ik ook wel de verkeerde LEDjes. Het zijn 950nm-leds van Conrad. Valt daar iets op aan te merken ? :)

Verder heb ik ook deze jongens nog liggen, maar die lijken helemaal niets te doen.

Acties:
  • 0 Henk 'm!

  • stavast
  • Registratie: Mei 2004
  • Laatst online: 27-10-2022
T_E_O schreef op dinsdag 08 november 2011 @ 11:53:
Heb zelf intussen ook wat probeerseltjes gebrouwen nav de "Nodo" die ik in elkaar geknutseld heb. Zo kan ik intussen gewoon de Hex-codes voor infrarood-signalen gebruiken, zoals ze op bijvoorbeeld deze pagina verzameld worden. Daardoor heb ik nu de discrete on/off-codes voor m'n TV en versterker, zodat ik nu een knopje "versterker aan" kan maken ipv "versterker power" :)

Ook ben ik een eindje onderweg met het uitpuzzelen van 't HomeEasy-EU protocol (met automatische codes). Erg ingewikkeld lijkt het niet te zijn, maar door beperkte ervaring op dit gebied heb ik misschien nog 'n keer wat hulp nodig daarbij.

Wat van dringender aard is, is dat m'n infrarood-signalen slecht werken zodra m'n (LCD-)televisie ingeschakeld staat. Als ik 't ding op de spaarstand "scherm uit" zet, dan is dat meteen opgelost, dus ik vermoed dat het beeldscherm voor interferentie zorgt ofzo. Wellicht heb ik ook wel de verkeerde LEDjes. Het zijn 950nm-leds van Conrad. Valt daar iets op aan te merken ? :)

Verder heb ik ook deze jongens nog liggen, maar die lijken helemaal niets te doen.
hoe gaat de verbinding onderling met elkaar. maw; wat is input en wat gaat er uit naar je tv?

handige tip om het protocol icm de code te begrijpen is om domweg eentjes en nulletjes op papier te zetten. dan krijg je een goed beeld wat erin gaat en hoe het er uiteindelijk uitkomt.

Acties:
  • 0 Henk 'm!

  • T_E_O
  • Registratie: Oktober 1999
  • Laatst online: 27-09 20:07
Ik maak er met de GD-library zelfs plaatjes van :) De IR-signalen op zich kloppen precies en lijken ook sterk op wat ik van de meegeleverde afstandsbediening ontvang.

Het lijkt er echt op, dat het IR-signaal verstoord wordt wanneer het scherm van de televisie is ingeschakeld. Of die verstoring dan komt door signalen uit de televisie in het infrarode spectrum of dat er elektromagnetische storing is waardoor de IR-signalen überhaupt niet goed uit de Arduino komen weet ik niet.

Ik zal morgen eens proberen wat er gebeurt wanneer ik de televisie ingeschakeld heb en de IR-signalen door de koker van een wc- of keukenrol van Arduino naar televisie of versterker transporteer. Daarmee moet ik kunnen vaststellen of het probleem optisch van aard is.

Acties:
  • 0 Henk 'm!

  • stavast
  • Registratie: Mei 2004
  • Laatst online: 27-10-2022
iemand al vorderingen in de newkaku library :) ?

Acties:
  • 0 Henk 'm!

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
stavast schreef op maandag 14 november 2011 @ 21:44:
iemand al vorderingen in de newkaku library :) ?
Not yet. Tijd enzo :( Ik vraag me wel af of de code van Nodo, zoals hierboven gepost is, wel overeenkomt met new kaku. Het strookt iig niet met wat ik me kan herinneren. Maar ik heb slechts een enkele, eenvoudige zender om mee te testen.

Acties:
  • 0 Henk 'm!

  • NIB0R
  • Registratie: Maart 2009
  • Laatst online: 20:33
Stavast, Ik ben nog niet verder geraakt.

Wel een vraag betreft jouw newkaku library. Als ik een newkaku receiver unit heb. Kan ik die dan in leren met de functie: NewKAKU_2_RawSignal(command2event(100, 100,1)) , zonder gebruik te maken van de nodo beheer tool.
Door de ontvanger op in leren te zetten, dan een aantal keer NewKAKU_2_RawSignal(command2event(100, 100,1)) te sturen zodat ze aan elkaar worden gekoppeld, en vervolgens deze regel te gebruiken als ik mijn newkaku device wil aan/uit zetten.

Of is de nodo beheertool noodzakelijk?

En heb je ook al een manier gevonden om een Newkaku zender device te ontvangen op de arduino?
Bijvoorbeeld de deur/raam sensor van kaku.

Acties:
  • 0 Henk 'm!

  • stavast
  • Registratie: Mei 2004
  • Laatst online: 27-10-2022
NIB0R schreef op woensdag 16 november 2011 @ 11:10:
Stavast, Ik ben nog niet verder geraakt.

Wel een vraag betreft jouw newkaku library. Als ik een newkaku receiver unit heb. Kan ik die dan in leren met de functie: NewKAKU_2_RawSignal(command2event(100, 100,1)) , zonder gebruik te maken van de nodo beheer tool.
Door de ontvanger op in leren te zetten, dan een aantal keer NewKAKU_2_RawSignal(command2event(100, 100,1)) te sturen zodat ze aan elkaar worden gekoppeld, en vervolgens deze regel te gebruiken als ik mijn newkaku device wil aan/uit zetten.

Of is de nodo beheertool noodzakelijk?

En heb je ook al een manier gevonden om een Newkaku zender device te ontvangen op de arduino?
Bijvoorbeeld de deur/raam sensor van kaku.
de omschrijving zoals jij hem geeft zou volgens mij moeten werken, al weet ik het niet zeker.

momenteel ben ik met een aantal andere dingen bezig waardoor dit projectje een lage prior heeft gekregen. misschien dat ik dit weer ga oppakken, maar het was een beetje een showstopper voor mijn project :) momenteel gaat het mij meer om de werking kan om de precieze details. zo langzamerhand druppelen de onderdelen voor mijn projectje binnen. hoop komende tijd eens wat concrete dingen te kunnen weg zetten.

ik heb nog geen ontvang optie toegevoegd of wat dan ook.

heb sinds een aantal weken ook mijn netduino binnen, dit is de grootste reden dat ik de ontwikkeling wat betreft de arduino op een laag pitje heb staan :>

Acties:
  • 0 Henk 'm!

Verwijderd

Hey,
Deze week ben ik ook begonnen met arduino en RF.
Bij mij thuis kan ik nu me KAKU schakelaar aansturen en ook de remote uitlezen met onderstaande code waarvan delen schaamteloos zijn gekopieerd uit andere code.
De dimmers kan ik nog niet aansturen omdat ik ze nog niet gemonteerd heb en daarom ook nog niet kan testen.
Dus met dank aan fuzzillogic en wieltje van curcuits online forum.

Het is niet de mooiste of de efficiëntste code, maar werkt wel lekker.

C++: newKaku.pde
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
signed short stateCounter = -1;
String serialIncomming;
boolean sending = false;

void setup()
{
  Serial.begin(115200); 
  attachInterrupt(0, interruptHandler, CHANGE); 
  pinMode(11, OUTPUT);
}

void loop()
{
  char serialByte;
  
  while(Serial.available() > 0)
  {
    serialByte = Serial.read();
    
    if(serialByte >= 0x20 && serialByte <= 0x7E)
    {
      serialIncomming += String(serialByte);  
    }
    else if(serialByte == '\r')
    {      
      if(serialIncomming == "on")
        sendSwitch(123456, false, true, 0, 3);
      else if(serialIncomming == "off")
        sendSwitch(123456, false, false, 0, 3);
      else if(serialIncomming == "assign")
        sendSwitch(123456, false, true, 0, 10);
      else if(serialIncomming == "unassign")
        sendSwitch(123456, false, false, 0, 10);
      else
        Serial.println("Unknown Command");
        
      serialIncomming = "";
    }      
  }
}

void interruptHandler()
{
  if(sending)
    return;
  
  static byte receivedBit;
  static unsigned long receivedCommand;  
  static unsigned long lastChange = 0;
  unsigned long currentTime=micros();
  unsigned int duration=currentTime-lastChange;
  lastChange=currentTime;
  
  if(duration > 2500 && duration < 2800)  // Startbit
  {
    stateCounter = 0;
    receivedBit = 0;
    receivedCommand = 0;
  }
  else if(!(stateCounter & 0x80)) // stateCounter>=0 && stateCounter < 128
  {
    if(duration > 1500)
    {
      stateCounter = -1;
      return;  
    }
     
    receivedBit <<= 1;
    
    if(duration > 1000)
      receivedBit |= 0x01;

    if((stateCounter%4) == 3)
    {
      receivedCommand <<= 1;
        
      if(receivedBit == 4)        // -___-_ '1'
        receivedCommand |= 0x01;
      else if(receivedBit == 1)   // -_-___ '0'
        ;  // No need to handle
      else if(receivedBit == 0)   // -_-_  Dimming
        ;  // Unhandled for now
      else
      {
        stateCounter = -1;
        return;  
      }
        
      receivedBit = 0;
    }  

    stateCounter++;
  }
  else if(stateCounter == 128)
  {
    Serial.print(receivedCommand);
    Serial.print("  Address:");
    Serial.print(receivedCommand >> 6);
    Serial.print("  Group:");
    Serial.print((receivedCommand >> 5)&0x01);
    Serial.print("  Cmd:");
    Serial.print((receivedCommand >> 4)&0x01);
    Serial.print("  Unit:");
    Serial.println((receivedCommand)&0x0F);
              
    stateCounter = -1;
  }
}

void sendSwitch(unsigned long address, boolean group, boolean state, short unit, short repeats)
{
  unsigned long transmitCommand;
  
  transmitCommand = address << 6;
  transmitCommand |= group << 5;
  transmitCommand |= state<<4;
  if(!group)
    transmitCommand |= unit & 0x0f;
  
  sendSwitch(transmitCommand, repeats);
}

void sendSwitch(unsigned long transmitCommand, short repeatCount)
{
  sending = true;
  
  Serial.print("Sending: ");
  Serial.println(transmitCommand);
  
  for(short repeats = 1; repeats <= repeatCount; repeats++)
  {
    digitalWrite(11, HIGH);
    delayMicroseconds(330);
    digitalWrite(11, LOW);
    delayMicroseconds(2600);
  
    for(short i = 31; i>=0; i--)
    {
      digitalWrite(11, HIGH);
      delayMicroseconds(330);  
  
      if(bitRead(transmitCommand, i))
      {
        digitalWrite(11, LOW);
        delayMicroseconds(1200);  
        digitalWrite(11, HIGH);
        delayMicroseconds(330);
        digitalWrite(11, LOW);
        delayMicroseconds(200);
      }
      else
      {
        digitalWrite(11, LOW);
        delayMicroseconds(200);  
        digitalWrite(11, HIGH);
        delayMicroseconds(330);
        digitalWrite(11, LOW);
        delayMicroseconds(1200);
      }
    }
  
    digitalWrite(11, HIGH);
    delayMicroseconds(330);
    digitalWrite(11, LOW);
    delayMicroseconds(10200); 
  }
 
  sending = false; 
}

Acties:
  • 0 Henk 'm!

  • 10ii
  • Registratie: Oktober 2011
  • Laatst online: 19-12-2022
Mooi werk Tymmo,

Een leuke basis om mee verder te gaan.

Ik had het ontvangst gedeelte even getest. Hier zitten nog wel wat foutjes in met betrekking tot timing.
Zo ligt de gemiddelde ontvangst duration van de startbit lager op 2200.

na dit aangepast te hebben werkte hij met mijn AWST-8800 Wandschakelaar wel.

Krijg nog wel veel onzinnige waardes binnen waarschijnlijk op te lossen door minimaal 3x dezelfde code te ontvangen te hebben

Acties:
  • 0 Henk 'm!

  • NIB0R
  • Registratie: Maart 2009
  • Laatst online: 20:33
Heeft er nog iemand vordering gemaakt?
Ik heb straks met kerst weer wat tijd om te knutselen.
Ik wil echt graag een goed werkende newkaku ontvanger hebben.
Ook loopt mijn arduino nog weleens op lange termijn vast als ik beide interrupts aanzet van zowel remoteswitch als remotesensor. Is de library trouwens arduino 1.0 compatible?

Acties:
  • 0 Henk 'm!

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
Helaas nog niet verder kunnen gaan. Ik heb zelf ook last gehad van vastlopers. Interrupts zijn een bitch. Het is beter om ze stil te leggen als je iets boeiends doet. Maar dan nog, ik had vorige week ook een vastloper tijdens het verzenden van sensor-data. (Hoe ik dat weet? Een RGB-led maakt een makkelijke kleurige statusindicator :)) Vooralsnog geen clue wat het zou kunnen zijn. Misschien is het beter om in de lib zelf niet te werken met de (nogal bloated) arduino-functies als digitalWrite en micros, maar dat is slechts een huntch.

De dev-branch van de lib werkt met arduino 1.0 RC, en zou ook met 1.0 release moeten werken.

Overigens zag ik nog het project http://www.telldus.com/ dat een 433MHz zender in een USB-unit stopt. Hardware-technisch gezien niet zo spannend, maar prettig wel dat het open source is en ook new KaKu ondersteunt. Wellicht een goed idee om daar eens leentjebuur te spelen.

[ Voor 4% gewijzigd door Fuzzillogic op 12-12-2011 23:47 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Weet iemand of er een lib of onderzoek bestaat voor 433MHz communicatie? Of eigenlijk, voor draadloze communicatie in het algemeen? En dan voornamelijk het reconstrueren van een ontvangen signaal waar wat ruis op zit, niet bepaald triviaal. Het lijkt me zo voor de hand liggend en algemeen nodig dat het wel moet bestaan, maar ik kan geen fatsoenlijke zoekterm bedenken.

[ Voor 0% gewijzigd door Verwijderd op 13-12-2011 00:10 . Reden: hz -> Hz ]


Acties:
  • 0 Henk 'm!

  • NIB0R
  • Registratie: Maart 2009
  • Laatst online: 20:33
Bedankt Tymmo, ik gebruik nu jouw code om newkaku te ontvangen. Dit werkt goed.
Ook werkt dit uitstekend in combinatie met de interrupts van fuzzillogic. De SensorReceive en RemoteReceive. Ik heb het nu zo staan:

InterruptChain::addInterruptCallback(0, RemoteReceiver::interruptHandler);
InterruptChain::addInterruptCallback(0, SensorReceiver::interruptHandler);
InterruptChain::addInterruptCallback(0, interruptHandler);

Echter wil ik af en toe de interrupt uitzetten. Dit ivm. crashes. Bij fuzzillogic zijn library kon ik dat gemakkelijk met RemoteReceiver::disable(); en SensorReceiver::disable();. Dat geld nu natuurlijk niet voor jouw (derde) interrupt.

Op internet vond ik dit:
cli(); //voor disable
sei(); // voor enable
bron: http://www.arduino.cc/playground/Main/AVR

Hiermee zet je volgens mij alle interrupts aan en uit? Gaan ze dan daarna weer in de goede stand. En beïnvloed ik hiermee niet nog meer in het programma?

Acties:
  • 0 Henk 'm!

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
Klopt, maar je kunt ook in Arduinoiaans interrupts() en noInterrupts() gebruiken. Zelfde doel en effect. De interrupt handler in de dev-branch heeft de mogelijkheid om per pin de interrupt handling uit te zetten, bijv: InterruptChain::disable(0); Hiermee voorkom je dat er nog data ontvangen wordt (er wordt geen interrupt meer gegenereerd) maar je kunt andere interrupt-afhankelijke dingen zoals delay en millis wel nog gebruiken. InterruptChain::enable(0); koppelt de boel weer aan.

Op pastebin heb ik mijn homecontrol-sketch gezet. Niet echt voor public consumption, ik copy/paste het as is, commentaar is wat spartaans. Wat het doet: een paar type remotes vertalen naar een blokker-remote, en gelijktijdig repeater spelen voor een Cresta sensor. Een totaal van 4 ledjes geven aan waar-ie mee bezig is. Het geeft wel een idee hoe ik de interrupts gebruik.

Het werkt behoorlijk stabiel (weken zonder problemen) maar laatste hing-ie ogenschijnlijk op regel 125, de led SEN_TRANS_LED bleef branden. :(

Acties:
  • 0 Henk 'm!

  • Technicality
  • Registratie: Juni 2004
  • Laatst online: 29-09 19:07

Technicality

Vliegt rechtsom...

Even een korte vraag die ik misschien wel zelf kan uitzoeken, maar voor de mensen die er mee bezig zijn waarschijnlijk in twee regels is uit te leggen:

Waarom duurt het bij code als:

code:
1
2
3
4
5
kaKuTransmitter.sendSignal('1',1,true);
kaKuTransmitter.sendSignal('1',2,true);
kaKuTransmitter.sendSignal('1',3,true);
kaKuTransmitter.sendSignal('1',4,true);
kaKuTransmitter.sendSignal('2',1,true);

zo lang (honderden ms) tussen het aanschakelen? Ik heb even (zeer vluchtig) door de code gekeken maar zag nergens 'expres' delays staan behalve de micros().

Ik wil namelijk wat lichteffect goed getimed laten schakelen, het liefst (bijna) tegelijk - maar dan wel de flexibiliteit houden ze weer apart uit te zetten of weer aan, dus hetzelfde kanaal pakken is geen optie.

Het enige wat ik ermee doe is 5 schakelaars aan of uit zetten, zou het voor mij nut hebben om toch even erin te duiken en zowat alles eruit te halen en gewoon dat signaal in mijn programma hebben staan? Of heeft de delay een systematische oorzaak waardoor er vrijwel niets te halen valt?

edit: even met millis() gekeken, en het duurt 390 of 391 ms om één .sendsignal uit te voeren. De vraag blijft dus: is dat 'gewoon' overhead van het rekenwerk of een systematisch ingebouwd iets (herhalen signaal oid?).

[ Voor 9% gewijzigd door Technicality op 15-12-2011 02:41 ]


Acties:
  • 0 Henk 'm!

  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 22:35

memphis

48k was toen meer dan genoeg.

Ik heb een vraagje betreffende de ervaringen in het bereik van de losse 433mhz modules.

Ik heb wat oud spul van zolder gehaald wat een nieuw leven moet krijgen. Het is een Conrad telemetrie systeem gebaseerd op een 68HC05B6 als basismodule met 8 digitale, 8 analoge en een timer ingang. De meegeleverde 433mhz set zorgde voor de 2400 baud data overdracht welke aan de seriele poort van de PC werd gekoppeld en middels een modulaire interface uitgelezen kon worden.

Afbeeldingslocatie: http://www.euronet.nl/users/tooms/ftp/telemet.jpg
(de software gelukkig ook nog op een oude 486 laptop terug gevonden)

Nu had de set een zeer slecht bereik, 10 meter en het was niets meer terwijl er 1000 meter was beloofd. Later een wat meer professioneel setje 433mhz gekocht (was toen erg duur) en er was nog maar amper 30 meter haalbaar.

Ik zoek eigenlijk een set die echt 100 meter kan halen, alleen de zender moet klein zijn. Ik lees veel over grote bereiken maar ik geloof het allemaal niet meer.

Een andere optie waar ik aan denk is gewoon een oude 27mhz RC zender strippen en daar het zendmoduul uit halen, op de PPM input kan ik ieder gewenste digitale pulstrein zetten en in de ontvanger kan ik het onbewerkte pulstreintje er wel weer uit vissen.

[ Voor 11% gewijzigd door memphis op 17-12-2011 00:32 ]

Er zijn mensen die mij een GOD vinden


Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09

mad_max234

AMD Athlon II M320

Op lage snelheid en antenne haal ik meer dan 30m(verder niet echt getest) met 5 euro setje van samekopen, en dan gaat het ook nog eens door paar betonnen muren heen.

De beloofde afstand haal je misschien alleen op lage snelheid, goede antenne, en maximaal vermogen, en open ruimte ver van de bewoonde wereld. :)

-Andere hobby- -


Acties:
  • 0 Henk 'm!

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
@Technicality: de code wordt meerdere keren herhaald uitgezonden, om de kans te vergroten dat er tenminste één signaal goed doorkomt. Heb je zo'n nieuwere set die je kunt "trainen"? Dan kun je per schakelaar 2 signalen trainen: een groepssignaal en een individueel signaal. Door het groepssignaal uit te zenden kun je ze dan allemaal in 1x schakelen/

@memphis: ik meen dat Sparkfun hele krachtige zenders heeft, met een bereik van kilometers(!?). Maar ik betwijfel zeer sterk of dat zomaar toegestaan is hier in Nederland.

Acties:
  • 0 Henk 'm!

  • wortelsoft
  • Registratie: Februari 2001
  • Laatst online: 21:54
Voor langere afstand zijn de nordic modules mogelijk(ik heb er geen ervaring mee) beter
http://samenkopen.net/action_product/799656/437229

Acties:
  • 0 Henk 'm!

  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 22:35

memphis

48k was toen meer dan genoeg.

Bedankt voor de tips maar 2.4ghz is geen optie omdat er naast de zender al een 2.4ghz ontvanger zit, op veel gebieden zijn er problemen met het ontvangst gemeld als er een zender naast de ontvanger zit op een dezelfde band.

Ik zal nog even rond kijken maar neig steeds meer om een oude 27MHz RC set te verbouwen.

Er zijn mensen die mij een GOD vinden


Acties:
  • 0 Henk 'm!

  • 10ii
  • Registratie: Oktober 2011
  • Laatst online: 19-12-2022
memphis schreef op maandag 19 december 2011 @ 11:17:
Bedankt voor de tips maar 2.4ghz is geen optie omdat er naast de zender al een 2.4ghz ontvanger zit, op veel gebieden zijn er problemen met het ontvangst gemeld als er een zender naast de ontvanger zit op een dezelfde band.

Ik zal nog even rond kijken maar neig steeds meer om een oude 27MHz RC set te verbouwen.
Ik weet niet wat het bereik is dat je wilt halen?
Zie de volgende documentatie over VirtualWire voor arduino.
http://www.geeetech.com/D...0RF%20Document%5B1%5D.pdf

Hier is getest met een 433 mhz zender/ ontvanger 1/4 lambda antenne (17 cm) zonder ground plane.
bij 1000bps word 150m gehaald

Acties:
  • 0 Henk 'm!

  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 22:35

memphis

48k was toen meer dan genoeg.

150 meter op 2400 baud, dat klinkt goed! Thanx, zal er eens verder induiken. Het setje ziet de ongeveer hetzelfde uit als het Velleman setje, de zender lijkt sprekend.
Ik zal er eens verder in duiken.

Er zijn mensen die mij een GOD vinden


Acties:
  • 0 Henk 'm!

Verwijderd

Als zender en ontvanger ongeveer op een vaste plaats staan, kun je evt. ook nog richtantennes (bv. Yagi-Uda's) gebruiken.

Acties:
  • 0 Henk 'm!

  • 10ii
  • Registratie: Oktober 2011
  • Laatst online: 19-12-2022
Deze setjes zijn op Ebay voor een paar dollar te koop. is wel het proberen waard.

Heb op het moment één setje in gebruik en er is een nieuw setje onderweg om wat testen er mee te doen en een paar fatsoenlijke antennes te maken.

één nadeel via Ebay in China bestellen is de levertijd, deze is wel ongeveer 3 weken.

Acties:
  • 0 Henk 'm!

  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 22:35

memphis

48k was toen meer dan genoeg.

Nee, richtantennes is geen optie, het gaat om een continu snel bewegend iets.

Er zijn mensen die mij een GOD vinden


Acties:
  • 0 Henk 'm!

  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 22:35

memphis

48k was toen meer dan genoeg.

Ik denk dat ik het heb gevonden: http://www.radiometrix.com/content/rx2

Ik heb vanwege een bestelling bij de Conrad een goedkoop 868mhz setje mee laten komen die aan mijn specs voldeed. Ik moet even de tijd maken om er wat testjes mee te doen maar nadat ik de "rx2" opdrukken op de printjes zag en daarop ging Googlen kwam ik op de boven genoemde link uit en dat ziet er hoopvol uit.

Nog mooier is dat deze 868mhz zender op nog geen 2 vierkante centimeter print zit en ik deze bij de centrale telemetrie module zo in kan bouwen. Moet alleen even een goede ontvangerantenne regelen.

Er zijn mensen die mij een GOD vinden


Acties:
  • 0 Henk 'm!

  • Robindev
  • Registratie: Januari 2005
  • Laatst online: 30-11-2023
Hier is een kleine uitbreiding op de code van Tymmo. Dimmer functie werkend en getest.

In eerste instantie had ik de nodo-code geport naar mijn platform(LPC2148), maar dit leek niet niet te werken(geen idee waarom, de c-code lijkt hetzelfde te doen.. zal bij het porten wel een vergissing hebben gemaakt).

Het commentaar komt dan ook direct uit de nodo-code, maar de c-code zelf is van de post van Tymmo op dit thread, geport naar mijn gebruikte platform(plain c voor een ARM LPC2148) (dank naar beide hiervoor).

De functie werkt hetzelfde, alleen de command waarde is ietsje anders; 0=off, 1-16=dimmervalue, 17=on.
voorbeeld:
outputKakuRFSignalAdvanced(123456, 0, 17, 0, 3); geeft een 'aan' signaal naar adres 123456, en verstuurd dit 3x

outputKakuRFSignalAdvanced(123456, 0, 8, 0, 3); geeft een dim +/- 50% signaal naar adres 123456, en verstuurd dit 3x

Het is een beetje hackish, maar ik ga ervan uit dat iedereen hier het aan kan passen naar zijn/haar smaak. Het is in ieder geval getest met een AMWR-210. Let op, dat om een ontvanger het adres te leren, je het minimaal 10x met een 'aan' moet sturen terwijl de ontvanger in leermodus is (ipv 3x tijdens normale operatie), anders accepteert de ontvanger het adres niet.

C: KAKU.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
/*
 Deze routine stuurt de KAKU signalen volgens het nieuwe protocol
         _  _
'0':  | |_| |____ (T,T,T,3T)
       _      _
'1':  | |____| |_ (T,3T,T,T)
       _   _
dim:  | |_| |_  (T,T,T,T) 

T = korte periode = 275 µs (of 375, werkt ook)
lange periode = 3 of 4*T (werkt ook allebei)

Het frame bestaat normaal uit 32 bits:
startpuls (T hoog, 9*laag)
26  adres
1 groep-bit
1 on/off/[dim]
4 unit (indien meerdere kanalen op één zender)
[4] [dimniveau]
stoppuls (T hoog, verder laag)

*/ 

#define CMD_BIT 4
#define VALUE_ON  17
#define VALUE_OFF 0
#define INVALID_DIMMERVALUE 99
#define DIMMER_BITS 4

void outputKakuRFSignalAdvanced(unsigned long address, char group, char state, short unit, short repeats)
{
  unsigned long transmitCommand = 0;
  short dim = INVALID_DIMMERVALUE;
  
  transmitCommand = address << 6;//copy address into transmitCommand
  transmitCommand |= ((unsigned long)group << 5);//copy group into transmitCommand
  if(state == VALUE_ON)//if command is ON, copy it into the transmitCommand
    transmitCommand |= 1<<CMD_BIT;
  else if(state != VALUE_OFF)//if command is not ON or OFF, it is a dimmervalue
    dim = state-1;//value is from 0-15 instead of 1-16
  if(!group)//if command is not intended for a group, copy the specific unit
    transmitCommand |= unit & 0x0f;
  
  sendbitAdvanced(transmitCommand, dim, repeats);
}

void sendbitAdvanced(unsigned long transmitCommand, short dimmerValue, short repeatCount)
{
  short repeats = 0;
  for(repeats = 1; repeats <= repeatCount; repeats++)
  {
    short i=0;
    unsigned long transmitbuffer = transmitCommand;//copy the command in the transmitbuffer
    short dim = dimmerValue;//assign the dimmervalue to an intermediate variable
    
    IOSET0 = 1<<PIN_O;
    delayMicroseconds(330);
    IOCLR0 = 1<<PIN_O;
    delayMicroseconds(2600);
  
    for(i = 31; i>=0; i--)//transmit all 32 bits in transmitbuffer
    {
      IOSET0 = 1<<PIN_O;
      delayMicroseconds(330);  
      
      if(i==CMD_BIT && dim != INVALID_DIMMERVALUE)//if a valid dimmervalue is present, send a special command bit
      {
        IOCLR0 = 1<<PIN_O;
        delayMicroseconds(300);  
        IOSET0 = 1<<PIN_O;
        delayMicroseconds(330);
        IOCLR0 = 1<<PIN_O;
        delayMicroseconds(300);
      }
      else//no valid dimmer value
      {
        if((transmitbuffer>>i)&0x01)//is the bit a 1 or a 0
        {
          IOCLR0 = 1<<PIN_O;
          delayMicroseconds(1200);  
          IOSET0 = 1<<PIN_O;
          delayMicroseconds(330);
          IOCLR0 = 1<<PIN_O;
          delayMicroseconds(200);
        }
        else
        {
          IOCLR0 = 1<<PIN_O;
          delayMicroseconds(200);  
          IOSET0 = 1<<PIN_O;
          delayMicroseconds(330);
          IOCLR0 = 1<<PIN_O;
          delayMicroseconds(1200);
        }
      }
      if(i == 0 && dim != INVALID_DIMMERVALUE)//add dimmer value to end of command
      {
        i = DIMMER_BITS;//reset for loop to add 4 more bits
        transmitbuffer = dim;//add dimmer data to the transmit buffer
        dim = INVALID_DIMMERVALUE;//make sure this part is executed only once 
      }
    }
    IOSET0 = 1<<PIN_O;
    delayMicroseconds(330);
    IOCLR0 = 1<<PIN_O;
    delayMicroseconds(10200); 
  }
}

Acties:
  • 0 Henk 'm!

  • tomtommie
  • Registratie: Januari 2006
  • Laatst online: 30-09 14:22

tomtommie

Alaaf!

Fuzzillogic schreef op maandag 19 september 2011 @ 17:48:
Feest! *O*

Ik heb net een nieuwe library-package online gezet.
  • RemoteSwitch v2.1.0
  • RemoteSensor v1.0.0
  • InterruptChain v1.0.0
Klopt het dat deze niet werkt met de laatste Arduino software 1.0?

Krijg een flinke lijst met errors welke ik in het verleden nooit last van heb gehad:
In file included from LightShow.cpp:11:
/Applications/Arduino.app/Contents/Resources/Java/libraries/RemoteSwitch/RemoteTransmitter.h:10:22: error: WProgram.h: No such file or directory
In file included from LightShow.cpp:11:
/Applications/Arduino.app/Contents/Resources/Java/libraries/RemoteSwitch/RemoteTransmitter.h:92: error: 'boolean' does not name a type
/Applications/Arduino.app/Contents/Resources/Java/libraries/RemoteSwitch/RemoteTransmitter.h:122: error: 'boolean' has not been declared
/Applications/Arduino.app/Contents/Resources/Java/libraries/RemoteSwitch/RemoteTransmitter.h:130: error: 'boolean' has not been declared
/Applications/Arduino.app/Contents/Resources/Java/libraries/RemoteSwitch/RemoteTransmitter.h:155: error: 'boolean' has not been declared
/Applications/Arduino.app/Contents/Resources/Java/libraries/RemoteSwitch/RemoteTransmitter.h:160: error: 'boolean' has not been declared
/Applications/Arduino.app/Contents/Resources/Java/libraries/RemoteSwitch/RemoteTransmitter.h:186: error: 'boolean' has not been declared
/Applications/Arduino.app/Contents/Resources/Java/libraries/RemoteSwitch/RemoteTransmitter.h:195: error: 'boolean' has not been declared
/Applications/Arduino.app/Contents/Resources/Java/libraries/RemoteSwitch/RemoteTransmitter.h:200: error: 'boolean' has not been declared
/Applications/Arduino.app/Contents/Resources/Java/libraries/RemoteSwitch/RemoteTransmitter.h:205: error: 'boolean' has not been declared

Acties:
  • 0 Henk 'm!

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
tomtommie schreef op donderdag 12 januari 2012 @ 09:00:
[...]


Klopt het dat deze niet werkt met de laatste Arduino software 1.0?
Er is een wijziging geweest in Arduino zelf. Probeer de dev-branch eens, die werkt iig voor 1.0 RC.

Acties:
  • 0 Henk 'm!

  • tomtommie
  • Registratie: Januari 2006
  • Laatst online: 30-09 14:22

tomtommie

Alaaf!

Fuzzillogic schreef op donderdag 12 januari 2012 @ 10:26:
[...]

Er is een wijziging geweest in Arduino zelf. Probeer de dev-branch eens, die werkt iig voor 1.0 RC.
Top! Deze werkt perfect, bedankt!

Acties:
  • 0 Henk 'm!

  • Sjoerd
  • Registratie: December 2003
  • Niet online
Ergens dit jaar ga ik verhuizen naar mijn eerste eigen stek, ik wil tegen die tijd eigenlijk wel alle voorbereidingen hebben getroffen om straks alle lampen te kunnen schakelen en evt zelfs dimmen. Momenteel ben ik er alleen nog maar in geslaagd om de Action Impuls remote set te besturen via mijn Arduino, zou het mogelijk zijn deze ook echt in te bouwen? Het lijkt me dat de ontvanger en dergelijke te groot zijn + dat het nog al brandgevaarlijk is als ik dat zelf ga doen. Is er meer beschikbaar van dit Action spul wat ingebouwd kan worden?

Ik ben nog steeds op zoek naar een stukje werkende code voor de Home Easy EU apparaten, soms doet de code die ik nu gebruik het wel en soms ook niet :'(. Home Easy heeft een mooie collectie maar die krijg ik dus niet aan de praat :-(.

Modelbouw - Alles over modelbouw, van RC tot diorama


Acties:
  • 0 Henk 'm!

  • 10ii
  • Registratie: Oktober 2011
  • Laatst online: 19-12-2022
Beste optie lijkt mij om naar klik aan klik uit te gaan.

- Deze werkt goed met de library, bijna plug and play met arduino!
- KaKu heeft mooie systemen die je in je schakeldoos in kan bouwen.
- Dus ook veilig
- Als je de aanbiedingen een beetje bij houd hoeft dit echt niet zo duur te zijn.

Heb zelf ook 4 units ingebouwd en nog enkelen apparaten voor in het stopcontact.

Acties:
  • 0 Henk 'm!

  • Sjoerd
  • Registratie: December 2003
  • Niet online
10ii schreef op zondag 22 januari 2012 @ 23:56:
Beste optie lijkt mij om naar klik aan klik uit te gaan.

- Deze werkt goed met de library, bijna plug and play met arduino!
- KaKu heeft mooie systemen die je in je schakeldoos in kan bouwen.
- Dus ook veilig
- Als je de aanbiedingen een beetje bij houd hoeft dit echt niet zo duur te zijn.

Heb zelf ook 4 units ingebouwd en nog enkelen apparaten voor in het stopcontact.
Bedankt! Ik ga de aanbiedingen in de gaten houden ;). Misschien toch maar het beste, wel zonde van de investeringen in Home Easy tot nu toe :+. Was een prijzig setje... kijken of iemand ze misschien nog wel overkopen of zo op marktplaats :).

Modelbouw - Alles over modelbouw, van RC tot diorama


Acties:
  • 0 Henk 'm!

Verwijderd

Hallo Fuzzillogic,

Ik heb een vraag aan jou.
Jij bent bezig geweest met draadloze temperatuur zender van cresta.
Ik heb deze sketch getest, maar ik kan niet compileren (ik krijg fout meldingen).
Welke versie Arduino is deze sketch gemaakt?
Ik heb bij de Action een setje van Thierry Mugler gekocht (8,00 euro.)
Deze heeft ook een draadloze temperatuur zender met vochtigheid sensor.
Ik heb voor dit setje deze sketch gevonden:

#define _Whole_Data_length 116
#define debug 0

byte pin = 2;
byte whole_array[_Whole_Data_length];
byte value;
byte array_pos=0;
unsigned long duration;

void setup()
{
pinMode(pin, INPUT);
Serial.begin(9600);
Serial.println("Waiting for Data...");
delay(2000);
}

void loop()
{
duration = pulseIn(pin, HIGH);
if ((duration>600)&&(duration<1000)) {
if (debug) Serial.print("1");
whole_array[array_pos] = 1;
array_pos++;
}
if ((duration>1200)&&(duration<4000)){
if (debug) Serial.print("0");
whole_array[array_pos] = 0;
array_pos++;
}

if (array_pos>=_Whole_Data_length) {
if (debug) Serial.print(";");

Serial.print(createValue(30));
Serial.print(createValue(26));
Serial.print(".");
Serial.print(createValue(22));
Serial.print("C ");
Serial.print(", ");
Serial.print(createValue(38));
Serial.print(createValue(34));
Serial.println("%");


array_pos=0;
}
}

byte createValue(byte start)
{
byte bitpos=0;
for (byte valuepos=start;valuepos<=start+3;valuepos++) {
bitWrite(value, bitpos, whole_array[valuepos]);
bitpos++;
}
return value;
}

als ik het sensor boardje direct op de arduino prikt, werk het perfect.(dus zonder zender en ontvanger)
Maar zodra ik met zender en ontvanger werk, ontvang ik veel rommel en af en toe de juiste waarde.

Heb jij een tip hoe dit beter kan kan worden?

@lan

Acties:
  • 0 Henk 'm!

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
@Ian: de 433MHz ontvanger zal automatische gain hebben. Gevolg: het ding ontvangt veel ruis en andere rommel tussen de gewenste signalen in. Met een direct verbinding heb je daar geen last van.

De crux is om een correct signaal te herkennen. Je zult dus vaak opnieuw moeten beginnen met decoderen, als blijkt dat wat je aan het ontvangen bent niet volgens het juiste protocol is. In jouw geval zou je dan dus grofweg 3 scenario's hebben:
  1. Een puls duurt 600ms<pulse<1000ms -> prima
  2. Een puls duurt 1200ms<pulse<4000ms -> prima
  3. Al het andere -> fout, reset array_pos
Mogelijk dat dat al veel scheelt.

Acties:
  • 0 Henk 'm!

Verwijderd

Fuzzillogic:

Bedankt voor je reactie.

De drie scenarios zitten al in de sketch:

void loop()
{
duration = pulseIn(pin, HIGH);
if ((duration>600)&&(duration<1000)) {
if (debug) Serial.print("1");
whole_array[array_pos] = 1;
array_pos++;
}
if ((duration>1200)&&(duration<4000)){
if (debug) Serial.print("0");
whole_array[array_pos] = 0;
array_pos++;
}

if (array_pos>=_Whole_Data_length) {
if (debug) Serial.print(";");
Serial.print(createValue(30));
Serial.print(cr......
......
Serial.println("%");

array_pos=0; Volgens mij is dit de reset ?

Kan jij misschien aangeven waar de reset moet plaats vinden?

Acties:
  • 0 Henk 'm!

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
Verwijderd schreef op vrijdag 03 februari 2012 @ 12:30:
Fuzzillogic:

array_pos=0; Volgens mij is dit de reset ?

Kan jij misschien aangeven waar de reset moet plaats vinden?
Dat is de reset als al geldige data binnen hebt gekregen. Maar je zult al veel vaker moeten resetten, op het moment dat blijkt dat het signaal niet (meer) correct blijkt te zijn. Bij elke pulse zul je dus op de drie genoemde scenario's moeten controleren.

En gebruik ajb [code] blokken voor code, dat leest een heel stuk prettiger :)

Acties:
  • 0 Henk 'm!

  • WVL_KsZeN
  • Registratie: Oktober 2002
  • Laatst online: 22:48
OK, ben dan eindelijk eens begonnen met KaKu, heb nu 2 ontvangers en één zender gekocht. Als volgende wil ik een dimmer die in de muur zit ingebouwd vervangen door ééntje van KaKu, en deze gaan aansturen met een arduino..

Wat wil ik precies :

- KaKu inbouwdimmer in muur inbouwen
- eigen op-arduino-gebaseerde schakelaar/dimmer-zender ergens anders op een muur plakken, zodat ik de ingebouwde dimmer kan bedienen. Op mijn eigen zender wil ik een draaiknop à la jog-wheel, zodat ik dus pulsjes kan verzenden (als in : meer licht, of minder licht).

De ontvanger-dimmer moet dus ofwel een absolute dimstand kunnen ontvangen (dan onthoud mijn zender de huidige dimstand), ofwel signalen als 'minder licht' of 'meer licht' accepteren.

Het is me niet duidelijk welke dimmer van KaKu dit nu precies kan. Misschien dat jullie me kunnen adviseren? Is arduino eigenlijk wel een goede keus als ik iets wil maken dat lang op zijn batterijtje doet (zeg een paar maanden?)

/me heeft eindelijk ook een icoontje.. woef.. boeien..


Acties:
  • 0 Henk 'm!

Verwijderd

Hey all,

Ik ben dit topic flink aan het rondzoeken geweest maar kan het niet vinden. Ik wil graag sturing van de stopcontacten doen via Arduino. Ik heb hier een arduino uno boardje liggen, maar welk schema, 433 chip hoort hier precies bij? Ik heb niks kunnen vinden!

Thnx alvast

Acties:
  • 0 Henk 'm!

  • 10ii
  • Registratie: Oktober 2011
  • Laatst online: 19-12-2022
Verwijderd schreef op maandag 06 februari 2012 @ 12:47:
Hey all,

Ik ben dit topic flink aan het rondzoeken geweest maar kan het niet vinden. Ik wil graag sturing van de stopcontacten doen via Arduino. Ik heb hier een arduino uno boardje liggen, maar welk schema, 433 chip hoort hier precies bij? Ik heb niks kunnen vinden!

Thnx alvast
Zie hier. voor een 433 mhz transmitter/ receiver.

Voor aansluit schema/ foto. zie de eerste reactie in dit forum.

Acties:
  • 0 Henk 'm!

Verwijderd

Cool! Thnx.

Kan ik deze kit ook gebruiken? Ik zou graag snel aan het testen willen :+

Acties:
  • 0 Henk 'm!

  • 10ii
  • Registratie: Oktober 2011
  • Laatst online: 19-12-2022
Verwijderd schreef op woensdag 08 februari 2012 @ 12:10:
Cool! Thnx.

Kan ik deze kit ook gebruiken? Ik zou graag snel aan het testen willen :+
Zou ook moeten gaan maar om er zeker van te zijn heb je een datasheet of zo nodig.

Ik zou dan eerder deze aanraden, een stuk goedkoper en ik weet zeker dat ze werken:
transmitter
receiver

Acties:
  • 0 Henk 'm!

Verwijderd

Ik heb de conrads toch genomen, moest meerbij conrad hebben. @fuzzilogic, is het ook mogelijk om de ruwe ontvangen codes te versturen met jouw library?

dus de ontvangencode: Code: 176654, period duration: 325us. bijvoorbeeld?

Acties:
  • 0 Henk 'm!

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
Verwijderd schreef op zaterdag 11 februari 2012 @ 19:16:
Ik heb de conrads toch genomen, moest meerbij conrad hebben. @fuzzilogic, is het ook mogelijk om de ruwe ontvangen codes te versturen met jouw library?

dus de ontvangencode: Code: 176654, period duration: 325us. bijvoorbeeld?
Ja, dat kan. Zie example "Retransmitter", die precies dat doet :)



Zojuist een update gepusht op de default branch (download). Deze versie is compatible met Arduino 1.0, betrouwbaarder (althans, dat is het idee ;)) en biedt support voor de Elro-sets. Geen support nog voor new KaKu :'(

Acties:
  • 0 Henk 'm!

  • TEAMIKKE
  • Registratie: Februari 2006
  • Niet online
Verwijderd schreef op zaterdag 05 november 2011 @ 01:46:
Eergisteren ook een paar AtMega's328 en 433 rx/tx binnen gekregen om een arduino in elkaar te steken

Om terug te komen op de Nieuwe KaKu code's:
Op CO vond ik dit topic met timings.

even quick en dirty de onderstaande code (zonder dim) geschreven voor het aansturen van de zender.

C++:
1
verhaal aan code


Helaas heb ik dit niet werkend gekregen, de hardware werkt probleemloos met Fuzzilogic's Code
Iemand een suggestie?
Heeft iemand hier misschien nog iets over te zeggen? Ik heb zelf ook een dergelijke code geschreven maar dan in picBasic maar ik zie de fout helaas ook niet. Kan iemand wellicht een zetje in de goede richting geven?

Voor de duidelijkheid hangt aan portb.0 een 433mhz zendertje, aan porta.1 een led en verder wordt er gebruikt gemaakt van een extern 20mhz kristal.

code:
1
Zie hieronder

[ Voor 45% gewijzigd door TEAMIKKE op 26-03-2012 09:17 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Ik heb een goedkope Yagi-antenne gebouwd voor 433.92MHz. Als 't iemand interesseert kan ik het ontwerp beschrijven.

Acties:
  • 0 Henk 'm!

  • franssie
  • Registratie: Februari 2000
  • Laatst online: 00:38

franssie

Save the albatross

Verwijderd schreef op maandag 19 maart 2012 @ 23:27:
Ik heb een goedkope Yagi-antenne gebouwd voor 433.92MHz. Als 't iemand interesseert kan ik het ontwerp beschrijven.
ik ben nog niet erg actief in het 433 spectrum, maar ja, graag! Ben ook erg benieuwd naar de afmetingen.

franssie.bsky.social | 🎸 Niets is zo permanent als een tijdelijke oplossing | Een goed probleem komt nooit alleen | Gibson guitar Fender Guitar God Damn Guitar


Acties:
  • 0 Henk 'm!

  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 22:35

memphis

48k was toen meer dan genoeg.

Afgelopen vrijdag op mijn deurmat:

Afbeeldingslocatie: http://www.euronet.nl/users/tooms/ftp/rxtx.jpg

FM, smalbandig en de high power versie (25mW), goed voor 500 meter bereik bij een zo'n symetrisch mogelijk signaal, met een simpel serieel lijntje zou die op zeker 100 meter moeten kunnen halen.

Ik probeer het eerst met een gewone draadantenne maar als het bereik niet voldoende is zal ik een GP antenne aan de ontvanger proberen. Een 1e test geeft al aardige resultaten.

Er zijn mensen die mij een GOD vinden


Acties:
  • 0 Henk 'm!

  • TEAMIKKE
  • Registratie: Februari 2006
  • Niet online
TEAMIKKE schreef op zaterdag 17 maart 2012 @ 17:14:
[...]


Heeft iemand hier misschien nog iets over te zeggen? Ik heb zelf ook een dergelijke code geschreven maar dan in picBasic maar ik zie de fout helaas ook niet. Kan iemand wellicht een zetje in de goede richting geven?

Voor de duidelijkheid hangt aan portb.0 een 433mhz zendertje, aan porta.1 een led en verder wordt er gebruikt gemaakt van een extern 20mhz kristal.

code:
1
lap code
Met behulp van de timings op de vorige pagina en wat aanwijzing op CO heb ik ondertussen het geheel werkend. Voor de liefhebber post ik nog even de werkende maar spartaanse code. Kan een stuk efficiënter maar het is wel duidelijk wat er gebeurt. Overigens heb ik me nog niet bezig gehouden met de dimfunctie, die zit er nog niet in verwerkt. Ik heb geen ontvangers die daar mee werken. Mooi topic dit, bedankt voor de vele info beschreven _/-\o_

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
DEVICE 16F628A
CONFIG WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF, HS_OSC
ALL_DIGITAL TRUE
XTAL 20

; Nieuwe KAKU protocol
;        _   _
; '0' = | |_| |___  (T,T,T,3T)
;        _     _
; '1' = | |___| |_  (T,3T,T,T)
;        _   _
; dim = | |_| |_    (T,T,T,T)
;
; T = 275 us of 375 us
;
; Samenstelling signaal
; 26 adres bits
; 1 groep bit
; 1 on/of/dim bit
; 4 unit bits
; (4 dim bits)
; Stoppuls (T hoog, verder laag)

DIM teller AS BYTE
DIM wachttijd AS WORD

SYMBOL Led1 = PORTA.1         ; Led
SYMBOL Aan_knop = PORTA.2     ; Aan knop
SYMBOL Uit_knop = PORTA.0     ; Uit knop
SYMBOL Zender = PORTB.0       ; Zender

        ;76543210
PORTA = %00000000
PORTB = %00000000

TRISA = %00000101
TRISB = %00000000

wachttijd = 1000

HIGH Led1                     ;opstart loopje
DELAYMS wachttijd
LOW Led1
DELAYMS wachttijd

WHILE 1 = 1                   ;hoofdprogramma

    IF Aan_knop = 0 THEN      ;als de aan knop wordt ingedrukt
        HIGH Led1             ;een aan signaal zenden
            WHILE Aan_knop = 0
            DELAYMS 10
            WEND
       GOSUB sw1aan
       LOW Led1
       DELAYMS 50
    ENDIF


    IF Uit_knop = 0 THEN      ;als de uit knop wordt ingedrukt
        HIGH Led1             ;een uit signaal zenden
            WHILE Uit_knop = 0
            DELAYMS 10
            WEND
        GOSUB sw1uit
       LOW Led1
       DELAYMS 50
    ENDIF

    IF Aan_knop = 0 AND Uit_knop = 0 THEN         ;Als beide knoppen worden ingdrukt
        HIGH Led1                                 ;de zender aanmelden
            WHILE Uit_knop = 0 AND Uit_knop = 0
            DELAYMS 10
            WEND
        GOSUB sw1_aanmelden
       LOW Led1
       DELAYMS 50
    ENDIF

    DELAYMS 10

WEND

;--------------

sw1_aanmelden:
FOR teller = 1 TO 10          ;10x het signaal herhalen
GOSUB sw1aan
NEXT

RETURN

;--------------

sw1aan:                       ;kanaal 1 aanzetten

FOR teller = 1 TO 5

GOSUB startpuls               ;startpuls

GOSUB laag                    ;Adres bestaat uit 26 bits
GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag

GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag

GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag

GOSUB laag
GOSUB hoog

GOSUB laag                    ;Groepbit

GOSUB hoog                    ;on/off

GOSUB laag                    ;units aanduiding
GOSUB laag
GOSUB laag
GOSUB laag

GOSUB stoppuls                ;Stoppuls

NEXT

RETURN

sw1uit:                       ;kanaal 1 uitzetten
FOR teller = 1 TO 5

GOSUB startpuls               ;startpuls

GOSUB laag                    ;Adres bestaat uit 26 bits
GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag

GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag

GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag
GOSUB laag

GOSUB laag
GOSUB hoog

GOSUB laag                    ;Groepbit

GOSUB laag                    ;on/off

GOSUB laag                    ;units aanduiding
GOSUB laag
GOSUB laag
GOSUB laag

GOSUB stoppuls                ;Stoppuls

NEXT

RETURN


;--------------

startpuls:
HIGH Zender
DELAYUS 330
LOW Zender
DELAYUS 2600

RETURN

;--------------

laag:
HIGH Zender
DELAYUS 330
LOW Zender
DELAYUS 200
HIGH Zender
DELAYUS 330
LOW Zender
DELAYUS 1200

RETURN

;--------------

hoog:
HIGH Zender
DELAYUS 330
LOW Zender
DELAYUS 1200
HIGH Zender
DELAYUS 330
LOW Zender
DELAYUS 200

RETURN

;--------------

stoppuls:
HIGH Zender
DELAYUS 330
LOW Zender
DELAYUS 10200

RETURN

;--------------

END

Acties:
  • 0 Henk 'm!

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
Is hier iemand met een scope en een nieuwe kaku-zender die even wat getallen kan bevestigen? Ik heb een sample-space van precies 1 zender en 0 ontvangers. Dat is vrij beperkt. Met een oscilloscoop heb ik de meeste getallen uit deze CO-post grotendeels kunnen verifiëren, met toch enkele verschillen:
  1. De periodetijd (1T) is bij mij ~260us. Is dat altijd zo bij kaku? Zijn er klonen met afwijkende timing?
  2. Een '0'-bit is T, T, T, 5T, dus totaal 8T
  3. Een '1'-bit is T, 5T, T, T, hier dus ook 8T totaal.
  4. De start-sequence is bij mij 1T hoog, 10,44T laag. (totaal 2,96ms gemeten) CO meldt hier 1T hoog, 9T laag. Waarom dit geen mooi rond getal wordt is mij een raadsel :(
  5. De stop-sequence is bij mij 1T hoog, 40T laag. (totaal 10,60ms gemeten) CO meldt alleen 1T hoog "lang laag".
  6. 'dim' kan ik niet meten, bij gebrek aan hardware.
Deze timings zijn van belang omdat ik bezig ben met een new-kaku-receiver voor in de library (ja echt!). Mocht de periodetijd bij al deze apparaten ~260us zijn dan hoeft er geen periodetijd-detectie te komen en is herkenning betrouwbaarder. Mocht de periodetijd wél variëren, dan moet deze dus bepaald worden, en dan zijn m.n. de start- en stopsequenties van belang.

Meten is weten, meer meten is meer weten. Een grotere sample space is welkom! :)

Acties:
  • 0 Henk 'm!

  • TEAMIKKE
  • Registratie: Februari 2006
  • Niet online
Ik heb de APA3-1500R. Ik weet niet of die van het nieuwe protocol gebruik maakt? De post boven je gebruik ik voor het aansturen met het 32 bits protocol en dat werkt prima. Ik weet niet of 'het nieuwe protocol' nog weer anders is dan de 32 bits versie.

Dit is het signaal dat mijn zender uitzendt als ik kanaal 2 aanzet. Dit voldoet aan de specificaties in de post hierboven en aan het topic op CO waar je naar refereert. De timing is niet af te lezen maar die was inderdaad 260us bij mij.

Acties:
  • 0 Henk 'm!

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
Ja, alle kaku's met een typenummer dat begint met 'A' zijn uit de nieuwe serie. Het protocol uit CO klopt, voor zover ik kan nagaan. Het verschil zit em in de timings. Op zich komen die ook niet zo nauw allemaal, maar voor bereik en compatibiliteit kan het toch net het verschil maken.

Acties:
  • 0 Henk 'm!

  • NIB0R
  • Registratie: Maart 2009
  • Laatst online: 20:33
Fuzzillogic schreef op donderdag 22 maart 2012 @ 15:15:
Is hier iemand met een scope en een nieuwe kaku-zender die even wat getallen kan bevestigen? Ik heb een sample-space van precies 1 zender en 0 ontvangers. Dat is vrij beperkt. Met een oscilloscoop heb ik de meeste getallen uit deze CO-post grotendeels kunnen verifiëren, met toch enkele verschillen:
  1. De periodetijd (1T) is bij mij ~260us. Is dat altijd zo bij kaku? Zijn er klonen met afwijkende timing?
  2. Een '0'-bit is T, T, T, 5T, dus totaal 8T
  3. Een '1'-bit is T, 5T, T, T, hier dus ook 8T totaal.
  4. De start-sequence is bij mij 1T hoog, 10,44T laag. (totaal 2,96ms gemeten) CO meldt hier 1T hoog, 9T laag. Waarom dit geen mooi rond getal wordt is mij een raadsel :(
  5. De stop-sequence is bij mij 1T hoog, 40T laag. (totaal 10,60ms gemeten) CO meldt alleen 1T hoog "lang laag".
  6. 'dim' kan ik niet meten, bij gebrek aan hardware.
Deze timings zijn van belang omdat ik bezig ben met een new-kaku-receiver voor in de library (ja echt!). Mocht de periodetijd bij al deze apparaten ~260us zijn dan hoeft er geen periodetijd-detectie te komen en is herkenning betrouwbaarder. Mocht de periodetijd wél variëren, dan moet deze dus bepaald worden, en dan zijn m.n. de start- en stopsequenties van belang.

Meten is weten, meer meten is meer weten. Een grotere sample space is welkom! :)
Ik kan morgen de AMST-606 (deur magneet schakelaar) voor je testen op me werk.

Tof dat je bezig bent met new kaku in de library :D

Acties:
  • 0 Henk 'm!

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
NIB0R schreef op donderdag 22 maart 2012 @ 21:42:
[...]
Ik kan morgen de AMST-606 (deur magneet schakelaar) voor je testen op me m'n werk.
Dat zou mooi zijn, maar dat is precies het ding dat ik ook heb. Dus of we daar veel mee opschieten betwijfel ik ;)

Acties:
  • 0 Henk 'm!

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
Code voor het ontvangen van de nieuwe KAKU serie staat nu in de dev-branch. Download. Gebruik ervan lijkt veel op die voor de oude, maar vanwege de verschillen is het toch een aparte decoder geworden. Ik heb een example toegevoegd, ShowReceivedCodeNewKaku, die het e.e.a. duidelijk maakt.

Caveats: ik heb precies 1 remote om mee te testen, en dat is nog de simpelste ook. Graag hoor ik of de code bij jullie ook werkt. Net als bij de "oude" kaku werkt de code met pulse-breedte-detectie, waarmee als het goed is een grotere compatibiliteit wordt bereikt. Ik vermoed dat het het ook met de HomeEasy remotes werkt!

M.b.v. InterruptChain is het mogelijk om zowel de oude als nieuwe gelijktijdig te ontvangen. Dit heb ik echter nog helemaal niet getest :) Mogelijk probleem hierbij is het beperkte RAM-geheugen van de 168. Ik kan nog proberen dat wat te optimaliseren...

Als je test, kun je me dan de "period" doorgeven die ShowReceivedCodeNewKaku geeft?

Code voor verzenden ontbreekt nog, maar die is relatief eenvoudig, en werkende voorbeelden staan hierboven ook al.

Acties:
  • 0 Henk 'm!

  • NIB0R
  • Registratie: Maart 2009
  • Laatst online: 20:33
Fuzzillogic schreef op donderdag 22 maart 2012 @ 22:34:
[...]

Dat zou mooi zijn, maar dat is precies het ding dat ik ook heb. Dus of we daar veel mee opschieten betwijfel ik ;)
Screenshots zijn mislukt. Er zat helemaal geen timing bij ofzoiets. Puur de pulsjes. Haha daar kan je niets mee.
Ik zal kijken of het van de week beter lukt.

Acties:
  • 0 Henk 'm!

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
Hmmfr. Het bereik is ondanks short-pulse-filter nog niet echt denderend. Dus met de scope de output van de ontvanger eens bekeken: screenshot Groen/onder de RSSI-output, oftewel de "analoge" uitvoer. Geel/boven de digitale uitvoer. De digitale uitvoer hangt normaal gesproken dus aan de Arduino.

Het probleem is duidelijk: er zit nog een blokgolfje in de lucht. Hoewel significant minder dan het signaal van de zender zelf struikelt de ontvanger er duidelijk over: het kleine golfje in het analoge wordt een brede puls in het digitale. Sja, dat is funest voor de decoder. En daar valt ook niet tegenop te filteren met software.

De vraag is: hoe te fixen? Andere ontvanger die gemaakt is voor meer/minder baud? Of toch de analoge uitgang gebruiken, icm een tor? Ik ga dat laatste morgen eens proberen. Een opamp zou hier geschikter voor zijn, maar die heb ik niet in huis.

Anyway, als je problemen hebt met bereik, dan hoeft dat niet direct aan de code te liggen.

[ Voor 5% gewijzigd door Fuzzillogic op 24-03-2012 22:39 ]


Acties:
  • 0 Henk 'm!

  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 22:35

memphis

48k was toen meer dan genoeg.

RSSI is niet het analoge output signaal maar een ontvangst sterkte signaal.Zeker weten dat je het juiste benoemt of de juiste pin gebruikt? In mijn projectje komt aan de RSSI uitgang een ledbar met een LM3914 IC.

Maar om analoog naar digitaal te krijgen heb je een zgn data slicer nodig. Als je er op googled met afbeeldingen kom je de nodige schema's tegen maar alle met opamps. Ben zelf ook bezig geweest met een goedkoop setje maar daar kwam uit het analoge nog de nodige troep mee en de uitgang was hoog-ohmig dus was een opamp of een cmos schmitt trigger zoals een 4093 noodzakelijk.

Een data slicer bestaat uit niets anders dan een comperator en een laagdoorlaat filter.

De betere data slicer is wat ingewikkelder maar ook bestelbaar
http://www.radiometrix.com/files/additional/qr96.pdf

Er zijn mensen die mij een GOD vinden


Acties:
  • 0 Henk 'm!

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
memphis schreef op zaterdag 24 maart 2012 @ 23:20:
RSSI is niet het analoge output signaal maar een ontvangst sterkte signaal.Zeker weten dat je het juiste benoemt of de juiste pin gebruikt? In mijn projectje komt aan de RSSI uitgang een ledbar met een LM3914 IC.
Bij de pin staat RSSI. En sja, dat klopt, alleen zou je idd verwachten dat er een laagdoorlaatfilter op zit. ;)
Maar om analoog naar digitaal te krijgen heb je een zgn data slicer nodig. Als je er op googled met afbeeldingen kom je de nodige schema's tegen maar alle met opamps.
Slicers zijn voor frequency shift keying wat ik zo lees, maar dit protocol is simpel on/off keying

Het idee is om zoveel mogelijk in software te doen. Probleem is dat de ontvanger niet perse gemaakt is voor deze transmitters. Tot dusver ging het goed, maar met dit signaal geeft het problemen. Misschien is het ook gewoon de zender, het dingetje draait op 3V terwijl de andere zenders op 12V werken.

Morgen verder.

Acties:
  • 0 Henk 'm!

  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 22:35

memphis

48k was toen meer dan genoeg.

Die Radiometrix dingen draaien intern ook op 2.8 volt en daarmee worden in de open lucht op 10mW zendvermogen vele kilometers gehaald, een bijkomstigheid is wel dat ze aan de ontvangerkant flinke antennes en speciale ontvangers gebruiken. De NTX2 zender is erg populair bij de gasten die van die balonnen in de atmosfeer brengen en gebruiken de 433mhz set voor het doorsturen van de GPS informatie op een lage baudrate (50 - 300 baud). Het geheim van deze zender is dat die smalbandig met een FM modulatie werkt waarmee het bereik stukken betrouwbaarder wordt tov. die goedkope breedbandige AM setjes waarmee ik tot op heden alleen maar slechte ervaringen heb. Het grappige is dat de centrale vergrendeling van mijn Renault ook op die frequentie zit en ook met gemak 100 meter op de parkeerplaats haalt

Belangrijk voor het bereik is ook de antenne. Ik zelf begin met een standaard draadje van 17cm maar als het bereik nog niet goed is zal ik over gaan naar een GP antenne of een di-pool. Bij de Conrad hebben ze mooie GP antennes voor de 433mhz
Hier een handig document over 433mhz antennes. http://www.rfm.com/corp/appdata/antenna.pdf

Even een testopstelling waar ik mee bezig ben:

Afbeeldingslocatie: http://www.euronet.nl/users/tooms/ftp/telemet_passen.jpg

De dingen die gemeten gaan worden:
- motortemp
- luchttemp
- brandstof temp
- luchtvochtigheid
- 3 assig G-krachten (acceleratie, bochtsnelheid en op de Z-as de rust in het chassis)
- toerental
- snelheid
- luchtvochtigheid

Er zijn mensen die mij een GOD vinden


Acties:
  • 0 Henk 'm!

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
Oeps :) De interferentie waar ik last van had veroorzaakte ik zelf. Lui als ik ben had ik probes van de scope niet netjes geground, want sja "toch common ground via USB". Dat laatste klopt wel, maar dat geeft toch blijkbaar allerlei rommel op allerlei signalen...

Enfin, het hele gedoe met transistor (wat qua concept wel werkte) is overbodig. De software werkt gewoon prima. De nieuwe kaku-signalen zijn een stuk langer dan de oude. Daar waar het bij de oude nog wel handig was om te wachten tot bijv. 3x dezelfde code was ontvangen alvorens er iets mee te doen, is het bij new kaku eigenlijk niet nodig. In de example heb ik nu ingesteld dan 2x dezelfde code ontvangen moet worden als voorbeeld, maar voor meeste toepassingen kan dat ook prima 1 worden.

Ook heb ik het filter voor te korte piekjes verbeterd. Ik denk dat dat filter goed werk doet, en zal het ook gaan toepassen op de code van de andere ontvangers. Nadeel is wel dat het weer een paar byte extra RAM kost :'(

Aanpassingen staan in de repository. Iemand hier met een Home Easy die het eens kan testen?

@memphis, mooi document over antenne. Ik gebruik nu een simpele spriet van ~16cm, seems to work fine. Maar goed om te weten dat het ook wat compacter kan :)

Acties:
  • 0 Henk 'm!

  • sPENKMAN
  • Registratie: April 2002
  • Laatst online: 04-09 12:42
@ Fuzzillogic
Wil je erg bedanken voor de moeite welke je hierin hebt gestoken. De Elro functionaliteit (aan/uit) schakelen werkt perfect met mijn Arduino Uno v3. Ik zag dat je deze nog niet had kunnen testen tot op heden. Ook het switchen van kanalen gaat prima (zit zelf op 31 atm).

Mocht je nog iets getest moeten hebben; ik heb dus een setje liggen.

Eve char: Warock <TEST>


Acties:
  • 0 Henk 'm!

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07 22:34
Mooi :) Heb je, of iemand anders, toevallig ook een remote uit de kaku A-serie, of van HomeEasy? De dev-branch heeft support voor ontvangen van deze, maar ik bij gebrek aan hardware kan ik niet alles testen. Zo weet ik niet welke "unit" verstuurd wordt als je group on/off stuurt. Met de nieuw toegevoegde example in de dev-branch kun je dat zien.

Overigens heeft die dev-branch nu ook support voor verzenden van kaku A-serie, maar ik heb nog geen tijd gehad om die te testen - ik weet niet eens of het überhaupt te compileren is :P Maar het gaat er dus wel komen!

Acties:
  • 0 Henk 'm!

  • sPENKMAN
  • Registratie: April 2002
  • Laatst online: 04-09 12:42
Ik heb enkel een setje van Elro liggen, misschien dat mijn pa een ander merkt heeft, zal het even navragen.

Eve char: Warock <TEST>

Pagina: 1 ... 5 6 Laatste