I interned at PayPal in my last semester. I must admit that PayPal is a great place to work. It loves its employees (PyPl) so much that it provides them with a free cab drop and pick up services from their homes to the office and back. But here is a small problem that comes up. The Taxi contractors need to maintain a daily log of the number of people using the cab and therefore the driver passes a thick register to every person sitting inside the Taxi to fill their details every time. Now here are the problems:
- The passangers need to make the entry in the moving cab and it becomes a clumpsy affair.
- We are living in 2018, why waster paper?
I, along with two other interns developed a portable and efficient solution using Raspberry Pi and we call it Coco.
I used to go to the office in the morning and worked on this project during the evening. It took me 30 days to furnish the final product. I used to work on an average of 30 hours a week for this. Towards the end of the project my SD card got corrupted and I had to start again from the scratch, so that took some additional effort.
I have never worked on an embedded system before, therefore this project gave me enormous exposure regarding the embedded system programming, architecture and limitations. Besides that I acquired considerable skills in the following domains:
- Setting up Raspberry Pi from scratch
- Raspbian OS
- Architecture and limitations of Raspberry Pi
- GPS, RFID, Camera, Microphone interfacing with Raspberry Pi
- Modular programming in Python
- Using and modifying open source Python packages
Being a complete beginner in Raspberry Pi development, there was a steep learning curve involved. Additionally it took us a great deal of efforts in interfacing and integrating the sensors. So it came out to be a moderately complex project. Some of the other challenges faced were:
Challenge: The image files required for the face recognition allocates huge amount of memory for a portable device.
Solution: We converted images to .npy arrays and used them directly and we were able to achieve a compression rate of 95% per file ( from 18 KB to 1 KB ).
Challenge: Our entire SD card got corrupted a week before.
Solution: We developed proper documentation and automated scripts to get back with the full installation in a short span of time. Additionally we will be developing a master script that will install the entire codebase with a single command, taking care of all the dependencies.
Challenge: The hardware devices were not communicating with each other properly.
Solution: We gained a deep understanding of Raspberry Pi and various modules before interfacing them with each other and didn’t put much load on the CPU by efficient coding style ( For instance, Avoiding system calls wherever possible). Also we gained knowledge about serial port manipulation, configuration files and Raspbian environment while completing the project.
Challenge: Limited computational resources on Raspberry Pi.
Solution: We had to gracefully shutdown all the zombie resources in the system, to keep up with the performance on the system.
Now the users will be able to log the entries just by showing their face to the camera or by punching the ID card to the Pi. Therefore the manual work is completely eliminated.
Coco’s full design overview
Presenting Project Coco to the General Manager of PayPal, India ( Guru Bhat )