Pushed-In Chair Contraption
by tmgarv26 in Circuits > Raspberry Pi
49 Views, 0 Favorites, 0 Comments
Pushed-In Chair Contraption
Git Repo Link:
https://github.com/rpsche26/fidgetLabGit
Supplies
List of Materials
- Raspberry Pi 3B
- MCP3008 Digital to Analog Converter
- 10K Resistor
- 28BYJ-48 4-Phase geared stepper motor & motor controller
- FSR (Force-sensitive resistor)
- Smart light bulb (I used one that pairs with the Magic Home Pro app)
- Soldering equipment
- Breadboard (optional- for testing/prototyping)
- Lamp (for using the light bulb)
- (Optional) raspberry pi charger (converts from 120V to 5V for pi usage)
- Projector
Circuit Assembly
The image above is the full, completed circuit diagram. The following steps will go through step-by-step how to assemble.
Wire Motor
1) Plug 28BYJ-48 motor cable into MCU10 5-pin motor socket
2) MCU10 VCC → Raspberry Pi 5V (Pin 2 or 4)
3) MCU10 GND → Raspberry Pi GND (Pin 6)
4) MCU10 IN1 → GPIO17 (Pin 11)
5) MCU10 IN2 → GPIO18 (Pin 12)
6) MCU10 IN3 → GPIO27 (Pin 13)
7) MCU10 IN4 → GPIO22 (Pin 15)
8) Double-check motor connector is fully seated and not loose
9) Ensure Pi GND and MCU10 GND are connected or motor will not move
10) Power Pi via USB, then run test script- located at fidgetLabGit/fidgetlab/ChairPusherInner/Motor Test Code.py
Setup Smart Bulb
1) Plug smart bulb into lamp socket and turn lamp power ON
2) Connect Raspberry Pi and bulb to the same WiFi network
3) Find bulb IP address (router device list or flux_led scan tool)
4) Set BULB_IP in your Python script to the bulb’s IP address
5) Install library on Pi: sudo apt install python3-flux-led (or pip install flux_led)
6) Verify control by running test script: Located at fidgetLabGit/fidgetlab/ChairPusherInner/Bulb Test Code.py
7) If bulb does not respond, confirm correct IP and WiFi compatibility (2.4GHz required)
Wire FSR
1) Connect MCP3008 VDD → Raspberry Pi 3.3V (Pin 1)
2) Connect MCP3008 VREF → Raspberry Pi 3.3V (Pin 1)
3) Connect MCP3008 AGND → Raspberry Pi GND (Pin 6)
4) Connect MCP3008 DGND → Raspberry Pi GND (Pin 6)
5) Connect MCP3008 CLK → GPIO11 (Pin 23)
6) Connect MCP3008 DOUT → GPIO9 (Pin 21)
7) Connect MCP3008 DIN → GPIO10 (Pin 19)
8) Connect MCP3008 CS/SHDN → GPIO8 (Pin 24)
9) Connect one FSR leg → Raspberry Pi 5V (Pin 2 or 4)
10) Connect other FSR leg → breadboard row (signal junction)
11) Connect 10kΩ resistor from that same junction → GND (Pin 6)
12) Connect MCP3008 CH0 → same junction point (FSR + resistor meeting node)
13) Run the test code: fidgetLabGit/fidgetlab/ChairPusherInner/FSR Test Code.py
3D Model
3D Model setup:
- None! I didn't use any special settings or anything, just print as is and attach!
3d Model link (stl, 3mf, bgcode): https://drive.google.com/drive/folders/16GTgqcz8m8_94rp7AIsI7TcaB36z7ebO?usp=sharing
Soldering
The soldering process isn't too difficult. We aren't going to solder the motor controller to the raspberry pi because it doesn't use our breadboard at all, so we only need to solder the FSR components & the MCP3008.
- Get your soldering board and solder the MCP3008 to the board directly
- Follow the circuit diagram and instructions in part 4, except instead of using a breadboard, use the soldering board. All paths remain exactly the same.
Testing:
The motor, motor controller, and smart bulb are untouched during the soldering process, so if those were working on the breadboard, they shouldn't require testing.
After soldering the MCP3008 & FSR, run the FSR test code to see if it works:
fidgetLabGit/fidgetLabGit/fidgetlab/ChairPusherInner/Test Code/FSRTest.py
If it doesn't, I recommend using a voltage tester to see if there's some connections that aren't complete, or some connections that aren't supposed to be touching that are. Also, I recommend continuously checking this during the soldering process.
System Assembly
To assemble the system, simply just attach the 3D-printed model to the motor, and then assemble the system on top of the projector, with the FSR & wires going down to the edge of the table, where the FSR will be taped to the edge of the table. That's it!
References
For this project, I consulted the spec sheets and pinouts for the following materials:
- Raspberry Pi 3B
- MCP3008 Digital to Analog Converter
- 28BYJ-48 4-Phase geared stepper motor & motor controller
- FSR (Force-sensitive resistor)
- Smart light bulb
For the project we also took inspiration from Jakob Grosse-ophoff, who is a kinetic sculptor who creates exhibits where robots/automations mimick human actions.