Project in progress
Mechatronic Accessibility Cabinet

Mechatronic Accessibility Cabinet © CC BY-NC

A modular mechatronic solution, for the handicapped and/or physically impaired, to easily access cabinet items.

  • 1,349 views
  • 0 comments
  • 5 respects

Components and supplies

Nema%2017 2
OpenBuilds NEMA 17 Stepper Motor
×1
Ardgen 101
Arduino 101 & Genuino 101
×1
8mm metric acme lead screw wunf4sdopp
OpenBuilds 8mm Metric Acme Lead Screw
×1
2 bmpjohuotl
OpenBuilds 5mm * 8mm Flexible Coupling
×1
Adjustable Voltage Regulator 12 vdc reduce to ....
×1
micro switch module , bigtree-tech.com
×2
bearing linear, 8mm
×1
8 mm linear rod
×2

Necessary tools and machines

3drag
3D Printer (generic)
09507 01
Soldering iron (generic)

About this project

I

I started this idea with a vision of creating an easily accessible cabinet for those in wheel chairs or with other physical disabilities.

I came up with the idea to take a linear system and have it deliver straight through the bottom of the cabinet. My original idea was to incorporate a bluetooth control where the end user could simply choose which cabinet/item and press a button in their app to lower the items.

My goals were to create a modular system that can be build outside of the cabinet and modified to any size needed, and then installed into the cabinet.

My hope is that this system being open source will spur more development and make accessible systems available to anyone at low costs.

I have designed all the parts for this project that were 3d printed.

Next steps....

Design and print the platform/shelf that mounts to the gantry plate. This is the shelf that cabinet items will be lowered to end user on.

Design new case for electronics and mount

Look at bluetooth code and app instead of the momentary push buttons that I am using right now for operation of the unit.

Code

Arduino Sketch Arduino
this was my first run at the code. Do to time ending on the contest I was unable debug.
// defines pins numbers
const int stepPin = 3; 
const int dirPin = 4; 
const int upperLimit = 9;
const int lowerLimit = 8;
const int openSwitch = 10;
const int closeSwitch = 11;

int upperStop = 0;
int lowerStop = 0;
int switchOpen = 0;
int switchClose = 0;

void setup() {
  // Sets the two pins as Outputs
  pinMode(stepPin,OUTPUT); 
  pinMode(dirPin,OUTPUT);
  pinMode(lowerLimit, INPUT);
  pinMode(upperLimit, INPUT);
  pinMode(openSwitch, INPUT);
  pinMode(closeSwitch, INPUT);
  Serial.begin (9600);
}
void loop() {
  upperStop = digitalRead(upperLimit);
  lowerStop = digitalRead(lowerLimit);
  switchOpen = digitalRead(openSwitch);
  switchClose = digitalRead (closeSwitch);

//=========================================
if (switchOpen == HIGH)
{
  Serial.println ("open");
  
}

if (switchClose == HIGH)
{
  Serial.println ("close");
}


  
//---------------------Switch is open-----------------------  
 if (upperStop == HIGH)
{
  Serial.println ("1");
}
//---------------------- Switch is Made---------------------
if (upperStop == LOW)
{
  Serial.println ("0");
}
//-------------------------Open ---------------------------------

  if (switchOpen == HIGH);
  {
    while (lowerStop == HIGH)
    {
 //--------------------
     lowerStop = digitalRead(lowerLimit);
      digitalWrite(dirPin,HIGH); // Motor Direction
      for(int x = 0; x < 5; x++) {
        digitalWrite(stepPin,HIGH); 
        delayMicroseconds(500); 
        digitalWrite(stepPin,LOW); 
        delayMicroseconds(500); 
  }
 //--------------------- 
    }
  }
  
  
//---------------------- Close------------------------------  
  
if (switchClose == HIGH)
 {
  while (upperStop == HIGH)
  {
  //---------------------------------------------------------
 upperStop = digitalRead(upperLimit);
 digitalWrite(dirPin,LOW); //Motor direction
        for(int x = 0; x < 5; x++) {
         digitalWrite(stepPin,HIGH);
         delayMicroseconds(500);
         digitalWrite(stepPin,LOW);
         delayMicroseconds(500);
  }
  }
 //------------------------------------------------------------
}
}

Custom parts and enclosures

8mm rod holder
This is the foot/holder for the 8mm rods
Gantry Platform
this is the base plate that the linear bearings mount to.
This is the main unit that moves
Nema 17 Motor Mount
this is the motor mount designed for nema 17
bearing block
this is a space block for the pillow block bearings on the acme rod
limit switch mount
this is a mount for the limit switch modules that mounts to the 8mm rods

Schematics

basic fritzing
this is a basic fritzing, I ran out of time for the deadline to create a full pcb schematic so I created this very basic one. I will be making actual custom pcb files in the future
fritzingsketch_SUwBOKtrlh.fzz

Comments

Similar projects you might like

Mix-A-Bot Bar Kit

Project tutorial by Team Mix-A-Bot

  • 9,231 views
  • 0 comments
  • 22 respects

Wolf: Search and Rescue Multi-Terrain Robot

Project tutorial by Husky Mai

  • 7,429 views
  • 3 comments
  • 46 respects

Arduino101 / tinyTILE BLE: Match-Making Sunglasses

Project tutorial by Kitty Yeung

  • 11,336 views
  • 2 comments
  • 35 respects

Developing a Low-Cost Microcentrifuge Using E-Waste

Project in progress by Kemal Ficici

  • 4,943 views
  • 7 comments
  • 14 respects

Make a BBot Robot Step by Step

Project tutorial by Team makersecrets

  • 854 views
  • 0 comments
  • 5 respects

Otto DIY+ Arduino Bluetooth Robot Easy to 3D Print

Project tutorial by Team Otto builders

  • 48,198 views
  • 117 comments
  • 162 respects
Add projectSign up / Login