2009-08-26

I am not especially proud of this achievement...

Took me many days to get servo control working properly.
But now it works and I can concentrate to messaging between master board and instruments.
Pah!
With my background this should have been a piece of cake.
It is like this when you get older.



Of course everything above is just a joke. Servo control and timing works now properly so I
can move to other parts of code.

Let's see...

Stepper control [x]
Servo control [x]
Rotary encoder reading [x]
i2c bus messaging [x]
eeprom reading/writing [x]

Looks like instrument coding is getting there. Oh yeah!

2009-08-21

Stepper motors etc.

Howdy again.

Due to numerous requests (=1) I have decided to change the language of this blog to english.

Ok, the status of the project is:

Software, done:
  • i2c master-slave messaging is working properly. Needs proper messaging to be defined though.
  • Stepper motor control is finetuned
  • "Calibration" (setup) of stepper motor driven pointer is coded
  • Functions driving pointer to point desired value have been written. And it works. Almost.
  • Reading of one rotary encoder works ok
Software, next:
  • Control functions for servos (3)
  • Add another rotary encoder reading
  • Start coding ethernet - i2c "bridge"
Hardware,next:
  • Still looking for cheap stepper motor with very fine steps (more than 100/revolution)
  • Get one of these for ethernet-i2c-board
  • Figure out the stepper motor current limiter system
  • How to find the "home" position of pointers? Hall-effect sensors or optical interruptors or perhaps something else?
Mechanics, considerations:
  • Print gauge backgrounds, buy one Simkits kit (comes with tens of backgrounds) or buy real instruments from boneyard?
  • Use real instrument casings or buy 3" plastic pipe from hardware store?

For stepper motor consideration, here is my current selection of motors.
From left:
  • STH-39D191, assumed to be 1.8degrees version. Othervise very nice but quite big.
  • PF35T-48L4, about 48 steps per revolution. Makes pointer movement very choppy. Cheap and big.
  • QH4-4205 from old printer. Very small, makes motor control IC _very_ hot, needs current limiter reconfiguration. Very small = could put three of these to, for example, altimeter.
  • Background: Expert SL300-servo for VOR and ILS.
  • Tomorrow I will go to local Fry's electronics and buy one 3.5" floppy to see if it has a stepper motor in it. $4.99.

2009-08-13

Askelmoottorinohjausta ja kalibrointia

Nyt kun alkoi hommat skulaamaan niin ei meinaa malttaa nukkua ollenkaan...
Siistin kytkentaa ja johdotin mukaan 2kpl MC3479P-askelmoottorinohjauspiiria.

Alkaa pikkuhiljaa hahmottua minkalaisia viesteja prosessorien valilla tulee singahtelemaan. Yksi niista tulee olemaan "setup" jolla hanskataan mittarin kalibrointi.
Tai siis kalibrointi on vahan vaara sana, sanotaan mieluummin "viisarin kohdistus".

Allaolevalla kytkennalla testailin kohdistusfunktioita ja hyvin tuntuu pelaavan.
Homma hoituu talla hetkella tallalailla:
1. Virta paalle
2. Prosessori huomaa jotta viisaria ei ole kohdistettu
3. LCD:lla lukee "zero" -> nuppia pyorittamalla viisari nollakohtaan ja valkoisella napilla kuittaus
4. LCD:lla lukee "min" -> nupilla viisari pienimpaan nayttamaan ja napilla kuittaus
5. Viisari pyorahtaa takaisin nollakohtaan
6. LCD:lla lukee "max" -> nupilla viisari suurimpaan nayttamaan ja napilla kuittaus
7. Prosessori laskee montako askelta moottorin pitaa pyorahtaa per mittarin yksikko


Seuraavaksi (huomenna?) pitaa koodata tuo yllaoleva toimimaan i2c-vaylan yli eli kaskyt ja ohjaukset tulee varsinaiselta ohjauspiirilta eika nupilta ja napilta.

MC3479-piirien virranrajoitusvastuksiakin pitaa ihmetella, pakkaavat naas lampenemaan moottorit ja piirit. Liikaa virtaa. Kevyt muoviviisari ei paljoa virtaa tarvi liikkuakseen.

Mitas tassa viela pitaakaan speksata ja koodata?
- Servojen ohjaus PWM:lla
- Servojen "kalibrointi"
- i2c:n yli heiteltavat komennot
- mita muuta?

2009-08-10

JiiHaa!

Toista viikkoa sita sai yrittaa mutta nyt toimii (melkein...).
Eli suunnitelmissahan on laittaa jokaiseen simulaattorin mittariin ja laitteeseen oma mikroprosessori hanskaamaan laitteen toimintaa.
No luonnollisesti nama laitteet pitaa saada keskustelemaan keskenaan, ja siitahan se koko ongelma sai alkunsa.

Nyt sitten, Jannen suosiollisella avustuksella, saatiin prosessorien valinen liikenne toimimaan ainakin toiseen suuntaan. Eipa siina mennytkaan kuin reilu viikko ilta/yohommina paata poydanreunaan paukutellessa.

Edellisesta kuvanotosta on tahan kytkentaan tullut mukaan yksi piiri eli alareunassa nakyva toinen mikrokontrolleri (Microchip Pic 18F2550):

Systeemihan toimii siten etta kuvan alareunassa olevalla kytkentalevylla oleva Pic lahettaa i2c-vaylan yli esimerkiksi sanoman "1350ft" jolloin isomman levyn ylareunassa nakyva toinen Pic komentaa vieressaan olevaa MC3479A-moottorinohjauspiiria siirtamaan viisarin nayttamaan 1350 jalkaa merenpinnasta.

Viela kun saadaan toinen suunta tassa keskusteluyhteydessa toimimaan niin voinkin alkaa koodaamaan varsinaista mittarinohjaussysteemia jossa yksi prosessori kertoo mittareille mita pitaa nayttaa.

Tammoista tallakertaa, toivottavasti kohta lisaa asian tiimoilta, vaan nyt maksamaan univelat Nukku-Matille.