This Application collects some Personal Data from its Users.
Personal Data collected for the following purposes and using the following services:
Personal Data: Cookies and Usage data
Data Controller and Owner
Types of Data collected
Among the types of Personal Data that this Application collects, by itself or through third parties, there are: Cookies and Usage data.
The Personal Data may be freely provided by the User, or collected automatically when using this Application.
Failure to provide certain Personal Data may make it impossible for this Application to provide its services.
Users are responsible for any Personal Data of third parties obtained, published or shared through this Application and confirm that they have the third party’s consent to provide the Data to the Owner.
Mode and place of processing the Data
Methods of processing
The Data Controller processes the Data of Users in a proper manner and shall take appropriate security measures to prevent unauthorized access, disclosure, modification, or unauthorized destruction of the Data.
The Data processing is carried out using computers and/or IT enabled tools, following organizational procedures and modes strictly related to the purposes indicated. In addition to the Data Controller, in some cases, the Data may be accessible to certain types of persons in charge, involved with the operation of the site (administration, sales, marketing, legal, system administration) or external parties (such as third party technical service providers, mail carriers, hosting providers, IT companies, communications agencies) appointed, if necessary, as Data Processors by the Owner. The updated list of these parties may be requested from the Data Controller at any time.
The Data is processed at the Data Controller’s operating offices and in any other places where the parties involved with the processing are located. For further information, please contact the Data Controller.
The Data is kept for the time necessary to provide the service requested by the User, or stated by the purposes outlined in this document, and the User can always request that the Data Controller suspend or remove the data.
The use of the collected Data
The Data concerning the User is collected to allow the Owner to provide its services, as well as for the following purposes: Analytics.
The Personal Data used for each purpose is outlined in the specific sections of this document.
Detailed information on the processing of Personal Data
Personal Data is collected for the following purposes and using the following services:
Additional information about Data collection and processing
The User’s Personal Data may be used for legal purposes by the Data Controller, in Court or in the stages leading to possible legal action arising from improper use of this Application or the related services.
The User declares to be aware that the Data Controller may be required to reveal personal data upon request of public authorities.
Additional information about User’s Personal Data
System Logs and Maintenance
For operation and maintenance purposes, this Application and any third party services may collect files that record interaction with this Application (System Logs) or use for this purpose other Personal Data (such as IP Address).
Information not contained in this policy
More details concerning the collection or processing of Personal Data may be requested from the Data Controller at any time. Please see the contact information at the beginning of this document.
The rights of Users
Users have the right, at any time, to know whether their Personal Data has been stored and can consult the Data Controller to learn about their contents and origin, to verify their accuracy or to ask for them to be supplemented, cancelled, updated or corrected, or for their transformation into anonymous format or to block any data held in violation of the law, as well as to oppose their treatment for any and all legitimate reasons. Requests should be sent to the Data Controller at the contact information set out above.
This Application does not support “Do Not Track” requests.
To determine whether any of the third party services it uses honor the “Do Not Track” requests, please read their privacy policies.
Lately, I have been caught up with learning blender and animation for an upcoming project I plan to work on. Until two days ago, I haven’t given much thought on some of my projects. So I decided to write an update for the status of the autonomous car.
I had a working prototype, shown in the video below. But I somehow lost the code for it, and I am working on a better algorithm.
I got the car from a teacher who wanted to get rid of some junk donated by another student. The car itself has minor modifications. I had to get rid of the control circuit, but luckily there also was an ESC lying around. The ESC had a PWM cable, so I tried to use Arduino’s Servo library to control it, and it worked. The steering mechanism used some weird motor, and I replaced it with a servo motor.I then connected the ESC and coded the computer vision algorithm.
The car is supposed to detect the road at this stage, I’m planning on doing lane detection once I finish redoing the computer vision code. The servo motor is popping out from the steering mechanism, so I’m planning on making a proper mount for the servo.
These past few weeks were a bit busy, I had a lot of stuff from school. I went to a few hackathons, and I worked on the Autonomous car project, but I haven’t made much progress. I am currently working on an app for the PCR Project, so you can control it wirelessly, but you won’t hear from that for a few more weeks. But recently, I received an Arduino MKR1000 from the Hackster.io World’s Largest Arduino contest. So now I have to make a project. This time, I will make a Scanning Tunneling Microscope.
What is a Scanning Tunneling Microscope?
A scanning tunneling microscope is a type of microscope that can “feel” atoms. Normally, when one needs to view a specimen that is fairly small, you would use a light microscope. But when the specimen is so small that it is smaller than the wavelength of visible light, then one would look into other types of microscopes that do not use light to magnify/visualize your specimen. There are many different types of these microscopes. The electron microscope and the atomic force microscope(AFM) are the most widely used. Electron microscopes use electrons instead of photons(light) to view specimens, but they only work when the specimen is either electrically conductive or coated with a conductive substrate(spray). The other type, the AFM, “feels” atoms instead of “seeing” them. The type I will use is a scanning tunneling microscope. In theory, when electrical current is applied to two different objects, and they are moved close enough, electrons can “jump” between the objects. This “jumping” of the electrons is called quantum tunneling. We can use quantum tunneling to “feel” these atoms in a scanning electron microscope. In the microscope, a needle with a very fine point(one atom) is used to scan a specimen, and based on the different voltages produced by the tunneled electrons, we can construct an image of the atomic structure of the specimens.
How will I make it?
In normal scanning tunneling microscopes, a piezo tube or a piezo stack is used to move the scanner tip. I will try to use a piezo buzzer, like the one used in Alexander’s project(RIP Geocities). In his project though, he used an oscilloscope to view a very basic image. I intend to use the MKR1000 to receive and process the data for the STM, and then stream it online so the image can be constructed in probably a simple processing sketch. Since the current that gets tunneled is very low, a preamp and a separate opamp will be needed. I also need some serious vibration isolation and try to keep noise as low as possible. If I can keep noise and vibration low, the microscope is presumed to be able to achieve atomic resolution.
For the first part of designing and building the device, we first need to find the right computer/microcontroller to build our device off of. Before that, though, we need to know what we will plan on using so we can find the best controller for our device.
What I am thinking about the car’s hardware is that it needs some sort of object recognition and obstacle sensing, probably both. We probably want a camera so that we can use computer vision in order to detect certain objects, such as other cars, lane markers, and other things. For the obstacle sensing, I should probably use a few ultrasonic sensors, they are relatively cheap and easy to work with.
Finding the right controller
First, before starting anything, we need to find a microcontroller/computer that can handle all of the needed tasks while fitting into a small form factor, since I’m planning to actually build/mod an RC car, since it is cheaper and easier to work with.
What do I need/want in my controller?
What we need it to be able to do is image processing. Image processing is hard and requires some serious processing power. I will most probably start with OpenCV for the image processing, it’s relatively easy to use once you know python. I also need it to control motors, and steering, so that will probably use up 4 DC Motors, and a servo. we will also use ultrasonic sensors, and those components can be used with minimal effort and processing power. Also, if I am going to make multiple of these cars, I would like the computer/processor to be cheap, so I can easily afford 30 of them later on.
I’ll using the Pi Zero(duh), because it is very, very tiny for a computer. It can handle basic image processing(has the same processor as the pi B+, also has more RAM), and it has 40 GPIO pins, more than enough for what I’m working on. It has only one USB OTG, but that can be fixed with USB hubs. It also doesn’t have WiFi, but I can just plug in a WiFi dongle whenever I need to install software, or I could just download it and put it on a flash drive.
What I need first is the Pi Zero, but unfortunately, they are either out of stock, or sold for $40(why is it called a $5 computer then?) alone. Until then, I will most likely work on other projects until I can get myself at least one.
So, for the past week, school was closed due to the snow, and I wasn’t able to do much on the PCR project(Still going on, it’s not finished, yet). But recently, I got a new idea for a project—to build an autonomous car, or at least to build a smaller version of one as a proof-of-concept. I finally decided to start once the Pi Zero came out but it was never in stock anywhere, so I waited until I could find a sub-$10 one to buy. Yesterday, the Adafruit Pi Zero contest came out. So I started my project on Hackaday.io.
What is my project?
So my next project is basically going to be a self driving car. But I didn’t know where to start. So I looked at the issues in current land transportation and developing autonomous cars. The usual self-driving car that gets all the hype is either overly expensive, overkill, or just plain stupid. Like, really stupid. What I wanted to do was build a better car—but not just the car. I decided that I needed to build/design/develop an infrastructure to support such cars. Why did I decide to do that? Take a look at Google’s Self Driving Car. While it is a huge step in the advancement of driverless cars, it is very expensive. And it has safety issues, although Google has reported that most of the accidents were not of the car’s fault, rather other drivers.
So how/why will I make a better one?
Like I said before, I looked at some issues with current transportation and self driving cars. In current transportation, we can see that there are serious traffic issues and there are only too many accidents happening every day. How can we prevent such issues? Almost all of the time, a car accident happens due to human error—a distracted driver, an inexperienced driver, or just a simple slip of a hand. We can hugely decrease or even eliminate the amount of accidents happening everywhere by replacing a human driver with a computer. But self-driving cars aren’t the best either. They can still crash due to errors in detecting obstacles, they drive slowly and cautiously most of the time, they halt unnecessarily and they still need improvement. This will not help the traffic issue. But what if the cars acted together?They would communicate between each other, maintain their distance from one another, save fuel, navigate with only the most efficient route, be informed of local accidents and obstacles on the road to avoid, and we can theoretically have no traffic jams. Ever. Wouldn’t that be nice? Also, if we need self driving cars to be even more efficient, why don’t we just make our own traffic rules? I’ll probably use Bluetooth communication for the cars to communicate with each other, and for a basic prototype of a device that collects data and communicates with other devices, I will most probably use a cheap microcontroller or computer(I REALLY WISH I COULD GET A PI ZERO RIGHT NOW).
So my first goal is to start with a device that can navigate easily on its own. I’ll probably have a pi zero or some other microcontroller control an RC car, simply because I am 15, and I don’t have too much money, so I can’t buy an actual car. For now, at least. It will have a camera(openCV?) and some other proximity sensor(LIDAR, RADAR?) to detect objects, obstacles and traffic markings to stay on the “road”. Later on, I’ll get/make more devices and then I’ll work on communication and traffic rules. Eventually, if I can get far enough with this project, and maybe even get funding(Who knows?), I might actually be able to buy and mod(or design from scratch) a few cars so I can develop and test them out with actual vehicles. One important thing to consider(If I ever get that far) would be security, and that is a very, very important concern, but right now, I need to actually research and build it first.
I haven’t been able to post very frequently on this blog, mostly because of the holidays and winter break, but I have still continued to work on the device. I completely finished the proof of concept device(I already had a prototype built , just a few minor tweaks here and there), and cleaned up my code a bit.
Here are a few photos:
As you can see, it’s currently a wire octopus nightmare, but the device works in general. Over the holidays, I haven’t been able to do much with the project. I just changed the relay, as it was causing some issues, and cleaned up the code a bit. I’m planning on building an enclosure for the project, and I will definitely include a tube holder for the sample container. I’m going to order the supplies for the PCR(primers, polymerase, buffer), and gel electrophoresis, which I will use to verify that the reaction properly took place. I’ll also make sure to add an LCD display along with a few LED’s(makes things look cool), buttons and potentiometers. I’m going to improve the code and include a user interface where one can set the time for reactions and the required temperatures, along with some extra info that might be useful when operating the device. I might add a wifi shield to make it controllable via browser. I’ll also upload the code on github soon.
I’ve been working on this project for a couple of weeks, and I’m still working on it. I want to design and build a low-cost PCR thermocycler.What it does is that it facilitates a PCR(Polymerase Chain Reaction). Using it we can take one(or more) strand(s) of DNA and make many identical copies. With these copies one can do many things. For example, we can identify a suspect in a crime scene, diagnose and treat certain illnesses, sequence a genome, and do many more things. We can also “swap” parts of DNA that were copied with a living organism’s DNA. But we are currently only concentrating on the replication process.
How does the reaction work? First, we get a DNA sample(Fairly easy to do as long as you have access to a microcentrifuge. If not, then you will need a lot of patience). To the DNA sample, we then add primers, polymerases, and nucleotides. We then get ready for the first stage of the reaction. We add the sample to a PCR thermocycler, this is where the magic happens. This reaction is completed in multiple steps.
- First, we raise the temperature of the sample to around 98C for about a minute, causing the DNA strands to denature and basically unzip into single strands(think unzipping a zipper).
- Then, we move on to the annealing stage. We then cool the sample down to 50-60C for about 20-40 seconds. This causes the primers(small fragments of DNA that attach to specific sequences of DNA) to bind to the DNA strands at specific sites and then the polymerases(proteins that complete DNA sequences by adding nucleotides) bind to the primers.
- Now we get to the extension step. This is the part where the DNA starts getting copied. The sample is heated up to 78 degrees and the polymerases then start forcing nucleotides onto the DNA strands, eventually creating a whole DNA strand.
- This whole process gets repeated many times, with each cycle doubling the amount of DNA.
- If you want to read more on PCR, check the link here.
Video on PCR(crappy music included):
So what the device will do is just change the temperature of the sample(s) quickly and accurately.
So far, I have only made a basic prototype that just heats up and cools the sample.
[Note: I can’t upload the image of the device for some reason, so here’s a fritzing model. I will upload a new one as soon as I can.]
So, how does my circuit work? The whole device is controlled via an arduino. Analog data from the thermistor is read through pin A0, and converted to Fahrenheit(I should change it to Celsius) by using the Steinhart-hart equation.
Then, based on the stage of the reaction its on, the arduino keeps the device at a stable temperature by switching the relay on and off. The relay is connected to a 24v cartridge heater on one side, and on the other side is a peltier element with a CPU cooler. The peltier device just pulls in heat from one side of the plate to another. I included the peltier device in the machine, since I want the heating/cooling to happen as fast as possible.
So far, the list of materials is:
- 1 Arduino
- 100K thermistor
- 100K resistor
- 5V DPDT relay
- NPN transistor
- 12V power supply
- peltier device
- CPU cooler(fan and heatsink)
- 24V cartridge heater
The costs add up to around $70. If I fab my own board with the ATmega328P and also buy the components and parts from wholesale, I might be able to reduce the device to around $30. That’s pretty cheap, I guess.
So the basic device is finished. Once my other supplies(primer, polymerase, buffer, nucleotides) arrive, I’ll be able to test out the process. I’ll check to see if the reaction worked by running the sample through a gel electrophoresis experiment. Until then, I will upload the current code. I am also planning on making the circuit smaller, maybe even develop my own board. Once my 3d printer arrives, I will also make an enclosure for the device, as the whole thing is a horrific mess of wires. Next thing on my list is also to connect the device to the Internet, and develop a simple app to control it wirelessly(via smartphone/computer).