We will be using Visual Studio to make a C# Windows Forms Application. The app will communicate with the Arduino over a serial port. The Arduino will be programmed to turn on or off an LED based on what it receives from the App.
In this post, I’ll show my DIY SMD vacuum pickup tool. I bought this vacuum pump SMD pickup but it had no way to be turned on/off. There is only a hole on the vacuum “pen” that you can cover with your finger to make or release the vacuum. I decided I would mod it and make it operable with a footswitch. When pressed the vacuum pump is turned on and when you let go the vacuum pump is turned off while the valve is opened at the same time to release the vacuum and instantly drop the SMD part from the nozzle.
In this post, I'll show a DIY power supply I made from an old computer PSU. This is a great way to get a fairly powerful lab power supply with a range of different voltages for cheap. I used a breakout board I bought online as it's much quicker and simpler than drilling holes for all the connectors into the case and then soldering all the wires.
This tutorial covers the deployment of a simple UWP app onto a Raspberry Pi 3 running Windows 10 IOT.
In this post, I'll show you a plasma speaker I made many years ago in fact, over 13 years ago. I originally saw this on Instructables and thought it was really cool so I decided I would make one myself. Unlike a traditional speaker which moves air with a diaphragm, a plasma speaker makes sound by utilizing a high voltage electric arc to move air.
It's hard to remember everything you learn over the years especially if you don't use it very often. That's why I think it's good to have a compilation of cheatsheets, reference books or other types of resources like blog posts/videos/PDFs. So in this post, I will "bookmark" some useful software engineering resources and cheatsheets for myself(or anyone else who stumbles upon this post).
In this post, I will show you how to fix the scaling issues in Quartus if you are using a higher resolution screen. This also works for any other programs affected by the issue of not properly scaling the UI for the high resolution.
In my 8-bit computer build, I only used decoders. However, I will still cover encoders in this post for the sake of completeness. You can see the decoders being used in the RAM, multiplexers, and the control unit of the computer. Decoders decode the binary value on the input to an individual selection on the output. The encoder will of course do the exact opposite.In this post, we'll take a look at encoders/decoders with 4 inputs/outputs because it's easier to understand how they work. The logic is the same for more inputs/outputs, the logic circuit just gets scaled up.
In this post, I will describe how I implemented the RAM in my 8-bit computer. The RAM size is very small, 16 cells(words) each one with 8 bits. It's a small and simple computer so a program and its variables will be directly loaded into memory using a programmer. Results and any temporary variables are also all just stored in RAM. The only exception is if you want to output a value you can directly load it into the output
In this tutorial, we will see the difference between method hiding and overriding in C#. The difference between method hiding and method overriding becomes evident when a class object is used polymorphically. The child version of the method gets called only when the method is overridden. If the method is hidden(new keyword) the parent version of the method gets called. Meanwhile, if we don't call a method polymorphically the new keyword will act in the same way as the override keyword does and hide the original parent implementation of the method.
In this tutorial, we will take a look at polymorphism, the virtual and the override keywords in C#. Polymorphism is one of the main concepts of OOP(object-oriented programming). It means that child classes can be viewed as parent classes at run time. Suppose we have a method that takes a parent class as an input. We can pass it the derived class and everything will still work. This can work because the child method inherits the required members from the parent class.
In this post, I’ll show my DIY solder paste dispenser. It’s powered by a 12V adapter and can be operated by a footswitch(connected via banana connectors). It uses a small membrane air pump/compressor to dispense the solder paste/flux. Additionally, there is a solenoid air valve connected to the airline so the pressure can be released after you let go of the footswitch which prevents the solder paste or flux from oozing out. The pump and valve timing is controlled through a relay module by an attiny45 microcontroller.
In this tutorial, you will learn how to output video from an Arduino and display it on a TV. Here we will specifically, see how to output an image. If you would like to know how to make the adapter or know more about the other functions available(outputting text, shapes, pixels) in the TVout library see this post.
In this post, we’ll see how to make an SD card reader shield for the Arduino. It’s pretty simple as it’s just a matter of connecting the proper Arduino pins to the correct pads on the SD card adapter. Additionally, resistors need to be added for certain pins. These will form voltage dividers that will drop down the signal voltage for the SD card from 5V to around 3.3V.
In this short post, I'll show you how to read and write to/from the serial port using Powershell.
In this post, we'll learn how to copy an array in Javascript. In Javascript, if you assign an array to another array using the = assignment operator you won't actually copy the values from one array into the other. What you will do is make another reference to the first array, so now you just have to variables pointing at the same array.
In this post, we'll take a look at the clock module of my 8-bit computer. Ben used a 555 timer in his clock module to generate the clock signal for his breadboard computer. The approach I took is a bit different. The DE0 Nano FPGA development board has an onboard 50 MHz crystal oscillator connected to one of the pins of the FPGA. This is where we can get our clock signal from. The problem is that the frequency is way too high for the computer and needs to be lowered. This can be accomplished by dividing the frequency using a frequency divider(which is esentially just a ripple-carry counter) or by using a PLL(phase locked loop).
In this post, we'll take a look at the program counter of my 8-bit computer. The PC(program counter) is used to store the memory address of the next instruction to be executed. After the instruction was executed it the value in the PC will be incremented by one, therefore, pointing at the next memory address that contains the next instruction. The PC is almost identical in construction to the microinstruction counter as both of them are just ripple-carry counters.
This post contains a collection of C# related things I learned and projects I did. The C# Code Snippets section is where you can find C# and .NET related topics like decision statements, Object-Oriented programming in C#, Threading, Events, Collections, ... Meanwhile, under Algorithms and useful bits of code you will be able to find such things as sorting algorithms, quick how-tos, and other useful bits of code that don't really fit anywhere else. And finally, there is the C# Project section that has my C# projects.
The homepage for Yujun Lin