For My Semester Project, I will be doing my second idea, of the sensored cane. I will be using pvc pipe and insulation tape to create a cane that will have intelligence on the inside, powered by a battery and controlled by an arduino uno that is connected to an ultrasonic sensor and a buzzer and vibration motor, that signal a person when they are about to run into a wall or another object. I chose to do this project because it can help a lot of people, including the elderly and blind people, who use canes, but with this can have a better warning of when there is an object near them. If this project is successful, it will, within a specified distance near the ultrasonic sensor, a buzzer will go off for a sort duration of time, and when there is nothing in front of the sensor, and a vibration motor will also go off at the same time and for the same time as the buzzer. This intelligence will all be stored on a cane to have the intelligence and the cane together. I am using a tutorial website called makerpro to help guide me in the process of building my project. This tutorial can be found at the link https://maker.pro/arduino/projects/arduino-smart-cane-for-the-blind. Below is my material list spreadsheet for this project.
(*Throughout these steps I troubleshooted issues, and I also modified my code and tested my code after every step to make sure with every piece I soldered or added, the board and code still worked.)
(*can look at workflow and the tutorial website for more specifics on my process and these steps)
Practice Building:
I began creating my project by gathering my materials that I had all ordered from Sparkfun, or had received from the Fablab. Before creating my project, soldering, and making my project permanent and harder to troubleshoot, I decided to create a prototype that runs my code on an arduino connected to a breadboard rather than the protoboard I would use later. I needed to make sure my code would work with the arduino and other project materials before soldering and making the parts more permanent. I modeled the code I would use in this project after the tutorial website I was using for this project. I had to familiarize myself with the code, understanding the if then statements for the distances of when the vibration motor and buzzer would go off, but also the delay times, all so I could alter the code after I originally tested it to make sure it worked. I used male to male jumper wires to connect other materials and the breadboard. They were connecting the arduino board, ground pins and power pins, to the breadboard in front of the ultrasonic sensor which was resting in the breadboard for right now. I also used alligator clips to attach the jumper wires from the arduino to the buzzer and vibration motor. I originally tried to use tape to connect the wires to the buzzer and vibration motor, but this was inconsistent in working, and did not give a very good or consistant connection, so I switched to using the alligator clips instead. Instead of using the battery right away, to test the board, I used a usb connector and plugged it into the computer and the arduino. It originally did not work because my port was wrong on the computer, but when I changed it the board and code began working. I changed the delay time to 100 rather than 500 in order to make the reaction time faster to make people aware faster if they are about to run into something. This made the vibration motor go off faster and buzzer. I also changed the distance of my if then statement of when the buzzer and vibration motor should start being activated to 90 rather than 70 so it could have more room or distance for the code to start working on the buzzer, giving people more warning. Having this start to work consistently and all parts worked at one point or another, I decided to start creating my final or more permanent project and being soldering.
Building Final Project:
To start building my project, I had to cut and strip the wires I needed to solder to my protoboard and that would attach to my vibration motor and arduino board. I used black for ground, red for power, and yellow for miscellaneous colors used in my tutorial website. I made the wires longer so I had more room to work with them, but also so I had room to move them when putting them in or on my cane. I started by soldering my ultrasonic sensor in the same relative location as it was on the breadboard when I practiced building my board. The wires were all placed very close to the ultrasonic sensor, so I spaced them in the same relative locations as on the breadboard and in the tutorial, the soldered them. I made sure that none of the wires were touching and none of the solder was touching, so there would be no problems in that regard in my project. I then tested the arduino connected to the protoboard connected to the computer to test my code. The vibration motor did not work but the buzzer worked immediately and very loudly. I tried to get the vibration motor working again by stripping its wire for more room to put the alligator clips on but it did not work. When I went to retest my board, the buzzer and vibration motor were not working. The issue I realized was that my wires of my protoboard were loose and needed to be resoldered, so they were secure and stayed in place without wiggling. One wire was already secure, but I resoldered the rest of my wires, making them more secure and unable to move. I resoldered one of the wires a third time because it was still a little wiggly, and I wanted to prevent that being my main issue in getting my project to work. I tested my arduino connected to the computer again, and the buzzer worked continuously very loudly and the vibration motor still did not work. Since the buzzer did not stop setting the alarm off, I decided to change the distance for my buzzer to 70 from 90, but ultimately moved it down to 30 to make the buzzing alarm go off when the sensor is closer to object, and not a nonstop loud buzzer. I used a coin battery to test the vibration motor to make sure the vibration motor did not die, and it still buzzed, so this was a setback on trying to get my project to work as a whole. I decided to solder my vibration motor and buzzer to wires because the connection between the jumper and alligator clips could have been the problem with the vibration motor, so I decided to solder it. I used female to male jumper wires rather than soldering to the buzzer because this made a more secure connection to the buzzer. I just used wires and solder on the vibration motor. I also resoldered the one loose wire on my protoboard one last time because it was still a little loose on one side, and I wanted to get rid of this potential problem. Now, I had to figure out the adaptor in my project. I had two options; one which was simple and connected to the battery and went into the jack of the arduino. The other option was to have a usb cord, that was stripped, and had wires coming out of it. I used those wires, a black and red one, to solder a slide switch to it. The middle prong of the slide switch went to the red wire connected to the usb cord, and the first prong connected to the adaptor that connected to the battery. The black wire on the adaptor of the battery was soldered to the black wire of the usb cord. This way the slide switch and battery could all be connected to the arduino board through the usb cord. I tested this adaptor on my board, and it did not work, but this problem could have been largely the fact that when I tested my battery with a multimeter, now, it was not 9v, so I found another battery and tested the voltage with a multimeter and it was above 9v. When I tested my project with the new battery and the adapter with the usb port and slide switch, the vibration motor did not work, but when I used the simple adaptor both the vibration motor and buzzer worked. I also made my cane, connecting the long piece and the short piece with a pvc elbow.
(*this overall plan worked better with the progression of my project and dealt with setbacks during the building process rather than my original plan)
*****Pictures of building and of project are at the end and folder with files
***see daily portfolio page on portfolio for day to day what I did for this project
There were many difference between my project and the tutorial I used. One of the main differences was the vibration motor I used. The tutorial used a vibration motor of an old cell phone and I used a coin vibration motor. I attempted to find another vibration motor around the fablab that was more similar to the cell phone vibration motor, but when I used and tested this with my prototype, it did not work, while the coin vibration motor did, so I decided to use the coin vibration motor. By using the coin vibration motor, I also, did not have to solder the vibration motor to a protoboard because the back of the coin vibration motor is sticky, and I can use that rather than soldering it, creating unnecessary steps for me in my project. I also, to start my project, created a prototype using a breadboard, which is the final project design of my tutorial. I wanted to make my project more permanent than a breadboard, so I soldered the wires to a protoboard to complete my project. They never created a practice or prototype, they just went straight into building. They also used jumper wires to complete their project, but I used wires that could be soldered and striped, and also used some female to male wires to connect to my buzzer and arduino board. I also didn’t use the materials, of a dc male power jack. I also used a three prong slide switch instead of a toggle switch, recommended in the materials for my project in the tutorial. The adaptors I used were different as well. With the two different adaptors, the one that just connects to the battery, connects to the power jack and doesn’t have a slide switch. The other adaptor I could use uses a usb cord that has been stripped, and has been soldered to the connector of the battery and slide switch, and connects to the arduino through the usb port, rather than the tutorial that I did not understand where the wires were supposed to connect into the arduino board because the wires were just loose. I also adjusted from the original code the tutorial gave me, by adjusting the delay time to 100 rather than 500, and also, after testing various lengths, I used 30 as the distance of when the vibration motor and buzzer should start going off, rather than the tutorial’s 70 distance, which I thought was too far away. Another difference was my placement of the box I used to store my intelligence. I decided to put my box at the bottom of the cane, to look more natural as a part of the cane, rather than in the middle, like the tutorial. I also placed the buzzer inside the box, due to how loud the buzzer is. I also added a QR code to my project to be able to access my portfolio and so others can see how I built my cane, which the tutorial does not have.
A lot of the setbacks related to my project dealt with one piece not working, such as most commonly, the vibration motor and the buzzer not working consistently at each step of my project. In the beginning of building my project, the setback was due to using tape as a connector between jumper wires and the buzzer and the vibration motor. Using the tape created a poor connection, making the buzzer and vibration motor working only ½ of the time. By using alligator clips, I was able to create a more consistent connection, allowing me to move on and actually build my project on a protoboard instead of a breadboard. The next setback was when connecting my arduino to the computer, my code would not download, and this was due to the port being wrong on my code, which was just a minor setback, but I still had to find the issue to move on and make sure my code worked. Another setback was when I began soldering to the protoboard, the wires ended up being wiggly, and I needed to fix this in order to have my soldering be effective and my vibration motor, ultrasonic sensor, and buzzer work. Some wires took several times to resolder before they were stable and not going to move out of place. Another setback was during and throughout my building process the vibration motor did not work. It did not work when I originally soldered the wires because of wiggly wires, but the buzzer didn’t work either with the wiggly wires, and it also still wasn’t working with the adaptor with the slide switch, causing problems getting my final project to work completely with a slide switch, but it did work with my other adaptor, that went into the jack of the arduino. Helping the issue was soldering wires to the motor rather than using the alligator clips, as well. Another issue is the buzzer is very loud, but when covered up, this solved that issue. Another setback that was a fast solution to was my battery, the original battery I had, was not 9v when I tested it with a multimeter, after I tested it with my project and nothing on my project worked. I then found another battery, that when I tested it with the multimeter had voltage of 9v, which allowed my project to work. Another setback when creating my adaptor with a slide switch was, I soldered the red wire that attaches to the adaptor or connecting piece to the battery, to the last prong instead of the first prong of the slide switch which was an easily fixable problem. After, I tested my adaptor again with the slide switch, I actually had to change or resolder the wire back to the original prong of the slide switch because it was not working at all the way I had originally modified it, and I think the root of this issue was the battery not working when I originally tested it. My other potential adaptor worked, but is beeping or setting off the buzzer without stopping at some times, but this was a problem due to what it was near, triggering the sensor. Some problems created at the end of putting my project together were the wire connecting to the vibration motor or the solder connecting the wire to the vibration motor broke, making the vibration motor not consistently working, when I had to use tape to make a quick fix, but later I will be able to help this issue and fix my vibration motor making it work again. Also, after I finally finished making my project and it worked successfully with the buzzer, the soldering or wire connecting the slide switch and adaptor broke, which is something that I quick fixed with tape, but later can fix with soldering to make it work again, a fast, solvable issue. A lot of my setbacks were short fixes, but some like the vibration motor and buzzer were more recurring issues that had to be fixed, and were some of my major setbacks I had to deal with to have my project work.
When I created this project, it gave me a chance to learn and understand more how an ultrasonic sensor works, or how it can be used. I also learned, especially with sensors, how if then statements in codes can be helpful, and also the basics of how they work and how they are used. I used an if then statement for how far away the buzzer would start beeping, which depended on how far away an object was from the ultrasonic sensor, and so it would not be going off constantly. This piece of coding information will be helpful moving forward in future projects, especially projects involving sensors. I also learned that even the slightest bit of solder or wire touching, can cause a problem, so I need to very cautious and do soldering very properly or correctly.
In completing a large project by myself, I learned the importance in troubleshooting after every step or testing the project and breaking it up into pieces, so if there is an issue, it is easier to find. This can help long term, a person complete their project, rather than going back trying to find the issue, undoing even more work than necessary. I also learned that it is smart to create an original plan for the project, not necessarily with hard due dates, but just an order of what needs to be done and what order I’m planning to do it in. Even though I did not follow my original plan, it allowed me to know what needed to be done, so I knew if I could take a little more time troubleshooting an issue, or if I needed to move on to the next step really soon, and I also kept track of what materials I needed for my project and what steps needed to be done to create my project. Also I learned that have a code to base my code off is very helpful, but adding alterations to make the project and code yours is an important piece of this.
Where I would go next with this project, is adding more accessibility to the slide switch because right now it is down low, and if there is a malfunction with the buzzer or sensor, this slide switch can cut it off, and fix the issue, so the owner of the cane should have more accessibility to this. I would also try to make the vibration motor more noticeably or a more central part of my project, so the market of the cane could go out to deaf and blind people, so they can feel to be censored when they are about to run into something, because right now the sensor is not very noticeable. I would also like to come up with a more compact way to store my intelligence, so it is not all at the bottom in a box, but rather part of the cane, making it less “clunky” of a cane. I also would want to make the ultrasonic sensor so it could see from all sides, not just one, making it a more helpful tool, but I can see where this would cause an issue in knowing where the object the person is about to run into is, but it could be an interesting option to explore. I also need to make improvements to the adaptor or battery to arduino connector I have, still trying to have it stop consistently, and also have it not get as hot when it is left on for a while with the battery because this is a potential issue, but has not proven to be one yet, but is an improvement I can make.