Sterrenhemel

Op 8 januari 2021 01:53:52 schreef Arco:
Buisje om de TSOP en klaar... ;)

Een buisje...Grappig. Ik was al in de nachtelijke uren aan het overpeinzen (ja, zo gaan die dingen :) ..) hoe ik dit oplos. Want je wilt natuurlijk wel het geheel kunnen testen. En dat gebeurt weer met het verzenden van IR licht afkomstig van de IR Remote.
Een afgeschermde sensor moet dan die signalen weer wel oppakken...

Man is still the most extraordinary computer of all. JF Kennedy
marcob

Golden Member

Is het niet een keer interessant om te kijken naar een andere oplossing. Ik weet je bent nu best ver in de ontwikkeling, maar zie het niet als weggegooide tijd.

Je zou eens kunnen kijken in de wereld van een ESP32. Voldoende geheugen en rekenkracht. Vooral de ingebouwde WiFi maakt je leven een stuk makkelijker. Programmeren en debuggen via de WiFi, zonder kabels. Ook de bediening kan via een simple HTML pagina.

Ik weet je ziet op tegen de programmeertaal, maar het valt mee. Veel voorbeelden op internet te vinden. Maar ook je eigen programmeer ervaring komt goed van pas.
Zelf gebruik ik ook al jaren PIC's i.c.m. PicBasic en blijf het ook gebruiken, maar toch ook leuke dingen gedaan met de EPS. Het was even uitzoeken hoe en wat, maar de leercurve was uiteindelijk niet moeilijk.

Een WOK is ook maar een vergiet zonder gaatjes
Lambiek

Special Member

Op 8 januari 2021 01:13:37 schreef Bavelt:
Jawel, de ledjes! En geen wonder dat het op een loop leek: de schakeling toont iets en dat pikt de TSOP op en gaat ermee aan de haal...

Dan is er toch iets niet goed, want dat zou niet mogen.

Ik gebruik IR voor handbediening van mijn robotarm en wat ik ook doe met wat voor licht dan ook, de TSOP reageert alleen op de afstandsbediening.

Waarschijnlijk gaat er nog iets fout in de codering van je IR gedeelte, als dat zo is dan reageert het ook op zonlicht. Krijg je hele rare verschijnselen van. Ik had een keer een lichtsluis gemaakt voor grote afstanden (+ 20 meter voor buiten) met donker weer werkte het goed, maar als de zon scheen werkte het voor geen meter. Lag achteraf gewoon aan de codering, later met RC5 gedaan en het probleem was over.

Als je haar maar goed zit, GROETEN LAMBIEK.

Een afgeschermde sensor moet dan die signalen weer wel oppakken...

Moet ook niet te smal en/of lang zijn, alleen om invallend licht te voorkomen.
Dat NEC protocol is trouwens ideaal hiervoor: het commando wordt 2x uitgezonden, normaal en reversed, die kun je toch vergelijken?
(dan is 'vals alarm' uitgesloten)

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

Ik heb inmiddels mijzelf het bewijs geleverd van de LED's en TSOP.

Ik laat met een test programmaatje een LED matrix 8 * 8 lekker knipperen, hou die voor of redelijk dicht in de buurt van de TSOP en jawel hoor, op de Scope wordt vrolijk 'meegedanst...' :)

Voor zover ik het nu snel bekijk, manifesteert het probleem zich met name bij de RODE leds. Uiteindelijk worden het witte leds in het plafond.

Als die witte LEds ook een probleem gaan vormen , dan moet ik daar dus wat mij. Hetzij afschermen, wat Arco al aangaf, danwel dat ik het softwarematig aanpas.

Want ik ben zelf ook debet aan het probleem: ik had de Ontvangst van het IR signaal versimpeld, door gewoon de pulsen te tellen die binnenkomen. En omdat de marge tussen "laag" en hoog" ("1125 uS of 2250 uS) is, dacht ik: ach alles beneden de 1400 is een 0, anders een 1.

Het commando bevindt zich bij NEC-remote vanaf bit 16 tot 24. (in totaal zendt het ding een string van 32 bits).
Dus na ca 30 pulsen vond ik het wel goed en pikt de code er uit.

Dat deed ik omdat ik problemen ervaarde bij het testen op juiste pulslengte's etc. (kan achteraf ook zijn veroorzaakt door deze 'ontdekking').
Het effect was dat je dan tamelijk vaak op de knop drukte en er niets gebeurde, omdat er 'ergens een bit niet paste'.

Het werkte in beginsel mooi stabiel, totdat de LEds zich met het spel begonnen te bemoeien.
Daar kwam ik dan achter na een dikke week proberen, testen, slaapuurtjes inleveren - en niet te vergeten - een doosje paracetamol.. ;(

Waar ik ook rekening mee moet houden: in de slaapkamer is wel meer (LED)-licht, zoals een rode wekkerradio, of de AB van een TV of zo.

Misschien was IR wel niet de slimste oplossing hiervoor. Bluetooth had natuurlijk ook gekund, maar dan moet ik daar weer een AB voor zoeken of zelf maken.

Meerdere wegen naar Rome dus...

Man is still the most extraordinary computer of all. JF Kennedy

Op 8 januari 2021 10:49:33 schreef marcob:
Is het niet een keer interessant om te kijken naar een andere oplossing. Ik weet je bent nu best ver in de ontwikkeling, maar zie het niet als weggegooide tijd.

Je zou eens kunnen kijken in de wereld van een ESP32. Voldoende geheugen en rekenkracht. Vooral de ingebouwde WiFi maakt je leven een stuk makkelijker. Programmeren en debuggen via de WiFi, zonder kabels. Ook de bediening kan via een simple HTML pagina.

Ik weet je ziet op tegen de programmeertaal, maar het valt mee. Veel voorbeelden op internet te vinden. Maar ook je eigen programmeer ervaring komt goed van pas.
Zelf gebruik ik ook al jaren PIC's i.c.m. PicBasic en blijf het ook gebruiken, maar toch ook leuke dingen gedaan met de EPS. Het was even uitzoeken hoe en wat, maar de leercurve was uiteindelijk niet moeilijk.

Ik heb al wel eens gespeeld met deze ESP32. Ik vind een investering niet echt een probleem, alleen moet je wel de tijd zoeken. Want ik was ook al op zoek naar een op afstand programeerbare schakeling. Daarvoor ben ik doorlopend nog op zoek naar een bootlader.

In de (beperkte) tijd dat ik nu met microcontrollers werk heb ik MikroBasic als standaard genomen. Het past goed bij mijn VBasic .NET ervaring, dat kan ik wel dromen.

Programmeren in C, C++ of C# is een echte uitdaging vind ik. Ik zou dan nog liever op ASM overgaan.

Maar wat niet is kan nog komen!
Bedankt voor de Tip!

Man is still the most extraordinary computer of all. JF Kennedy

Op 8 januari 2021 12:01:05 schreef Arco:
[...]
Moet ook niet te smal en/of lang zijn, alleen om invallend licht te voorkomen.
Dat NEC protocol is trouwens ideaal hiervoor: het commando wordt 2x uitgezonden, normaal en reversed, die kun je toch vergelijken?
(dan is 'vals alarm' uitgesloten)

Ik had in het programma inmiddels al een error-afvanging opgenomen. Wanneer er een (voor het programma) niet-bestaande code komt, dan werd deze in een foutroutine afgevangen, waarbij ik dan kan kiezen van het tonen van de fout, danwel gewoon 'niets' doen.
Saillant detail; De error Code toonde ik op de LEd-Matrixen, die weer 'keurig' door de TSOP werden opgevangen en weer tot een error leidde.. There's a hole in the bucket..:D )

Dat zou inderdaad ook kunnen met de reverse-code te vergelijken met de originele. Maar als die LEd's helemaal losgeslagen aan het knipperen slaan, levert dat continue een stroom van errors op. Dan mag je hopen dat jouw AB er even tussen komt met een 'echt'signaal.

Ik denk zelf dat het probleem aan de 'voorkant' moet worden opgelost. D.w.z alleen het juiste licht op de TSOP (buisje vind ik nog steeds een grappig en eenvoudig te maken iets).

Man is still the most extraordinary computer of all. JF Kennedy

Ik keek toevallig net even tegen een AB-tje aan, waar ik mijn stopcontacten mee bedien.
Op de achterzijde staat 433,92 Mhz. Dat is dan kennelijk zo'n RF send-receive?
Wellicht zou dat ook een projectje kunnen worden.

Ik weet alleen niet of die dingen bij een specifieke apparaten horen, of dat ze vrij verkrijgbaar zijn om zelf te programmeren...

Man is still the most extraordinary computer of all. JF Kennedy
marcob

Golden Member

Op 8 januari 2021 13:31:48 schreef Bavelt:
[...]

Ik heb al wel eens gespeeld met deze ESP32. Ik vind een investering niet echt een probleem, alleen moet je wel de tijd zoeken. Want ik was ook al op zoek naar een op afstand programeerbare schakeling. Daarvoor ben ik doorlopend nog op zoek naar een bootlader.

In de (beperkte) tijd dat ik nu met microcontrollers werk heb ik MikroBasic als standaard genomen. Het past goed bij mijn VBasic .NET ervaring, dat kan ik wel dromen.

Programmeren in C, C++ of C# is een echte uitdaging vind ik. Ik zou dan nog liever op ASM overgaan.

Maar wat niet is kan nog komen!
Bedankt voor de Tip!

De overstap is niet zo moeilijk als je denkt, je hebt al ruime ervaring in programmeren. Dan is een nieuwe taal snel geleerd. Ik ben gewoon begonnen met voorbeelden van Internet en die uit te breiden.

Persoonlijk blijf ik erbij, bedien de sterrenhemel via een webpagina via WiFi. Iedereen heeft tegenwoordig een smart phone. Koppel je hem via een NTP server kun je ook zaken als een Wake-up light of sleep timer programmeren.

Een WOK is ook maar een vergiet zonder gaatjes

Op de achterzijde staat 433,92 Mhz. Dat is dan kennelijk zo'n RF send-receive?

Is meestal 'end-only' (er hoeft niets teruggestuurd)
Simpele 433(of 868)MHz receiver van HopeRF: https://www.hoperf.com/modules/rf_transceiver/RFM69HCW.html

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

Op 8 januari 2021 14:05:16 schreef marcob:
[...]

Persoonlijk blijf ik erbij, bedien de sterrenhemel via een webpagina via WiFi. Iedereen heeft tegenwoordig een smart phone. Koppel je hem via een NTP server kun je ook zaken als een Wake-up light of sleep timer programmeren.

Deze vat ik nog niet helemaal: doel je dan op de ESP32 omgeving, of is dit ook haalbaar met bv MikroBasic en PIC's?

Man is still the most extraordinary computer of all. JF Kennedy

Op 8 januari 2021 14:16:09 schreef Arco:
[...]
Is meestal 'end-only' (er hoeft niets teruggestuurd)
Simpele 433(of 868)MHz receiver van HopeRF: https://www.hoperf.com/modules/rf_transceiver/RFM69HCW.html

Dan heb ik al iets soortgelijks denk ik: Onlangs bestelde ik

NRF24L01+ 2.4GHz wireless transceiver module (twee keer) en
433MHz RF Ontvanger zender set.
Gewoon om eens te bekijken.

Er is inderdaad sprake van éérichtingsverkeer. Alleen moet je dus een afstandbediening hebben. (desnoods alleen met knoppen).

Of zijn we wellicht in één verkrijgbaar?

Man is still the most extraordinary computer of all. JF Kennedy

Die in mijn link is een tranceiver... (RFM69HW)

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

Ik heb inmiddels weer de pulslengte-check in het prorgrammer ingevoerd. Anders regaeert het ding op alles wat IR uitzendt.
Het oogt nu aardig stabiel; om de TSOP heb ik een schermpje gemaakt, waardoor het LED-licht er niet op valt, maar je wel de IR AB kan gebruiken.

Nu zoek ik nog naar een handigheidje in MikroBasic.

Soms ben ik met een specifieke routine bezig om die aan te passen en te testen. Maar heb dan vaak last van alle overige routines die op dat moment even niet interessant zijn.
Het gevolg is dat ik steeds door het (inmidddels lange) programma moet scrollen. Op en weer.

Je kan ook niet zomaar alle andere routines een eind naar boven of onderen schuiven vanwege de 'one pass' van deze compiler.

Is daar wellicht een handigheidje voor? (bv een soort 'include', die ten tijde van compileren wordt opgehaald, of zoiets?)

Man is still the most extraordinary computer of all. JF Kennedy

Je kunt includes gebruiken, of 'code folding' (niet gebruikte routines 'opvouwen' door op de '-' in vakje voor de sub te klikken...

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

Op 10 januari 2021 20:43:13 schreef Arco:
Je kunt includes gebruiken, of 'code folding' (niet gebruikte routines 'opvouwen' door op de '-' in vakje voor de sub te klikken...

Hoe simpel kan het leven zijn, zeg..Dit was precies wat ik zocht! :)

Man is still the most extraordinary computer of all. JF Kennedy

Ik probeer het eindprogramma zo 'schoon' mogelijk te houden.

De Statistics kunnen mooi helpen om te zien hoeveel ruimte bv de routines in beslag nemen. En waar nog winst valt te halen door het anders te doen.

Wat ik nog niet heb kunen ontdekken is een lijst van 'unused variables'
Levert de compiler iets dergelijks?
Dan kun je nl niet gebruikte bytes verwijderen, scheelt weer.

Daarbij vroeg ik me af:

Als in in een routine bv "Dim Tmr As Byte" declareer, wordt die dan na afloop van de routine weer 'vrijgegeven'? Of kan je net zo goed dat ding bij alle DIMs zetten aan het begin van het programma?

Man is still the most extraordinary computer of all. JF Kennedy

Staat in de output van de compiler...
Alle niet gebruikte variabelen en functies worden sowieso door de compiler eruit gesloopt tijdens compileren....

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

Ik heb twee dummy testbytes erin geplaatst:

Dim Testb1 As Byte
Dim Testb2 As Byte

En doe er verder niks mee.

Maar zie ze niet terug in de lijst...

Man is still the most extraordinary computer of all. JF Kennedy

Globale variabelen worden daar niet in vermeld, locale wel...
Ondanks dat worden die variabelen er toch uit gesloopt. Je zult zien dat code met en zonder die ongebruikte variabelen na compileren even lang is...

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

Op 12 januari 2021 00:54:15 schreef Arco:
Globale variabelen worden daar niet in vermeld, locale wel...
Ondanks dat worden die variabelen er toch uit gesloopt. Je zult zien dat code met en zonder die ongebruikte variabelen na compileren even lang is...

Ik heb het gezien. :). Bij Dim..in de routine komt hij wel op de lijst.

Ok, mooi. Dat scheelt alweer, dat de compiler zo slim is om geen ruimte te reserveren voor ongebruikte dingen.

Op zich vind ik het nog steeds een fijne omgeving. Blijft jammer dat MB zo (relatief) weinig wordt toegepast. De wereld is verslingerd geraakt aan C..

Ik zie dat MB ook opties biedt voor "Bootloader, programmng, debugging", etc. Maar dan heb je blijkbaar die Mikro Suite Programmer nodig.
Een behoorlijke berg ballast.

De combinatie MB en Pickit 3.10 werkt op zich prima. Vraag me wel af of die laatste nog wel wordt bijgewerkt (ik zie bv nergens updates hiervoor).

Man is still the most extraordinary computer of all. JF Kennedy

De losse GUI voor pickit2 en 3 devicelist wordt niet meer bijgewerkt, de pickit 3 in MPLABX IPE misschien nog wel.
Meeste nieuwe types kun je gelukkig zelf toevoegen met wat moeite... ;)

Soms is het 'uitslopen' van ongebruikte variabelen ook wel lastig... :( (soms wil je dat niet)
Ik nam aan dat bij 'Optimization level 0' de compiler dat niet zou doen, maar wel dus...

Er is wel een 'oplossing' voor, bijvoorbeeld:

pic basic code:


Dim MyByte As Byte
...
...
Hi(MyByte)

De 'Hi(MyByte)' zorgt ervoor dat de compiler MyByte met rust laat, en kost geen geheugen verder...

[Bericht gewijzigd door Arco op 12 januari 2021 13:48:24 (52%)]

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

De PIC16F18857 is inmiddels binnen.

Krijg hem alleen niet geconfigueerd in de Pickit3: hij kent deze niet. Ook niet met 'manual select'.

Hoe krijg ik dat ding er nu in?

Man is still the most extraordinary computer of all. JF Kennedy

Ik heb even een nieuwe devicefile gemaakt met de 18857 erbij, weet niet zeker of die werkt, moet je even proberen.
De file hernoemen naar pk2devicefile.dat (werkt voor pickit 2 en 3)
Pickit programma moet dan bij 'About:' versie 1.63.151 opgeven.

Je moet de chip wel handmatig selecteren: de device ID is 5 jaar geleden veranderd, en dat snapt het programma uiteraard niet... ;)

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

Hey dank Arco dat je me hierbij helpt!
Ik was vol verwachting met deze (voor mij) nieuwe PIC.

Ik heb de .dat file geinstalleerd, maar bij manual device (deze staat bij

"Midrange min 1,8 v") zegt de Pickit "No Device detected".

Het 'grappige' met deze .dat is wel dat bij automatisch uitlezen hij uitkomt op de PIC12F509..

Maar dat werkt dan vervolgens niet op allerlei andere dingen.

Man is still the most extraordinary computer of all. JF Kennedy