Jefferson Zhang

15, Sophomore at Singapore American School
xhex88jeff@gmail.com | zhang46631@sas.edu.sg

Education

2014-2020 – Singapore American School

(currently in 10th grade/3 years to graduation)

 

Active Projects/Experiences

BlueStamp Engineering (July 2020-)

BlueStamp Engineering is an active engineering program based in California and New York City. Participants aged between 15-18 choose an engineering project, and are mentored by graduate students through the design and build process.

Click here for more info

The aim of my project is to build a free-moving platform to bounce a ball, using data to calculate its movements, consisting of a 3DoF Stewart-esque platform driven by three geared NEMA 14 stepper motors, a microcontroller controlling and processing instructions from sensors and to motors, with data calculations on a single-board computer running an implementation of computer vision (OpenCV). I accomplished most of this and as of 8/1, have been able to rotate a ball smoothly on the platform. Originally the project was specifically for an Engineering summer program (BlueStamp Engineering) but I plan to continue this over the next few months.

I started this project by using Fusion 360 to design the platform. Once this was completed I spent my time waiting for the fabrication of the platform to design the electronic components and systems for the control of the platform. My first primary issue was the latency between the camera receiving the information and the motors actually going, which exceeded 500ms at first. While I could have driven the motor controllers from my Robotics SBC’s GPIO pins, the current draw on each pin drew more than 100mA, which is more than each GPIO pin can handle. (For some reason, DM320Ts drive way more than just optocouplers on their OPTO pins.) Instead, I swapped my Arduino Uno with an Adafruit Metro M4 to allow faster serial communication (USB tty at 921600 baudrate) and optimized the control code to only take 6 bytes of data to communicate the instruction for one motor. Additionally, I used a faster USB hub as my RK3399 board only has one USB Host port, and I was able to reduce the latency of the control system to around 80-100ms (measured with timestamps on serial Tx and stepper “rotation finish” instruction on Rx.)

Programming the system was a whole other problem. At first, I used Arduino IDE to program a simple translator of instructions stored in strings to communicate with the steppers, but that proved ineffective so I transitioned to programming from the Atmel Studio, along with using byte wrappers to  improve efficiency. Programming the data analysis and feedback was significantly harder, as I don’t have a OpenCV camera, so I had to set up the camera through OpenCV-camconfig. Because of this, I couldn’t get more than 100fps out of the camera at any resolution, so maxing the resolution out at 640×480 was the best course of action. My current code projects the size and location of the ball onto a simulated platform, getting the distance of the ball from the platform and the projected trajectory (although this still takes manual tweaking). However, the code currently isn’t efficient enough to run on my RK3399, as I’ve debugged it on my PC. My next step is to improve the code and train a neural network on its trajectory, as typically a small neural network is more efficient than a bunch of poorly coded, chunky algorithms.

In this project I

  • Demonstrated effective project management
  • Showed engineering skills in mechanical, electrical, and software
  • Showed optimization of various aspects of the project for increase efficiency
  • Demonstrated understanding of electronics design, computer vision, and system integration

 

 

One Degree North Robotics Team (Sep 2019-) 

(Electrical Engineering Lead, Electronics Systems Designer)

Singapore American School’s robotics team is a somewhat honored club within Singapore American School and has historically placed highly in the MATE, VEX, and FRC robotics competitions.

Click here for more info

I joined SAS’s One Degree North Robotics Team in September 2019, and I’ve been an integral part of it since. For the first few months of the robotics club, despite the fact that the robotics competition I was assigned to work on, MATE ROV Competition, wasn’t until May of the next year, I was the member who showed the most effort in staying after school and working on the robot, developing a more complex control scheme than ever before developed, using a Raspberry Pi in addition to an Arduino Mega to allow for lots of fast, easily controlled GPIO, and potentially a semi-autonomous mode. Since May 2020, I have been a prominent officer and mentor of Robotics.

My unit (MATE Red EECS)’s first major project was getting the electronics box designed, programmed, and tested. We did so within a manner of three weeks, and despite delays in programming by an unreliable member, my effective management of human resources within the unit allowed for the entire electronics box for the final MATE Red robot to be completed by deadline. My most significant contribution to this project, however, was my previous experience working with both standard brushless rotors and Blue Robotics T100 Thrusters, and I was able to take my experience working with various control schemes and motors in the beginning of the school year and apply it to the robot, smoothly integrating our various systems, providing easy-to-use interfaces for the rest of the team to work with. (albeit not fast). While we weren’t able to compete in regional or global competitions this year due to COVID-19, our robot achieved the most points out of any MATE robot in my school.

When I was promoted to MATE Mentor of Electrical Engineering in May, I was given a seat in SAS’s robotics leadership. My first course of action was to establish formal rules for my competition, MATE, and derestrict the MATE team to specific materials such as wood and acrylic. Next, I founded the Quality of Life Committee, a group to automate manual processes and organize events to improve the quality of life for all members of the robotics community. The first of these processes I am currently trying to automate is our hours-logging system. There are issues with the current manual system. Students can slightly alter the truth on our hour logging chart. A person has to be there past 6pm to log all the logins and logouts that day onto a Google Spreadsheet. Using a NFC Module (PN53x), SQL (MariaDB) and Python’s Google API, a small single-board computer connected to the internet is able to communicate with Google Sheets and automatically track each time someone taps their card as well as log every hour they are supposed to receive, down to the second. Using pycurl, I’ve also begun experimenting with automatically getting users through Singapore’s SafeEntry COVID tracing protocol. While the system is imperfect, when implemented and improved, I think it will be an exciting and interesting addition to the robotics community.

As part of the robotics community I have

  • Acted as an effective leader and manager of MATE Red Team
  • Developed hardware and software solutions for the team
  • Integrated hardware and electronics with mechanical team
  • Identified problems and bugs and quickly solved them
  • Used electronics engineering skills to build top scoring MATE Ranger robot within Singapore American School with its unique advanced control and movement scheme

 

 

Skills & Competencies (not in any specific order)

Proficiency (200+ hours working in this field):

  • Electronics systems design and development
  • Advanced Arduino programming
  • Algorithms and General-purpose Programming in Python/CircuitPython
  • Game design and programming in Unity
  • Windows and Linux skill and troubleshooting

Familiarity (60+ hours working or equivalent):

  • Usage of Tensorflow and OpenCV
  • Implementation of data structures and algorithms
  • Concurrent programming
  • Circuit and PCB design in KiCAD
  • Circuit analysis and interpretation
  • CAD skills in Fusion 360
  • Ability to use power tools, 3D printers, and laser cutters
  • Understanding and implementation of fundamental interfaces (USB, UART, SPI, etc.)
  • Skills with relational and non-relational databases
  • Setup and implementation of single-board computers
  • Understanding of many high-level computing concepts
  • Web programming and setup of servers

Understanding (20+ hours working or equivalent):

  • Audio and sounds engineering
  • Design of mechanical systems
  • Understanding of silicon chemistry and design principles
  • Implementation of VR/AR in Unity

Other/personal skills:

  • Persistence through projects, especially ones that last a long time
  • Technical Documentation of projects
  • Strategic planning of projects
  • Communication with colleagues and other corporations.
  • Team coordination skills
  • Research and reading of articles and previous experiences to generate a report

 

Programming Languages:

  • Python 3 (inc. CircuitPython, MicroPython)
  • Arduino C++-like
  • Unity C#
  • Standard C/C++
  • Java
  • HTML/CSS/PHP
  • JavaScript
  • (minimally) Lua