The idea is a robot that waives his hand to welcome the guests and wink using the LCD, once someone gets in front of it, it will ask for the guest's mobile number and thank the guest. It is a part of my final project so it is so exciting to make it happen.
I got inspired by Joy Robot the one in the image on the left. I wanted to do some facial expressions in addition to the waiving hand on a stand-by mode. and then activate the interactive mood once the Ultrasonic sensor reads an obstacle below 30 CM.
I used Arduino IDE to design and write the code & the following materials:
Cardboard for the enclosure.
Used craft tools to fabricate the enclosure.
Hot glue for assembly.
I did a simple sketch using pen and paper and started with the circuit components and the circuit power management.
The Arduino UNO and the other components will be hidden inside the box.
I decided to use a 5V 2A adapter as a power supply as I will power the Arduino, one Servo motor with load, LCD with backlight on, an Ultrasonic sensor, and LED. The Arduino will be connected to the 5V adapter through the Arduino built-in jack and the rest of the components will be powered using Vin pin to a breadboard so we can make use of the 2 Ampers of the adapter.
Input:
Added an ultrasonic sensor.
Added a keypad (3x4).
Output:
Added LCD I2C 16x2 module.
Added a Servo motor.
Added a Buzzer for Thank you sound.
LED (Interactive mode).
Wiring diagram of the entire circuit.
LCD I2C Tutorial: https://create.arduino.cc/projecthub/Arnov_Sharma_makes/lcd-i2c-tutorial-664e5a
Keypad Tutorial:
https://arduinogetstarted.com/tutorials/arduino-keypad
Used the Password example of the same tutorial to get the phone number of the user saved in a string.
LCD Custom Character Generator:
https://arduinogetstarted.com/tutorials/arduino-lcd
Used the custom character generator to generate the heart shape and the mouth shape.
Added a big if condition for the Ultrasonic sensor if less than 30 CM it will activate the "Interactive mode" if not it will run the "Stand by" mode.
And program the "#" Key to activate thank you mode.
Stand-by mode will do:
Move the servo back and forth.
Run the LCD character loop to do the wink effect.
Interactive mode will do:
Stop the servo
Clear the screen and add a question "Phone number?"
Wait for the user input on keypad.
Thank you mode will do:
Play a sound,
Write "Thank you" on the screen.
LED will light.
Then it will go back to stand-by mode.
All components inside the enclousure.
Created the enclosure box using cardboard.
Fixed the servo motor to the enclosure box using 2 M3 screws to make sure it holds in position.
Created a precise cut for the ultrasonic sensor, the keypad wiring.
Added the Arduino Uno and the mini breadboard.
Created a head box from Cardboard, made a cut for the LCD, and fixed it using 2 M3 screws and nuts.
Fixed the head to the box using hot glue and made a cut within the neck to pass the LCD and LED wiring.
Created two hands, one is fixed and the other one is fixed to the horn of the servo motor using a slot inside the cardboard to not damage the horn for re-use.
Tested the Facial expression with the winking eye loop.
Fixed the Keypad using the insert method for re-use without adding any glue or tape.
And this is the final design.
And now with demo of the functionality.
I did help my colleague Rawan in understanding the Relay module also debugged her timer project code during our end-of-week session.
Also, I did ask our instructor Ibrahim about how to extend the Arduino pins and he told me about the CD4067 multiplexer.
Also, I did ask for help from our instructor Amany during our end-of-week exercise about separating our code into blocks (the manual block of code to be commented) and work on the automatic version of the exercise then merging the two blocks under the big if condition and it worked perfectly.
I got stuck on the servo motor of the project stopped working suddenly after it was working well, and after a lot of debugging and troubleshooting, I used the multimeter to check all the connections and found that the servo is getting 0.15 V so I switched the multimeter to continuity mood and found the jumper is not connecting so replaced it and it worked fine.
I got stuck during the end-of-week session, I needed to power the 5V fan directly from the Arduino and found that it is not working due to a low volage out of the Arduino pin only 2V got out so we used a different methodology by adding a relay module and it worked.
The assignment project was a part of my final project so I did learn a lot.
Manage to build a smart home simulation in less than 2 hrs. during the end-of-week session.
I managed to know more about 3D printing common problems and basic upgrades for the "Voxlab Aquila".