reede, 10. mai 2013

Tagasiside

Kuna valmis sai siiski tehtud terve komplekt koos näidisülesannetega, testisime seda ka üliõpilaste peal :) Kasu sellest oli kõvasti - juhendid said täiendust, mõned veadki tulid välja. Nüüd veel vaja test programme kõpitseda.

neljapäev, 4. aprill 2013

Voolutarve

Laboris voolutarbimise mõõtmised. Uus komplekt võtab umbes 100mA rohkem voolu, sellest pool läheb BT arvele ja teine pool XuLA arvele.

Järeldused teeme hiljem ...

P.S. Hilisemad kordusmõõtmised näitasid suuremat vahet, ning põhitarbija on ikkagi FPGA.

kolmapäev, 3. aprill 2013

BotCommanderBT

Pärast pikka vaidlust iseendaga tehtud suur muudatus - järjestikliidese asemel suhtlus otse üle BT stacki. Plusspool - jääb ära BT paaritamine ja virtuaalsete järjestikliidestega majandamine. Teegiks valitud BlueCove. Toimib windows, macos ja linux keskonnas. Testitud :)

BotCommander ümber kirjutatud, uus nimi BotCommanderBT, lisatud eraldi klass BT adapteri seadistamiseks. Kood lihtsamaks tehtud, loobutud sisemisest editorist.

P.S. BT adapteri adekvaatne manuaal - ARF-BTC1-2_Modules_Users Guide_V0.90.pdf

P.P.S. Suse peal (arvutiklassis) peab juurde installima paketi bluez-devel - BlueCove Linux module

P.P.P.S. Debian vajab pakki libbluetooth-dev

kolmapäev, 27. märts 2013

Demo - märts

26. märts - tehtu demo.

Ideed edasiseks ...

Bluetooth adapter
  • Paaritamise probleemid - siduda kindla donglega - mingi lihtne kontroll
  • Kirjutada eraldi korralik õpetus BT esmaseks häälestamiseks / konfimiseks

Kasutajaliides
  • Kontrollida toimimist Linux'i all (serial device probleemid)
  • Võimalus tekitada Makefile (export Makefile)
  • Tekitada korralikult pakendus, mida saaks allalaadimiseks üles panna

3.3V vs 5.0V
  • Panna kõik andurid enable reziimi s.t. toide XuLA väljundist, testida (andurite komplekt on ette antud)
  • Lahti saada 3.3V pingemuundurist


reede, 22. märts 2013

Kokku pandud

Lõpuks on asi reaalselt kokku pandud ja ka ära testitud :)
Algne Bot

Uue ajuga Bot

Plaadi möötmeteks on 53mm X 53mm - bot'i gabariidid ei suurenenud.

Lisatud uued funktsioonid kasutajale.

uus funktsioonbasic analoogkommentaar
set_dirDIRx
set_bitOUTx
get_bitINx
pausePAUSEajaühik 10 uS
timePULSINajaühik 10 uS
freqFREQOUTkestvusühik 10 uS, sagedusühik 1 Hz
auto_loadolenevalt sisendist paneb autoload biti 1 või 0 või väljastab väärtuse hetkel

esmaspäev, 18. veebruar 2013

Servomootor ja teised

Esimene katse näitas, et servod töötavad ka 3.3V impulsiga. CRServo-v2.2.pdf - min juhtpinge - 3.3V ja min mootori pinge 4V.

Väike pildike ka signaalist
Tarkvaraline signaali genereerimine ei sobinud, kasutusele tuli Timer - xps_timer.pdf

QTI sensor - toimib ka 3.3 V pealt. Manuaal - qtilinesensorrev1.pdf

Fotodiood (mark teadmata :P) - läbi häda töötab 3.3V peal, läbi häda ...

reede, 15. veebruar 2013

SDRAM

Tundub, et selle SDRAM kasutuselevõtuga pole XuLA puhul veel keegi tegelenud :( Selline vastus siis listist - http://tech.groups.yahoo.com/group/xsboard-users/message/4043


>> Does anyone have a working example where Microblaze is connected with SDRAM ?

I haven't done this yet, nor seen anyone else do it.
-- 
Dave Vandenbout / XESS Corp.


kolmapäev, 13. veebruar 2013

Demo - veebruar

11. veebruar - tehtud tööde demo - testkomplekt montaaziplaadil ja BotCommander

Ülesande püstitus ei muutunud :)

Edasised tööd
  • kaks erinevat reset'i
    • hardware reset - flashist loetakse kogu bitstream uuesti, bootloader jääb kasutaja koodi ootele
    • protsessor reset - mb reseti puhul kontrollida, kas kasutaja kood juba olemas mälus, kui jah siis jätkab koheselt kasutaja koodi täitmist, vastasel juhul jääb koodi ootele. lahendus - bootloader paneb lipukese püsti BRAM'i
    • eraldi valgusdiood, mis näitab, kas kasutaja kood on mälus või mitte
  • alustada prototüübi kokkupanemist, bluetooth adapteriks valitud Adeunis ARF7678AA
  • BASIC käsud üle vaadata - FREQOUT, PULSOUT, PAUSE jne. implementeerimine, kas siis funktsioonid või lahendada riistvaras
  • olemasolevad näidisülesannetele teha C vaste - http://petski.tainas.ee/?page_id=228
  • toide ... 5V versus 3.3V - kas on vaja asenda plaadipealne pingeregulaator ? servo ja andurite toimimine ?
  • kompileerimine - kontrollid kas kasutaja programm saab kasutada bootloaderi heap'i
  • mälu - kui sdram kasutada ei saa siis teha bootloaderile ja kasutaja programmile ühine mäluruum ja anda kasutaja programmile maksimaalne osa, lscript.ld abil piiramine
  • teha võrdlus BASIC Stamp'i ja prototüübi voolutarbe kohta
  • BotCommander pakendada ühte .jar'i - kompilaator kaasa vöi ikkagi Xilinx ISE eeldus ?

esmaspäev, 4. veebruar 2013

BotCommander

Alustatud siis BotCommander'ga. Kirjutatud Java's. Koosneb järgmistest osadest -

  • terminal
  • editor + kompilaator
  • konfigureerimine


Terminal

Järjestikliidesega suhtlemise võimalused Javas

  • Java Communications API - toetatud platvormid - Solaris, Linux (32-bit)
  • RxTx - toetatud platvormid - Windows (32-bit), Linux (32-bit)
  • jSSC - toetatud platvormid - Windows, Linux, MacOSX, Solaris - kõikidel platvormidel on toetatud 32/64-bit
Valik oli jSSC.

Terminal võimaldab suhelda nii alglaaduriga kui ka kasutaja programmiga. Koostöös alglaaduriga on võimalik mällu laadida kompileeritud programm ja see käivitada.


Editor

Minimalistlik editor koodi kirjutamiseks, tõeliselt minimalistlik :)


Kompilaator

  • -nostartfiles option
  • startup kood puudub, sisenemispunktiks on otse main funktsioon
  • lihtsustatud linker fail

reede, 25. jaanuar 2013

Riistvara

Millest peaks siis koosnema riistvaraline osa

  • protsessor - MicroBlaze, tundub mõistlik lisada sinna ka riistvaraline ujupunktarvutus
  • mälu booloaderile - BRAM,16k - peaks vähemaga hakkama saama
  • konsool - max kiirus testida
  • väline mälu - koht kuhu laadida kasutaja programm - XuLA peal oleva SDRAM ühendamine osutus keerulisemaks kui algus tundus, netist leiab ainult kaeblemist :S Alternatiiv 16k BRAM'i
  • sisend-väljund viigud bot'i jaoks
  • timer, counter, mootori juhtimine riistvaras, analoog sisendid kasutusele jms. ?

momendil siis püüan tööle saada välist mälu, alla anda veel vara

teisipäev, 8. jaanuar 2013

Eesmärgi täpsustus

vaatenurk pärast vestlust
  • Bot'il asendada BASIC Stamp XuLA'ga
  • XuLA peal MicroBlaze
  • MicroBlaze programmi laadimine juhtmevabalt - Bluetooth sobib
  • Kompileerimiseks ja üleslaadimiseks oma kasutajaliides - kasutajale asi maksimaalselt lihtsaks teha



Mõtlemiseks ...

bootloader
  • tarkvaraline - katkestuse koodi muutmine ?
  • riistvaraline
erinevad kompilaatorid ... puuduvad. on ainul Xilinx enda omad, nende source http://wiki.xilinx.com/mb-gnu-tools http://xilinx.wikidot.com/mb-gnu-tools git://git.xilinx.com/microblaze-gnu.git

MB alternatiivid ? Suurt mõtet pole, sest aktiivselt neid ei arendata.


Test

Riistvara - MicroBlaze, konsooliks BT

Sinna kirjutasime tarkvara mis võimaldas

  • mälupesa lugeda
  • mälupessa kirjutada
  • jätkata programmi tööd suvaliselt aadressilt - jätkamine aadressilt 0 == tarkvaraline reset :)

Kokkuvõte - tarkvaraline alglaadur on teostatav

kolmapäev, 19. detsember 2012

Bot ...

Alusplaadiks on Board of Education USB Rev D ja selle peal pesitseb BS2 Rev J.

Pisike testprogramm BASICus tehtud - kõik funktsioneerib normaalselt

kolmapäev, 12. detsember 2012

Juhtmevabalt

Robotit peab olema võimalik programmeerida juhtmevabalt mis tahes tehnoloogiat kasutades. Esialgne ülesanne oleks siis uurida turul võimalikke seadmeid (BT, Wifi, RFID vms) ning koostada nende kohta tabel, kus siis kajastuks hind, mõõtmed, energiatarve, sobivus FPGAga jne. Oluline on, et seade mahuks mugavalt robotile ning ei tõmbaks 2 sekundida akusid tühjaks ja oleks FPGAga liidestatav. Kui leida veel parameetreid seadmete iseloomustamiseks siis see on ainult kasuks, kuna see lihtsustab lõpliku valiku tegemist.



Valikud =>

Tehnoloogia

  • WiFi - vajab olemasolevat WiFi võrku
  • Bluetooth - vajab Bluetooth moodulit arvutis
  • ZigBee - vajab lisaseadet arvutile

Riistvara


  • USB sisend - vajalik uC mis võimaldaks USB Host funktsionaalsust
  • uC vabad viigud - vajalik olemasoleva firmware täiendamine
  • JTAG sisend - vajalik uC juhtmevaba mooduli ja JTAG liidese sobitamiseks

Tarkvara konfiguratsiooni laadimiseks

  • Python - mitte kõigil operatsioonisüsteemidel ei ole python vaikimisi installeeritud
  • Java - JVM on vaikimisi installeeritud enamikel arvutitel
  • C/C++ - eraldi kompileeritud kood erinevate platvormide jaoks

reede, 7. detsember 2012

Testid

Lihtne VHDL

valgusdioodide ja lülitite komplektiga kõik viigud kontrollitud, paar viiku oli kiirustades jootmata jäänud

HostIO ja python

sama VHDL mis eelmises testis, valgusdioodide väärtused HostIO abil ka arvutisse.

arvutis (MacOSX) oli python script mis selle vastu võttis. oluline oli viimase libusb install

MicroBlaze Micro Controller System (MCS)

maksimaalne mälu 32k, rohkem XuLA peale ei mahu

tegime komplekti:
  • sisend - lülitid
  • väljund - valgusdioodid
  • konsool - serial ühendus üle BlueToothi
välja nägi installatsioon selline :)

Analoogsisendite kasutamine

vajab veel uurimist ... http://tech.groups.yahoo.com/group/xsboard-users/files/ ja sealt manus xula_analog_io.tgz

neljapäev, 6. detsember 2012

Algus

Jutul käidud, et siis alguskuupäevaks märgime 29 november 2012.

Järgmisel kohalkäigul susati pihku XuLA-200 millele tuli samas ka jalad külge tinutada. Tulevane ohver paistis esmasel vaatamisel selline isend olevat - http://www.parallax.com/go/boebot

Jutu järgi sellised eesmärgid - BASIC Stamp asendada, et saaks:

  • juhtimine puhtas VHDL'is
  • softcore prose kasutamine - programmid näiteks C's
  • üle BlueToothi programmeerimine


XuLA dokumendid, skeemid jne. - https://github.com/xesscorp

UCF file alustuseks - XuLA.ucf


Uue projekti alustamisel:

  • Family => Spartan3A ...
  • Device => XC3S200A
  • Package => VQ100
  • Speed =>  -4
  • Bitstream => Process Properties => Configuration Options => Unused IOB Pins => Float
  • Bitstream => Process Properties => Startup Options => FPGA Start-Up Clock => JTAG Clock