As a reminder I am researching advanced movement sensors for use in my thesis as described here: http://itp.louiselessel.com/2020/04/new-final-project-idea-advanced-movement-sensor/
I have ordered these two sensors from Mouser.com to test for sensing the people in the space that my light sculpture (thesis) will react to. The EAGLE files are available on SparkFun.com and what I will be doing is designing a board that is shaped like a Gingko leaf to hide the sensors.
SparkFun Human Presence Sensor Breakout – AK9753 (Qwiic) https://www.sparkfun.com/products/14349
SparkFun Grid-EYE Infrared Array Breakout – AMG8833 (Qwiic) https://www.sparkfun.com/products/14607
As expected, the first sensor (AK9753) (4 IR sensors in a grid) will be best for my purposes. I was surprised with how good the resolution actually is in terms of my problem of tracking the speed of the movement, since the second sensor (AMG8833) uses something much closer to computer vision and has 8×8 grid (64 sensors). And while I am very proficient at programming this, it is another beast entirely and I would have to compare the contents of different cells (in Arduino or processing to get the movement speed, whereas in the code for the AK9753 (Human Presence Sensor) I am already getting the slope (derivative) of the movement, so in terms of coding this sensor is indeed what I need, and less work will be needed.
Contrary to what I thought both sensors would look good on the leaf. The grid-Eye does not appear to bulky. However it is heavier. Which means it could make the leaf bounce more. And one of my findings is that I will want to keep the leaf which I will attach the sensor to, as still as possible.
In my previous post I wrote this:
The two sensors should both have a range up to 5-7 meters, which is good for my installation. But I read that the (AK9753) needs a lens to function optimally. Which will make it just as clunky as the (AMG8833). I will have to experiment.
I find that the range of 5-7 meters is probably wishful thinking. However a range of 1-2 meters is definitely possible with both sensors.
- Groove code libraries for the Human Presence Sensor (AK9753) were further developed and more accessible than Sparkfun – and works interchangeably with the SparkFun’s board https://github.com/Seeed-Studio/Grove_Human_Presence_Sensor / https://github.com/sparkfun/SparkFun_AK975x_Arduino_Library
- The AK9753 is lighter and smaller than the AMG8833, making it more suitable for my PCB
- The rate of change calculation is quite reliable on the AK9753. Though I will have to rewrite the threshold and experiment til I find a good one.
- The AMG8833 data fascinates me, and I will be looking for other projects to use it for.
- The PCB will need to be kept as still as possible, because obviously the derivative calculations on the AK9753 is susceptible to movement of the sensor in relation to the person. So in my thesis code I will need to make sure that the sensor is ignored while the robot is moving. This type of sensor narrows my thesis robots to a reactive installation. That is quite alright since they will be moving very slow and just readjusting themselves. They were never meant to “do a dance” with the audience. It is a piece about co-presence.
- The price difference AK9753 at $25 and AMG8833 at $40 is also significant.
Link for similar Groove board that the code was written for: http://wiki.seeedstudio.com/Grove-Human_Presence_Sensor-AK9753/
(I am talking aloud to myself on these describing my thoughts and findings as I go along.)
Human Presence Sensor (AK9753)
Simplest readings from example code. Raw data.
Rate of change as print outs instead of derivative? Simpler method or dumb idea?
Changing sensitivity settings to see if there is a difference.
Derivative thresholds (example 4). I will be basing my thesis code from this example. Though I will be experimenting a lot with the thresholds (orange and red data).
Grid-EYE Infrared Array Breakout (AMG8833)
For this sensor I have a much bigger grid, and several options for easily reading the data. Like the first image is a threshold giving me a grid. I would have to check all the cells here though.
I can also get the readings for each cell out as a data graph, which would be useful. But still a lot more data than I actually need.
The amount of data and the larger difficulty distinguishing the movement on the sensor in comparison to the other one. However, next time I have a project where I want to be tracking heat locations I will be using this sensor for sure. Here I am testing it with a candle light. It is also nice with a visual output. But I can make that for the other sensor easily from this processing example should I need to.
EAGLE for AK9753 break out board
Examining the board I can tell that it is a multi layer board. The bottom layer in the eagle file is really in between the two outside layers. Where Vias are used to connect everything.
My job for next week will be rearranging these parts in a way that makes sense for an acid etched board, by following these guides: http://homemadehardware.com/guides/redesign-online-circuits/ and http://homemadehardware.com/guides/acid-etching/. As well as making a bill of materials.
The biggest challenge will be to find the parts I can omit ( I would like feedback on this, because this is what I think I can see already). Examining the Hook up guide I can see there are optional features called JP# (meaning using Jumper pins ?) :
1. The JP7 (those are all soldered together on my board). I won’t be chaining them, since I just need one of these for my branch. Even if I put several branches together, I will only need one sensor for the lot of branches.
From Sparkfun about the JP7 part:
There are several jumpers on board that can be changed to facilitate several different functions. The first of which is the I2C pull-up jumper, highlighted below. If multiple sensors are connected to the I2C bus with the pull-up resistors enabled, the parallel equivalent resistance will create too strong of a pull-up for the bus to operate correctly. As a general rule of thumb, disable all but one pair of pull-up resistors if multiple devices are connected to the bus. If you need to disconnect the pull up resistors they can be removed by removing the solder from this jumper.– Sparkfun
2. I will be omitting the JP8 part, which allows my to stop the interrupt capability. By omitting, I mean that I will just have them be permanently connected. This part is made so it can be sliced with a hobby knife to disable the functionality. I won’t be needed that, the interrupt is nice to have, since I have yet to plan my code.
3. I won’t need to reprogram the address (for same reason as 1.) so I think I can remove that as well (JP1 and JP5).
4. Finally I won’t be needing the Qwick connectors (J2 and J4). I can make due with a 5 pin connection at the bottom of my leaf.