Forfatterarkiv: kjell

DLG hale, første form

Da fikk jeg en fin 3D modell av en horisontalhale av Thomas

Jeg tegnet så en form i all hast for å teste ut å frese den i Prolab65. Modellen ble ganske fin, men jeg rotet til et forsøk på å være lur i framkanten. Rett foran framkanten er det en forhøyning som ser ganske lurvete ut. Den skal fikses for neste gang.

Hvis du klikker på bildene så dukker det opp noen kjempestore jpeg-bilder. Her ser du ganske tydelig fresesporene, men husk at jeg har manipulert bildet for å gjøre dem ekstra tydelig. De er umulig å kjenne med fingrene, og vanskelig å se med blotte øye.

Jeg freste ikke ut styrehullene i denne omgang da disse blir ganske dype. Denne formen skal uansett ikke brukes, så det var greit å ikke sløse bort for mye materiale. Total kostnad for denne formen er ca 15kr, men hvis jeg hadde laget 12mm dype hull, så vill kostnaden vært ca 50kr.

Nå er det bare å sette i gang med pussing og polering, så får vi se hvor bra det kan bli.

OpenESC

Tenkte bare å henlede oppmerksomheten på et ganske interessant prosjekt som startet for noen få uker siden.

https://groups.google.com/forum/?fromgroups#!forum/openesc

Det er ikke akkurat overskudd av fartsregulatorer til børsteløse motorer som snakker serieinterface (I2C, CAN, SPI o.l). Dette har en fyr ved navn Jason lyst til å gjøre noe med. Første prototype er rett rundt hjørnet. Bare å hive seg på hvis man er interessert i å bidra.

Materiale til former

Corian (materiale brukt i kjøkkenbenkeplater) er svært populært å frese ut former fra. Sannsynligvis fordi det er svært stabilt, og rimelig lett å frese. Det er også visstnok ganske enkelt å få bra finish. Han fyren som støper DLG-er som Bernt nevnte i forrige innlegg bruker nettopp det.

Men ….

Jeg sjekket priser.

  • Det ser ut som 12mm Corian plater på 0.7m bredde ligger på ca 5000.- pr meter.
  • Til sammenlikning koster 50mm tykk Prolab65, som jo er laget for bl.a. dette formålet, ca 1900.- 1800.- for samme areal. 25mm 30mm tykk koster akkurat halvparten nesten like mye.
  • Samme areal med 15mm aluminium koster omtrent 3200.-

Ser ut som om Corian er ganske uaktuelt.

Flyttet bloggen

Jeg flyttet nettopp bloggen min fra lentic.net.

Hvorfor?

–  Jeg har lenge hatt lyst til å hanke inn dette domenet (www.oppfinneriet.no)

–  Det er flere som ønsker å bidra litt

–  Rendyrke teknisk hobby og prosjekter.

Ambisjonene er akkurat passe. Denne siden skal ikke generere noe trafikk å snakke om (med mindre det bare skjer av seg selv). Det er utelukkende for å samle på erfaringer og gode ideer oss deltakere i mellom.

 

Kapasitiv lineær enkoder

Jeg har lenge drodlet litt om å lage custom servoer. Ikke fordi jeg tror jeg kan slå kjøpeservoer på ytelse, det er mer for å kunne lage noe som passer perfekt til sitt bruk. Det gjelder spesielt små servoer med litt spesiell formfaktor.

Det største problemet med dette er å lage gode enkodere som indikerer posisjonen til servoen. En essensiell del av at servosystem. På gamle kjøpeservoer ble dette ordnet med et pot-meter. Ganske enkelt, men ikke veldig fleksibelt. Hva som gjøres i moderne servoer vet jeg ikke, men det er mange muligheter. Problemet er å finne en løsning som både er bra, billig og mulig å mekke selv.

Litt inspirert av min venn Bernt sitt hovedprosjekt gikk tankene i retning av variabel kapasitans. Bernt brukte en spesiell ADC krets for å måle kapasitans, samt at giveren var roterende. Jeg ønsker å unngå en ekstra komponent samt bruke en lineær giver.

Løsningen min, som jeg tenker å teste ut ganske snart, er å lage giveren av et messingrør med innerdiameter på 2 eller 3mm. Inni dette røret støper jeg plast, som jeg borer ut et 1mm hull gjennom. I dette hullet kan man dra en 1mm messingstang. Kapasitansen øker jo lenger inn messingstangen føres.

For å måle denne kapasitansen tenker jeg å bruke en mikrokontroller med innebygget analog komparator. Mikrokontrolleren trengs uansett for å kjøre reguleringssløyfe, samt kommunikasjon. Komparatoren settes opp som en oscillator der frekvensen varierer med C. Hvis man skulle måle absoluttverdier, så måtte en god del nøkkelkomponenter være av høy presisjon, men i dette tilfellet er det kun relativ nøyaktighet, eller presisjon, vi er ute etter. Da blir presisjonen bestemt av jitter på MCU klokka og jitter på den nevnte oscillatoren. Oppløsningen bestemmes av hvor lenge man teller for å bestemme frekvensen.

Hvis dette ikke gir helt mening, så ta en titt på skissen under (klikk for større versjon).

 

Så tester vi litt.

Aller først er det greit å teste at systemet fungerer fra kommandolinjen. Last ned mitt lille Blink-LED-program, så har du noe som skal virke (på STM32F4Discovery vel og merke).

  1. Last ned ch.elf
  2. Plugg inn STM32F4Discovery kortet med USB mini kontakten (Den største). Dette er USB kontakten til ST-Link delen på kortet.
  3. Start to terminalvinduer.
  4. I den ene terminalen:
    > st-util
  5. Det skal da dukke opp noe slikt som:2012-06-19T23:23:25 INFO src/stlink-usb.c: — exit_dfu_mode
    2012-06-19T23:23:25 INFO src/stlink-common.c: Loading device parameters….
    2012-06-19T23:23:25 INFO src/stlink-common.c: Device connected is: F4 device, id 0x10016413
    2012-06-19T23:23:25 INFO src/stlink-common.c: SRAM size: 0x30000 bytes (192 KiB), Flash: 0x100000 bytes (1024 KiB) in pages of 16384 bytes
    Chip ID is 00000413, Core ID is  2ba01477.
    KARL – should read back as 0x03, not 60 02 00 00
    init watchpoints
    Listening at *:4242…
  6. I det andre terminalvinduet
    > arm-none-eabi-gdb
    Prompten vil da endre seg til (gdb)
  7. Koble debuggeren til gdb-serveren (st-util)
    (gdb)  target extended-remote *:4242
    Remote debugging using :4242
    0x08000340 in ?? ()
  8. Reset debuggeren
    (gdb) monitor reset_halt
  9. Last inn EFL fila
    (gdb) load ch.elf
    Loading section startup, size 0x188 lma 0x8000000
    Loading section .text, size 0x11d8 lma 0x8000190
    Start address 0x8000190, load size 4960
    Transfer rate: 4 KB/sec, 2480 bytes/write.
  10. Start programmet
    (gdb) run
    Svar ja på spørsmål.
  11. Nå skal den oransje, grønne og blå lysdioden blinke.

STM32 utvikling på Mac (og forsåvidt Linux)

Da prøver jeg meg på å beskrive oppsettet mitt for å skrive kode og debugge STM32F4 vha en Mac. Det kan hende jeg har glemt noe, eller at jeg allerede hadde installert noen av avhengighetene, men da er det fint om dere sier i fra, så kan jeg rette opp.

Denne beskrivelsen vil også fungere på Linux, med den lille forskjellen at systemet for å installere pakker heter noe annet. Alle stedene jeg bruker kommandoen «port», så må den byttes ut med passende kommando på ditt system (f.eks. «apt-get»). Og bare så det er nevnt, hvis du ikke klarer å bruke terminal har du tapt allerede før start, så fyr det opp med en gang. Det er forresten også greit å sjekke om pakkene allerede er installert før man kjører en «port install … »

  1. ** Kun Mac ** Det aller første som må gjøres installere XCode fra apple. Gå inn i App store og søk. Det tar laaang tid.
  2. ** Kun Mac ** Det neste er å legge inn Macports. Uten den blir dette en uvirkelig slitsom jobb.
  3. Installer GIT
    >  sudo port install git-core
  4. Installer autoconf
    >  sudo port install autoconf
  5. Installer libusb 1.0
    >  sudo port install libusb
    >  sudo port install libusb-devel
  6. Hent programvaren som snakker med ST-Link debuggeren
    >  git clone https://github.com/texane/stlink stlink.git
  7. Kompiler denne programvaren
    >  cd stlink.git
    >  ./autogen.sh
    >  ./configure
    >  make
    >  sudo make install
  8. Sjekk om applikasjonene «st-flash» og «st-util» finnes på systemet ditt.
  9. ** kun Linux **  Sett opp udev rules. Dette gør at du slipper å kjøre st-util som admin
    >  cp 49-stlinkv*.rules /etc/udev/rules.d/
    >  sudo udevadm control –reload-rules
  10. Last ned GNU ARM toolchain fra Yagarto (Mac og Win), eller Codesourcery Lite (Linux, velg bin fil).
  11. ** Kun Mac **  Installer Yagarto. Dette er i praksis å plassere den nedlastede filen der du ønsker å installere, og så dobbelklikke på den. Den pakker bare ut alle filene. Jeg har valgt å legge den på
    /Developer/yagarto
  12. ** Kun Linux ** Installer Codesourcery fra bin fil. Last ned «getting-started.pdf» og følg instruksjonene.
  13. Sett opp PATH variablen ved å editere et passende oppstart-script. På min Mac har jeg valgt å legge det til i .profile, så åpne denne med en vanlig teksteditor (f.eks emacs) og legg til
    export PATH=/Developer/yagarto/yagarto-4.6.2/bin:$PATH
    export PATH=/Developer/yagarto/yagarto-4.6.2/tools:$PATH
  14. Åpne en ny terminal og sjekk om du kan starte en haug med programmer som starter med «arm-none-eabi-«, f.eks «arm-none-eabi-gcc»
  15. Last ned Eclipse, eller mer presist, den som heter «Eclipse IDE for C/C++ Developers (includes Incubating components)»
  16. Legg Eclipse på et passende sted, f.eks i Application katalogen (kopier hele katalogen du lastet ned inn dit)
  17. Start Eclipse og gå inn på menyen «Help->Install new software …»  (Dette må du gjenta noen ganger da Eclipse insisterer på omstart hver gang du installerer noe)
  18. Installer GNU ARM Eclipse-plugin.
    Trykk på «Add» knappen og skriv inn
    Name:  GNU ARM Eclipse-plugin
    Location:  http://gnuarmeclipse.sourceforge.net/updates
    Velg så «CDT GNU Cross Development Tools» og trykk Next go Finish
  19. Installer Zylin debugger (Eclipse:  Help->Install new software …) ved å fylle inn dette
    Work with:  http://opensource.zylin.com/zylincdt
    Velg «Zylin Embedded CDT» og gå runden med Next, Finish og omstart av Eclipse.

Se så, da tror jeg faktisk alt  som skal installeres er inne. For Windows er installasjonen litt annerledes. Jeg skal ta den i en egen post senere.

Det neste på programmet er å teste at hele oppsettet virker, samt sette opp Eclipse slik at man kan debugge programmer.