So for the last few weeks I've been working on this contraption which is intended to be a low-cost alternative to something that I used when I was teaching undergraduate courses and the commercially available option works fairly well but it's in my opinion horrendously overpriced and it also is sometimes limited in how you can expand its functionality and my friend is actually teaching high school physics in Japan so she originally contacted me asking if there would be a way to make a lower-cost alternative to the commercial versions of these and I decided to look into it and I found there was a research group in Spain that had published a paper on doing a version of this but they did that way back in 2016 when the microcontrollers that were available were a little bit different and they also ended up limiting their use case to people who already had those sets and they just wanted to buy more units to work with the existing ones so this is a little bit different in several days one is that this can work completely on its own you don't need to buy any part of the expensive ecosystem to use this and the other way it's different is that it has one of these which this is the ESP32 microcontroller which is a sort of little internet of things chipset that has Wi-Fi and Bluetooth built into it and so what there is is you see this little board right here is an accelerometer so able to take in acceleration readings because this is intended for undergraduate physics education and that means that it's you know basically what happens is it rolls along and it measures how much it's accelerating and the students then combine that with another sensor that I don't have mounted on here right now which is an ultrasonic sensor and they use that to compare you know does the position of the cart measured using the ultrasonic sensor or also I'm measuring it using this photo diode here does that match the acceler- you know does that match the double integral of the acceleration they measure using the accelerometer as well as they are called collision cards because you can take two of these and you can collide them together and they'll bounce off of each other and you can measure the velocities before and after and you know the relative masses and then you can determine that momentum and energy are conserved before and after a collision or you can determine that momentum is conserved before and after a collision and you can see the extent to which energy is conserved so yeah this thing I it's still a work in progress but let me show you a couple of things that can do real quick so there's this Python script that controls everything using UDP and we have to zero it real quick so the accelerometers and gyros know what zero is once that's complete go ahead and move it back and forth a little move it up and down rotate it and take a look at the graph so this plot is generated automatically when the Python script receives the data over UDP from the microcontroller that's connected to the accelerometer on the actual card and those top of your graphs represent the acceleration and the bottom three represent the angle which is inferred by integrating up the gyroscopes readings right because the gyroscopes tell you rotation rate multiply rotation rate by time you get angle and so just looking at those plots you can kind of see the movements that I was doing there right the Z axis accelerometer just reads a constant 9.8 because it's just feeling the force of gravity the X axis basically reads nothing except some little noise bumps when I'm moving it back and forth and the Y axis you can see that it jumps up for a while and down for a while as I'm accelerating it forwards and backwards and the angle you can see where I lifted the X axis rotated it set it back down and the other two rotate two angles other than the start because they just kind of move around although it's like two degrees in Z because the cart actually steers a little bit and less than one degree in Y because well the wheels need a little bit of work my 3D printer needs some tuning which another little experiment to do is to have it roll down a ramp like this which this one is set to 25 degrees and with that little well it's actually a yardstick not a meter stick on the back so I have a wireless keyboard there to start the Python script this is a work in progress after all and that towel is there to break its fall at the bottom all right let's look at the graph okay so the graphs look like this formatted precisely the same way before so this is acceleration X acceleration Y acceleration Z and likewise for the angles so these are all relative the angles are all relative to the start position right so they all start at zero so change of 25 degrees actually corresponds to going to an angle of zero which seems like I must not be doing this quite right because this is getting more like 14 15 degrees so you know again more things to improve but take a look at a couple things here right one is you'll notice that the Z axis acceleration it has this noisy bumps while it's sort of going down that rickety little track but it basically just stays at the value it stays at which is not quite 9.8 it's more like 9 and that is actually correct if you just you know solve the problem of a you know cart with wheels going down an inclined plane or something right sliding down a frictionless incongal plane that's actually correct the normal force doesn't change and then this one is also probably correct right the sort of horizontal component of the acceleration is you know equal to you know 9.8 times the sine of 25 which gives a you know like 4.9 which is about what you get here so not too shabby and then when it's you know sort of in freefall rolling down the track it's very noisy but it basically drops to zero and then it's slightly above but near zero at the bottom because the cart sort of changes angle about the x-axis here so it goes from you know pointing 25 degrees down to level so that now normal force is all and you can see that this actually on the other side it's over here it's like you know it is about nine and on the other side it's more like 9.8 yeah so there it's about nine and over here it's about 9.8 and then here it's about four beforehand and then it goes to you know little over one because it you know I need to towel at the bottom so that it it probably wouldn't break but I you know yeah don't want to break it right away and you know then likewise the this is just a four-degree bump in the y-angle which just corresponds to the bumpiness of the track you know it's not really because that would be sort of the cart rolling on its longitudinal axis as it goes down and then the again the z changes also by like six degrees but that's you know again just the cart you know goes off the end of the track and then it's no longer constrained to pointing in the direction it started and it just changes by some random angle when it hits the talette bottom so it looks like things are more or less working so yeah I need to now add the ultrasonic sensor as well as make use of that photo diode to look at the markings on something like that well I want to use an actual meter stick markings and I'll also use just black and white even centimeter markings instead of just hash marks every like well inch the way around that stupid yardstick but yeah so far this is looking pretty alright so I'm gonna keep working on this stupid little thing for a while but it's a potentially useful little educational tool and it's designed to all be free and open source so I you know will make the STL files for the mechanical components as well as the software that runs on the microcontroller and the software that runs on the server side or on the you know on the computer side either through a web server or just directly on the computers that the students are using available so yeah this is a little free and open source collision cart motivated by my friend teaching physics in Japan and inspired by open source demonstration by team from Spain I'll link to their paper as well as their GitHub project in the description so yeah peace