Archive

Archive for the ‘elektro stuff’ Category

Bus Pirate test

March 20th, 2011 No comments

Neko noč (neprespan) sem naročil novo igračko, ki nosi ime Bus Pirate, in predstavla povezljivost med računalnikom (USB) in kar precej drugimi protokoli (1-Wire, UART, I2C, SPI, JTAG, raw 2-wire, raw 3-wire, HD44780 LCDs, MIDI)

Ploščica, z kablom škatlico in poštnino, stane cca 30eur pri seeedstudiu.

Za prvi test sem uporabil RFID bralec (125kHz, link), ki podatke pošilja prek UART-a. Povezal sem RX in TX pine, ter napajanje (+5V) 1

Bus Pirate se (po povezavi z USB kablom) računalniku pokaže kot serijski vmesnik, v mojem primeru na /dev/ttyUSB0. Po odprtju porta (screen /dev/ttyUSB0 115200), in nekah pritiskih na tipko Enter, vidimo ukazno vrstico:

HiZ>

ki nam omogoča upravljanje z napravo. Ukazni način, čeprav morda malo neudoben, naredi napravo precej enostavno za uporabo. Če pritisnemo '?' in tipko enter, dobimo pomoč:

General                                 Protocol interaction
---------------------------------------------------------------------------
?       This help                       (0)     List current macros
=X/|X   Converts X/reverse X            (x)     Macro x
~       Selftest                        [       Start
#       Reset                           ]       Stop
$       Jump to bootloader              {       Start with read
&/%     Delay 1 us/ms                   }       Stop
a/A/@   AUXPIN (low/HI/READ)            "abc"   Send string
b       Set baudrate                    123
c/C     AUX assignment (aux/CS)         0x123
d/D     Measure ADC (once/CONT.)        0b110   Send value
f       Measure frequency               r       Read
g/S     Generate PWM/Servo              /       CLK hi
h       Commandhistory                  \       CLK lo
i       Versioninfo/statusinfo          ^       CLK tick
l/L     Bitorder (msb/LSB)              -       DAT hi
m       Change mode                     _       DAT lo
o       Set output type                 .       DAT read
p/P     Pullup resistors (off/ON)       !       Bit read
s       Script engine                   :       Repeat e.g. r:10
v       Show volts/states               .       Bits to read/write e.g. 0x55.2
w/W     PSU (off/ON)            //<0>   Usermacro x/assign x/list all

Prvo vključimo napajanje (W), in s tipko 'm', izberemo 3 (UART), 5 (9600), in ostale nastavitve pustimo na privzetih:

HiZ>m
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. 2WIRE
7. 3WIRE
8. LCD
9. DIO
x. exit(without change)

(1)>3
Set serial port speed: (bps)
 1. 300
 2. 1200
 3. 2400
 4. 4800
 5. 9600
 6. 19200
 7. 38400
 8. 57600
 9. 115200
10. BRG raw value

(1)>5
Data bits and parity:
 1. 8, NONE *default
 2. 8, EVEN
 3. 8, ODD
 4. 9, NONE
(1)>
Stop bits:
 1. 1 *default
 2. 2
(1)>
Receive polarity:
 1. Idle 1 *default
 2. Idle 0
(1)>
Select output type:
 1. Open drain (H=Hi-Z, L=GND)
 2. Normal (H=3.3V, L=GND)

(1)>
Ready
UART>

Podobno lahko nastavimo katerikoli drugi protokol (seveda nastavitve, ki jih protokol podpira). Sedaj pritisnemo tipko '{', ki začne z branjem, in čitalcu približamo kartico.

UART>
READ: 0x02
READ: 0x30
READ: 0x38
READ: 0x30
READ: 0x30
READ: 0x44
READ: 0x42
READ: 0x35
READ: 0x44
READ: 0x46
READ: 0x34
READ: 0x37
READ: 0x41
READ: 0x03
UART>

Tako vidimo na kartici zapisano kodo, ki jo čitalec pošlje.  Če bi namesto rfid čitalca uporabil napravo ki tudi kaj 'posluša', bi ji lahko pošiljal poljubne podatke.

Zanimiv feature je tudi preverjanje napetosti na pinih:

Pinstates:
1.(BR)  2.(RD)  3.(OR)  4.(YW)  5.(GN)  6.(BL)  7.(PU)  8.(GR)  9.(WT)  0.(Blk)
GND     3.3V    5.0V    ADC     VPU     AUX     -       TxD     -       RxD
P       P       P       I       I       I       I       I       I       I
GND     3.31V   5.15V   0.00V   0.00V   L       L       H       L       H

 

 

Naslednja stvar (tj. eden izmed mnogih TODO-jev) je stestirati SPI na smart kartici!

  1. Pinouti so v datasheetih

Plasma ball fun

September 17th, 2010 No comments

10.44 usd, en USB priključek, in ogromno zabave :)

Categories: elektro stuff, geek stuff Tags: , , , ,

2x webcam + škatla od Plazma keksov + gstreamer = "3D kamera"

June 23rd, 2010 No comments

Na šihtu imamo dva projektorja, ki jih bo kmalu mogoče montirati enega pod drugega, in ko dobimo še polarizatorje, ter 3D očala, nam bo to vse skupaj služilo za ogled 3d vsebin.

Da ne bi koristili samo tuje vsebine, je bilo potrebno narediti tudi neko homemade varianto 3d kamere (vsaj za test, če že ne za bodočo resno uporabo) :)

Uporabili smo 2 Logitechova (uvcvideo kompatibilna) webcama, in z gstreamerjem pobral sliko z obeh in jih združli v en (mjpeg) avi file. Pomembno je, da je slika levega očesa na levi strani videa, desnega pa na desni,.. torej, za 2 streama 800x600 dobimo video 1600x600: [leva kamera|desna kamera] (glej sliko spodaj malo nižje :D ).

Zajem je delal gstreamer, z naprav /dev/video1 in /dev/video2 (video0 je porabil že vgrajen webcam na laptopu). Z obeh pobira 800x600 sliki, in shranjuje v mjpeg avi file, ali prikazuje na zaslonu).

#Prikaz na ekranu:
gst-launch-0.10 v4l2src device=/dev/video1 ! videoscale ! video/x-raw-yuv, \
width=800, height=600  ! ffmpegcolorspace ! videobox ! videomixer name=mix ! \
xvimagesink v4l2src device=/dev/video2 ! videoscale ! video/x-raw-yuv, \
width=800, height=600  ! ffmpegcolorspace ! videobox left=-800  ! \
ffmpegcolorspace ! mix.

#Shranjevanje v out.avi
gst-launch-0.10 v4l2src device=/dev/video1 ! videoscale ! video/x-raw-yuv, \
width=800, height=600  ! ffmpegcolorspace ! videobox ! videomixer name=mix ! \
jpegenc ! avimux ! filesink location=out.avi v4l2src device=/dev/video2 ! \
videoscale ! video/x-raw-yuv, width=800, height=600  ! ffmpegcolorspace ! \
videobox left=-800  ! ffmpegcolorspace ! mix.

Kameri je potrebno seveda dobro nastaviti (beri: obe snemata naravnost, sta poravnani, razdalja med njima pa je približno enaka razdalji med očesoma pri človeku (~10cm)).

Ker je to šele alfa test, smo za fiksiranje uporabili kar škatlo Plazma piškotov, in seveda selotejp :)


(ja ja... vem.. jutri ne bo nič več poravnano, selotejp bo popustil... bla bla... s tem se bom jutri obremenjeval :) )

Zajeli smo testni video, screenshot:

Da smo se znebili obdelave za ostale 3d načine (rdeče-modra očala, škiljenje, ipd.), smo video uploadali kar na Youtube, ki z dodanim tagom:  "yt3d:enable"=true sam vključi 3d kontrole in rendering.

Žal youtube še ne podpira embeddanja 3D videov, zato je naslednja slika samo povezava do videa na youtubeu:

Categories: elektro stuff, geek stuff Tags: , , ,

Nova igračka - star sovjetski osciloskop

August 8th, 2009 6 comments

DSC00292

V Beogradu na Kalenić pijaci sem našel tole igračko, za relativno nizko ceno (cca 15eur). Sond za njega nažalost (še) nimam, a imam v načrtu predelavo konektorjev v klasične BNC. Popolnoma stestiral ga zato še nisem, a tudi brez sond lepo prikazuje 50Hz šum.

Večina stvari (vsaj na prvi pogled) deluje... za tiste za katere ne vem kaj naj bi počele, pa upam da bom uspel dobiti originalna navodila zanj. Prav tako mislim da bo potrebno zamenjati nekaj elektrolitov, a to je malenkost.

DSC00293

Na zadnji strani je tudi zanimiv priključek X1, za katerega ugibam da naj bi predstavljal neko zunanje proženje (upam). Vidi se pa tudi letnica 1983, in kratica ZIP, ki upam da je ime podjetja ki ga je izdelalo. Googlanje za 'zip'-om še ni bilo uspešno... ampak upam da se bo našlo kaj.

Torej ja... i can has a new toy! :D

Edit 1: Treba je bilo prelotat ene dva kabla in sedaj lepo prikazuje signal... problem je le, da je slika razhlo postrani, tako da bom jutri (torej danes, samo po tem ko grem spat in se spet zbudim) pregledal odklonski sistem (ali pa zavrtel celo katodno cev) :)

Edit 2: Katodna cev naravnana in fiksirana, napajalni kabel zamenjan z dalšim, in ozemljitev pobrana z energetskega omrežja.  Konektorjev še nisem zamenjal z bnc-ji, ker mislim da bo treba povečat luknje, a nisem 100%.  Zazdaj dela brez problema :)

ps:  Zahvala Branku za navodila

Categories: elektro stuff, geek stuff Tags: , ,

(Ab)used electronic parts harvesting in Kiberpipa

June 30th, 2009 3 comments

First of all, why is this post in English?  First reason would be, that Enlish language is widely understood (in comparison to Slovene)... the not-so-obvious reason is, that some people keep bugging me about my Slovene and a thing called "dvojina". Dvojina is a really nasty part Slovene vocabulary (probably because there are only (iirc) 2 languages that use it).  For example, I usually say "dve ure" [two hours], and those people immediately correct me, and say "dve uri" [two hours]... Tomato, tomato...  They should probably create a Toporišič fan club :)

So, because the intro was relatively long, I am going to make the rest of the post shorter (i'm lazy, so what).

A couple of weeks ago1 Brodul2 and I decided to trash/wreck/destroy an old non-working laser printer, and harvested some interesting parts. Most of the motors, and the laster module are still in Kiberpipa, but I decided to keep 1 capacitor and 4 resistors.

Why the capacitor?3

capactior

As you can see in the picture, it is a 330uF capacitor, built for 400 volts. Anyone who ever tried charging a high-voltage capacitor in a wall outlet (for example through a bridge rectifier) and throwing it towards someone else to catch,  knows how funny that is :)

And why the resistors? Aren't they dirt cheap?4

DSC00255

These are 2.6ohm 20W resistors (4 of them), they were used in the printers power supply, and when fully loaded released 80 watts of heat. That's more power then your whole laptop uses... and all of it went to (probably unwanted) heat.

I can't wait for the next 'breaking and smashing day' in kiberpipa :)

  1. I was busy, couldn't write this before, sorry, I had exams
  2. a friend from Kiberpipa
  3. battery is only for size comparison
  4. again, battery only for size comparison
Categories: elektro stuff, geek stuff Tags:

Nov projekt - OTK2 - RFID, ethernet, Arduino

April 7th, 2009 No comments

Že spet se na faksu začenja sezona projektov, in pri OTK2, se bom tokrat poigral z RFID italnikom, arduinom, in ethernet shieldom, in končni produkt, naj bi bil sistem za "štemplanje1"

Celotna zadeva bo potekala približno takole:

  • Uporabnik približa svojo kartico/tag rfid readerju2, ki odčita podatke s taga
  • Podatki grejo v arduina in  se rahlo obdelajo
  • Arduino te predelane podatke prek navadnega ethernet omrežja pošlje oddaljenemu računalniku
  • Računalnik prejete podatke shrani v obdelavi-prijazno obliko

Potrudil se bom tudu narediti zadevo razširljivo (torej, da bi bilo teoretično mogoče priključiti več mikrokrmilnikov z čitalci, ki bi vsi skupaj delali z enim strežnikom). Kako bom shranjeval podatke, še ne vem... mogoče zavoljo enostavnosti kar v CSV file, mogoče pa kar v (MySQL) bazo. Zanimivo bi bilo tudi vodenje evidence ur, kdaj, kdo, in koliko ur je bil notri, ter mogoče tudi 'plačilo' teh ur glede na čas dela3.
Najtežji del bo pa najbrž teoretični, kjer bo treba spraskat skupi ene 6,7 strani teksta za dopolnilo k praktičnemu izdelku.

  1. Ja, žal ne vem boljše besede za tisto početje zjutraj ko greš v službo, in popoldne ko greš domov
  2. glej par postov nazaj
  3. torej, nočno delo jbi bilo plačano več kot tisto podnevi, ipd.