Innehållsförteckning:
- Steg 1: Designa projektet
- Steg 2: Välj enheter och komponenter
- Steg 3: Mikrokontrollern
- Steg 4: Skriv PC -programmet
- Steg 5: Bygg kroppen
- Steg 6: Bygg den trådlösa kretsen
- Steg 7: Integrera
- Steg 8: Programkod för mikrokontroller
Video: The Rock: 8 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:47
Denna robot styrs av ett visuellt grundprogram (via serieporten) och kan röra sig i tre olika hastigheter med en pulsbreddsmodulerad (PWM) signal genererad av en PIC -mikrokontroller (16F877). Roboten kan användas i två lägen, "normal kontroll" och "light tracker". I normalt styrläge kan roboten bära föremål i storleken 3 - 18 cm från plats till en annan inom 150 m. I ljusspårläget följer det ljuset i ett mörkt rum. Många sensorer användes, till exempel ljussensorer. lutningssensor, stallströmavkänning, batterinivåavkänning och några gränslägesbrytare och beröringssensorer som används i handen. Den kan hålla sin hastighet konstant när den går på en kulle (lutad) och tänder automatiskt ljuset när det blir mörkt mörkt. För att skydda IC: n kopplar den bort strömmen när den fastnar och handen stannar när den håller något. 4 DC -motorer användes styrda av en PIC -mikrokontroller 16F877 och 3 motorförarkretsar. Det tog cirka 4 månader och kostar cirka 600 $
Steg 1: Designa projektet
i det inledande skedet lämnades en design av projektet. huvudsakligen definiera blockdiagrammet; se figuren.
Ett mer detaljerat kretsdiagram krävs i detta skede, men för att underlätta detta var de identifierade huvudmodulerna: 1. Mikrokontroller 2. Sensorer 3. Motorer 4. Trådlös krets 5. PC -program. En 3D -design gjordes också, se figuren.
Steg 2: Välj enheter och komponenter
I detta skede bör designern välja de enheter och komponenter som krävs för att bygga roboten.
Detta inkluderar: den trådlösa kretsen (MAX232, LM331, FM-sändare och mottagarmoduler), motorer (4 likströmsmotorer), motordrivkrets (H-bro), mikrokontrollern PIC (16F877), batteri, spänningsregulatorer (MC7805), mikrobrytare, Fotoresistorer, Tilt -sensor … etc. Det är viktigt att förstå beräkningsförmågan hos dessa enheter och hur de fungerar tillsammans.
Steg 3: Mikrokontrollern
Detta steg är det viktigaste steget. i början bör de koder som kommer att tas emot och överföras från PIC identifieras.
Börja ansluta komponenterna till lämpliga stift på PIC och programmera mikrokontrollen. Detta kan kräva att man bygger små kretsar med hjälp av regulatorer, motstånd, sensorer … etc.
Steg 4: Skriv PC -programmet
Programmet skrevs på visual basic.
Kommunikationen upprättades via RS-232. Använda MSComm för att skicka data till mikrokontrollern genom att konfigurera inställningarna (portnummer, baudhastighet, paritetsnummer för databitar, stoppbitar). Jag använde 8-bitars data med en stoppbit och paritet med en baudhastighet 9600 bps.
Steg 5: Bygg kroppen
En bra design av kroppen är viktigt. Även val av hjularrangemang, se figuren.
roboten byggdes efter att ha försäkrat att programmen fungerar bra. Detta steg kan också göras innan du programmerar.
Steg 6: Bygg den trådlösa kretsen
Att bygga den trådlösa kretsen kan vara oberoende. I det första skedet har jag använt en tråd för att ansluta datorn till roboten, och efter att ha färdigställt roboten integrerades den trådlösa kretsen.
Steg 7: Integrera
Det här är ögonblicket då vi integrerade våra komponenter och testade roboten.
Steg 8: Programkod för mikrokontroller
; **************** FINAL ******************************** lista p = 16f877 inkluderar radix decidlocs "V" << 8 | "1"; Version nr. Konfiguration _CP_OFF & _PWRTE_OFF & _WDT_OFF & _XT_OSC; ********** huvudvariabel *************************** cblock 0x20; start av bank 0 ram område INPUT_VAR L1 L2 X SPEED11 SPEED12 SPEED21 SPEED22 MSTOP LDET LR1 LR2 endc; ********** start av huvudprogrammet *************** start BSF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X40 MOVWF ADCON1 MOVLW 0XFF; PORT A IS I MOVWF TRISA MOVLW 0X00; PORT B IS O MOVWF TRISB MOVLW 0XF0; PORT C IS I/O MOVWF TRISC MOVL; TRISD MOVLW 0X07; PORT E IS I MOVWF TRISE BANKSEL OPTION_REG BCF OPTION_REG, T0CS BCF STATUS, RP1 BCF STATUS, RP0; ************************** ************************************************* ************ VÄNTA BCF PORTB, 1 BCF PORTB, 2 BCF PORTB, 6 CALL PWM1OFF CALL PWM2OFF BCF PORTD, 0 BCF PORTD, 1 BCF PORTD, 2 BCF PORTD, 3 BTFSS LDET, 0 BCF PORTB, 7 MOVLW 0X00 MOVF MSTOP MOVF LDET BANKSEL INTCON BCF INTCON, GIE BANKSEL TXSTA BSF TXSTA, BRGH MOVLW 0X40 MOVWF SPBRG BCF TXSTA, SYNC BANKSEL RCSTA BSF RCSTA, SPEN BTFSC RCSTA, OERR GOTO CLROE BANKSEL PIE1 BSF PIE1, RCIE BANKSEL RCSTA BCF RCSTA, RX9 BSF RCSTA, CRENWAIT1 BANKSEL PORTB BSF PORTB, 3 BSF PORTB, 4 BANKSEL PIR1 BTFSS PIR1, RCIF GOTO WAIT1, RCIF GOTO WAIT CALL PWM1OFF CALL PWM2OFF CALL DARKLIGHT BTFSC LDET, 0 BSF PORTB, 7RXDATA; BANKSEL RCSTA; BTFSC RCSTA, OERR; GOTO STOPPS CALL PWM1OFF CALL PWM2OFF CALL DARKLIGHT BTFSC LDET, 0 BSF BANK, RIFF BANK, RIFF BIRK, BIRF BANK, RIFF BANK, RIFF BANK, RIFF BIRC, BFRF BANK, RIFF BIRK 0; *******************************************; **** ************************************* MOVWF INPUT_VAR MOVLW 0X00 MOVWF RCREG BCF STATUS, RP0 BCF STATUS, RP1 MOVF INPUT_VAR, 0; STOPP SUBLW 0X53 BTFSC STATUS, Z GOTO STOPPS MOVF INPUT_VAR, 0; LIGHT ON SUBLW 0X4E BTFSC STATUS, Z GOTO LON MOVF INPUT_VAR, 0; LIGHT OFF SUBX, SHOW, SUBX, SHOW, SHOW 0; FLYTTA FRAMSLÅNG SUBLV 0X66 BTFSC STATUS, Z GOTO FSLOW MOVF INPUT_VAR, 0; FLYT HÖGER SÄNGRE SUBLW 0X72 BTFSC STATUS, Z GOTO RSLOW MOVF INPUT_VAR, 0; FLYT VÄNSTER LÄNGRE SUBLV 0 X6C BTFSC STATUS, Z GOTO LSLOW MOVF INPUT_VAR, 0; MOVE BACKWARD SLOW SUBLW 0X62 BTFSC STATUS, Z GOTO BSLOW MOVF INPUT_VAR, 0; FLYTTA FRÅN MEDIUM SUBLW 0X46 BTFSC STATUS, Z GOTO FMX, RUTA FMX, RÖR FÖR TRYCK FÖR STÄRK FÖR FMX FÖR TRYCK FÖR TRYCK FÖR TRÖJNING STATUS, Z GOTO RMED MOVF INPUT_VAR, 0; MOVE LEFT MEDIUM SUBLW 0X4C BTFSC STATUS, Z GOTO LMED MOVF INPUT_VAR, 0; MOVE BACKWARD MEDIUM SUBLW 0X42 BTFSC STATUS, Z GOTO BMED MOVV Z GOTO FFAST MOVF INPUT_VAR, 0; MOVE RIGHT FAST SUBLW 0X57 BTFSC STATUS, Z GOTO RFAST MOVF INPUT_VAR, 0; FLYT VÄNSTER FAST SUBLW 0X56 BTFSC STATUS, Z GOTO LFAST MOVF INPUT_VAR, FOTO START, FOTO 0 BFAST MOVF INPUT_VAR, 0; HAND STÄNG SUBLW 0X43 BTFSC STATUS, Z GOTO HCLOSE MOVF INPUT_VAR, 0; HAND OPEN SUBLW 0X4F BTFSC STATUS, Z GOTO HOPEN MOVF INPUT_VAR, 0 HOP UPP MOTORATOR, 0, HVÄRD STOPP, HVÄRD UTGÅNG, HVÄRD STOPP, GÅ TILL STÄNG, STÄNG UPP, STÄNG IN, HVÄRD UTGÅNG, STÄNG UPP, VÄRD, STÄNG IN, HVÄRD UTGÅNG, GÖR HJÄLP 0 VÄRD FÖRBYGG, GÖR HJÄLP SATS; HAND DOWN SUBLW 0X64 BTFSC STATUS, Z GOTO HDOWN MOVF INPUT_VAR, 0; LIGHT FOLOWE R SUBLW 0X54 BTFSC STATUS, Z GOTO LFOLLOW; **************************************** ***; ****************************************** GOTO CLROEFSLOW; BANKSEL RCSTA; BCF RCSTA, OERR; BCF RCSTA, CREN; NOP; BSF RCSTA, CREN BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP; BCF LDET, 0; CALL BUTTLEVEL; BTFSC MSTOPL, BFSOTO STOPP LDET, 0; BSF PORTB, 7 NORMALSLOW MOVLW 0XFF MOVWF SPEED11 MOVLW 0X66 MOVWF SPEED12 MOVLW 0XFF MOVWF SPEED21 MOVLW 0X66 MOVWF SPEED22 CALL PWM1ON CALL PWF2 PORTBURF, PORT BORT 1, BF PORT 1, BF PORT 1, BF PORT 1, BF PORT 1, BF PORT 1, BF PORT 1, BF PORT 1, BC PORT 2, RCIF GOTO RXDATA GOTO REP3 GOTO CLROE; ***************************************** ** LSLOW BCF STATUS, RP0 BCF STATUS, RP1; CALL BUTTLEVEL; BTFSC MSTOP, 1; GOTO STOPPS MOVLW 0X00 MOVWF MSTOP BCF LDET, 0 CALL DARKLIGHT BTFSC LDET, 0; BSF PORTB, 7 MOVLW 0XW MOVW MOVLW 0XW MOVW 0XV MOV 0XCF MOVWF SPEED21 MOVLW 0X66 MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BSF PORTD, 0 BCF PORTD, 1 BSF PORTB, 1 BCF POR TB, 2 REP4 BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA GOTO REP4 GOTO CLROE; ********************************* ********** RSLOW BCF STATUS, RP0 BCF STATUS, RP1; CALL BUTTLEVEL; BTFSC MSTOP, 1; GOTO STOPPS MOVLW 0X00 MOVWF MSTOP BCF LDET, 0 CALL DARKLIGHT BTFSC LDET, 0; BSF PORTB, 7 MOVLW 0XCF MOVWF SPEED11 MOVLW 0X66 MOVWF SPEED12 MOVLW 0xFF MOVWF SPEED21 MOVLW 0X99 MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BCF PORTD, 0 BSF PORTD, ett BCF PORTB, en BSF PORTB, 2 REP35 BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA GOTO REP35 GOTO CLROE; * *************************** BSLOW BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0; CALL BUTTLEVEL; BTFSC MSTOP, 1; GOTO STOPPS CALL DARKLIGHT BTFSC LDET, 0; BSF PORTB, 7 MOVLW 0XCF MOVWF SPEED11 MOVLW 0X99 MOVWF SPEED12 MOVLW 0XCF MOVWF SPEED21 MOVLW 0X99 MOVWF SPEED22 CALL 1 PALLEN 1 PALLEN 1 PALLEN 1 BALLEN 1 BALLEN 1 PALLEN 1 BALLEN 1 PALLEN 1 KVARTEN 1 PALLEN 1 KVARTEN PALLEN 1 KVARTEN PALLEN 1 KVARTEN PENG 1 PORTB, 2 REP5 BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA GOTO REP5 GOTO CLROE; ********************************* ********** F MED BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0; CALL BUTTLEVEL; BTFSC MSTOP, 1; GOTO STOPPS CALL DARKLIGHT BTFSC LDET, 0; BSF PORTB, 7 NORMALMED MOVLV MOVLW 0X MOVV MOVL 0 MOV MOVWF SPEED21 MOVLW 0X99 MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BCF PORTD, 0 BCF PORTD, 1 BSF PORTB, 1 BSF PORTB, 2 CALL SDELAY REP6 CALL STALL1 BTFSC MSTOP, 0 GOTO STOPPS BIRS BIRD, BFSD PIRS BIRTS BIRS GOTO REP6 PLUSEMED MOVLW 0XCF MOVWF SPEED11 MOVLW 0XCC MOVWF SPEED12 MOVLW 0XCF MOVWF SPEED21 MOVLW 0XCC MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BCF PORT, 1 BCP PORT, PORT BORT BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA BTFSS PORTD, 7 GOTO NORMALMED GOTO REP7 GOTO CLROE; ****************************** ************ RMED BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0; CALL BUTTLEVEL; BTFSC MSTOP, 1; GOTO STOPPS CALL DARKLIGHT BTFSC LDET, 0; BSF PORT B, 7 MOVLW 0xFF MOVWF SPEED11 MOVLW 0X99 MOVWF SPEED12 MOVLW 0xFF MOVWF SPEED21 MOVLW 0X66 MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BCF PORTD, 0 BSF PORTD, ett BCF PORTB, en BSF PORTB, 2 REP8 CALL STALL1 BTFSC mSTOPP, 0 GOTO STOPS BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA GOTO REP8 GOTO CLROE; ************************************** **** LMED BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0; CALL BUTTLEVEL; BTFSC MSTOP, 1; GOTO STOPPS CALL DARKLIGHT BTFSC LDET, 0; BSF PORTB, 7 MOVLW 0XFF MOVW SPEED12 MOVLW 0XFF MOVWF SPEED21 MOVLW 0X99 MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BSF PORTD, 0 BCF PORTD, 1 BSF PORTB, 1 BCF PORTB, 2 REP9; CALL STALL1; BTFSC MOTOPP, BOTO, BOTO, BOTO, POTO, GIRS REP9 GOTO CLROE; ****************************************** BMED BCF -STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0; CALL BUTTLEVEL; BTFSC MSTOP, 1; GOTO STOPPS CALL DARKLIGHT BTFSC LDET, 0; BSF PORTB, 7 MOVLW 0XFF MOVWF SPEED11 MOVLW 0X7F MOVWF SPEED12 MOVLW 0XFF MOVWF SPEED21 MOVLW 0X7F MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BSF PORTD, 0 BSF PORTD, 1 BCF PORTB, 1 BCF PORTBORS, BOTSTOPP FOTO 1, BOTSTOPP FOTO 1 STÄNG GATOR, BOTTORG 1, BOTSTOPP TILLBAKA 1 TILLBAKA TILL STÄNG GATOR, TILLBAKA TILL STÄNG GATOR, TILLBAKA TILL GÅNG TILL STÄNG GÅNG TILL STÄLL FÖR TRANSPORTER FÖR TILLBAKA TILL GALLERI REP10 GOTO CLROE; ****************************************** FFAST BCF -STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0 BSF MSTOP, 4; CALL BUTTLEVEL; BTFSC MSTOP, 1; GOTO STOPPS CALL DARKLIGHT BTFSC LDET, 0; BSF PORTB, 7 MOVLW 0XEF MOVWFXW MOVWFXW MOVWFXW MOVV MOVWF SPEED21 MOVLW 0x7F MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BCF PORTD, 0 BCF PORTD, en BSF PORTB, en BSF PORTB, 2 CALL SDELAY NORMALFAST MOVLW 0XCF MOVWF SPEED11 MOVLW 0xCC MOVWF SPEED12 MOVLW 0XCF MOVWF SPEED21 MOVLW 0xCC MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BCF PORTD, 0 BCF PORTD, 1 BTFSC LDET, 0 BSF PORTB, 7 BSF PORTB, 1 BSF PORTB, 2 REP11 CALL STALL1 BTFSC MSTOP, 0 GOTO STOPPS BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA NOP BTFSS PORTP, 7 GOTO AST MOVLW 0XCF MOVWF SPEED11 MOVLW 0XFF MOVWF SPEED12 MOVLW 0XCF MOVWF SPEED21 MOVLW 0XFF MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BCF PORTD, 0 BCF1 PORTO, 1 BFS1 PORTBURG, 1 BSF1 PORTBURG, 1 BSF1 PORTBURG, 1 BSF1 PORTBURG, 1 BSF1 PORTBURG, 1 BSF1 PORTBURG, 1 BSF1 PORTBURG, 1 BSF1 PORTBURG, 1 BSF1 PORTBURG, RCIF GOTO RXDATA BTFSS PORTD, 7 GOTO NORMALFAST GOTO REP12 GOTO CLROE; *********************************** ******** RFAST BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0; CALL BUTTLEVEL; BTFSC MSTOP, 1; GOTO STOPPS CALL DARKLIGHT BTFSC LDET, 0; BSF PORTB, 7 MOVLWX SPEED11 MOVLW 0X99 MOVWF SPEED12 MOVLW 0XFF MOVWF SPEED21 MOVLW 0X66 MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BCF PORTD, 0 BSF PORTD, 1 BCF PORTB, 1 BSF PORTBACK, 1 BFS1 PORTBALL, STOPP BOTS, STOPP FÖR BUTTOR, 2 BETALNINGAR 1, BFS1 PORTBOLL, 2 BETALNINGAR 1, BFS 1 PORTO, 2 BETALNINGAR PORTBOLL, 2 BETALNINGAR PORTBOLL, 2 RAPPORS STÄNGER, STÄNG PORTBOLL, 2 RAPPORS STÄNG, BOTS TILL STÄLLNINGAR 1, BFS 1 BOTS STÄLL PORTBLAD, 2 RAPPORS STÄLL, STÄLL FÖR STOPP, STÄLL FÖR PORTBLÅS GOTO REP13 GOTO CLROE; ****************************************** LFAST BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0; CALL BUTTLEVEL; BTFSC MSTOP, 1; GOTO STOPPS CALL DARKLIGHT BTFSC LDET, 0; BSF PORTB, 7 MOVLW 0XFF MOVWF SPEED11 MOVLW 0X66 MOVWF HASTIGHET 0XEF MOVWF SPEED21 MOVLW 0XB3 MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BSF PORTD, 0 BCF PORTD, 1 BSF PORTB, 1 BCF PORTB, 2 REP14 CALL STALL1 BTFSC MSTOP, GOTO STOPPS BANKS PIRA, BOTSKORG BOTSKORG, BOTSKORG BOTSKORG, BOTSKORG BOTSKORG, BOTTORG BOTSKORG, BOTSKORG PIRA, BOTSKORG PORSKORG, BOTSKORG PORSKORG, BOTSKORG PILJA, BANKSPIRA BANK **************************************** BFAST BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0; CALL BUTTLEVEL; BTFSC MSTOP, 1; GOTO STOPPS CALL DARKLIGHT BTFSC LDET, 0; BSF PORTB, 7 MOVLW 0XDF MOVWF SPEED11 MOVLW MOVWM MOVWM MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVE MOVW 0 PWM2ON BSF PORTD, 0 BSF PORTD, 1 BCF PORTB, 1 BCF PORTB, 2 CALL SDELAY MOVLW 0XEF MOVWF SPEED11 MOVLW 0X66 MOVWF SPEED12 MOVLW 0XEF MOVWF SPEED21 MOVLW 0X66 MOVWFWE SP2 PORTD, 0 BSF PORTD, 1 BCF PORTB, 1 BCF PORTB, 2 REP15 CALL STALL1 BTFSC MSTOP, 0 GOTO STOPPS BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA GOTO REP15 GOTO CLROE; ***************** ***************************** HCLOSE BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0; CALL BUTTLEVEL; BTFSC MSTOP, 1; GOTO STOPPS CALL DARKLIGHT BTFSC LDET, 0; BSF PORTB, 7 BTFSC PORTD, 5 GOTO STOPPS BTFSC PORTD, 6 GOTO STOPPS BSF PORTD, 2 BCF PORTD, 3 REP16 BTFSC PORTD, 5 GOTO STOPS GOTO STOPPS CALL SDELAY CALL STALL2 BTFSC MSTOP, 2 GOTO STOPPS BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA GOTO REP16 GOTO CLROE; ************************** ****************** HOPEN BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0; CALL BUTTLEVEL; BTFSC MSTOP, 1; GOTO STOPPS CALL DARKLIGHT BTFSC LDET, 0; BSF PORTB, 7 BTFSC PORTD, 4 GOTO STOPPS BCF PORTD, 2 BSF PORTD, 3 REP17 BTFSC PORTD, 4 GOTO STOPPS CALL SDELAY CALL STALL2 BTFSC MSTOP, 2 GOTO STOPPS BANKSEL PIR1 BTFSC PIR1, RCIFOT GOTO GOTO CLROE; ****************************************** HUP BCF -STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0; CALL BUTTLEVEL; BTFSC MSTOP, 1; GOTO STOPPS CALL DARKLIGHT BTFSC LDET, 0; BSF PORTB, 7 BTFSC PORTC, 4 GOTO STOPS BCF PORTC, 4 GOTO STOPS BCF PORTC BTFSC PORTC, 4 GOTO STOPPS BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA GOTO REP18 GOTO CLROE; ******************************* ************ HDOWN BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0; CALL BUTTLEVEL; BTFSC MSTOP, 1; GOTO STOPPS CALL DARKLIGHT BTFSC LDET, 0; BSF PORTB, 7 BTFSC PORTC, 5 GOTO STOPPS BSF PORTC, 0 BCF PORTC, 3 REP19 BTFSC PORTC, 5 GOTO STOPS BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA GOTO REP19 GOTO CLROE; ****************** **************************** LON BSF PORTB, 7 BSF LDET, 0 GOTO CLROE; ********** ******************************** LOFF BCF PORTB, 7 BCF LDET, 0 GOTO CLROE; ***** ************************************ LFOLLOW BCF STATUS, RP0 BCF STATUS, RP1 BCF PORTB, 1 BCF PORTB, 2 BCF PORTB, 6 BCF PORTB, 7 CALL PWM1OFF CALL PWM2OFF BCF PORTD, 0 BCF PORTD, 1 BCF PORTD, 2 BCF PORTD, 3 BSF MSTOP, 6 REPLF; BANKSEL OPTION_REG; BSF OPTION_REG, 3; BSF OPTION_REG, 3; BSF OPTION_, 3; CLRFWDT BCF STATUS, RP0 BCF STATUS, RP1; BANKSEL INTCON; BCF INTCON, T0IE; BCF INTCON, T0IF; BANKSEL PIE1; BCF PIE1, 6; BCF PIE1, 0; BANKSEL INTCON; BCF INTCON, PCF BANK, 0 BCF PCON, 1 NOP BSF PCON, 0 BSF PCON, 1 BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP CALL SDELAY CALL LFC1 NOP CALL LFC2 NOP MOVF LR2, 0 SUBWF LR1, 0 BTFSC STATUS SDELAY CALL LFC1 NOP CALL LFC2 NOP MOVF LR2, 0 SUBWF LR1, 0 BTFSC STATUS, C GOTO LR2G LR1G BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF mSTOPP; CALL BUTTLEVEL; BTFSC mSTOPP, 1; GOTO STOPS MOVLW 0xFF MOVWF SPEED11 MOVLW 0X66 MOVWF SPEED12 MOVLW 0XFF MOVWF SPEED21 MOVLW 0X99 MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BSF PORTD, 0 BCF PORTD, 1 BSF PORTB, 1 BCF PORTB, 2 LR1GREP; CALL STALL1; 0 OPS BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA CALL LFC1 NOP CALL LFC2 NOP MOVF LR2, 0 SUBWF LR1, 0 BTFSC STATUS, Z GOTO REPLF CALL LFC1 NOP CALL LFC2 NOP MOVF LR2, 0 SUBWF LFS 2, 0 SUBWF LFS REPLF LR2G BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP; RING BUTTLEVEL; BTFSC MSTOP, 1 PORTD, 1 BCF PORTB, 1 BSF PORTB, 2 LR2GREP; CALL STALL1; BTFSC MSTOP, 0; GOTO STOPS BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA CALL LFC1 NOP CALL LFC2 NOP MOVF LR2, 0 SUBWF LFS, 0 SUBWF LFS REPLF CALL LFC1 NOP CALL LFC2 NOP MOVF LR2, 0 SUBWF LR1, 0 BTFSC STATUS, C GOTO LR2GREP GOTO REPLF FRONT BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP; SPEED11 MOVLW 0X99 MOVWF SPEED12 MOVLW 0XFF MOVWF SPEED21 MOVLW 0X99 MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BCF PORT D, 0 BCF PORTD, 1 BSF PORTB, 1 BSF PORTB, 2 CALL SDELAY FROREP; CALL STALL1; BTFSC MSTOP, 0; GOTO STOPPS BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA; CALL LDIN; BTFSC MSTOPPS, 3; GOTO STOPPS NOP CALL LFC2 NOP MOVF LR2, 0 SUBWF LR1, 0 BTFSC STATUS, Z GOTO FROREP GOTO REPLF GOTO CLROE; *************************** ***************** STOPPAR BTFSS MSTOP, 4 GOTO STOPA MOVLW 0XCF MOVWF SPEED11 MOVLW 0XB3 MOVWF SPEED12 MOVLW 0XCF MOVWF SPEED21 MOVLW 0XB3 MOVWF SPEED22 CALL PALLMOTORN PALLMOTORN PALLMOTORN PALLMOTORN PALLMOTORN CALL 1 CALL SDELAY STOPA BCF STATUS, RP0 BCF STATUS, RP1 BCF PORTB, 1 BCF PORTB, 2 BCF PORTB, 6 BTFSS LDET, 0; BCF PORTB, 7 BCF PORTC, 0 BCF PORTC, 3 CALL PWM1OFF CALL PWM2OFF BCF PORT PORTD, 1 BCF PORTD, 2 BCF PORTD, 3 MOVLW 0X00 MOVWF MSTOP; ********************************* ********* CLROE BANKSEL RCSTA BCF RCSTA, CREN BCF RCSTA, FERR BCF RCSTA, OERR BSF RCSTA, CREN BSF INTCON,GIE BSF INTCON, PEIE GOTO WAIT1; ****************************************** *; *******************************************; **** ************************************* STALL1 BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BANKSEL ADCON0 BCF ADCON0, 3 BCF ADCON0, 4 BCF ADCON0, 5 BCF STATUS, RP0 BCF STATUS, RP1 CALL CONVERT MOVF ADRESH, 0 SUBLW 0X70 BTFSS STATUS, C BSF MSTOP, 0 BCF STAT STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BANKSEL ADCON0 BSF ADCON0, 3 BCF ADCON0, 4 BCF ADCON0, 5 BCF STATUS, RP0 BCF STATUS, RP1 CALL CONVERT MOVF ADRESH, 0 SUBL CTS, 0 SUBL STATUS, RP0 BCF STATUS, RP1 RETURNBUTTLEVEL BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BANKSEL ADCON0 BCF ADCON0, 3 BCF ADCON0, 4 BSF ADCON0, 5 BCF STATUS, RP 0 STOPP BTFSS STATUS, C GOTO BL1 GOTO BL2 BL1 BSF MSTOP, 1 BSF PORTB, 6 BL2 RETURN DARKLIGHT BCF STATUS, RP0 BCF STATUS, RP1 BTFSC LDET, 0 GOTO RETFDL BANKSEL ADCON0 BCF ADCON0, 3 BSF ADCON0, 4 BCF ADCON0, 5 BCF STATUS, RP0 BCF STATUS, RP1 CALL CONVERT MOVF ADRESH, 0 SUBLW 0XEE BTFSS STATUS, C BSF PORTB, 0 RETURN ADRONC0 ADVONCORN 0 RECV BCF ADCON0, 7 BSF ADCON0, 6 BSF ADCON0, 0 BSF ADCON0, GO WAITADC BTFSC ADCON0, GO GOTO WAITADC BCF STATUS, RP1 BCF STATUS, RP0 RETURNPWM1ON BANKSEL PR2 MOVLW 0XFF MOVW,XV MOVLF 0FFF MOVW MOVWF CCP1CON MOVF SPEED12, 0 MOVWF CCPR1L BSF STATUS, RP0 BCF STATUS, RP1 MOVLW 0XF0 MOVWF TRISC BCF STATUS, RP1 BCF T2CON, T2CPP PR2 MOVLW 0XFF MOVWF PR2 BCF STATUS, RP0 BCF STATUS, RP1 MOVF SPEED21, 0 MOVWF CCP2CON MOVF SPEED22, 0 MOVWF CCPR2L BSF STATUS, RP0 BCF STATUS, RP1 MOVLW 0XF0 MOFT T2CON, T2CKPS0 BSF T2CON, TMR2ON BSF CCP2CON, 2 BSF CCP2CON, 3 RETURNPW M1OFF BCF CCP1CON, 2 BCF CCP1CON, 3 BSF T2CON, T2CKPS1 BSF T2CON, T2CKPS0 BCF T2CON, TMR2ON MOVLW 0X00 MOVWF CCP1CON MOVLW 0X00 MOVWF CCPR1L BANKSEL PR2 MOVLW 0X00 MOVWF PR2 BCF STATUS, RP1 BCF STATUS, RP0 RETURNPWM2OFF BCF CCP2CON, 2 BCF CCP2CON, 3 BSF T2CON, T2CKPS1 BSF T2CON, T2CKPS0 BCF T2CON, TMR2ON MOVLW 0X00 MOVWF CCP2CON MOVLW 0X00 MOVWF CCPR2L BANKS ADC, R0 BCP ADC 5 BCF STATUS, RP0 BCF STATUS, RP1 CALL CONVERT MOVF ADRESH, W ANDLW 0XF0 MOVWF LR1 BCF STATUS, RP0 BCF STATUS, RP1 RETURN LFC2 BANKSEL ADCON0 BCF ADCON0, 5 BSF ADCON0, 5 BSF ADCON0 RP1 CALL CONVERT MOVF ADRESH, 0 ANDLW 0XF0 MOVWF LR2 BCF STATUS, RP0 BCF STATUS, RP1 RETURN LDIN BANKSEL ADCON0 BCF ADCON0, 3 BSF ADCON0, 4 BCF ADCON0, 5 BCF STATUS, RP0 ADF 0X4C BTFSC STATUS, C GOTO COMP4 BSF MSTOP, 3 COMP4 BCF STATUS, RP0 BCF STATUS, RP1 RETURN SDELAY CLRF L2 XL3 CLRF L1 XL2 CLRF TMR0 XL1 MOVLW 0XFF SUBWF TMR0, W BTFSS STATUS, C GOTO XL1 MOVLW 0X20 INCF L1 SUBWF L1, W BTFSS STATUS, C GOTO XL2 MOVF WX XL3 RETURNO NOPEND
Andra pris i Instructables och RoboGames Robot Contest
Rekommenderad:
Gör ditt eget Rock Band Ekit Adapter (utan Legacy Adapter), icke -destruktivt !: 10 steg
Gör din egen Rock Band Ekit -adapter (utan äldre adapter), icke -destruktivt !: Efter att ha hört en populär podcastvärd nämna sin oro över att hans trådbundna USB -adapter dör, letade jag efter en DIY -lösning för att ansluta en bättre/anpassad eKit till RB . Tack till Mr DONINATOR på Youtube som gjorde en video med detaljer om hans liknande sida
Handhållet Arduino Paper Rock saxspel med 20x4 LCD -skärm med I2C: 7 steg
Handhållet Arduino Paper Rock saxspel med 20x4 LCD -skärm med I2C: Hej alla eller kanske jag borde säga "Hello World!" Detta är ett handhållet Arduino Paper Rock saxspel med en I2C 20x4 LCD -skärm. Jag
Vänd X-box Rock Band-trummor till en Midi Stand Alone elektroniska trummor: 4 steg (med bilder)
Förvandla X-box Rock Band-trummor till en Midi Stand Alone Electronic Drums .: Jag hade turen att få en begagnad x-box-trumset, den är lite grov och har ingen paddel, men inget som inte går att fixa. förvandla den till en fristående elektrisk trumset. Läser det analoga värdet från piezosensorn och gör det till MIDI -kommando
Rock Paper Scissor AI: 11 steg
Rock Paper Scissor AI: Har du någonsin känt dig uttråkad ensam? Låt oss spela rock, papper och sax mot ett interaktivt system med intelligens
Rock Paper Sax: 10 steg
Rock Paper Sax: Syfte: Efter att ha slutfört detta lär du dig att göra ett enkelt spel Rock, Paper Sax från grunden med Code.org. Material / krav som krävs: Grundläggande förståelse för Javascript -syntax, en dator, ett Code.org -konto