Archive for the ‘programmering’ Category

Java Virtual machinemtil Atmel ATmega8

nanoVM er java virtual machine til atmel ATmega8 processorer og atmel’s avr processor serie.

Faktisk kan nanoVM bruges med mange andre processorer også. nanoVm er dog ikke en komplet/fuld fungerende java ‘ting’ men de mest almindelige kommandosæt kan bruges, hvilket letter programmeringen af singlechip processorer en hel del. (istedet for assembler elle c programmering) Der er dog nogle begrænsninger ved brug af nanoVM bla. kører koden langsommere end en optimeret c. Det smarte er dog at man kan koncentrere sig om opgaven i stedet for at skulle tænke i hardware/processor osv. man kan hoppe lige ind i den sjove del: måle og styre det man har behov for og lyst til.

Læs mere her på engelsk side

http://www.embedds.com/

http://www.uchobby.com/index.php/2007/06/04/free-arduino-microcontroller-kits/

arduino print med ethernet for web adgang http://community.pachube.com/?q=node/112

arduine wthernet compatipelt addon print http://www.nuelectronics.com/estore/index.php?main_page=product_info&cPath=1&products_id=4

atmel print:
billigste er i england http://www.nuelectronics.com/estore/

ethenet print med arduine, et case eksempel http://www.nuelectronics.com/estore/?p=12

http://www.uchobby.com/index.php/2007/06/04/free-arduino-microcontroller-kits/

http://arduino.cc/

http://www.electrokit.se/

http://arduino.cc/en/Main/ArduinoBoardNano

http://shop.conrad.se/websale7/C-Control.htm?Ctx={ver%2f7%2fver}{st%2f3ea%2fst}{cmd%2f0%2fcmd}{m%2fwebsale%2fm}{s%2fconrad-swe%2fs}{l%2f01-aa%2fl}{mi%2fSHOP_AREA_17198%2fmi}{type%2fextern_search%2ftype}{fc%2fx%2ffc}{p1%2f7cb6ec7144d143f2923d21fe54b1099c%2fp1}{md5%2f87aff2a7bd4da7623c67a0fd19a1babe%2fmd5}

atmega88 http / avr web server http://www.tuxgraphics.org/electronics/200611/article06111.shtml

arduino atmel ctrl print tutorials http://www.ladyada.net/learn/arduino/
Det er relativt let at overføre data wireless, der findes ganske enkelt små chip der kan gøre det for os f.esk.
rs232 til wireless fra lantronix

her kan arduino printet købes for kun 25 euro http://www.watterott.com/

  • Share/Bookmark

gratis source code online

sourcecodeonline.com
asp tutorials online

virkelig cool site med gratis kode til alle mulige sprog, anbefales

  • Share/Bookmark

hvordan indsættes grafer i wordpress

Der er flere muligheder for at indsætte grafer der viser data fra mysql database. Her i bloggen er det data fra solardatalogger der skal vises i realtid og med mulighed for af forskellige views af tidsinterval, valg af hvilke data der ønskes vist i samme kordinat system mm.

Fandt en meget spændende mulighd som jeg har valgt at arbejde videre med. Google har en graph api.
Kurven her under kaldes med denne ‘kommando’: http://chart.apis.google.com/chart?cht=lxy&chd=t:10,20,40,80,90,95,99|20,30,40,50,60,70,80|-1|5,25,45,65,85&chs=500×400&chl=Hello|World|woee

Så nu handler det om at lave et php script der kan hente bruger ønsker og lave de rette træk fra mysql databasen og så kalde google graph api som den helst vil have det.

google har lavet en class så det er lettere at lave dynamisk indhold fra mysql database med google graph api

google graph api links:

http://blog.olindata.com/2009/02/using-the-google-graph-api-with-mysql-stored-functions/

UPDATE 070909:

google graph api er ikke helt så godt dokumenteret og har vist et par bugs så vidt jeg kan finde frem til, så jeg har valgt at droppe denne api og fuundet noget der ser en del federe ud ;)

Det er am flasch charts:

amchart.com

mysql code snip for amchart

php library for amcharts

  • Share/Bookmark

beolink 1000 kode sniffer

For en del år siden lavede jeg en b&o link kode sniffer så jeg kunne bruge min beolink 1000 fjernbetjening til at styre alt muligt. Bla en billig prosonic video ;)

Her er asm51 koden til 8031 processorer, eller atmels processorer idag.

Denne kode kan bruges til at styre en video, eller idag noget andet, idet video jo er YT.

;***************************************************************************** ; BEOLINK 1000 DEBUGGER. ; PROGRAMMET ER UDVIKLET TIL L’SNING AF PULSERNE P UDGANGEN AF SCART STIKKET, ; FOR STYRING AF VIDEO. ; PBEGYNDT : 3-1-91 ; BDC 8031 TEST 2 ; 3-2-91 INDFRT AUTO MESURE ROUTINE TIL MLING AF BAUD RATE ;*****************************************************************************     DSEG AT 0000H  MEMSIZE   :  DS   1  ;       HVOR MANGE BYTE SKAL BEODATA DELES I ( 6 BYTES)  MEMCOUNT  :  DS   1  ;       BYTE T’LLER  WA40USEC  :  DS   1  ;  WA1_6MSEC :  DS   1  ;  WA4MSEC   :  DS   1  ;  WA100MSEC :  DS   1  ; ;  ADDR 000BH RESEVERET AF TIMER0 INTERRUPT     DSEG AT 0010H  BEOCODE   :  DS   6  ;       PLADS TIL SIDSTL’STE DATA FRA BEOLINK  BITCOUNT  :  DS   1  ;       BIT T’LLER  SIDSTE    :  DS   1  ;       SIDSTE DATA I BEOCODE SAMMENLIGNES MED TABEL  BDT       :  DS   1  ;       BYTEDATE UNDER PAKNING  COUNT     :  DS   1  ;       T’LLER TABEL POSITION  WAIT      :  DS   1  ;       VENTE DATA (MAX256uS)  PTLO0     :  DS   1  ;       MLT TIMER DATA TIL TL0  PTHI0     :  DS   1  ;        "     "     "   "  TH0     BSEG AT 000H  F_FLET  :     DBIT     1      ;      SAT NR INTRUPT ROUTINE ER UDFRT 48 gg  BYTEPACK:     DBIT     1      ;      SAT SL’NGE DER NSKES BITPAKNING  RDBEO        BIT      P1.0   ;      L’SNING AF BEODATA P SCARTSTIK  EXT0         BIT      P1.1   ;  EXT1         BIT      P1.2   ;  EXT2         BIT      P1.3   ;  EXT3         BIT      P1.4   ;  EXT4         BIT      P1.5   ;  EXT5         BIT      P1.6   ;  TV_VCRNOT    BIT      P1.7   ;      TV/VIDEO CNTLR BIT                 CSEG AT 0000H                 JMP     INIT                 ORG     000BH                   ;    TIMER 0 INTERRUPT                 JMP     GOON                    ;    HOP TIL UNDER ROUTINE INIT:           ACALL   MESURE                  ;    MLER BAUD RATE START:          MOV     R0,#00                  ; WAONPU:         DJNZ    R0,WAONPU               ;    VAIT TIL PSU OK                 MOV     WAIT,#0FFH              ;  VENT 256uS                 MOV     MEMSIZE,#06             ;  6 BYTE MEMBREDE                 MOV     BDT,#00H                ;  S’TTER ALLE BIT P 0                 MOV     BITCOUNT,#07            ;  UNDLAD 1. STARTBIT                 MOV     R0,#010H                ;  FRSTE ADDR. I BEOCODE                 MOV     MEMCOUNT,#06            ;                 MOV     TMOD,#00000001B         ;  S’TTER TIMER 0 I MODE 0                 MOV     TL0,PTLO0               ;                 MOV     TH0,PTHI0               ;   3,145mS                 clr     ext5                    ; RUN:            JNB     RDBEO,RUN               ;   VENT P STARTBIT                 DJNZ    WAIT,$                  ;                 SETB    ET0                     ;                 SETB    EA                      ;                 SETB    TR0                     ;   STARTER TIMER 0                 CLR     F_FLET                  ;                 CLR     BYTEPACK                ; LOOP:           JBC     BYTEPACK,PACK           ;   1 = HOP PACK                 JBC     F_FLET,FLET             ;   1 = HOP FLET                 JMP     LOOP                    ;       PACK:     DJNZ    WAIT,$                  ;                 ;SETB    P1.7                    ;                 NOP                              ;                 MOV     A,BDT                   ;   FLYTTER INDHOLD BDT TIL ACC.                 MOV     C,RDBEO                 ;                 RLC     A                       ;   FRER CARRY IND I ACC                 MOV     BDT,A                   ;   FLYTTER BYTE TILBAGE I BDT                 ;CLR     P1.7                    ;                 NOP                              ;                 DJNZ    BITCOUNT,LOOP           ;                 MOV     BITCOUNT,#08            ;                 MOV     @R0,BDT                 ;  FLYTTER INDHOLD FRA BDT                                                 ;  TIL DEN ADDR SOM R0 PEGER P                 INC     R0                      ;  FLYTTER PEGEPIND R0 EN OP                 DJNZ    MEMCOUNT,LOOP           ;  S L’NGE MEMCOUNT ER >0                 CLR     EA                      ;    <0 STOPPES INTR.                 CLR     TR0                     ;                 SETB    F_FLET                  ;    OM DATA FINDES I FLET                 JMP     LOOP                    ; ;************************************************ ; ; INTERRUPT ROUTINE HVERT 2,917ms ; ;************************************************ GOON:           MOV     TL0,PTLO0               ;                 MOV     TH0,PTHI0               ;                 PUSH   PSW                      ;                 PUSH   ACC                      ;                 PUSH   B                        ;                 PUSH   DPL                      ;                 PUSH   DPH                      ;                 SETB    BYTEPACK                ; NEXT:           POP    DPH                      ;                 POP    DPL                      ;                 POP    B                        ;                 POP    ACC                      ;                 POP    PSW                      ;                 RETI                            ;   RETUNERER FRA INTR. RUTINE ;************************************************ ; ;  SAMMENLIGNINGS ROUTINE. ;  R0 = ADDR P L’STE DATA FRA BEOLINK (6 BYTES) ;  SIDSTE = INDEHOLDER HVILKEN POSITION I TABEL ; ;************************************************ FLET:           CLR     F_FLET                  ;                 MOV     R0,#010H                ;                 MOV     COUNT,#00               ;                 MOV     MEMCOUNT,#06            ;       LOOP1:    MOV     SIDSTE,@R0              ;                 MOV     A,COUNT                 ;                 CALL    TABEL1                  ;  STOP                 CJNE    A,SIDSTE,NEXT1          ;                 INC     R0                      ;                 INC     COUNT                   ;                 DJNZ    MEMCOUNT,LOOP1          ;                 clr     ext0                    ;                 acall   wait100m                ;                 acall   wait100m                ;                 acall   wait100m                ;                 acall   wait100m                ;                 acall   wait100m                ;                 acall   wait100m                ;                 acall   wait100m                ;                 setb    ext0                    ;                 JMP     START                   ;       NEXT1:    MOV     R0,#010H                ;                 MOV     COUNT,#00               ;                 MOV     MEMCOUNT,#06            ;       LOOP2:    MOV     SIDSTE,@R0              ;                 MOV     A,COUNT                 ;                 CALL    TABEL2                  ;  START                 CJNE    A,SIDSTE,NEXT2          ;                 INC     R0                      ;                 INC     COUNT                   ;                 DJNZ    MEMCOUNT,LOOP2          ;                 clr     ext1                    ;                 acall   wait100m                ;                 acall   wait100m                ;                 acall   wait100m                ;                 acall   wait100m                ;                 acall   wait100m                ;                 acall   wait100m                ;                 acall   wait100m                ;                 setb    ext1                    ;                 JMP     START                   ;       NEXT2:    MOV     R0,#010H                ;                 MOV     COUNT,#00               ;                 MOV     MEMCOUNT,#06            ;       LOOP3:    MOV     SIDSTE,@R0              ;                 MOV     A,COUNT                 ;                 CALL    TABEL3                  ;  F.FORWARD                 CJNE    A,SIDSTE,NEXT3          ;                 INC     R0                      ;                 INC     COUNT                   ;                 DJNZ    MEMCOUNT,LOOP3          ;                 JMP     START                   ;       NEXT3:    MOV     R0,#010H                ;                 MOV     COUNT,#00               ;                 MOV     MEMCOUNT,#06            ;       LOOP4:    MOV     SIDSTE,@R0              ;                 MOV     A,COUNT                 ;                 CALL    TABEL4                  ;  REW                 CJNE    A,SIDSTE,NEXT4          ;                 INC     R0                      ;                 INC     COUNT                   ;                 DJNZ    MEMCOUNT,LOOP4          ;                 JMP     START                   ;       NEXT4:    MOV     R0,#010H                ;                 MOV     COUNT,#00               ;                 MOV     MEMCOUNT,#06            ;       LOOP5:    MOV     SIDSTE,@R0              ;                 MOV     A,COUNT                 ;                 CALL    TABEL5                  ;  TURN                 CJNE    A,SIDSTE,NEXT5          ;                 INC     R0                      ;                 INC     COUNT                   ;                 DJNZ    MEMCOUNT,LOOP5          ;                 JMP     START                   ;       NEXT5:    MOV     R0,#010H                ;                 MOV     COUNT,#00               ;                 MOV     MEMCOUNT,#06            ;       LOOP6:    MOV     SIDSTE,@R0              ;                 MOV     A,COUNT                 ;                 CALL    TABEL6                  ;  GOTO                 CJNE    A,SIDSTE,NEXT6          ;                 INC     R0                      ;                 INC     COUNT                   ;                 DJNZ    MEMCOUNT,LOOP6          ;                 JMP     START                   ;       NEXT6:    MOV     R0,#010H                ;                 MOV     COUNT,#00               ;                 MOV     MEMCOUNT,#06            ;       LOOP7:    MOV     SIDSTE,@R0              ;                 MOV     A,COUNT                 ;                 CALL    TABEL7                  ;  OFF                 CJNE    A,SIDSTE,NEXT7          ;                 INC     R0                      ;                 INC     COUNT                   ;                 DJNZ    MEMCOUNT,LOOP7          ;                 JMP     START                   ;       NEXT7:    MOV     R0,#010H                ;                 MOV     COUNT,#00               ;                 MOV     MEMCOUNT,#06            ;       LOOP8:    MOV     SIDSTE,@R0              ;                 MOV     A,COUNT                 ;                 CALL    TABEL8                  ;  A/V                 CJNE    A,SIDSTE,NEXT8          ;                 INC     R0                      ;                 INC     COUNT                   ;                 DJNZ    MEMCOUNT,LOOP8          ;                 JMP     START                   ;       NEXT8:    MOV     R0,#010H                ;                 MOV     COUNT,#00               ;                 MOV     MEMCOUNT,#06            ;       LOOP9:    MOV     SIDSTE,@R0              ;                 MOV     A,COUNT                 ;                 CALL    TABEL9                  ;  STORE                 CJNE    A,SIDSTE,NEXT9          ;                 INC     R0                      ;                 INC     COUNT                   ;                 DJNZ    MEMCOUNT,LOOP9          ;                 JMP     START                   ;       NEXT9:    MOV     R0,#010H                ;                 MOV     COUNT,#00               ;                 MOV     MEMCOUNT,#06            ;       LOOP10:   MOV     SIDSTE,@R0              ;                 MOV     A,COUNT                 ;                 CALL    TABEL10                 ;  <                 CJNE    A,SIDSTE,NEXT10         ;                 INC     R0                      ;                 INC     COUNT                   ;                 DJNZ    MEMCOUNT,LOOP10         ;                 JMP     START                   ;       NEXT10:   MOV     R0,#010H                ;                 MOV     COUNT,#00               ;                 MOV     MEMCOUNT,#06            ;       LOOP11:   MOV     SIDSTE,@R0              ;                 MOV     A,COUNT                 ;                 CALL    TABEL11                 ;  >                 CJNE    A,SIDSTE,SLUT           ;                 INC     R0                      ;                 INC     COUNT                   ;                 DJNZ    MEMCOUNT,LOOP11         ;                 SETB    EXT3                    ;                 JMP     START                   ; SLUT:                 ACALL   WAIT100M                ;                 ACALL   WAIT100M                ;                 JMP     START                    ; ;************************************************* ; ;     S’TTER VIDEO CONTROL PORT TIL 12V ;     ELLER TV 0V. ; ;************************************************* VCR:            CLR     TV_VCRNOT                 ;  LOW = VIDEO                 RET TV:             SETB    TV_VCRNOT                 ;  HI = TV                 RET ;************************************************* ; ;     MLE ROUTINE. MLER MELLEM 2 F0RSTE BIT ;     OG S’TTER TIMER 0 OP. ;     INPUT = P1.0 ; ;*************************************************       MESURE:   MOV     TMOD,#00000001          ;  S’TTER TIMER0 I TIMER MODE1                 MOV     TL0,#00H                ;                 MOV     TH0,#00H                ;                 JNB     RDBEO,$                 ;                 SETB    TR0                     ;                 JB      RDBEO,$                 ;                 JNB     RDBEO,$                 ;                 CLR     TR0                     ;                 MOV     PTLO0,TL0               ;                 MOV     PTHI0,TH0               ;                 MOV     A,#0FFH                 ;                 SUBB    A,TL0                   ;                 MOV     PTLO0,A                 ;                 MOV     A,#0FFH                 ;                 SUBB    A,TH0                   ;                 MOV     PTHI0,A                 ;                 RET                             ; ;************************************************ ; ;     TABELER TIL FLET ROUTINE. ; ;************************************************       TABEL1:   INC     A                       ;                 MOVC    A,@A+PC                 ;                 RET                             ;                 DB      061H                    ;  DATA                 DB      0AAH                    ;  FOR                 DB      0A6H                    ;  TRYK                 DB      069H                    ;  P                 DB      065H                    ;  STOP                 DB      088H                    ;  TAST       TABEL2:   INC     A                       ;                 MOVC    A,@A+PC                 ;                 RET                             ;                 DB      061H                    ;  DATA                 DB      0AAH                    ;  FOR                 DB      0A6H                    ;  TRYK                 DB      069H                    ;  P                 DB      066H                    ;  START                 DB      044H                    ;  TAST       TABEL3:   INC     A                       ;                 MOVC    A,@A+PC                 ;                 RET                             ;                 DB      061H                    ;  DATA                 DB      0AAH                    ;  FOR                 DB      0A6H                    ;  TRYK                 DB      069H                    ;  P                 DB      066H                    ;  F.FORWARD >>                 DB      088H                    ;  TAST       TABEL4:   INC     A                       ;                 MOVC    A,@A+PC                 ;                 RET                             ;                 DB      061H                    ;  DATA                 DB      0AAH                    ;  FOR                 DB      0A6H                    ;  TRYK                 DB      069H                    ;  P                 DB      069H                    ;  REW <<                 DB      088H                    ;  TAST       TABEL5:   INC     A                       ;                 MOVC    A,@A+PC                 ;                 RET                             ;                 DB      061H                    ;  DATA                 DB      0AAH                    ;  FOR                 DB      0A6H                    ;  TRYK                 DB      066H                    ;  P                 DB      0A5H                    ;  TURN                 DB      088H                    ;  TAST       TABEL6:   INC     A                       ;                 MOVC    A,@A+PC                 ;                 RET                             ;                 DB      061H                    ;  DATA                 DB      0AAH                    ;  FOR                 DB      0A6H                    ;  TRYK                 DB      069H                    ;  P                 DB      0AAH                    ;  GOTO                 DB      088H                    ;  TAST       TABEL7:   INC     A                       ;                 MOVC    A,@A+PC                 ;                 RET                             ;                 DB      061H                    ;  DATA                 DB      0AAH                    ;  FOR                 DB      0A6H                    ;  TRYK                 DB      06AH                    ;  P                 DB      096H                    ;  OFF                 DB      088H                    ;  TAST       TABEL8:   INC     A                       ;                 MOVC    A,@A+PC                 ;                 RET                             ;                 DB      061H                    ;  DATA                 DB      0AAH                    ;  FOR                 DB      0A6H                    ;  TRYK                 DB      059H                    ;  P                 DB      055H                    ;  A/V                 DB      044H                    ;  TAST       TABEL9:   INC     A                       ;                 MOVC    A,@A+PC                 ;                 RET                             ;                 DB      061H                    ;  DATA                 DB      0AAH                    ;  FOR                 DB      0A6H                    ;  TRYK                 DB      06AH                    ;  P                 DB      099H                    ;  STORE                 DB      044H                    ;  TAST       TABEL10:  INC     A                       ;                 MOVC    A,@A+PC                 ;                 RET                             ;                 DB      061H                    ;  DATA                 DB      0AAH                    ;  FOR                 DB      0A6H                    ;  TRYK                 DB      06AH                    ;  P                 DB      055H                    ;  <                 DB      044H                    ;  TAST       TABEL11:  INC     A                       ;                 MOVC    A,@A+PC                 ;                 RET                             ;                 DB      061H                    ;  DATA                 DB      0AAH                    ;  FOR                 DB      0A6H                    ;  TRYK                 DB      06AH                    ;  P                 DB      055H                    ;  >                 DB      088H                    ;  TAST ;_______________________________________________________________________ ; ;  WAIT 40 u SEC RUTINE ; ;  WA40USEC: REGISTERET BRUGES TIL 40 u SEC WAIT RUTINE ;_______________________________________________________________________ ; WAIT40U:        MOV     WA40USEC,#20H   ; WAIT40U1:       DJNZ    WA40USEC,WAIT40U1 ;                 RET                     ; ;_______________________________________________________________________ ; ;  WAIT 1,6 M SEC RUTINE ; ;  WA1_6MSEC: REGISTERET BRUGES TIL 1,6 m SEC WAIT RUTINE ;_______________________________________________________________________ ; WAIT1_6M:       MOV     WA1_6MSEC,#0FFH ; WAIT1_6M1:      PUSH    ACC             ;                 POP     ACC             ;                 NOP                     ;                 DJNZ    WA40USEC,WAIT40U1 ;                 RET                     ; ;_______________________________________________________________________ ; ;  WAIT 4 m SEC RUTINE ; ;  WA4MSEC: REGISTERET BRUGES TIL 4m SEC WAIT RUTINE ;_______________________________________________________________________ ; ; WAIT4M:         MOV     WA4MSEC,#0FFH   ;                 PUSH    ACC             ;                 PUSH    B               ; WAIT4M1:        MUL     AB              ;                 MUL     AB              ;                 MUL     AB              ;                 NOP                     ;                 NOP                     ;                 DJNZ    WA4MSEC,WAIT4M1 ;                 POP     B               ;                 POP     ACC             ;                 RET                     ; ;______________________________________________________________________ ; ;  WAIT 100 m SEC RUTINE ; ;  WA100MSEC: REGISTERET BRUGES TIL 100m SEC WAIT RUTINE ;______________________________________________________________________ ; WAIT100M:       MOV     WA100MSEC,#05   ;                 PUSH    ACC             ;                 PUSH    B               ; WAIT100M1:      MUL     AB              ;                 MUL     AB              ;                 MUL     AB              ;                 NOP                     ;                 call    wait4m                 NOP                     ;                 DJNZ    WA100MSEC,WAIT100M1 ;                 POP     B               ;                 POP     ACC             ;                 RET                     ;                 END                                     ;
  • Share/Bookmark
Tilmeld til Nørd indlæg
Vind Nørd

Bygge guide til mini vindmøller. Incl. software til beregning af hvilke dc motorer der kan yde nok til det kan svare sig at bygge vindmølle med dem. Software kan også bruges til vawt møller. + De-sulfatterings guide til bly akkumulatorer, med el diagram til desulfatter. Forum og bonus.
Nørd Rss Feeds
byg en solcelle lav el selvSolar arduino open source hardware til styring og dataopsamlingArduino
Vind byg et stoker fyr selvStoker
peltier elementer er fremtidens el produktion af varmePeltier neorufeedback kan bruges til mental fitness, abonner på hjerne feedHjerne
Sprog Nørd
Nørd Søger

Vil du have teksten på vores hjemmeside læst højt, kan du hente et lille gratis program på www.adgangforalle.dk - (Åbner nyt vindue)

Vind Nørd
Et kloarkrør på 1 meter, en gammel dc motor, lidt fittings og en 1000 watts husstandsmølle er klar. Alternative energikilder er klar nu og her. Tilmeld dig her og få login til kodeords beskyttede indlæg.

E-mail:

Nørd elektronik guide

Jestine Young underviser i at reparere på alle former for elektronik. Se mere om indhold i ebogs serien her.