Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.arch.embedded > #13869

Re: Counting 2ms long pulses on several input pins

From pozz <pozzugno@gmail.com>
Newsgroups comp.arch.embedded
Subject Re: Counting 2ms long pulses on several input pins
Date 2013-09-25 07:39 +0200
Organization A noiseless patient Spider
Message-ID <l1tsuv$9na$3@dont-email.me> (permalink)
References <l1qck1$9dd$4@dont-email.me> <l1t40d$sma$3@dont-email.me> <l1t7kp$8ph$1@speranza.aioe.org>

Show all headers | View raw


Il 25/09/2013 01:36, Don Y ha scritto:
> On 9/24/2013 3:33 PM, pozz wrote:
>> Il 23/09/2013 23:42, pozz ha scritto:
>>> Do you have better ideas?
>>
>> Ok, this is the full story.  I want to interface a microswitch-based
>> sensor (http://www.utk.it/img/img_prodotti/00279.jpg) that is normally
>> mounted to a rolling shutter
>> (http://www.pakuya.com/upload/20111128/China_luhaitian_Aluminum_insulation_roller_shutter.jpg)
>>
>
> "Bat Blinds"
>
>> in order to detect its movement and prevent unauthorized access by
>> thiefs.
>>
>> When the shutter moves vertically, the thin rope attached to it creates
>> the circular movement of the cam inside the sensor.  I have seen sensors
>> with 6 cams per rotation, but there are so many low- and high-quality
>> sensors on the market that I expect some differences among them.
>
> So, the cam (note I am only talking about the cam right now, not the
> whole sensor) is something that you will *add* to the shutter?
> Or, is it present in every shutter -- though possibly different
> based on shutter model/manufacturer?
>
> Or, is it some complete "sensor assembly" that you add to a shutter?

It's a complete "sensor assembly" (plastic enclosure with holes for 
mounting, rope, cam, microswitch, electrical wires) that the installer 
of the intrusion detector system mounts on the shutter.


>> The final goal of the project is to detect movement of the shutter
>> caused by humans (i.e., not caused by wind).  This can be achieved if
>> I'm able to count the debounced pulses of the microswitch.  For example,
>> I can raise the alarm when I see 10 pulses in a second (low sensitivity)
>> or just 2 pulses in 5 seconds (high sensitivity).  Depending on the
>> sensor used, I can change the sensitivity of the alarm detector by
>> changing the number of the pulses and the period of counting.
>
>  From your comments, it seems like the sensor contains no *directional*
> information?  I.e., if the cam was sitting on the "threshold" between
> the switch being engaged and released and "jiggling" back and forth,
> you would see this as motion -- perhaps FAST motion -- even though the
> shutter wasn't moving?

Yes, you got it.  I don't like this method to detect shutter movement by 
humans, but it's a common solution on the market.  It's a low-cost 
low-reliability system, but it's for consumer products.
Anyway, if you experience problems like the one you described (in my 
tests it's very difficult, see below), you can always decrease the 
sensitivity of the system.


>> So I connected the two wires at the output of the sensor (connected
>> internally to the microswitch) at a microcontroller-based circuit: one
>> pole is connected to 0V and the other to a pulled-up input of the
>> microcontroller.  Normally the switch is closed so the level is 0V when
>> the shutter isn't moving (it's impossible to stop the shutter when the
>> microswitch is open).
>
> I don't understand.  Are you saying that the lobe of the cam is so
> small that the switch can't (in practical terms) STAY open for
> more than a few ms just because the spring force of the switch
> tends to *push* the cam out of the way (allowing the switch to
> close, again)?

Yes, you got it again. This is the reason why it's difficult to have 
false alarms caused by vibration at the "switching" point of the 
microswitch.


>> I made some tests pulling/releasing manually the rope of the sensor and
>> the pulses frequency, width and bouncing changes dramatically.
>> Here two pictures with a high rotation speed:
>>    http://imageshack.us/a/img191/6538/5v63.jpg
>>    http://imageshack.us/a/img545/2902/nrw5.jpg
>> Here a picture with a low rotation speed (just one pulse):
>>    http://imageshack.us/a/img843/4931/2ebz.jpg
>> As you can see, the frequency of the pulses changes from 0 to about
>> 300Hz, width (including final bouncing) from 2ms to 11ms, final bouncing
>> from 1ms to 3.4ms. The positive edge is usually sufficiently clean
>> (without bouncing).
>
> Ick.  Presumably, this is with a "new" shutter and sensor?
> How do things change with age?  E.g., as the cam wears and
> wobbles?  As contact resistance increases in the switch?
> Does the sensor manufacturer provide any endurance ratings for
> his sensor?  Is it (semi-)exposed to the elements (and likely to
> degrade rapidly over time)?

Good questions, but those sensors are for low-quality market.  The 
datasheet specifies just the number of pulses per rotation, mechanical 
drawings, nothing more.


> Do you have any sort of filter (cap) on these lines or are
> we just seeing a high impedance pull up on a "long wire"?

I have 10nF cap and 10k pull-up and 10k series resistance.


>> As I wrote in my previous email, the best solution I found that minimize
>> the not-detected and false pulses is to sample the switch line at 1ms
>> rate and count the pulse when I see the 0-1 sequence.  After this
>> sequence, I wait for 1-0-0 sequence to consider the pulse finished and
>> start waiting for the next pulse (sequence 0-1).
>
> It doesn't even look like that would "reliably" detect pulses with
> the inputs you've provided -- depending on where in the waveform
> that 1ms sampling comb falls.

Ok, better alternatives?

With this method, I'm not able to detect only very fast pulses. 
Consider that the pictures above were for very slow and very fast rotation.


>> Of course there's no problem with low rotation speed: the pulse is
>> sufficiently long to detect it correctly.  The problems come with short
>> pulses that have a very small stable interval (where the signal is
>> stable high, so the switch is open without bouncing).
>
> For low speed, the PERIOD where the signal is high inherently limits
> the number of "false pulses" that you detect/report.  I.e., if the
> high speed (fast) condition is the only time you see *extra*
> pulses (even bogus ones!), then it just looks like the shutter
> is moving even *faster*, right?

Sorry, I don't understand.

>
>> I know I should sample at a higher frequency (maybe 100us) to increase
>> reliability, but I prefer to avoid stressing the microcontroller too
>> much, because it has other tasks (consider I have 8 similar inputs) to
>> run.
>>
>> I know the pulses are very noisy and an optical/magnetic sensor could
>> solve many problems, but I can't change the sensor.  Moreover for this
>> application I could tolerate a few errors in the counting process.
>
> You're really looking at a few different things to make your final
> decision.  Not just how many pulses in a given time interval but,
> perhaps, how many in an even *longer* time interval.  E.g. if
> 10 pulses means the shutter has moved, linearly, 2 inches, does
> that mean anything to your final criteria?  Or, does it have to move
> *100* pulses for it to be open enough to represent a threat?

This could be a customization in charge of the installer that can decide 
number of pulses and monitoring interval.


> (also, revisit my comments regarding a shutter that is motionless
> but "jiggling" the cam -- possibly quickly!)

Back to comp.arch.embedded | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Counting 2ms long pulses on several input pins pozz <pozzugno@gmail.com> - 2013-09-23 23:42 +0200
  Re: Counting 2ms long pulses on several input pins mike <ham789@netzero.net> - 2013-09-23 15:00 -0700
  Re: Counting 2ms long pulses on several input pins Don Y <this@isnotme.com> - 2013-09-23 16:12 -0700
  Re: Counting 2ms long pulses on several input pins Paul Rubin <no.email@nospam.invalid> - 2013-09-23 18:45 -0700
    Re: Counting 2ms long pulses on several input pins Arlet Ottens <usenet+5@c-scape.nl> - 2013-09-24 08:06 +0200
      Re: Counting 2ms long pulses on several input pins Don Y <this@isnotme.com> - 2013-09-24 00:37 -0700
        Re: Counting 2ms long pulses on several input pins Arlet Ottens <usenet+5@c-scape.nl> - 2013-09-24 10:24 +0200
          Re: Counting 2ms long pulses on several input pins Paul Rubin <no.email@nospam.invalid> - 2013-09-24 02:05 -0700
            Re: Counting 2ms long pulses on several input pins Arlet Ottens <usenet+5@c-scape.nl> - 2013-09-24 11:01 +0200
          Re: Counting 2ms long pulses on several input pins Don Y <this@isnotme.com> - 2013-09-24 09:55 -0700
            Re: Counting 2ms long pulses on several input pins Tom Gardner <spamjunk@blueyonder.co.uk> - 2013-09-24 18:13 +0100
              Re: Counting 2ms long pulses on several input pins Don Y <this@isnotme.com> - 2013-09-24 11:03 -0700
            Re: Counting 2ms long pulses on several input pins Arlet Ottens <usenet+5@c-scape.nl> - 2013-09-24 19:38 +0200
              Re: Counting 2ms long pulses on several input pins Don Y <this@isnotme.com> - 2013-09-24 11:13 -0700
                Re: Counting 2ms long pulses on several input pins Arlet Ottens <usenet+5@c-scape.nl> - 2013-09-24 20:30 +0200
                Re: Counting 2ms long pulses on several input pins Paul E Bennett <Paul_E.Bennett@topmail.co.uk> - 2013-09-24 21:20 +0100
                Re: Counting 2ms long pulses on several input pins Don Y <this@isnotme.com> - 2013-09-24 16:08 -0700
    Re: Counting 2ms long pulses on several input pins Don Y <this@isnotme.com> - 2013-09-24 00:34 -0700
  Re: Counting 2ms long pulses on several input pins Andrew Smallshaw <andrews@sdf.lonestar.org> - 2013-09-24 04:31 +0000
  Re: Counting 2ms long pulses on several input pins Paul E Bennett <Paul_E.Bennett@topmail.co.uk> - 2013-09-24 11:15 +0100
    Re: Counting 2ms long pulses on several input pins Paul <paul@pcserviceselectronics.co.uk> - 2013-09-24 15:51 +0100
  Re: Counting 2ms long pulses on several input pins pozz <pozzugno@gmail.com> - 2013-09-25 00:33 +0200
    Re: Counting 2ms long pulses on several input pins Don Y <this@isnotme.com> - 2013-09-24 16:36 -0700
      Re: Counting 2ms long pulses on several input pins pozz <pozzugno@gmail.com> - 2013-09-25 07:39 +0200
        Re: Counting 2ms long pulses on several input pins Don Y <this@isnotme.com> - 2013-09-24 23:37 -0700
          Re: Counting 2ms long pulses on several input pins pozz <pozzugno@gmail.com> - 2013-09-27 15:54 +0200
            Re: Counting 2ms long pulses on several input pins Don Y <this@isnotme.com> - 2013-09-27 12:35 -0700
    Re: Counting 2ms long pulses on several input pins mike <ham789@netzero.net> - 2013-09-24 16:43 -0700
  Re: Counting 2ms long pulses on several input pins j.m.granville@gmail.com - 2013-09-24 17:32 -0700
    Re: Counting 2ms long pulses on several input pins Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2013-09-25 09:52 +0300
      Re: Counting 2ms long pulses on several input pins Don Y <this@isnotme.com> - 2013-09-25 00:09 -0700
        Re: Counting 2ms long pulses on several input pins j.m.granville@gmail.com - 2013-09-25 16:53 -0700

csiph-web