FAQ |
Calendar |
![]() |
|
![]() |
#1
|
||||
|
||||
Projects with Raspberry Pi, Arduino, etc.
Given that there's lots of people with a STEM/techie bent on here, I think that there are probably some among you who've realized some interesting projects using the various cheap single-board computers, like Raspberry Pi in its various iterations, Arduino, and so on. If so, I'd like for this thread to be a place to share and discuss them, as well as give advice to others interested in getting started/pursuing their own projects.
Me, I'm a relative newbie when it comes to this sort of thing. The first (and so far, only) project of mine was building a to-do planner, based on this video. It's a Waveshare 7.5 inch two-color e-ink display in a cheap Ikea frame, in which also a Pi Zero W is mounted. The Pi runs a python script that queries my google calendar, my todoist account, openweathermap.org for weather data and the local transport company for departure data at the nearest station. On the left pane, the date and the next five calendar entries are displayed, the right pane shows the next to-dos, and the weather- and departure-data in the footer. See here for the front view, and here for how the Pi (with the Waveshare-HAT) is set in the back. It checks for update to the to-do data and the calendar every five minutes, updates if there's new stuff, and does a general update (screen refresh with new data) every fifteen. For my next So, what are you building/what have you built? What are you planning to make? What obstacles did you encounter, what useful tips and tricks have you discovered that you want to share? |
#2
|
|||
|
|||
I built an ADS-B receiver http://stratux.me/ (I have the previous case)-- I've used it at home but not in the air (since my club has a Sentry)
I occasionally think about getting another Pi and/or Adruino, but uness I have a specific project for it will just be clutter. (I have thought about a retro pi0 Brian |
#3
|
|||
|
|||
Here's one that I wish somebody would build and sell (not me, as I dabbled years ago but no longer have the passion to devote to this particular corner of the tech world):
I want a little black box with a GPS receiver, and I want it to output an accurate timecode that I can record with an ordinary data logger along with the other signals I'm recording. An example timecode would be a TTL line that transitions up once per second on the beginning of the second, and transitions down either 400, 500, or 600 ms into the second. The 400 and 600 would represent ones and zeros in a digital representation of the time for the most recent mark, and the 500 would represent the mark, which would also be used for syncing to the timecode when postprocessing the recorded signals. Another example timecode would be what is transmitted on WWVB, a 60 KHz carrier transmitted from Fort Collins, Colorado (and elsewhere I think). Or, even more exciting, the box could have several pins simultaneously outputting several timecodes, so I could choose one or another or various combinations depending on what I'm doing. There could be, for instance, analog sine waves of frequencies like 100, 10, 1, 0.1, and 1/60 Hz, and they'd all peak on the second transition. There could be a pin outputting an unstrobed LED compatible timecode suited for amateur astronomers who like to video occultations so they could get a faint light dot into their video field which would improve the timing over the current ways it's done. The reason I have wanted this is I do scientific study of large machine systems where I sometimes make measurements scattered too far apart to work well wired to a single data logger, and I wish I had timestamp accuracy better than a second, and it's difficult to get this. But the idea occurred to me when I was playing with Arduinos and it still seems like something I'd buy. Last edited by Napier; 11-17-2019 at 08:24 AM. |
#4
|
||||
|
||||
I have a Seeburg 1000 Background Music System machine, basically a fancy record player that plays a stack of 25 special records over and over, with old-school background music.
The project has gone in several phases... First, I got it running--it's playing right now. Then I figured out how to get it run smoothly. I replaced the old electrical stuff with new wiring. Yesterday I added a bluetooth extender, so I can listen to it a few hundred feet away on a bluetooth speaker. When I get some days off next week I will go to the fancy lumber yard nearby and get some cool wood to make a spiffy base for the thing (currently I'm running the nekkid machine without its enclosure, still a solid object at about 35 pounds). But... I have a dream of setting up a Raspberry Pi as an Internet radio station using Icecast. It would take the signal coming out of the device and broadcast it on a static IP address as streaming radio. The next step will be to have some kind of simple interface accessible from the Internet where I can close a relay/MOSFET/whatever on demand. This will allow me to hit the "reject" switch remotely, a necessary feature of these turntables when they get stuck on a skipping record. |
|
|||
#5
|
|||
|
|||
We built a teapot monitor at work. The electric kettle has a ring of blue lights that shine while it's boiling, so using a tiny RPi Zero, with camera, stuck to a shelf above the kettle, we filtered a range of blue frequencies and noted changes in the pixel count. That let us send a message to a Slack channel when the pot started or stopped. Then our admin got a new pot (without the ring of lights) and threw out the old one.
![]() Now we're working on a robot chess table. It's slow going, but we're getting there.
__________________
STGM |
#6
|
||||
|
||||
My first Raspberry Pi project is still my favorite.
I have a 4K TV that I wanted to use as a digital picture display. I use the Pi to turn the TV on and off (using the bitchin’ LIRC), pick a photo at random, and display it for four hours. The Pi can (just barely) display 4K at 24 Hz. The program is a Python script. Originally, the photos were stored on a network server, but I later moved them to a USB drive. I have integrated the iPhone Blynk app into the Python script so I can do some rudimentary control of the system. Oh, and - the same Pi runs HomeBridge and Z-wave Smart Home, so that I can use Siri to control my lights. |
#7
|
|||
|
|||
I built start clocks for a few R/C boat clubs based on an Arduino. I didn't do the programming, but I did all of the hardware. Basically these are reclaimed gas station LED price signs, and I designed and built the BCD-to-7-segment driver boards, and someone else wrote the Arduino sketch to run them.
https://www.youtube.com/watch?v=IGaNoqU8agg it's 101-level stuff if you're skilled in electrical/electronics, but I'm a mechanical engineer and this stuff is a black art to me ![]() |
#8
|
||||
|
||||
Quote:
I have no issues whatsoever with milling or turning parts on the lathe for my Seeburg 1000, but everything from the phono preamp out has been a learning experience. Someday I'll have my Raspberry Pi project running! |
#9
|
|||
|
|||
Raspi projects:
- ADS-B receiver - A tabletop jeopardy-style trivia game with led momentary switch buttons that light up. Arduino: - A battery powered car that starts when a light sensor drops below a certain threshold and stops when it reaches a predetermined point. This was a class project demo showing how to use an Arduino Uno, relay switch, and several sensors. I recently bought an Inland 37 in 1 sensor kit, so I'm trying to think of some cool things to do with them. |
|
||||
#10
|
||||
|
||||
Quote:
Quote:
Quote:
Quote:
I've also been dipping my toes into machine learning a little, building some simple neural networks in python, and learning some TensorFlow. I'd like to find a project where I could apply this sort of thing---I've been thinking about something like gesture recognition, perhaps controlling the TV with it... |
#11
|
|||
|
|||
I'm going to have to follow this thread. Just a few weeks ago I bought two Raspberry Pis (to be used as pi holes, but still, I have them) and an Arduino Uno along with some associated bits and pieces (breadboards, ICs, resistors, transistors etc) to play with. I've been meaning to do it for a while and finally decided to start tinkering.
The problem is, I'm not sure what to do with any of them yet. I'm playing around with some of the basic tutorials, make an LED blink, make a motor spin... But most of the beginning projects (a nightlight, an 'intruder alarm) remind me the exact same things I used to do with this, as a kid. |
#12
|
||||
|
||||
I don’t use Arduinos, although I do use the (crappy) development environment to program ESP-8266’s and ESP-32’s.
I do most of my micro controller projects with Silicon Laboratories parts. One of my most useful projects is a remote bell that lets us know when the washing machine is done. We have a two-story house, and can’t hear the washing machine when it finishes it’s cycle. Out of sight, out of mind - so the laundry was sitting there for hours sometimes, when we got busy. I watched the indicator lights on the machine, and determined that the “Spin” light came on and stayed on at the end of a cycle. I taped a photocell over the light, and then wrote some code that looks at the state of the light. It resets if the light cycles, which it does when you start a new load. Once the light stays on for a specific amount of time, it activates a cheap remote doorbell transmitter, which sends a signal to the receiver in the kitchen upstairs. It re-sends the signal every 5 minutes until reset. |
#13
|
|||
|
|||
Jesus, you guys are hardcore. I'm planning my first Raspberry Pi project to be, essentially, a media server.
Last edited by KneadToKnow; 11-18-2019 at 01:27 PM. |
#14
|
|||
|
|||
Same here. I was planning to get one so I can use it to watch both streaming films and films off my hard drive, plus play a bunch of roms and emulators. I'm lame.
__________________
Sometimes I doubt your commitment to sparkle motion Last edited by Wesley Clark; 11-18-2019 at 05:14 PM. |
|
||||
#15
|
||||
|
||||
The first task I gave my first Pi (2+) was a Kodi MC (actually OpenElec). Even with paying to unlock a codec it was just barely able to run some videos.
I imagine with the 4 things are a whole lot better. OTOH, there's forking forking all over the place with these *Elec and such variants. And setting up an infrared remote was a nightmare. Editing horribly designed XML files and trying to copy stuff from IR code dumps, c'mon. Strangely the easiest part was stripping an IR detector from an junk thing, figuring out its pins, adding wires and connectors and plugging into the right pins on the header. |
#16
|
||||
|
||||
Quote:
Quote:
|
#17
|
||||
|
||||
Remote controlled flipdot display with games, etc.
I didn't build the display itself, but I did build the drive system. It uses an Arduino with a Bluetooth->serial converter, as well an an RS-485 output converter. I communicate with it by a custom Android app I wrote. Nixie tube clock I built a custom circuit board for this one. The digits are controlled via I2C interface, which itself is driven by a Raspberry Pi Zero W. It's connected to WiFi so it syncs the time automatically. At one point I made it voice controlled via Alexa, but that stopped working and I haven't gone back to figure out why. "NibblerPoop" Litterbox Twitter notifier Construction details This one's been down for a couple of years due to various events, but basically I used an Arduino to sense the weight of my cat's litterbox via load cells. I then had a script running on a Raspberry Pi to generate amusing tweets based on the readings. Generally speaking, it reported Nibbler's current weight and the weight of her "deposits." It could also sense certain false alarms, such as when she visited the box but didn't leave anything, or if she halfway walked in but changed her mind. |
#18
|
|||
|
|||
Funny you should open this thread, just last night I was wondering whether to release or not a project I did with Arduino last year. It's a time lapse camera panner for GoPro type cameras, the thing that makes it different to the gazillion + 1 camera panners is that besides controlling the time and angle of rotation I added a cubic Bezier curve function to control the acceleration, which is pretty neat if you ask me. It has a small OLED screen where the curve can be adjusted and time and angles set.
It works well enough but it's not as smooth as I had hoped for, it uses a cute little Nema 9 stepper motor with a worm gear to rotate the camera, but there is some play in the mechanism and it makes little jumps every now and then. The other problem is that solving the cubic Bezier equation on the fly to calculate the step interval is a bit too much for an Arduino Nano and it can't keep up if the time lapse is too short (i.e. the time it takes to calculate the time interval between motor steps is longer than what the interval should be), that's one of the reasons I never shared the project anywhere, on the other hand it could be a good starting point for anyone who would like to improve on the idea. My plan for it is to some day change from an Arduino to a faster ESP type microcontroller to solve the computational limitations and go from stepper motor with gearing to a direct drive brushless motor. I've only done one project with Raspberry Pi, but it was pretty big, as in 75 RPs big, plus 75 cameras; with a friend we built a full body 3D scanner, although my part was the hardware and my friend did the software, it worked pretty well for a first try, here's a test I did where I scanned myself and then used motion capture data to animate the avatar. At the moment, as part of a big personal project, I'm working (or at least I'd say is actively in the "To Do" list) on developing an Arduino based, proof of concept, Steer-By-Wire system with thrust vectoring... which as usual for me starts with "I have no idea how I'm going to do this" and then fun comes from figuring out the how to. For the time being I'm going to try magnetic encoders and brushed DC motors to both do the steering and the position/force feedback on the wheel, which I think should be relatively simple (I'll should check back on this six months from now to get a chuckle out of my optimism) |
#19
|
||||
|
||||
Quote:
|
|
|||
#20
|
|||
|
|||
Quote:
|
#21
|
||||
|
||||
Alright, I'm interested.
Any suggestions for getting started in the world of Raspberry Pi? I'd like to monkey around with GPS signals, and build a sort of fire-and-forget GPS receiver that collects and stores RINEX data on a micro-SD card, probably splitting data up into folders, maybe 2 hours at a time. I would think that would be something that would be doable. |
#22
|
||||
|
||||
Quote:
In addition, there are a lot of tweaks that can be applied in such a limited use situation. So many internal OS settings are optimized just for this that are not reachable from the Kodi settings menu. (And are a pain to do it yourself.) |
#23
|
||||
|
||||
I've got a Pi running Pi-Hole "A black hole for Internet advertisements"
The admin/stats page shows 25-35% of DNS queries get munched for the household. Pages load much faster. Just a fire and forget personal DNS server. My Arduino project will be to equip one with a vacuum sensor in my central air unit to text me when it's time to change the filter. |
#24
|
|||
|
|||
I built a 3d printer with an Arduino for a controller, and a raspberry pi running Octoprint to control the Arduino and give it a wifi interface.
|
|
||||
#25
|
||||
|
||||
Quote:
![]() Quote:
|
#26
|
||||
|
||||
Quote:
Then, buy a Pi 4, a few SD cards, and download an OS, and you are on your way... |
#28
|
||||
|
||||
Well, I just received my Raspberry Pi 3 B+ kit a few hours ago.
It took me an hour put it together and to install Raspbian and download all of the updates. I then fiddled around for an hour to get it to automount one of my NAS shares from my Drobo at boot time. Finally, just for fun, I installed Plex Server and configured it to serve up the media from my Plex folder on the Drobo. Now I unplugged the keyboard, mouse, and monitor and stuffed it into a cabinet. When I need to tend to it, I ssh in from my Mac. This is way too cool--a Plex server the size of a pack of cigarettes that I can leave plugged into some handy network switch somewhere in my house. I'm certain it wouldn't handle heavy transcoding needs, but it seemed to work just fine when I brought up Plex on my iPad and started watching 2001. The poor little Raspberry Pi is probably in tears right now thinking it's never going to what it was made for. That will come soon enough. Just having a super lightweight Linux box that I can run stuff on is plenty neat for now, but at some point I'll start messing around with the I/O pins. |
#29
|
||||
|
||||
Quote:
Last edited by Pork Rind; 11-26-2019 at 09:11 PM. |
|
|||
#30
|
|||
|
|||
Umm, that is what I did build
Brian |
#31
|
|||
|
|||
heh this guy in Sweden has everyone beat https://www.msn.com/en-us/video/scie...mes/vi-BBXnqE6
give it a minute because the seems slow to start,,, and yeah i can get the emulators and games for almost nothing but man talk about doing something with style ....... Last edited by nightshadea; 11-26-2019 at 11:44 PM. |
#32
|
|||
|
|||
I hooked an Arduino up to two stepper motors, and mounted it on a board with an Etch-A-Sketch so that the stepper motors turn the knobs.
Never got the results I was hoping for. I fear the manufacturing tolerances of the Etch-A-Sketch are not all they could be. And there's a bug in the code I need to fix one of these days. |
#33
|
||||
|
||||
Quote:
There's a bit in Cryptonomicon about this. There was a server for the crypto company. Someone needed a monitor and took the server's since it wasn't being used. Another person realized that a machine with a keyboard and mouse and no monitor was a bad idea so took those. |
#34
|
||||
|
||||
Quote:
|
|
||||
#35
|
||||
|
||||
Please accept my apology. I was drunk on pre-thanksgiving gravy. Where I meant to go with that was to build a 1090ES and 978UAT receiver to feed adsbexchange.com. And thinking about that project got me back to thinking about the Stratux. And down the wrong road I went!
|
#36
|
||||
|
||||
In a striking bit of irony, I completed my Seeburg 1000 restoration project today while simultaneously turning my little Raspberry Pi into a Seeburg 1000 emulator.
Here is the finished real machine: Seeburg Background Music System (I'll post a thread about this some day, since it was one heck of a project). The original case of the BMC1 is an ugly thing, so I built a custom enclosure from wenge, machining custom brass corners and creating a custom nameplate. The machine is not that big, but it was built like a tank; it weighs about 45 pounds. In addition to building the case, I spent a month or so refurbishing the mechanism, renewing all of the idlers, lubricating everything, removing countless dents from where the capstan was left resting on an idler and so on. It plays beautifully--it will play all 25 records top-and-bottom, then it restacks them and starts all over. It really is an amazing machine to watch. (those are special 9" records that run at 16 2/3 rpm and hold 20 songs per side). Then, on a whim, I whipped out my Raspberry Pi, loaded a few thousand Seeburg background music songs on it in MP3 format, and installed mpd, mpc, and ncmppcpp. After a few tweaks to get it to automatically launch on startup and play one gigantic playlist made of all of the songs, it is now a perfect copy of the machine, in a tiny box. That took about an hour. So, I can either run the audio plug of my amplifier to the real Seeburg 1000 or the fake Seeburg 1000. The fake one sounds better since the files were likely cleaned up and tweaked. ...but the real one is light years ahead in cool factor. |
#37
|
|||
|
|||
On Sunday I did the first test of the Steer-By-Wire system I want to make, ingredients: one Arduino Nano, one DC motor driver, two magnetic encoders and a geared motor. I 3D printed parts to make a dial for one encoder and an adapter to mount the other on the motor output shaft. The code is simple but it was the first time I used magnetic encoders and PID motor position control, it took a few hours of head scratching but I got it working, although the motor and gearbox are crappy and without enough reduction so it doesn't move very accurately.
The main issue is that I'm using the sensor in analog mode and by default it has a large deadband between the minimum and maximum values (i.e. when it moves past one full turn), so I need to connect it by I2C to the Arduino to both access the raw numerical output and change the value of the deadband; however this particular sensor has a single, fixed I2C address so an Arduino can only connect to one at a time, which is fine because the idea from the start was to have one control module and two separate actuator controllers mounted remotely (the idea is to steer the rudder mounted motors of a catamaran boat). After that is working the real fun part begins when I'll try to do a thrust vectoring system so that the boat can move in any direction, kind of like a helicopter, except not up or down obviously (although down is always an option for a boat, I guess). Back & reverse and the normal steering is clearly a doddle, but with two independent, pivoting motors it's possible, for example, to make the left motor push in the 9 o'clock direction, which would make the rear move to the left and rotate the boat clockwise, but if the right motor pushes in the 12 o'clock direction with the right amount of thrust it would cancel the rotation and the resulting motion would be sideways straight to the left. Another somewhat related thing I did last week is I finally got around doing tin electroplating of a PCB, I use a CNC machine to engrave circuit boards so I thought it would make sense to tin blank PCBs before engraving them. After a little research I found out how to prepare the chemicals and do the electroplating, only two ingredients are needed, Hydrochloric Acid, Tin metal and water... three! three ingredients are needed, Hydrochloric Acid, Tin, water and of course a regulated electric power supply... FOUR ingredients are needed. I'll go out and start again... The process if very simple, dissolve 12 grams of Tin in 50cc of acid, mix the solution into one litre of water and that's it. The electroplating is also very easy, connect the PCB to the negative conductor, positive goes to a Tin sheet electrode, put them both into the solution and set the power supply to 3 Volts and 10A per square meter of copper surface area (although I fiddled with the current) and in about 30 minutes the plating is done. |
#38
|
||||
|
||||
Quote:
|
#39
|
||||
|
||||
Quote:
...I'm more of an old-school kind of guy who worked in a traditional PCB shop using optical methods as a teenager (I'm sure I lost 5 years of my life breathing in the air there). I needed to create a custom nameplate for my Seeburg project, but don't have any CNC gear at my disposal, and I figured my regular nameplate service would balk at reproducing the Seeburg logo. So I tried one of those "it can't possibly work" ideas from a YouTube video: I printed my design in mirrored and negative format onto a shiny page from one of my wife's Vogue magazines using a laser printer. I then placed the printed magazine page on my brass plate and passed the sandwich through a laminator several times. A few minutes under running water removed the magazine page, leaving a perfect mask for etching--20 minutes in acid did the job, followed by painting and then sanding the high parts. Wow, that worked like a charm. It seemed too silly to actually work. Back to Raspberry Pi... ...I'm going to continue with my baby steps. Right now I think RPI is a good motiviator for me to get started using Python. As a software engineer at work, I have noticed that many of the cool kids are doing their work in Python, while us greybeards are using Java. My shiny new Pi is a perfect place to start dipping my toes into Python. |
|
|||
#40
|
|||
|
|||
Quote:
Besides, DIY is more fun. ![]() Quote:
Before I was using a photosensitive film with printed masks to make PCBs, it works very well but printing the masks was always a bit fiddly, either the ink was not opaque enough or it would crack and cracks would end up as open circuits in the PCB traces the past. I've found that for one of's or prototyping making them with the CNC machine is much less of a hassle since there is practically no preparation work required and the "etching", drilling and board cutting operations can be wrapped up into one. Either way beats the heck out of how I used to make PCB way back then, literally drawing the circuit on the copper with a permanent marker and a ruler. |
#41
|
||||
|
||||
I've made a bunch of PCBs in the past using photosensitive PCBs, ferric chloride, etc. And even occasionally with hand-drawn masks. But I have to admit: I've switched entirely to online PCB manufacturing. It's cheaper than doing it yourself and produces vastly superior results. You can also get 4-layer boards and other fancy stuff if necessary. I've been very happy with both JCLPCB and OSHPark but there are others.
In principle, they take longer than making them yourselves, but I've found that time saving in having zero defects, not to mention the simpler routing when you get two layers for free and very fine detail, more than make up for the wait. |
#42
|
||||
|
||||
[tangent]
When I was in the business as a kid in 1984, everything was done with red and blue cellophane tape. A guy who had lots of brain power for arranging things did the whole layout at full scale on graph paper with red and blue pencils to draw the traces. This was typically for boards with a few dozen 7400-series chips and perhaps some larger ones. His hand-drawn board layout was passed to the boss's wife and another lady who used super narrow transparent tape, like pinstriping tape, to reproduce the red and blue pencil lines on a thick sheet of clear plastic (Mylar?). They used little stickers for all of the chip pads, thru-holes, and other things. This was then sent to a print shop to create 1:1 positives on film, using a red or a blue filter to selectively choose which set of lines to hide and which to show. The result was two separate film positives--one for the top and the other for the bottom of the board. Those were used in a more industrial version of the ferric chloride process many of us are familiar with. Instead of creating a positive mask, our process used the film positives to create a negative mask. We then had a plating line that applied solder plating to the exposed areas. We then used solvent to remove the mask, followed by acid to remove the copper, leaving the solder-plated areas. A quick pass through an oven would flow-out the solder, making the board look shiny. Someone would then drill all of the holes in one master board using a fancy machine that had a microscope with crosshairs to line up each hole, with a pedal-controlled drill coming up from beneath the table. This master board was then passed to a worker on a quad-drill: she had 4 stacks of boards clamped down to the board and used a pantograph with a pin on the control handle to guide 4 drills as she poked the pin in each hole of the master. The board was then trimmed using a sheet metal shear followed by a router guided by a master template (this is what I did mostly as the 17-year-old kid in the shop). Next step was to silk screen the green ink over everything, leaving the holes uncovered, then the white ink with all of the component names and such. It's amazing to consider just how many of these steps would be automated today, even ignoring multi-layer PCBs. I imagine the plating line is probably the least changed of the many steps. [/tangent] |
#43
|
||||
|
||||
Come to think of it, those hand-done transparencies were pretty darned huge.
I think they were done at a scale of 2:1 or 4:1, with the print shop scaling it down for the actual working images. Additional detail... While taping the artwork up they used separate layers of plastic for the pads as well as for the lettering--the part numbers, pin numbers, company name, and other stuff you see on a PCB. That way, they could use the image of the pads to produce the silkscreen mask for the green ink that covers everything but the pads. Likewise, they could use the artwork with the lettering alone to produce the silkscreen mask for the white lettering. |
#44
|
|||
|
|||
Quote:
![]() I got around publishing the timelapse camera panner I did a couple years ago, 3D printing files, Arduino code, PCB designs and assembly instructions; it needs some more information (like the source for the worm gears) but you may check it here. |
Reply |
Thread Tools | |
Display Modes | |
|
|