The Coding Can

About the maker of the Coding Can

Introduction

Hello! My name is Benjamin Carter. I am currently a Senior in high school in the state of Arizona. I love computer science and tinkering with many different things. I have worked on many projects over the years and will talk about each one here. I have also lead a robotics team and plan on pursuing a degree in computer science. You can contact me at my email address: foothill40hndw3fben@gmail.com

It all started when...

The first time I experienced coding was back in middle-school with HTML. HTML stands for HyperText Markup Language. I was excited to make something that the entire world could see. I didn't go very in depth. I got a book from the library about website coding. This book taught me how to use the basic elements of HTML. I learned what <p> tags do. I also learned what the h1-6 tags do. I learned the <a> tag and the <title> tag. My favorite tag however was the <form> tag. For some reason, I was always fascinated in making something that a user could enter data into it. A form element does it perfectly. I made 1 simple website awhile ago. Unfortunately, I lost interest in coding in HTML as it was boring. All it could do is display something, it is not active. It also took a lot of time just to get a website to look the way you want. It wouldn't do anything. When I reached this stage, I learned I had to use java-script to make things dynamic. At that time, the language seemed way over my head; therefore, I abandoned it and decided to move onto a project that actually does something real-world, not just creating code for a display.

I then started playing around and creating various things on scratch, a block-code program. You can view my projects at this link.

↓Click The Green Flag to play↓

Then came in the Arduino

Arduino takes a role

Then, for Christmas, I received an Arduino UNO. At first, I had no idea of what it was and what it could do. After looking online,I found out that the Arduino is a programmable electronics prototyping board. I could program it to interface it with the electronic circuits that I design. I got books from the library to teach me how to use it well.

With this device, I started creating many small projects. I created a vending machine out of Legos, a light that changes colors over time, a temperature reader, and more. I also built a submarine that at first was run off of an Arduino. This submarine was a smaller submarine created out of PVC pipes and featured several DC motors and a camera. It was at this point when I really got into robotics and engineering various gadgets.

Then the best dessert ever...

My First Raspberry PI!

Later, for Christmas in my 8th grade year, I got a raspberry pi for Christmas from my Great Aunt Jean. I thank her a lot for this gift, as it helped spark even more imaginative projects in the next several years. When I got this gift, I had no prior experience on Linux or how to even use it. However, I was excited as I loved working with the Arduino, and I was willing to try out this new device. After setting it up, I read 2 great books on how to use it and started creating. At first, I started programming some python scripts and learning a new language, Python. Today, Python stands as my favorite language.

1st Project

Christmas Light Display

With the new Raspberry PI, and inspiration from viewing other homes with their light shows, I decided to create my own light show. This featured my raspberry pi playing a sound file and reading a exported light file. The raspberry pi would send the lighting data over SERIAL protocol to the Arduino which would then send out the lighting data to shift registers to control relays. This project was very fun to work on as it required so many different facets to make it work. Through this project, I started with 16 channels of lights and 2 songs. The lighting sequence for these two songs were manually sequenced through Vixen -- an excellent open source program. I also set up a web server so I could monitor the status of the display on my PC and phone.

2nd Project

Vex Robotics

Now in high school, I joined a Freshman Robotics Team named Desert Howelers. On this team, I served as the Chief Programmer. I was responsible for creating a driver control script that the robot would run during matches. I also experimented with autonomous routines. Our team won two Regional Competitions and traveled to Prescott, Arizona, for the State Championship. In Sophomore year, I created my own VEX robotics team named Voltage Robotics. Our team received a Judges Award at a Regional Competition and qualified for state championships. Overall, I learned a lot on robot design, and how to best build a robot to succeed in competition, and most importantly how to build a good team.

3rd Project

GPS Waypoint follower

Another project that I have worked on is a GPS RC Car. This consists of an old RC car where instead of the radio receiver connected to the ESC, an Arduino was connected to the ESC to enemulate the control signals fed from the receiever. After attaching a GPS sensor, I started to create an autonomous program where the RC car would read from a file all the GPS waypoints that it must go to and then execute the path. This project was very intense with hardware as I worked with an Arduino Uno and an Intel Galileo. This project used SPI to communicate between the Uno and the Galileo and serial to communicate from the Galileo to the GPS receiver.

4th Project

Submarine Project - Won State Competition

Last year, I joined the Underwater Robotics Team at my school. I helped develop a SERIAL protocol that establishes connection from a Raspberry Pi to an Arduino in where a Raspberry Pi can send motor signals down to the Arduino which then would execute the signals to the various motors on the submarine. Our team won 1st place in the High School division at State and received the best presentation award as well. You can view the technical report here. You can also see how the Submarine team is going at their at their current website. Also, I am currently working on various assignments for next year's season.

Commercial Break

CodingCanDo.com

A little background about this website that you're looking at. This website actually stemmed back from my first year of Christmas Lights. While working on the code for the first year, I threw in a web-server for fun. The next year, I persuaded my parents to open port 80 so I could see my website from outside my house. At this time, I had a dynamic IP address and therefore the address for my Christmas Lights project kept changing every month or so. The next year, the third year, I looked into solutions where I could serve my website for free with a dynamic IP. There came in www.dynu.com which worked perfectly for my needs. I give a shoutout to that company as they were great! After Christmas has gone by, I really liked being able to go to a web-url and see my website. I then bought a domain name, codingcando.com, to host my projects on. This website has been up and running and with relatively few problems at all. As of now, my raspberry pi sitting in a custom fan-cooled case is serving requests made to the URL codingcando.com. The server stack is unique as I set this up in a very custom manner. Currently, codingcando.com is powered by a NGINX proxy server which forwards requests to a WSGI server run on gunicorn. The WSGI server was made under the python-bottle framework. Python is what powers CodingCanDo.com.

5th Project - A big one indeed

Visionarium

This project was a real big one. At my school, I started attending programmig club. At this club, I met some fellow programmers and we started getting together on figuring out what to do for the year. We decided to create a system to monitor student attendance across the school through the use of student badges. This system grew from a simple scanning device set next to a classroom door, to a full on web-application. Click here to go visit Visionarium. This system really took off and we got it working. It now measures hallway activity and teachers can schedule students for conferences. On the coding side of things, I got into the nitty-gritty of python web serving and MySQL databases. The SQL databases were a completely new topic that I dived into during this project. One of my team members helped make our project actually look nice with great web designing. I worked on getting the server up and running and connecting requests from the user to the back end database. This project was by far the biggest project I have worked on and our team has presented this project to a district school board member, our principal, and several other teachers. Our school (of 3.5k students) is considering a pilot of our system in the upcoming year.

What's next?

To the Future and Beyond

I love tinkering. I enjoy solving problems and I love doing it. There are many more projects, like Battleship, that I have worked on, but not included on this page. I thank God for His glory and His gift that he has given me in regards to my programming. One of the many things I learned over the course of these past years is that God is the giver of peace, life, wisdom, and knowledge. I am thankful for what He has blessed me with. So to the future, I pray that God can use me in the computer science world to testify and shine light on God, who created us all. In the future, I plan on pursuing a computer science degree and working for a company developing software. I would love to learn more about artificial intelligence and deep learning, two subjects that I have not worked on quite too much yet.

In Conclusion,

Closing Thoughts

In the spring of 2020, someone asked me why I like coding so much. After thinking on what I was going to say, I responded, "I love coding because it is an endless sandbox in where anyone can solve anything without being confined by physical limitations". I used to play with Legos a lot. I would build buildings and vehicles. While I am building, often times I run out of a certain piece needed to complete the structure I am building. Sometimes, I must take apart old projects in order to get the necessary pieces to build my current idea. In coding however, it is an unlimited sandbox where anyone can build anything they desire. There will never be a lack of pieces in the software world. The lego pieces are functions, commands, that fit together to create anything that one imagines. The manual is StackOverflow, always there if you need answers to questions. The only constraint in the software world is time. Other than that, anyone can build a website, a game, a database, anything. Given time, anything is possible, just one command at a time. Coding Can Do lots of things! Coding Can Do Everything!