2014. április 21., hétfő

Hajótest tervezéss

Az elmúlt napomkban csak ezen gondolkodtam, már-már kezdek beleõrülni, de talán most már kezdek rájönni. Ezt a postot biztos bõvíteni/magyarázni fogom még

A tervezéshez Autodesk Inventort, a Plate developmenthez pedig MATLAB-ot használok.

Inventorban megtervezem a hajótest ÉLEIT! Nem loftolom és egyéb ilyen buziságok, nem használok spline-okat, mindössze keresztbordákat egyenes vonalból és egymáshoz érintõvel csatlakozó görbéket. Egyetlen kivétel a hajó görbített orra, ott még nem tudom, mi lesz.

Miután megvannak a keresztbordák, tudom az összes pont koordinátáját a rendszerben. Az egyes élekhez hosszokat rendelhetünk, de még mindig térben van minden! A sík felületekhez az egyes éleket el kell forgatni egy speciális egyenes körül, mely párhuzamos az eredeti ív tengelyével. Amennyiben betartjuk azt, hogy egy lapot csak egy tengely mentén forgatunk egyszerre, tehát két szomszédos él és a rajtuk keresztūlmenõ élek által definiált síkok csak egy tengely körül mutatnak szögeltérést, akkor jók vagyunk.

2014. április 9., szerda

Felszín alatt

Érdekes dolgokba futok bele itt a Bosch-ban betanulás közben. Még a legfeleslegesebb dolgoknak (kalaptartó-behúzó motor) is olyan vezérlést fejlesztenek, ami katonai/repülõgép-ipari követelményt teljesít (Misra C, ISO26262), és betonbiztos az egész rendszer mûködése. Érdekes módon még az orvosi eszközöket gyártó B.Braun-nál sem hallottam ezekrõl, és már meg is értettem miért lehet szar a francia autók elektronikája, és miért nõtt a WV a legnagyobbra.

Nyócker

Kalandos ez a köbányai úti bicikliút. Ma egy rendívül hirtelen irányt váltó és futásnak eredõ csövessel találkoztam össze, aki nem örült hogy módosítottam a pályáját. Megálltam volna h nem lett-e baja de a "megöllektegeci" alapján úgy gondoltam, hogy jól van...
Néhány nappal ezelõtt egy parkolóból kiforduló autós jelezte a mozgásával, hogy persze, nyugodtan elmehetek elõtte, de aztán kiderült, hogy mégsem így gondolta. Vajon mi lesz a következõ?

2014. április 2., szerda

Bosch

Úgy döntöttem, kezdek egy új sorozatot, amiben írok a munkatapasztalataimról. Az elhatározást a Bosch budapesti fejlesztõközpontja ihlette, ami nevetséges szoborként próbálja dicsõíteni a multis vállalati kultúrát.

De ne szaladjunk ennyire elõre.

A Bosch-hoz a Beko Engineering-en keresztül kerültem. Ausztriai Outsourcing cég, technológiai vállalatoknak, ipari óriásoknak szállít kész megoldásokat. Az embereik a kliens-cégbe beépülve, a fejlesztési projekt aktív résztvevõjeként dolgoznak.
Egész jól hangzik, nem?

Mondjuk állásinterjún most sem értem, hogy mibõl gondolták, hogy pont elektronikában és c-kódolásban akarok utazni, azt hogy mennyire értek ahhoz, amihez megjelöltem, hogy tényleg értek, le se szarták.

De szerencsére felvettek, 6 hónapos MATLAB-fejlesztési projekt-re. A Bosch-nál.

Na itt kezdõdtek az érdekes részek.

Elsõ nap megkaptam a gépem, egy ThinkPad laptop, monitor, dokkoló, stb stb. Minden zsír. Persze hard drive encryption és zárt csomagtelepítõ, hogy ne tudjak garázdálkodni a gépen. Teljesen oké. Aztán jött az amit még mindig nehéz feldolgozni:

Nincs internet.

2014, szoftverfejlesztõ az egyik legnagyobb technológiai óriásnál, és nincs net. Ha emailt akarok küldeni, a felettesemen keresztül tudok csak. Állítólag azért, hogy ne tudjuk feltölteni a forráskódokat sehova, de nem tudom mi gátol meg abban, hogy mondjuk egy pendrive-val kisétáljak vele. Értelmet is nyert máris, hogy miért nem volt igaz amit mindig mondtunk az egyetemen a hülye lexikális feladatokra, hogy "úgyis lesz internet, hogy megnézzük". Szóval semmi stackoverflow, wikipedia vagy matlab central.

Mondjuk ez utóbbi lehet h nem is fog hiányozni, mert amint ma reggel kiderült lehet h nem is abban fogok dolgozni egyáltalán. Kíváncsi leszek, mi lesz ennek a vége. Egyelõre úgy néz ki, hetente háromszor fogok bejegyzést írni, mert különben megõrülök.

2014. március 23., vasárnap

Picking up...

Elég régen írtam már ide bármit, de nem szabad elhanyagolni, mert a blogolás az egy jó dolog, csak nagyon nincs benne a mindennapjaimban. Lehet, hogy a jövõben kicsit gyengíteni fogok a szakmaiságon, részben azért is, mert már a könyökömön jön ki a dokumentálás.

Gyors összefoglaló az elmúlt idõszak fontos eseményeirõl, hogy felzárkózhassunk a jelenhez:

A RobonAUT fejlesztése sikeresnek tekinthetõ, az eredmény megérte az enyhe bipolár kialakulását. Utólag vicces visszatekinteni, amikor mániákusan elképzeltem a totális diadalt, késõbb a depressziós szakaszban pedig a startvonalon elfüstölõ autót. Az igazsághoz hozzátartozik, hogy a harmadik helyhez jó adag szerencsére is szükség volt, mivel elszámolták a pontokat. Viszont azok, akik megelõztek minket újra a korrigált ponttáblában, éppen holtversenybe érkeztek a 2. helyezésért.

Fejlövés közelrõl, amit sértetlenül megúszol. Egy halom kellemetlenséggel kevesebb mindenkinek. Apró döntések sora a félév során, ami ide vezetett. Egy szemeim elõtt megelevenedõ pillangó-effektus, mely csak az utolsó pillanatban nyert értelmet.

2013. október 5., szombat

Simulink Embedded coder C/C++ code generation for STM32F4-Discovery

In this tutorial I'll describe how to generate code for an embedded ARM processor.

Our goal is:

Generate C code and call the simulink function from the main software.
I'm using Matlab 2013a x64 and Eclipse Juno, both in Windows 7 x64 environment.
My system is not modified in any major way.

1) Creating the Simulink model

This should be easy for you, if you are already trying to use the automated C/C++ coder. Generate whatever you want. This is my very simple system, a state machine:
2) Configuring the model

Open Model Configuration Parameters (Ctrl+E)
Your model must be (I'm not sure about this, but creating variable-step and continuously solved simulink models is just one more stick in your ass) discrete, with a fixed step solver.
There is at least a million ways to generate C code from simulink, this is I've used:
 In the "Hardware Implementation" submenu change "Device Vendor" to "ARM Compatible" and the "Device type" to "ARM Cortex".
In the "Code Generation" submenu change the "System target file" to ert.tlc (This will invoke the embedded coder).
In the "Report" sub-submenu you shoult tick "Create code generation report" because that's always good, but it's not necessary.
In the "Interface" sub-submenu change the "Code Rerplacement Library" to GCC ARM Cortex-M3.

3) Generate the code

Right click on the subsystem you want to build. C/C++ code --> Build Subsystem
Be careful to generate only the controller, not the whole model. Remember, you only need the code for the subsystem that controls the environment you've simulated in MATLAB.
4) Create the Eclipse console project.

Create an empty ARM Cross Traget Application project with Sourcery code compiler (How to do this? I'll do a tutorial on this later, in the meantime google it or learn to speak Hungarian and read it here).
Add a folder where you'll put the source files. Copy and paste the files generated by Simulink here. Build. Be happy.

5) Flash the built system to your STM32F4-Discovery card.

It doesn't work for me yet, but the other 4 steps are confirmed as working. Of course you'll have to add a few lines to the ert_main.c (don't change anything in the rest of them).

2013. október 1., kedd

STM32F4-Discovery

Ahhoz képest, hogy két héttel ezelőtt azon izgultam, amikor jön már meg a BeagleBone, máris van egy másik fejlesztőkitem is, melyet a RobonAUT-hoz kaptunk, az STM32F4-Discovery lapka.

Valamint megkaptuk a Desert truggynkat is, ezt most nem én hoztam haza, így csak ilyen képet tudok csatolni:

Egy Brushless motor hajtja a hátsó kerekeket, a felfüggesztések nagyon igényesnek tűnnek. Azt a tippet kaptuk, hogy iktassuk ki őket, de fájna a szívem ha ezt tennénk.