Tuesday, December 10, 2013

Light following robot

Hi.

Long ago during holidays I've made a light following robot. Very often people build these robots without using any microcontrollers or specified integrated circuits. And that's why I went for a little twist and I actually decided to build one with atmega88. It allowed me to not only ensure the basic functionality of the robot, but also I was able to add a new one - barrier detection. Which is pretty useful, when for example robot's path is obscured by some kind of object (thanks to the IR sensors robot will detect the obstacle and stop). Anyways the construction is so simple because I used undercarriage from my car. You can watch how robot works below:

Saturday, December 7, 2013

Oscilloscope with new feature

Hello.

It'll be a short note. I've recently had some free time and so I was able to add a new feature to my oscilloscope. And it is quite useful one - synchronization with measured signal. You can choose the activation method as well (falling / rising edge). I've also tweaked the display management a bit. It now utilizes frame-buffering, which improves FPS significantly. Here is a video with the new version of the oscilloscope:

Monday, November 25, 2013

LPC2138 ARM Oscilloscope and generator

Hello.

I'd like to show you my new project. I've never had a generator and an oscilloscope so I decided to make these. I started making oscilloscope on Atmega32, but later I bought LPC2138 and it has DAC so I decided to change uC to LPC.

Generator
Few words about generator. Generator can generate sine wave, square wave and triangle wave. You can adjust duty cycle in range 1-99%. Amplitude of generating signal is 3.3V. I used an internal DAC to make this generator.

Oscilloscope
I used an internal ADC to make oscilloscope. It has these features:
  • time/div: 50us/div-500ms/div
  • voltage/div: 1V/div-50V/div
  • detection signal DC/AC
  • calculate frequency and duty cycle
  • calculate voltage 
All values: frequency, duty cycle and voltage calculate only on based values from ADC that means frequency and duty cycle could not be accurate. Firstly oscilloscope detect signal if it is AC then calculate frequency, duty cycle and maximum of voltage. If detected signal is DC then only calculate average of voltage. Input of oscilloscope is very simple I only used a voltage divider and a range of input signal is ±30V.

LCD
I used LCD with a driver KS0108.

How to use these
I used 5 keys to choose option and input data for generator you can enter value through for example terminal Putty.

Code
I wrote it in C.

Video
On video I show you 3 different waves and measurement voltage of transformer. You can also watch earlier version of oscilloscope on Atmega at my YouTube channel.

Summary
This is simple oscilloscope with generator but what it's important it works. At main screen you can see a clock with thermometer as RTC: PCF8583, thermometer: DS18B20 and EEPROM: ATMEL24C256 to storage a configuration.

You are welcome to post your opinions of my project.

Sunday, November 24, 2013

Generator i oscyloskop na LPC2138

Witam.

Chciałbym przedstawić mój nowy projekt generator i oscyloskop. Z racji tego, że nie posiadam ani oscyloskopu ani generatora, postawiłem zrobić te dwa urządzenia, początkowo miałem to zrobić na Atmedze 32, ale z racji, że ostatnio zacząłem przygodę z ARM, a w wykorzystanym ARM jest przetwornik cyfrowo analogowy, dzięki któremu mogłem w prosty sposób zrobić generator, wybór właśnie padł na ARM. Konstrukcja przede wszystkim opiera się na zestawie uruchomieniowym ZL9ARM z wykorzystaniem mikrokontrolera LPC2138.

Generator
Teraz kilka słów na temat generatora. Generator potrafi generować przebiegi sinusoidalne, prostokątne i trójkątne, z możliwością regulacji współczynnika wypełnienia w zakresie 1-99%. Zakres generowanych częstotliwości wynosi od 1 Hz do 100 kHz. Na wyjściu generatora mamy przebieg o amplitudzie 3.3V. Do zrobienia generatora użyłem oczywiście wewnętrznego przetwornika cyfrowo analogowego.

Oscyloskop
Oscyloskop powstał przy użyciu wewnętrznego przetwornika analogowo cyfrowego, posiada takie właściwości jak:
-podstawę czasu od 50us/dz do 500ms/dz
-podziałka napięcia od 1V/dz do 50V/dz
-detekcja sygnału DC/AC
-obliczanie częstotliwości i współczynnika wypełnienia
-wyświetlanie napięcia
Wszystkie obliczenia dotyczące sygnału wejściowego są tylko na podstawie wartości z przetwornika ADC, dlatego pomiar częstotliwości jak i współczynnika nie zawsze jest dokładny. Oscyloskop na podstawie wyników z przetwornika ADC robi detekcję sygnału i w przypadku sygnału AC obliczana jest częstotliwość i współczynnik wypełnienia, oraz wyliczana maksymalna wartość napięcia. Natomiast w przypadku przebiegu DC wyliczana średnia wartość napięcia. Tor wejściowy oscyloskopu to zwykły dzielnik napięcia, od którego zależy przede wszystkim zakres napięć wejściowych, należy również pamiętać, że im większy zakres tym gorsza dokładność pomiaru napięcia. Przy obecnych wartościach rezystorów zakres napięć wejściowych wynosi do około ±30V.

Wyświetlacz
Do wyświetlania użyłem wyświetlacza LCD ze sterownikiem KS0108.

Sterowanie
Sterowanie zarówno oscyloskopu jak i generatora odbywa się przy użyciu 5 klawiszy, które są w zestawie uruchomieniowym, natomiast wprowadzanie danych dla generatora odbywa się przez RS232 z wykorzystaniem terminala.

Oprogramowanie
Całość została napisana w języku C.

Film
Na filmie pokazane są 3 różne przebiegi, jak i pomiar napięcia z transformatora. Na moim kanale youtube można zobaczyć wcześniejsze próby na Atmedze 32. Na filmie można zauważyć, że oprócz generatora i oscyloskopu są jeszcze inne funkcje jak wyświetlanie czasu, daty, temperatury, ale to taki dodatek do całości, który nie odnosi się do głównej funkcjonalności.


Podsumowanie
Reasumując do projektu użyłem zestawu uruchomieniowego, wyświetlacz LCD ze sterownikiem KS0108, paru rezystorów służących jako dzielnik napięcia do toru wejściowego oscyloskopu. Do pozostałej funkcjonalności którą można zobaczyć na głównym ekranie użyłem jako RTC: PCF8583, termometr DS18B20 i pamięć EEPROM ATMEL24C256 służącą do przechowania konfiguracji.
Oczywiście jest to dość prosta konstrukcja, ale do moich prostych zastosowań jest wystarczająca :)

Uwagi, propozycje i opinie są mile widziane.

Hello / Cześć

Hello everyone.

What will I write? Blog will be about programming, security, electronics.
Enjoy reading and I encourage to comment my posts.


Witam.

Tematyka bloga będzie o programowaniu, trochę o bezpieczeństwie i elektronice.
Miłego czytania kolejnych wpisów i zapraszam do komentowania wpisów.