Design and Technology Portfolio v7.2.0_EN

This is Zhang Jiaping’s Design and Technology Portfolio.

夏酷暑,冬严寒,春也不死吾心,心所向,将所成。

Hi, I’m Zhang Jiaping. I’m committed to designing highly modular, integrated, universal, technically and commercially viable product solutions. I pursue flattening, design sense, to provide customers with the best user experience. I enjoy is put forward and the problem solving process and the sense of achievement, to hone their skills to meet the challenge.

In this document, I will show you my skills, design ideas, personal and team project skills and learning potential with the projects I have done in the past.

AR Glasses

  • Purpose:

    1. It is convenient to display some data that must be monitored all the time or the detector data that needs to be held by both hands.
    2. Visualization of information reminders.
    • E.g:

      You can float the multimeter data directly to the front and process it, making it safer.
      When you pid the parameter, you can directly read the data and draw it, and slide the finger to change the parameters.
      When it is connected to the phone, it collects the phone prompts and analyzes the display.

  • Requirements: Floating screens in front of you, with information prompts, data acquisition and display, touch, photo, Bluetooth and other functions.

  • How to achieve it: If you make the screen or projector image at a distance from the Fresnel lens equal to the focal length, it will allow parallel light to enter the eye, and the brain will have an infinite virtual image on the back path. The transflective lens takes over the display of the virtual image. I built the ble client on Android Studio and designed the motherboard.

  • Technical Difficulties:

    1. The cost is difficult to optimize;
    2. ble notification transmission requires mobile phone cooperation;
    3. Monochrome oled is not good-looking, multi-color is expensive and the size is not the same;
    4. The Raspberry Pi is not real-time;
      Etc.






This is my first product design project, because I have no experience, I have done ample feasibility analysis. Even so, I have encountered a lot of problems, such as if the factory is delivered every iteration, not only expensive but also affects the design cycle and iteration speed. Workers must first sharpen their tools, so I assembled a 3D printer to quickly implement the design, it’s in my future design also helped me a lot.














In the early stages of the project, I designed a slidable casing and multiple anchor points on the casing to create experimental models to determine dimensions and subsequent designs. For development purposes, I chose to use the Raspberry Pi as the host for the glasses and tried to write programs in C and in Python so that the stm32 platform can be ported later. The array allocates TTP223 modules to detect finger touches and design gesture algorithms for them. I learned the iic bus protocol, used it to communicate with the oled module, and connected the PCF8574 module to extend GPIO.








In the middle of the project, I used the IP5306 chip as the power management module and contacted the corresponding battery manufacturer on Taobao. Then, I learned about PCB design and made a compatible Raspberry Pi expansion board on LCEDA that can be easily ported to the stm32 platform and integrated with the equipment I need. Based on the overall design of the housing design, I added a microstepping motor driven by the A4988 to help the Fresnel lens adjust the focus to ensure that people with nearsightedness can see clear images.








Due to image distortion and screen refresh, the actualeffect is better than this photo effect.

Then I plan to use stm32f407 to reduce costs and improve real-time performance later in the plan, and use a stepper motor to adjust the angle of the half mirror. Even contact manufacturers who can mass produce full color oled. However, due to economic reasons, this project can only be stagnant indefinitely. Even after I developed the model after dozens of iterations and avoided wasting resources and consumption, I could not afford unlimited investment without financial help. I realized at this time that I had to make money to support technology research and development, so I turned my attention to the next project.

Resin night light

  • Purpose: Night light
  • Demand: Infinite dimming, soft light source, no contact, need built-in battery, convenient and simple charging system, simple process.
  • Technical Difficulties:
    1. Space resources are difficult to optimize;
    2. Light source heat dissipation problem;
    3. IC selection and control are difficult;
    4. How to design a user-friendly immersion control system;
      Etc.

Process Epoxy is a kind of glue formulated with resin and corresponding curing agent. It has the characteristics of low viscosity, high transparency, yellowing resistance and good folding resistance. It is used by many people to make crafts. This kind of crafts will have a very good display effect under the light, and it will be relatively poor after leaving the light. Many people have also purchased the display stand for this. At the time, I found that there was no molded epoxy resin and circuit hybrid product on the market, and I wanted to design a pleasing night light to make money.

I first learned how to make Epoxy crafts, then contacted some manufacturers and finally chose the SGL8022w module to act as the master. My original design was completely assembled by various modules. It was large in size, difficult to make, and costly. I decided to make a preliminary experimental model and then optimize the design. Due to the characteristics of the flow of the glue, I can’t design the microUSb interface for it. In the end, only the magnetic interface solution and the wireless charging solution are feasible. After a series of tests and analysis, I chose a relatively expensive but more stable and simple wireless charging solution, and connected it to the lithium battery with IP5306. Shortly after the finalization of the plan, the first test machine was made, and the individual felt super ugly.













I think there are two reasons for this. The first is that the light intensity is not enough, and the second is that the light-emitting area is not large enough. I designed the PCB and tried several iterations. I used a homogenizing plate and an acrylic Fresnel lens as the astigmatism device, and increased the light intensity with multiple light sources, but the effects were all unsatisfactory.




The multi-light source PCB which is my initial design

I started looking for a light source suitable for my night light, using Blender modeling to do ray tracing calculations, and ran to Huaqiang North in Shenzhen to try one by one, and finally found the best two:




high strength SMD ( Surface Mounted Devices ) LED



COB ( Chip On Board Light ) Area source LED

Considering the project requirements, I chose a COB LED with higher intensity and softer illumination as the light source. In order to drive it I need a 12v 300mA power supply system and a more efficient cooling system. I used the IP5306 to output 5V and boost it to 12V with the PL7512A, but it does not support such a large current. Later I switched to the MC34063 module to temporarily solve this problem, but the heat was more serious.




In order to dissipate heat, I even painted the ice fairy on the PCB. After all, everyone also believes in metaphysics when they adjusting the PID parameters.

I used the TTP223 to add a touch switch for the IP5306 power supply and connected it to the SGL8022w to design a new version of the PCB. After several tests I soldered all the devices to the PCB. At this time, there was a sudden intermittent strobe and no charge, and the touch button did not work. After experimenting, I locked the problem on the connection between the touch module and the SGL8022 control chip. It is manifested as completely normal when separated, but not working after being connected. Later, after learning and discussing, I guessed and proved the reason for this problem: because the touch pins of SGL8022w and TTP223 chips use the relaxation oscillator to calculate the square wave frequency to detect the human body capacitance, and when the two pins are connected together, Due to the different initial clocks, the two chips triggered this “humam tragedy”. If I want to solve this problem, I can only design two buttons to separate them or implement a host to control their enablement. Obviously, the former does not conform to my design concept.

Because of the size and cost requirements, I finally chose the ms82f1402 of the ms series MCU as the master, accepting the state from the touch module, regulating the enable of IP5306 and MC34063 and outputting the PWM signal to the triode, and then controlling the switch of the led and brightness.

As a result, my night light design has basically taken shape. At this point I need a very beautiful switch that can match my night light. Then I regret that I did not find what I wanted. So I went to make one out.

Full color breathing light touch switch module

  • Purpose: Universal touch switch
  • Requirements: The interface is comprehensive and convenient for connection and coupling, with many output functions, convenient interface debugging, high degree of personalization and customization, beautiful, low cost and simple mass production.
  • Technical Difficulties:
    1. The integration degree is not up to the requirement, the size requirement is too high, and the design of the main board is difficult under the condition of material cost;
    2. The sensitivity and anti-interference of the TTP223 touch chip are not up to standard;
    3. The performance of the ms82f1402 is not up to standard, and the size of the ms83f is too large;
    4. The 5050 size ws2812 lamp bead timing bit is not clear, and the frame fragment is seriously lost;
    5. MC34063 booster chip current is not enough, the volume is too large, consider replacement;
    6. Algorithm efficiency is limited by device;
      Etc…

At first I just wanted to make a universal, breathing light switch with a size of 40*0.8mm. So I designed the first version of the switch module. It is composed of 5050 size ws2812, ms82f1402 microcontroller, ttp223 touch chip, IP5306 power management chip, ldo, triode, status light.








But because it is too small, many devices are crowded together, it is very difficult to solder and it can easily lead to serious short-circuit accidents that burn the chip. At this time, I already have some design experience and will not be as confused as before. I designed the time plan and made a complete design plan, while designing and optimizing.

First of all, in order to save time and start software writing, I built a simple ms82f1402 development platform with breadboard and hole board, and connected a series of device modules that I need to use. I recorded problems while developing the software and with the demand, iterates the layout of the pcb. Waiting for pcb At the same time, these problems also helped me to change the device selection, such as changing the MC34063 to the latest sh1208 boost module, which saves cost and solves the problems of heat and current instability. And I changed the selection of ldos and found the smallest size, relatively cheap and stable SC662K-3.3V chip.







I designed an interface for the night light module to dock the switch module. I also designed my own nanoscale timing to help ws2812 transmit data bits, which solved the problem of packet loss on the online example.








At this time, I found that the current switch module can completely replace the previously designed night light PCB design. It only needs to debug the corresponding PWM output to achieve the same or even more perfect effect as the night light module, as long as I can maintain this size and with functionality.

I am not satisfied with making a normal switch. I want to build a switch module that can be used by anyone, can be coupled with most designs, and looks good and can be personalized. I made great efforts in software, almost all timers and interrupts were used. Time-division multiplexing used 4 GPIOs to control the independent state of 12 leds, tried frequency-division multiplexed data transfer, and tried to squeeze this. All resources of the 0.2 renminbi MCU.





During this time I kept using the Google code style and became more aware of the importance of code style, comments, variable names and more. Even if I write in C without the class, I still choose the object-oriented programming idea, high coupling, low cohesion. I also design intra-cycle time scheduling and functional modularity similar to embedded systems.




Algorithmic process single cycle functionalization



Naming normalization, and more comments



Modular design, output mode can be adjusted by hardware

In terms of personalization, I use twelve leds to communicate with the user, allowing the user to set or import color values ​​and settings and store them in EEPROM. The actual output mode and voltage settings of the module can also be determined by hardware pin feedback or set before production, which further simplifies and enhances the user experience.







I provided the user with the calculation program I wrote in the design for the actual operation to help them customize the output. I also wrote a set of API instructions for them, and also implementing the GUI graphical order interface on the PC side.





I don’t believe that I can’t sell it.

Next I will use a smaller patch layout to build a wider copper wire to accommodate more designs. I will use op amps and comparators to integrate and personalize touch functions and open more output modes to meet more needs. Please wait and see…

The above three are just some of my more representative projects, and there are many more that will not be explained to say, such as the use of Lianshengde’s W600 modular to the ultimate IOT detection component, the Electron-Vue GUI flat template, a wifi-killer built by Esp8266 development board, a static blog built by Hexo…

Even while I was writing this article, I created a more convenient image component that can be inserted into the Markdown language. It has been used in this article, but it is not yet streamlined and convenient. I will then learn about Node.js and will soon join it in my blog as an npm package:

function ExImg(str) {
  return str.replace(/\{([^{}()]+)\}\(([^{}()]+)\)/g, function(match, $1, $2) {
    return (
      '<div style="display:flex;width:100%;"> <div style = "display:flex;flex-direction:column;align-items:center;width:100%" ><img src = "' +
      $1 +
      '"width = "' +
      $2 +
      '" / ></div> </div>'
    )
  })
}

Teamwork ability - DJI robomaster winter camp

At the beginning of 2019, I entered the DJI Robomaster Winter Camp as an embedded. Although I have had teamwork experience on Github before, it is the first time I have participated in such a team project in reality. In ten days we need to make two robots and fight against other teams.

During this time, I became more familiar with the use of git repositories that were previously only used as project storage, and learned the PID parameter adjustment (although still very metaphysical), the habit of Google code style came in handy. I used the serial port and the lower computer Arduino communication infrared array finally failed due to lack of time, considering the stability and not fully played. However, I used two dispensers made of two rubber bands, and the limit design made of two pieces of bent cardboard also solved the problem that the storage box is easy to be stuck. I discovered my talent in mechanics and I am ready to learn more about mechanical design.

Up to now, it seems that the official has no open source code. Because of the confidentiality agreement, I can’t talk too much about this…



















At last



O ever youthful, O ever weeping.