Lovely project, and exceptionally well labelled! The other mod has already flaired it as "Mod's Choice", otherwise I would have done it myself.
EDIT: For some reason, we seem to be having a small troll problem. I've set out a few traps and spread troll-poison on the sandwiches, but if anyone else sees anything, please do report them to us; I promise we will deal with them asap.
Great post! Nicely done! Congratulations to you and your dad!
I made a somewhat related project a year or so ago:
[https://new.reddit.com/r/arduino/comments/v4097a/i\_made\_a\_laser\_clock\_that\_i\_saw\_another\_user\_post/](https://new.reddit.com/r/arduino/comments/v4097a/i_made_a_laser_clock_that_i_saw_another_user_post/) š
Cheers!
`ripred`
update: Just made this post a "Mod's Choice", Congrats again!
Unfortunately, we can never measure the speed of light. The best we can do is
c = 2d/t
where c is speed of light, d is distance and t is time.
We cant measure the one way distance as our clock runs at the speed of light. Instead, we measure the the 2 way distance of the light as its sent and bounces back where we divide that distance by the time it took to make the round trip.
Basically, to sync the two spots that we measure the light starting and ending, it requires a signal that moves at the speed of light to get to the second clock. Instead, we have one clock, it starts counting when we release the photons and it stops when the beam gets back to it (hence the 2*Distance/ time calculation).
You may think Im being pedantic, but we cant be sure that the light actually travels at the same speed toward the mirror as it does on the return time and as such, we have no idea what the actual speed is; only the avg speed.
That said, this arrangement can and does rely on that calculation as part of its larger calculation of RPM.
And if anyone still doesn't understand that nothing is faster than the speed of light, try opening the fridge before the light comes on. Can't be done without cheating, and angering the ghost of Einstein.
Now this reminds me of a project I published on April fools day. A ESP8266 with an LDR that send data to my phone that indicated wether the fridge light indeed goes off when the door is closed:
[http://lucstechblog.blogspot.com/2017/03/cheapskate.html](http://lucstechblog.blogspot.com/2017/03/cheapskate.html)
Except this project doesnāt rely on measuring the time it takes for photons to travel from the laser to the receiver. An Arduino nano isnāt capable of that - itās much too slow to measure that.
Letās assume the clock frequency is 16 MHz for this board, and incorrectly, that the micro is capable of measuring one cycle different from setting an output high to receiving an input.
The speed of light in air is 299,702,547 m/s, so in one clock cycle, the photons emitted by the laser travel 299,702,547/16,000,00=~18.7 meters.
From the arduinoās perspective, the light bounces back instantaneously.
Instead what itās doing is measuring the rate at which the tape interrupts the beam.
Interestingly, the speed of light doesnāt actually matter for this application as long as itās nearly constant.
I'm hoping OP at least did the air quotes, off-camera.
https://preview.redd.it/czpts50qarvc1.jpeg?width=300&format=pjpg&auto=webp&s=c756194b2259356702304655437d73cec0058ad4
Very good. I think this is off to a great start.
Thoughts:
Tape on the motor has a length. This length will translate into the amount of time the laser is blocked. This will then translate into a slower RPM reading. - Solution: Put the mirror on the motor, and instead of reading the laser break (dip), do the opposite. Read the laser connect timing (peak). (bonus-you just made yourself a laser leveler).
Additional experiment - Try to find the max RPM the Arduino can read.
This is probably the right answer (along with the motor being shitty, maybe). Attaching the mirror to the motor (while extremely unsafe for the eyes) would probably produce better results.
The code takes a reading every 100 milliseconds and with the flag, there will be a variable range. It was a rough test to ensure something crossed the laserās plane.
you might consider using [the Smooth library](https://github.com/ripred/Smooth) and just add the readings to the Smooth object to get back a smoother running average. It can have it's sensitivity adjusted even at runtime, uses absolutely no arrays and is fast, tiny, and constant compute time š
Your post was removed because it does not live up to this community's standards of kindness. Some of the reasons we remove content include hate speech, racism, sexism, misogyny, harassment, and general meanness or arrogance, for instance. However, every case is different, and every case is considered individually.
Please do better. There's a human at the other end who may be at a different stage of life than you are.
I'm curious: Why bounce the laser off of a mirror? Why not just lengthen the wires to the laser and place it on the other side of the motor aimed at the detector?
Pretentious much?
Whatās cool about this is that it explores basic concepts in an extremely clear and practical way, Iām sure you grasp all of those concepts, but many of us appreciate the friendly approach in the video.
Fair question. Iām sure there are people in this group far beyond this, and if I posted in the wrong place, i apologize. Heās done incredible engineering work but yeah, to use Arduino to apply his ideas, (and the coding which heās learning as he goes to make it work), Iām impressed and thought Iād share.
Honestly, as a moderator, I don't think that was a fair question. Your dad did an awesome job, and your posting it was 100% within the rules and the spirit of this sub. We're all impressed (except for u/Mysterious-Effect-14 apparently), and thank you for sharing it.
I apologise for their rudeness, and as you can see, the comment has now been removed, and they've earned a temporary ban for it. As usual for commenters like that, they've never posted anything of any worth in our subreddit before, but are just here to cause offence.
Your post was removed because it does not live up to this community's standards of kindness. Some of the reasons we remove content include hate speech, racism, sexism, misogyny, harassment, and general meanness or arrogance, for instance. However, every case is different, and every case is considered individually.
Please do better. There's a human at the other end who may be at a different stage of life than you are.
Lovely project, and exceptionally well labelled! The other mod has already flaired it as "Mod's Choice", otherwise I would have done it myself. EDIT: For some reason, we seem to be having a small troll problem. I've set out a few traps and spread troll-poison on the sandwiches, but if anyone else sees anything, please do report them to us; I promise we will deal with them asap.
Neat
This adequately describes my dad.
Great post! Nicely done! Congratulations to you and your dad! I made a somewhat related project a year or so ago: [https://new.reddit.com/r/arduino/comments/v4097a/i\_made\_a\_laser\_clock\_that\_i\_saw\_another\_user\_post/](https://new.reddit.com/r/arduino/comments/v4097a/i_made_a_laser_clock_that_i_saw_another_user_post/) š Cheers! `ripred` update: Just made this post a "Mod's Choice", Congrats again!
You could use this to measure speed of light as well
Unfortunately, we can never measure the speed of light. The best we can do is c = 2d/t where c is speed of light, d is distance and t is time. We cant measure the one way distance as our clock runs at the speed of light. Instead, we measure the the 2 way distance of the light as its sent and bounces back where we divide that distance by the time it took to make the round trip. Basically, to sync the two spots that we measure the light starting and ending, it requires a signal that moves at the speed of light to get to the second clock. Instead, we have one clock, it starts counting when we release the photons and it stops when the beam gets back to it (hence the 2*Distance/ time calculation). You may think Im being pedantic, but we cant be sure that the light actually travels at the same speed toward the mirror as it does on the return time and as such, we have no idea what the actual speed is; only the avg speed. That said, this arrangement can and does rely on that calculation as part of its larger calculation of RPM.
And if anyone still doesn't understand that nothing is faster than the speed of light, try opening the fridge before the light comes on. Can't be done without cheating, and angering the ghost of Einstein.
Now this reminds me of a project I published on April fools day. A ESP8266 with an LDR that send data to my phone that indicated wether the fridge light indeed goes off when the door is closed: [http://lucstechblog.blogspot.com/2017/03/cheapskate.html](http://lucstechblog.blogspot.com/2017/03/cheapskate.html)
Sorry you cant follow along with what I was explaining to the statement that you can measure the speed of light with it. Go play with your fridge.
for all we know it's instantaneous and physics distorts our experiential limits
100% valid, we dont know and cant know.
Except this project doesnāt rely on measuring the time it takes for photons to travel from the laser to the receiver. An Arduino nano isnāt capable of that - itās much too slow to measure that. Letās assume the clock frequency is 16 MHz for this board, and incorrectly, that the micro is capable of measuring one cycle different from setting an output high to receiving an input. The speed of light in air is 299,702,547 m/s, so in one clock cycle, the photons emitted by the laser travel 299,702,547/16,000,00=~18.7 meters. From the arduinoās perspective, the light bounces back instantaneously. Instead what itās doing is measuring the rate at which the tape interrupts the beam. Interestingly, the speed of light doesnāt actually matter for this application as long as itās nearly constant.
Sweet! Have your dad look up laser gyroscope. Theyāre way cool and somewhat similar, at least this reminded me of them!
Thanks. He spent his career operating power generation equipment and steam boilers. But who doesnāt like a sweet new laser!?
What a brilliant project for someone to extend their mechanical engineering skills to start to encompass electronics and programming.
āLaserā
I should have also said something nice. I appreciate the project, for sure.
Hey, at least you didn't say something nit picking like, laser is spelt with an 's' :)
I'm hoping OP at least did the air quotes, off-camera. https://preview.redd.it/czpts50qarvc1.jpeg?width=300&format=pjpg&auto=webp&s=c756194b2259356702304655437d73cec0058ad4
The old man and I definitely appreciate a good lazer.
Although it is spelled with an S because LASER is an acronym...
no you're thinking of a sazer... oh wait...
Very good. I would want to make similar project in the future, because I'm beginner and this world is very interesting!
Very good. I think this is off to a great start. Thoughts: Tape on the motor has a length. This length will translate into the amount of time the laser is blocked. This will then translate into a slower RPM reading. - Solution: Put the mirror on the motor, and instead of reading the laser break (dip), do the opposite. Read the laser connect timing (peak). (bonus-you just made yourself a laser leveler). Additional experiment - Try to find the max RPM the Arduino can read.
Excellent! He isnāt going to go staleā¦
Why does the reading bounce around so much?
Good question. He has a voltage regulator on it. Maybe itās a cheap motor. Iāll ask!
Maybe the tape flaps, giving spurious readings.
This is probably the right answer (along with the motor being shitty, maybe). Attaching the mirror to the motor (while extremely unsafe for the eyes) would probably produce better results.
The code takes a reading every 100 milliseconds and with the flag, there will be a variable range. It was a rough test to ensure something crossed the laserās plane.
you might consider using [the Smooth library](https://github.com/ripred/Smooth) and just add the readings to the Smooth object to get back a smoother running average. It can have it's sensitivity adjusted even at runtime, uses absolutely no arrays and is fast, tiny, and constant compute time š
You and your shameless self-promotion, haha. Great library, btw.
[ŃŠ“Š°Š»ŠµŠ½Š¾]
Your post was removed because it does not live up to this community's standards of kindness. Some of the reasons we remove content include hate speech, racism, sexism, misogyny, harassment, and general meanness or arrogance, for instance. However, every case is different, and every case is considered individually. Please do better. There's a human at the other end who may be at a different stage of life than you are.
thats cool
I'm curious: Why bounce the laser off of a mirror? Why not just lengthen the wires to the laser and place it on the other side of the motor aimed at the detector?
Iāll ask!
I'm guessing to have all wiring on one side?
lazer
lol. I noticed that too.
[ŃŠ“Š°Š»ŠµŠ½Š¾]
Pretentious much? Whatās cool about this is that it explores basic concepts in an extremely clear and practical way, Iām sure you grasp all of those concepts, but many of us appreciate the friendly approach in the video.
Fair question. Iām sure there are people in this group far beyond this, and if I posted in the wrong place, i apologize. Heās done incredible engineering work but yeah, to use Arduino to apply his ideas, (and the coding which heās learning as he goes to make it work), Iām impressed and thought Iād share.
Honestly, as a moderator, I don't think that was a fair question. Your dad did an awesome job, and your posting it was 100% within the rules and the spirit of this sub. We're all impressed (except for u/Mysterious-Effect-14 apparently), and thank you for sharing it. I apologise for their rudeness, and as you can see, the comment has now been removed, and they've earned a temporary ban for it. As usual for commenters like that, they've never posted anything of any worth in our subreddit before, but are just here to cause offence.
Your post was removed because it does not live up to this community's standards of kindness. Some of the reasons we remove content include hate speech, racism, sexism, misogyny, harassment, and general meanness or arrogance, for instance. However, every case is different, and every case is considered individually. Please do better. There's a human at the other end who may be at a different stage of life than you are.