<<

instructables

Arduino Parking Assistant

by addictedToArduino

Those of us who have small garages know the frustration anything else electronic, so I knew from the start that it of parking a little bit too far in or a little too far out and would probably end up as a contraption with an Arduino not being able to walk around the vehicle. We recently inside and a bunch of LEDs on the front! bought a larger vehicle, and it has to be parked perfectly in the garage to walk around the front and back. I tried my best to document every step of this project well, but please note that it has some complicated, tight To appease my frustration I decided to design a device ; it probably shouldn't be your rst project. that would allow me to park in the exact spot every time. I love working with arduinos, leds, sensors, and nearly

Step 1: You Will Need...

Arduino Parking Assistant: Page 1 All of these materials are cheap and easily available. I'm not aliated with any of these suppliers, they're simply where I bought the supplies.

Materials:

1x 2x4 - at least 8" long 8x Philips Screws - Preferably 1" Long 1x Power Supply - 5 volt, 850mA 1x Arduino Pro Mini - 5 volt, 16MHz 1x HC-SR04 Ultrasonic Distance Sensor 12x Through-Hole Resistors - 220 ohm, 1/4 watt 8x Green LEDs - 5mm 4x Red LEDs - 5mm 1x Tactile Pushbutton - 6mm 3x Four Conductor Wire Sold by the Foot - 22 gauge 1x Stranded Wire - 28 gauge

Tools:

Wire Stripper Soldering Iron - I use 60/40 Rosin Core Hot Glue Gun Speed Square Stick Glue Philips Screwdriver Pencil 7/64" Drill Bit - this depends on the size of your screws 3/16" Drill Bit 1/4" Drill Bit 1" Forstner Bit Computer with the Arduino IDE Download Here. FTDI Programmer Here

Arduino Parking Assistant: Page 2 Step 2: Print and Cut!

The rst step in this project is to make the enclosure. We're using a technique I wrote about in an earlier Instructable, Easy 2x4 Enclosures.

Print the PDF Pattern included below. Be sure you're set to print at 100% scale.

Now cut out the pattern and glue it to the 2x4. Be careful to line it up with the edges. It's only temporary, so only glue it lightly.

Arduino Parking Assistant: Page 3 Download https://www.instructables.com/ORIG/F3Z/P7F4/J0COVN03/F3ZP7F4J0COVN03.pdf

Step 3: Cut to Length!

Use your bandsaw to cut the 2x4 along the edge of the pattern. You could also use a chop saw or .

Step 4: Cut the Lid!

Now we need to turn this thing from a 2x4 into a box! Use your speed square to mark a line lengthwise on the side of the 2x4 about a quarter of an inch from the back of the box.

Go back to the bandsaw and cut directly on the line. This will cut a separate piece that will become our lid. You'll be cutting close to your ngers; Please be careful!

Arduino Parking Assistant: Page 4 Step 5: Bore It Out!

Using your pencil, mark a rough square on the back of the larger block about a half inch from all the edges.

Now use your 1-inch to drill bore out the rectangle. You need to drill as deep as possible without coming through the front. Don't drill too deep!

Arduino Parking Assistant: Page 5 Step 6: Drill! Drill! Drill!

Chock up your 3/16 inch drill bit and carefully drill each of the holes marked on the front of the pattern. I found it works best if you make a small indention with an awl before you drill.

Next drill a 3/16 inch hole roughly in the center of the bottom. This will be the hole for your calibration button.

Now use your 1/4 inch drill bit to drill two more holes in the bottom. These will be holes for the wires.

Arduino Parking Assistant: Page 6 Step 7: Finish the Control Box!

Now you're using pattern. Peel it o as cleanly as inch deep; don't drill through the front! possible. Use the screwdriver and screws to fasten the lid. Take the lid and lay it on the bottom. Turn it around if you have to, you need it in the original orientation. You don't have to, but it makes the box look a whole lot better if you give it a good, through sanding. Next use the 7/64 drill bit to drill a hole about a quarter of an inch from each corner. Drill about a quarter of an

Arduino Parking Assistant: Page 7 Step 8: Insert the LEDs!

It's time to electronicfy this box! (Who says that isn't a word?) The LEDs should be arranged in two rings; a large green ring on the outside with a smaller red ring inside that.

Take a LED and stick it in a hole. Align it so the cathode (shorter lead) is toward the outside. Then put a little hot glue around it!

Repeat this process until all the LEDs are in their holes. Be careful to put the right color in the right hole!

Arduino Parking Assistant: Page 8 Step 9: Sand the LEDs!

For a more seamless look, sand the LEDs ush with the wood. It works best to sand before the wires are in. (Unlike I did!)

At this point I realized my holes were too big! (I used a size bigger than 3/16")

Wood ller to the rescue!

Arduino Parking Assistant: Page 9 Step 10: Solder the Grounds!

Bend the shorter lead on a LED and touch it to the short leg on the next LED. Solder these two together and continue around the circle. A needle-nose pliers is a big help!

Step 11: Solder the Resistors!

Cut a short length of wire, about two inches long, and any other wires! Do this for each LED, and double-check strip it! Twist it around a leg of a resistor, it doesn't for shorts. matter which end. Use your soldering iron to make the connection permanent! Do this for all your resistors. Finally, solder a short length of wire to the leg that was left when you soldered the grounds. Next, grab a resistor-wire pair and carefully solder the free end of it to a LED. Be sure not to let the leads touch

Arduino Parking Assistant: Page 10 Arduino Parking Assistant: Page 11 Step 12: Solder the Button!

Cut and strip another short length of wire, and solder it to one of the button's leads. Then clip all the button's legs o except the one adjacent from your solder joint.

Place the button in the box so you can push it from the outside through the hole. Solder the free lead of the button to the ground connections of the LEDs.

Finally, drizzle a bit of hot glue over the button to keep it in place!

Step 13: Solder to the Arduino!

Solder the pin-headers to the programming port of the Arduino. Then push the two wires (from the power supply and the one for the sensor) through their holes and use a bit of hot glue to keep them from falling out.

Strip the wires from the LEDs and button and solder them to the Arduino according to the wiring diagram above. Below is a printable version of the diagrams for your convenience.

Arduino Parking Assistant: Page 12 Arduino Parking Assistant: Page 13 Download https://www.instructables.com/ORIG/FZR/I0IC/J0COVN64/FZRI0ICJ0COVN64.pdf

Download https://www.instructables.com/ORIG/FVU/K2OP/J0COVN6D/FVUK2OPJ0COVN6D.pdf

Step 14: Create the Sensor Enclosure!

Now we need to make the enclosure for the distance sensor. I previously wrote about this in another Instructable, so I won't go over that here.

Follow the directions in Easy 2x4 Electronic Enclosures to make the box, then use your 1/4 inch drill bit to drill a small hole in the bottom of the box.

Step 15: Finish the Sensor Connections!

Push the free end of the sensor wire through the hole in the box, then strip it and solder it to the sensor module as in the

Arduino Parking Assistant: Page 14 picture.

Black goes to GND Blue goes to ECHO Green goes to TRIG Red goes to VCC

Use a bit of hot glue to secure the sensor in the case, then use another dab as stress relief for the cable. Screw the lid on, and you're done!

Step 16: Program the Arduino!

Arduino Parking Assistant: Page 15 Notice - March 25, 2017: As suggested by commenter Include Library > Add Zip Library... and point it the "MuchTall" I have updated the code to include an LED 'NewPing.zip' folder. countdown during calibration. Please download the new version of the code below. Next, extract the other zip le and open 'ParkingSystemV1.1.ino' in the Arduino IDE. Upload the ------sketch to the arduino. See this article or this article if you need help. In order to read the sensor, we need the NewPing library. You can download it here, I also included it below for Screw on the lid, and you are done! your convenience. In the Arduino IDE, click on Sketch >

Download https://www.instructables.com/ORIG/FDC/ZQCM/J0MOQB7D/FDCZQCMJ0MOQB7D.zip

Download https://www.instructables.com/ORIG/F9B/VYZD/J0COVN5V/F9BVYZDJ0COVN5V.zip

Step 17: Mounting and Use!

Arduino Parking Assistant: Page 16 Mount the sensor on your garage wall where it can sense When you drive into your garage, slowly approach the a at surface on your car's bumper, not the grill! Mount parking assistant; the green LEDs show your distance to the control box higher up where it's visible from inside the ideal parking spot, red shows you when to stop to the vehicle. park in the perfect position!

Park your car in the best position, and use a long object ------like a pencil to push the button on the bottom. This will calibrate it. The LEDs will begin lighting one by one to I had a lot of fun making this project, and I've found it to give to you time to move aside. Be sure to give the be really handy! I'd love to see your versions! Feel free to sensor a clear view to the car! The LEDs will ash green to comment with ideas, thoughts, or even your own indicate a successful calibration. Red means it couldn't version. All feedback is welcome! sense anything within range.

This was really explained well. Here's my version:

I built the original one you posted a few years ago . I moved and brought it with me. I uploaded the new version sketch . moved 3 pins for the calibrate button and uploaded. It works great .

I put them in one box, and even though it works in my application I can see how having them in two would work better in most situations.

Thanks for sharing - was fun and usefull for my first Arduino project...

I created a 3D printed case and made modifications to your code to use a WS2812 (adafruit neopixel) 16 led ring. http://www.thingiverse.com/thing:2221859

Arduino Parking Assistant: Page 17 Larry Great job! It looks nice.

I was going to do the same, thanks for the 3D print file!

Cool, I like it! I was wondering if you had considered using charlieplexing https://youtu.be/Bx5GLyJSWPk to control the LEDs? This should free up IO pins to add something like a buzzer or an open door sensor. Thanks! Yes, I have considered it, but with this number of LEDs there were enough output pins, and I didn't think I would expand on this project much in the future. In my initial testing I did have a buzzer connected, but I found this to be annoying because it would beep anytime I walked in front of it. An open-door sensor would be an improvement.

Thanks for your feedback! i think WS2812b led strip have best this,no need many led wired only one datawire to led strip and code run leds. or led driver max 7219 can handle less wired same too, same than led matrix or 7-segment drive leds whit max chip. and two sensor, front car and back to car then you have alltime used parking system in car. Yes, Neopixels or similar LEDs would take many fewer connections, but I tend to make things cheap, and enjoy soldering. :) I'm thinking of making a second version with ws2812b LEDs. I made it!

maybe im late, but i like it , thanks for share

Hey where did you used FTDI Programmer?? I am new to arduino please explain why and when it is used in this project. Amazing project and the casing looks absolutely beautiful. My question, can a buzzer be incorporated into this? If yes, could you upload the codes or post helpful links. Thanks! Hi! In my initial testing, I had a buzzer hooked up, but I took it out because I didn't see a use for it, and every time you walk between the sensor and the vehicle, it would think the car moved and beep the buzzer. However, if you want to put a buzzer in the system, it's fairly easy. Buy a buzzer like this one: https://www.adafruit.com/product/1740?gclid=CO_Jtf... and hook the black wire to the ground on the Arduino and the red wire to pin A3. Then, put "pinMode(A3, OUTPUT);" (without the quotation marks) just below "void setup() {" Finally, change the lines: else if (distance <= idealDistance) { //if in the stop position setLEDs(0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1); } to: else if (distance <= idealDistance) { //if in the stop position setLEDs(0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1);

Arduino Parking Assistant: Page 18 tone(A3, 8000, 1000); } If my calculations are correct :) this should run the buzzer for 1 second when you reach the stopping position. Thanks for your interest! I also bread-boarded it out with an Arduino Uno R3. Works like a charm. I will be mounting this under my as the tennis ball keeps getting in my way. Thanks a bunch. I'll post pics when I get it finished, just waiting for the Pro-Mini's to arrive in the mail. Great! I can't wait to see the pictures!

This is my first arduino project and I purchased everything listed and I am recieving the errors "avrdude: stk500_recv(): programmer is not responding" and avrdude: ser_open(): can't open device "\\.\COM2": Access is denied.

I do not know what I am doing wrong, I have windows 10 and my circuit is fine because if i plug in the power supply I get a green ring with a red dot. Your computer isnt communicating with your programmer. Make sure you've selected the right serial port in the "" menu of the IDE. lf that doesn't fix it, try doing a Google search for possible fixes for that error code.

I would suggest trying to upload the "blink" example first. Great project. Simple and works a treat. My first Arduino project and it worked first time. Paul Andrews Tried on breadboard. Awesome Instructable.

And... nice job. Thank you for shareing with us.

Why not mount the sensor on the front of the car and place the LED box on the dashboard? You could then use the car to power it and it would be a parking assistant anywhere. I would also explore using an ATTiny but I think the number of LEDs may be a problem. To solve that perhaps use just one green and one red LED. The green one should flash at an increasing rate as you approach the flat surface finally light steady green and light the red one if you go too far. I love this project and thanks for sharing. Putting the sensor on the car has been mentioned several times, but these sensors can't get wet. This sensor was mentioned before and looks like it might work on a car. http://www.ebay.com.au/itm/Waterproof-Ultrasonic-M... I've been wanting to get started with ATTINYs but haven't had the time. I would probably use a piezo buzzer instead of leds, like the system built into some cars. Building a system on a car is a great idea! You could mount sensors on all sides and make a lane-change avoidance system, or simply keep from backing into other cars in parking lots. :) I see a lot of potential in a project like that! It's not just a matter of getting wet. It's heat, cold, relentless vibration, and power spikes as the

Arduino Parking Assistant: Page 19 car is started. All of the connections to all of its components needs to be solid and protected as well as the main board. And if you're using it as a lane-change sensor it (and the programming) needs to be dead-on reliable. The standards for automotive electronics reliability are orders of magnitude higher than for hobby electronics like the Arduino. I'd be surprised if an Arduino board lasts more than a few weeks under average automotive conditions, no matter what you do to try to protect it. Timothy, My initial reaction to your comment was, "why so negative"? But then i thought, this is the essence of engineering. You provided valuable questions and pointed out possible pitfalls without belittling. This is what drives incredible innovation and I for one thank you. Thanks for the even-handed reply. I really wasn't trying to be negative. It's just that most people don't realize how robust automobile electronics are and how rigorously they're tested. We sort of take it for granted because most of the time they work, but it's because they've been subject to incredible stress testing and legal liability tests over the years, and only the best-engineered designs have survived.

The specs on vehicle electronics are amazing considering they're mass-produced. A typical consumer electronic part like an Arduino just isn't in the same league. Congrats!

Great job, this looks really useful! I especially love the way you calibrate it by pressing a button when your car's in the right spot. Perfect! I plan on using this idea for sure. Just as soon as I start learning Arduino. Thank You! Arduino is really easy to learn, just read some of the example sketches and modify them! Adafruit tutorials are good, start on the last page and head toward the more complicated ones. https://learn.adafruit.com/category/learn-arduino Thanks, I will check this out. Just ordered an arduino starter kit! I did take some programming WAY back in high school so I won't be totally lost I don't think. Very low tech alternate solution, by my father-in-law: Hang a tennis ball on a string from the garage ceiling. Locate it so that when you are perfectly parked, it just touches the windshield directly in front of the steering wheel. Great idea, but who wants a low tech solution when you can make something like this! ;)

Great idea the calibration. I will to study your code

Thanks!

Nice

Looks great! How do you power it? I'm looking to do the same, but embedded into my car, but if it's not possible, i think i will try your idea, but i don't have any powersource i my park. Have a look at this waterproof sensor.http://www.ebay.com.au/itm/Waterproof-Ultrasonic-Module- JSN-SR04T-Distance-Transducer-Sensor-for-Arduino-/152234039330? hash=item2371db1822:g:Yu8AAOSwi0RX0RFN Those are cool! I've never seen anything like that before! They're just like the sensors in cars!

Arduino Parking Assistant: Page 20 The problem on your car is the water, rain or humidity. That sensor is not made for that !

Use a USB car charger and cut the end off. https://www.google.com/search?ie=UTF- 8&source=android-browser&q=micro+usb+car+charger

That's a great idea! Message me on Instructables if you need advice or have problems. I would be glad to help! Use your car power and a 12v to USB charger. About $1 on eBay.

Cool idea! Maybe consider adding a timed delay to the calibrate function (with a slick LED count down) to allow you to get out of the way. Thats a great idea! I thought there was some way to optimize that! I'll have to update the code!

Use a LED strip for simpler wiring and greater colour possibilities.

Good Idea!

Nice idea . I think you can also add a buzzer to sound when it is too near. Case is very neat. Thanks!

Very cool, i really like the calibrating idea too!

Thanks! I previously made one where the distance was hard-coded; that was a pain!

Arduino Parking Assistant: Page 21