The Passion Wheel is designed to help baby Boomers and retirees in the Pittsburgh community to improve their social engagement while supporting local non-profit organizations with knowledgable volunteers to enhance their services.
Passion Wheel is a transportation service ecosystem for senior citizens in Pittsburgh. It helps retirees to move around the city freely to contribute themselves to volunteer work. As retirees move around the city more as they want, non-profit agencies in the city of Pittsburgh receive the benefit of having reliable, knowledgeable, and caring volunteers for their services.
The city of Pittsburgh’s combination of affordability and amenities make it a good place to retire, but yet offer affordable and convenient public transportations for retirees. Senior citizens still want to be active volunteers and share their wisdom with people who need them. However, they may not have family members, caregivers, friends, or neighbors who can transport them although they still want to be a part of the community and want to contribute themselves in a meaningful way. Passion Wheel allows senior citizens to travel from their home to the place they want to go for volunteering. Pittsburgh local non-profit agencies would befit from having experienced and caring volunteers.
The first precedent is “Uber” giving back. I have long envisioned a transportation service offer free or a very minimal charge or similar to the bus service by volunteers or Uber and Lyft drivers. Uber or Lyft driver offer service for affordable prices with subsidized by regular customers or volunteer drivers provide the service for free to retirees. The service is app-based just like the current ride services. I can design the ecosystem with the current assets instead of building the entire ecosystem from scratch. I have learned from working with volunteers for many years, that people are extremely generous and especially like to give their time on their own terms, for a limited amount of time, when it is convenient for them – and most of all when it is made easy for them.
The second precedent is Match Box Car Race Track. This project checked the speed of the drive. This student IoT project to simulate a drag-strip type track that records times and uploads them to show who the winner was and what their race time was. Instead of tracking the speed, I would collect the number of volunteers who supported “Passion Wheels” and wanted to use the data to display for public awareness.
The third precedent is a medical panic button for senior citizens. Medical alert help buttons can be used in conjunction with or in place of traditional medical alarm personal devices. Use for inside and outside the house. As technology is another obstacle for senior citizens, I wanted to make a simplified call button that would connect to the call center to arrange transportation for senior citizens.
I tried to recall all the training that I learned in the 1st semester to define the concept of the project. I wanted to amalgamate Human-centered design, human-computer detraction, visual process, IoT, industrial design practice, and my personal experience into the project. After a couple of discussions with professor Daragh and TA Andrew, I was able to narrow down the scope of the project considering the limited time frame. Later, I designed the logic flow of the system, wrote basic coding, wired breadboards, and order materials that I need to build the Passion Wheel Ecosystem. My biggest challenge was to execute coding based on the design concept and intention. Thanks to Andrew and Arthur’s coding skills, I was able to finish the project at the final presentation.
First, retirees click a smart button at home to call for a ride.
Second, a call center receives a signal from retirees' and arrange the transportation.
Third, the call center arranges rides for retirees and sends a signal back to the retirees' house.
Fourth, the retiree receives a signal from a call center and get ready.
Fifth, a rider take the retiree to the place where a person wants to volunteer.
Sixth, the call center collects the number of services they provide to the retiree communities and evoke more volunteer with data display.
On the other hand, I continued my user interview with senior citizens and rationalized my idea of usability. After the interview, I confirmed that my idea was feasible to move forward.
I functioned as mechanical, software, hardware engineers while working as an industrial designer to create an entire ecosystem. Combining hardware and software were still challenging because both parts should begin delineating which functionalities will fall to which disciplines. Especially figuring out software component was the biggest challenge, but thanks to Arthur Cen, both argons became interact each other. Once the software part got solved, I began to develop the hardware parts.
//--------------------------------------------------------------------------//
// This code is for Whitecat with button/LED Lights(Red and white) //
//--------------------------------------------------------------------------//
// @see https://diotlabs.daraghbyrne.me/docs/getting-inputs/buttons/
const int LEDwhite = D5;
const int BUTTON = D6;
const int LEDred = D2;
// This value will store the last time we published an event
long lastPublishedAt = 0;
// this is the time delay before we should publish a new event
// from this device
int publishAfter = 10000;
int presses = 0;
unsigned long redLedExpire = 10000; //red led will turn of in 10 second
unsigned long lastTimeRedOn = 0;
// whether or not the button was depressed on the previous tick
bool wasPressed = false;
//setup a counter for clicks
bool reach10 = false;
bool reach20 = false;
bool reach30 = false;
// //button intervals
// unsigned long buttonInterval = 500;
// unsigned long lastBtnPress = 0;
void setup()
{
Serial.begin(9600);
pinMode(BUTTON, INPUT_PULLUP);
pinMode(LEDwhite, OUTPUT);
pinMode(LEDred, OUTPUT);
Particle.variable("presses", presses);
}
void loop()
{
if (lastTimeRedOn > 0 && lastTimeRedOn + redLedExpire < millis()) {
digitalWrite(LEDred, LOW);
lastTimeRedOn = 0;
}
// the below is the button and white LED reaction...
int buttonState = digitalRead(BUTTON);
if (buttonState == LOW) {
digitalWrite(LEDwhite, HIGH);
if (lastTimeRedOn == 0) {
lastTimeRedOn = millis();
digitalWrite(LEDred, HIGH);
}
if (!wasPressed) {
handleButtonPress();
}
wasPressed = true;
} else {
digitalWrite(LEDwhite, LOW);
wasPressed = false;
}
if (presses >= 10 && presses < 20 && !reach10) {
//publish a event
Particle.publish("diot/2019/hannah/reach10/"+System.deviceID());
reach10 = true;
} else if (presses >= 20 && presses < 30 && !reach20) {
//publish the second event
Particle.publish("diot/2019/hannah/reach20/"+System.deviceID());
reach20 = true;
} else if (presses >= 30 && presses < 40 && !reach30) {
//publish the third event
Particle.publish("diot/2019/hannah/reach30/"+System.deviceID());
reach30 = true;
}
if (reach10 && reach20 && reach30 && presses > 30) {
presses = 0;
reach10 = false;
reach20 = false;
reach30 = false;
Particle.publish("diot/2019/hannah/resetMotor/"+System.deviceID());
}
}
void handleButtonPress() {
Serial.println("increment press");
presses = presses + 1;
}
Click to Expand
//---------------------------------------------------//
// This code is for Blackcat with Motor_Fan //
//---------------------------------------------------//
// Define a pin that we'll place the photo cell on
// Remember to add a 10K Ohm pull-down resistor too.
int motorPin = D3;
bool shouldActivate = false;
String WHITE_CAT = "e00fce68451e0478b4367278";
void setup() {
Particle.function( "activateMotor", activateMotor );
Particle.subscribe("diot/2019/hannah/reach10/" + WHITE_CAT, setLevelLow);
Particle.subscribe("diot/2019/hannah/reach20/" + WHITE_CAT, setLevelMid);
Particle.subscribe("diot/2019/hannah/reach30/" + WHITE_CAT, setLevelHigh);
Particle.subscribe("diot/2019/hannah/resetMotor/" + WHITE_CAT, resetMotor);
pinMode(motorPin, OUTPUT);
analogWrite(motorPin, 0);
}
void loop() {
}
void setMotorLevel(int level){
analogWrite(motorPin, level);
}
void setLevelLow(const char *event, const char *data) {
activateMotor("low");
}
void setLevelMid(const char *event, const char *data) {
activateMotor("mid");
}
void setLevelHigh(const char *event, const char *data) {
activateMotor("high");
}
void resetMotor(const char *event, const char *data) {
activateMotor("");
}
int activateMotor( String command ){
if (command == "high") {
setMotorLevel(255);
} else if (command == "mid") {
setMotorLevel(200);
} else if (command == "low") {
setMotorLevel(150);
} else {
setMotorLevel(0);
}
return 1;
}
Click to Expand
Also to execute this idea into a real, I have to consider checking the background of volunteer or build credits with the retiree community. To do that I would like to build a partnership with "Go Go Grandparents" who is in the market field for a while and has built a great reputation in the industry.
Professor Kristine also mentioned the "Uber" Forward, the service that helps cancer patients to visit doctor's appointment
After more research about all valuable feedback, I would iterate this project to the next level.
A hands-on introductory course exploring the Internet of Things and connected product experiences.
The Passion Wheel is designed to help baby Boomers and retirees in the Pittsburgh community to improve their social engagement while supporting local non-profit organizations with knowledgable volunteers to enhance their services.
December 14th, 2019