Friday, December 30, 2016

Gratitude

I know I wouldn't be where I'm at or know who I do without, struggle, hard work, or the many things that God has allowed. I have no reason to focus on weakness, but instead continue in faith. I'm learning to know Sir Tim Berners-Lee, who is arguably one of the most influential people of
the late 20th century. I'm also learning from the dedicated team around him.

I can't say I'm a failure, but instead on a journey. I can't say I lack uniqueness, or the capacity to contribute. I'm already doing that. I can't say I don't have awesome friends. This whole career ladder thing. Professional roles, what have you. Yeah, I can take things and run with them. I'm thankful for today, and look
forward to tomorrow. It will be a challenge. There will be roadblocks. Otherwise I'd be dead.

There are too many people to name that have been a positive influence in my life. Even those who have set up roadblocks have helped me.

Monday, December 19, 2016

Preliminary notes for Wes Tyler's December talk at okc.js

I was checking out the okc.js website, and I found Wes Tyler was giving a lightning talk on "Node.js document models with Joi and Felicity".

A quick Google search gave me:

https://github.com/xogroup/felicity (Felicity --  Description: Javascript object constructors based on Joi schema.)

 https://github.com/hapijs/joi
(Joi -- Description : Object schema description language and validator for JavaScript objects.)



A few guesses on related stuff:

http://json-schema.org/examples.html (JSON Schema)
http://www.json.org/ (JavaScript Object Notation)
Object Oriented JavaScript :
[Object Oriented JavaScript : https://www.youtube.com/watch?v=O8wwnhdkPE4 , Modular JavaScript # 6 - Classical Inheritance & OOP with JS : https://www.youtube.com/watch?v=sWOXYDBbz0g ,
Modular JavaScript - Prototypal Pattern vs Classical OOP in JS ,
https://www.youtube.com/watch?v=doXpW5AD60Q :
JavaScript object creation patterns tutorial - factory , constructor pattern, prototype pattern  , https://www.youtube.com/watch?v=xizFJHKHdHw ]

Interesting tangent (b/c I want to draw graphs anyway) :
6.4: The Constructor Function in JavaScript - p5.js Tutorial ,
https://www.youtube.com/watch?v=F3GeM_KrGjI] which is from 1-6: Foundations of Programming in JavaScript - p5.js Tutorial , https://www.youtube.com/playlist?list=PLRqwX-V7Uu6Zy51Q-x9tMWIv9cueOFTFA ]

p5.js may be found here: http://p5js.org/



                                            

Saturday, December 17, 2016

Purchase of the CJ SHOP Obstacle Avoidance Sensor in place the OP-AMP and Potentiometer Circuit for the Photogate

We ended up purchasing the "C.J. SHOP® 5PCS IR Infrared Obstacle Avoidance Sensor Module for Arduino Smart Car Robot 3-wire"  on Amazon [1] for construction of our photogate.  To build our photogate, we will need two in tandem. These are represented as the red boxes in the illustration below:

The C.J. Shop Obstacle Avoidance Sensor Module looks like the op-amp receiver circuit and the potentiometer transmitter circuit , except that a comparator is used instead of an op-amp.

According to Wikipedia, the potentiometer works a bit better than an op-amp since the op-amp tends to have a bit more lag. 

"
In practice, using an operational amplifier as a comparator presents several disadvantages as compared to using a dedicated comparator:[5]
  1. Op-amps are designed to operate in the linear mode with negative feedback. Hence, an op-amp typically has a lengthy recovery time from saturation. Almost all op-amps have an internal compensation capacitor which imposes slew rate limitations for high frequency signals. Consequently, an op-amp makes a sloppy comparator with propagation delays that can be as long as tens of microseconds. "
(https://en.wikipedia.org/wiki/Comparator)


Having the comparator is good because we would need to compare the voltage we sampled from the op-amp circuit when a potato is passing and when it is not. The comparator performs this function, outputs a binary 0 or 1 to the arduino (?), and since it allows for high frequency signals it may be able to measure things that happen quickly.


For further documentation for use with the Arduino, compare this obstacle avoidance sensor to the Sunfounder Obstacle Avoidance Sensor [2]. 

If the CJ Avoidance Sensor does not work well, try replacing the LED with a 940 nm IR LED:

Standard LEDs - Through Hole LED PMI 696-SSL-LX5099IEW http://www.mouser.com/ProductDetail/Lumex/SSL-LX5099IEW/?qs=sGAEpiMZZMtmwHDZQCdlqUPJk6OnVfwFh1MnnzvLabs%3d


This uses the logic from the quote in Makezine [3]:

"Older remote controllers used gallium arsenide compensated with silicon (GaAs:Si). These LEDs emit at about 940nm, which makes them ideal for detecting water vapor, but they’ve become very difficult to find."

An ejected potato has a lot of water vapor.

We tried other LEDs like the ones from RadioShack (pictured on the side of the breadboad) and the ones from the Parallax SUMO Bot Kit (pictured in the circuit) . See below:

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivDpN7BRU6MrISrKmwIZqsxyEgD2PDQMizJhZ8zAhCI9iqoOgu7fmtJDGZaJxC3Rb9SAunIEimGdMam0EWwQMc6odvTTXpmsnzCjKsU-OipERM8u9cTWMAbxMfzD013abZlIbU08COPCo/s1600/photogatecircuit_breadboardard1e2.JPG

It may not be the LED that was the problem. It may be that we did not use a potentiometer on the transmitter LED and an op-amp or comparator on the receiving LED. The C.J. SHOP purchase provides us with this.


[1]



https://www.amazon.com/C-J-Infrared-Obstacle-Avoidance-Arduino/dp/B00XAGSWR4/ref=redir_mobile_desktop?_encoding=UTF8&keywords=infrared%20sensor&pi=AC_SX236_SY340_FMwebp_QL65&qid=1481943085&ref_=mp_s_a_1_1&sr=8-1

[2]
https://www.sunfounder.com/learn/Sensor-Kit-v2-0-for-Arduino/lesson-31-ir-obstacle-avoidance-sensor-sensor-kit-v2-0-for-arduino.html

[3] http://makezine.com/projects/make-36-boards/how-to-use-leds-to-detect-light/

Potentiometer with and without a 555 timer

Following the led dimmer circuits in the Potato Gun Review for the LED transmitter:

http://www.reuk.co.uk/wordpress/lighting/led-dimmer-circuit/
http://www.electroschematics.com/9730/high-power-led-dimmer/
http://www.555-timer-circuits.com/led-dimmer.html





we have for the most complex:

We can build the simpler circuits with parts from the most complex. A parts list for all possible combinations:




Description Mouser Part # Link
Aluminum Electrolytic Capacitors - Leaded 470uF 16V 667-ECA-1CM471 http://www.mouser.com/ProductDetail/Panasonic/ECA-1CM471/?qs=sGAEpiMZZMvwFf0viD3Y3b8LTtskkwos%252bTZXzcHN%2fcU%3d
Darlington Transistors DARLINGTON TRAN 511-BD679 http://www.mouser.com/ProductDetail/STMicroelectronics/BD679/?qs=Djavi1aLnwpKhd3pF0IRIQ%3D%3D
MOSFET N-Channel 50V 33A 512-BUZ11_NR4941 http://www.mouser.com/ProductDetail/Fairchild-Semiconductor/BUZ11_NR4941/?qs=sGAEpiMZZMshyDBzk1%2fWi7Fu3l2zlAhYfCbfnrSmGYg%3d
Potentiometers Sgl Unit Vert Flat Snap-in 10K Ohms 20% 688-RK09L1140A2U http://www.mouser.com/ProductDetail/ALPS/RK09L1140A2U/?qs=sGAEpiMZZMtC25l1F4XBU3JeeCo7XMTlNRqBfUrZdf0%3d
Diodes - General Purpose, Power, Switching 100V Io/200mA BULK 512-1N4148 http://www.mouser.com/ProductDetail/Fairchild-Semiconductor/1N4148/?qs=sGAEpiMZZMvplms98TlKY2CxbJu22D5%2f%2fpqXqVsMprg%3d
Diodes - General Purpose, Power, Switching 100V Io/200mA BULK 512-1N4148 http://www.mouser.com/ProductDetail/Fairchild-Semiconductor/1N4148/?qs=sGAEpiMZZMvplms98TlKY2CxbJu22D5%2f%2fpqXqVsMprg%3d
Metal Film Resistors - Through Hole 2watts 1Kohms 5% 594-5083NW1K000J http://www.mouser.com/ProductDetail/Vishay-BC-Components/PR02000201001JR500/?qs=sGAEpiMZZMtlubZbdhIBIDWIPK23CRbllZqljMtzpi4%3d
Metal Film Resistors - Through Hole 1/10watt 47ohms .1% 50ppm 71-RN55C-B-47 http://www.mouser.com/ProductDetail/Vishay-Dale/RN55C47R0BB14/?qs=sGAEpiMZZMtlubZbdhIBIOj4GQCFpror65Ok4ODdEZQ%3d
Multilayer Ceramic Capacitors MLCC - Leaded 100000uF 200Volts 598-M30R104M2 http://www.mouser.com/ProductDetail/Cornell-Dubilier-CDE/M30R104M2/?qs=sGAEpiMZZMsh%252b1woXyUXj%2fb0PP%2fSr87QgLKMgW7U1AY%3d
Multilayer Ceramic Capacitors MLCC - Leaded 10000uF 50Volts 598-M15R103M5 http://www.mouser.com/ProductDetail/Cornell-Dubilier-CDE/M15R103M5/?qs=sGAEpiMZZMsh%252b1woXyUXj%2fb0PP%2fSr87QM%252b8hGV4CQBc%3d
Switch Mode Power Rectifiers 16A, 35 and 45 V MBR1635,MBRB1645,NRVBB1645 http://www.onsemi.com/pub_link/Collateral/MBR1635-D.PDF
Standard LEDs - Through Hole LED PMI 696-SSL-LX5099IEW http://www.mouser.com/ProductDetail/Lumex/SSL-LX5099IEW/?qs=sGAEpiMZZMtmwHDZQCdlqUPJk6OnVfwFh1MnnzvLabs%3d


The link describing the most complex 555 dimer circuit mentions the purpose of the 555 timer. It states that the 555 timer is not needed if you do not have more than one LED. Only a potentiometer is needed.

"Typically current is controlled using a resistor in series with the LED, or a current regulator circuit. Supplying more current to an LED increases its intensity, and reducing the current decreases its intensity. One way of dimming an LED is to use a variable resistor (potentiometer) to dynamically adjust the current getting to the LED and therefore increasing or decreasing its intensity. This works very well when just one LED bulb is involved."

"Unfortunately, all LEDs are not made equal – even those of nominally identical specifications from the same batch from the same manufacturer. Although this will not be apparent when strings of LEDs are being driven with the recommended forward current (e.g. 25mA for ultrabright LEDs), as the current is reduced some LEDs will turn off before others, and some will be dim when others are still quite bright etc."

-- http://www.reuk.co.uk/wordpress/lighting/led-dimmer-circuit/

So we could use this circuit instead:


With a subset of only these parts:


Description Mouser Part # Link
Potentiometers Sgl Unit Vert Flat Snap-in 10K Ohms 20% 688-RK09L1140A2U http://www.mouser.com/ProductDetail/ALPS/RK09L1140A2U/?qs=sGAEpiMZZMtC25l1F4XBU3JeeCo7XMTlNRqBfUrZdf0%3d
Standard LEDs - Through Hole LED PMI 696-SSL-LX5099IEW http://www.mouser.com/ProductDetail/Lumex/SSL-LX5099IEW/?qs=sGAEpiMZZMtmwHDZQCdlqUPJk6OnVfwFh1MnnzvLabs%3d




OP-AMP Circuit for Potato Gun Photogate

Following the OP-AMP Circuity in Makezine (http://makezine.com/projects/make-36-boards/how-to-use-leds-to-detect-light/) for using an IR LED as a light detector we have:


With the parts:


Thick Film Resistors - Through Hole 1M ohm 5% 660-RCR60CT52A105J http://www.mouser.com/ProductDetail/KOA-Speer/RCR60CT52A105J/?qs=sGAEpiMZZMu61qfTUdNhG4n4vqkAruQqi5Z%252bqnvcbxA%3d
Ceramic Disc Capacitors 220pF 500V 10% Y5P 6mm LS 594-D221K20Y5PL63L6R http://www.mouser.com/ProductDetail/Vishay-BC-Components/D221K20Y5PL63L6R/?qs=sGAEpiMZZMt1mVBmZSXTPGZfUmf9Bhnh96E7McwC9LY%3d
Standard LEDs - Through Hole LED PMI 696-SSL-LX5099IEW http://www.mouser.com/ProductDetail/Lumex/SSL-LX5099IEW/?qs=sGAEpiMZZMtmwHDZQCdlqUPJk6OnVfwFh1MnnzvLabs%3d
Precision, Single Supply Op Amp LT1006 http://www.futurlec.com/ICLinearOpAmps1.shtml , http://www.futurlec.com/Linear/LT1006.shtml


Saturday, December 3, 2016

Potato Gun Review

We made progress, but we had some bugs. I found it useful to myself to write down what I had done and plan for what to do. I figured I'd share it since yes and no is not that interesting.

We were able to trip the circuit, and use the Arduino code to interpret it (https://github.com/bshambaugh/BWPhotogate/blob/master/photogate.ino). The speed calculation is built in on line 53. The inputs from the receiving circuits should be A1 and A2.

We used some parts from a Parallax sumo-bot kit as pictured in
(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivDpN7BRU6MrISrKmwIZqsxyEgD2PDQMizJhZ8zAhCI9iqoOgu7fmtJDGZaJxC3Rb9SAunIEimGdMam0EWwQMc6odvTTXpmsnzCjKsU-OipERM8u9cTWMAbxMfzD013abZlIbU08COPCo/s1600/photogatecircuit_breadboardard1e2.JPG)
and (https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwKNHQ9Fr51WbFJ1FDrETGdl4UZPIBucSgiVFbDcVXkCI2wHL-KfQlM4RKVJ7JltpReHhm3Ilp67AYBHmFFfVvByQhnxy5nSq-ykXIywQ-TX-urYwshNyp1h8Jcks2NDjRqm112TfYHik/s1600/photogatecircuit_breadboardard1.JPG)
and pg. 45 - 49 of
(https://www.parallax.com/sites/default/files/downloads/27400-SumoBot-Manual-v2.1.pdf).

I seem to recall, we may have had some occasional issues with sensitivity, so it was a challenge to trip them at times.

We never got the final setup with the pvc pipe and reflectors to work.
I do not think they ever were tripped.
(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcEpzBv3mwKs5xXXBYAkgWjtCSs3I1ur25os7F2cAHw6yPzO4B0tONixm8MzlhYCzcLP8NU8oc4io54BSFwOD_MnKy7bb5mX0_KAg1pEACsjt_ZF9RaatKJ-wwJD0DKzJrLwabXi2YdM8/s400/photogate1.JPG). This appears to be putting the IR transmitter and receiver side by side with communication by bouncing off the reflector (compare photogate1.JPG to
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix0QgAW01k7zsB8VR-eepCQI2griMRIWD-SyQJ4h_Zxod1pjJmqH7hfNQB9ahLX3SsiqkpXxHlYgIv9mAv5oELUtsIbXlA9V0BE1WCHjVrxuiwYWKX5XTucUPG-X8ReF7cIcIyqe-9PLA/s1600/photogate2_zoom2.JPG)
It looks like we tried the sumo-bot parts. I may have been worried about transmission loss at the time and also how much a potato may shadow the signal by passing through the parachute shaped gates. The transmitter and receiver may need to face each other within the transmission and reception angle.

I may want to adjust the sensitivity of the receiver with an op-amp and the power of the transmitter with a potentiometer or pwm setup.

I'd like to go back and try it again with the infrared LED emitter and detector package from RadioShack
(https://www.radioshack.com/products/radioshack-infrared-led-emitter-and-detector).
A skilled observer who acted as an electrician / EE consultant thought it was simpler than the sumo-bot circuit. Perhaps it will befriendlier to my partner and I. We got it to light, and our cell phone(?) cameras were able to pick up the emission
(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjNrey8uJ9WhIlqx3efw4J5ORrnCsktAOrBokpQoMDKo_R7wHsAnVpdvpRjEzS3wBGiUPJkHId3urWAApjl4g5MswPe3lwfFdwl3IsuVx8doQVjbkjYLFZr_xmWndf-58wemkM2pIbpdo/s1600/ir_led_camera_light.JPG).
I think we should amplify the received signal to the two receiving diodes with an op-amp circuit and perhaps adjust the brightness of the two transmitting diodes with pwm or a simple potentiometer. The potentiometer setup already worked with the Sparkfun Redboard
(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqGDAqJEp8HCF6dsO8g2rCxz2NWWjU5oKj4z49hAw-bYRrEBCNwtQHCG-XqVMqDmKiTdd4OeR8YrORinTHR4x5EqWiDHWpRTCp0h_6qTw9TAkBL05Cj82pw3aSdJkZnIOHMc7yQbdpqz4/ /11800522_10103322872952857_7659406262285231569_n.jpg)
which is an Ardunio knockoff.  I'm treating the receiving LED with the op-amp as a photodiode (https://en.wikipedia.org/wiki/Photodiode). It might be worthwhile to apply the op-amp circuit and pwm / potentiometer to the sumo-bot parts too.

For the op-amp circuit and pwm/potentiometer circuits, I constructed some circuit diagrams in Fritzing (file names in parentheses) that were based off ones I found on the web.

I went online to find some op-amp circuits. I ended up going with this one:
http://makezine.com/projects/make-36-boards/how-to-use-leds-to-detect-light/
(opampdiodenov26_bb.pdf)


I also found some led-dimmer circuits including or excluding a power rectifier and transistor (in order of more parts to less):
http://www.reuk.co.uk/wordpress/lighting/led-dimmer-circuit/
http://www.electroschematics.com/9730/high-power-led-dimmer/
http://www.555-timer-circuits.com/led-dimmer.html
(led555dimcomplex_bb.pdf),(led555dimmedcomp_bb.pdf),(led555dimmedsimple_bb.pdf)


I constructed the circuit for the potentiometer in the video
(https://www.youtube.com/watch?v=DLirSFg2ELo&index=18&list=PLah6faXAgguOeMUIxS22ZU4w5nDvCl5gs)
(potlednove26_bb.pdf) It looks like I already built it with the
Sparkfun Redboard as the battery.


I think we can either use the potentiometer circuit or the pwm circuit
to adjust the brightness of the LED. The potentiometer circuit is a lot simpler. I'm not certain of its limitations. It is a variable resistor. It is all analog, and I recall from the web that it may only be good for a small number of LEDs (although I don't know why this is true). The pwm circuit adds a 555 timer, a few capacitors, resistors, diodes, and perhaps a power rectifier and transistor to the potentiometer. The 555 timer produces a square wave so I call it
digital.

I e-mailed myself with some parts (mostly from mouser.com) that matched the circuit diagrams I found at the links above. I need to construct a purchase order for myself, and make this thinking more formal, mainly so when I go back to Oklahoma I have something to do with my project partner.

My partner was also worried about the lack of a rigorous method for sizing the potato gun. The potato guns had previously been sized empirically and with inspiration from sources such as Burt Latke's studies. I built a spreadsheet to scale based on size ratios if I recall correctly. This is described in a quote from
http://raptorlicious.blogspot.com/2015/05/potato-gun.html :

"Performance in terms of velocity of the potato gun was found to change as various ratios in the geometry changed. Performance was judged by the damage that the gun did to targets.The most damage was done when the chamber diameter was at least twice the barrel diameter with a ratio of length of chamber to diameter of chamber between 3 and 6. It was less apparent, due to limited experimentation, but the chamber volume was usually kept at 1.2 times the barrel volume. This was inspired by a website based on Burnt Latke's studies
(http://www.inpharmix.com/jps/Optimal%20Chamber%20Volume%20for%20a%20Fixed%20Barrel%20Size.html)."

We had no mechanism to measure the exact amount of fuel we put in other than our own sense of time when spraying the propellant. So, even if we got the photogate to work we may not measure a consistent speed due to variance in the propellant amount. If we fix the propellant amount,we might find the maximum speed for a particular potato gun.