Hallo allemaal,

ik wil voor het eerst een 16F84 gebruiken maar weet dus van het programmeren eigenlijk niks af maar wil het wel leren.

ik wil op m'n robot behalve de pic 2 H-bruggen en 2 IR-sensors maken (1 links en 1 rechts).
en het dus zo laten werken dat de robot gewoon vooruit rijd en als b.v. de linker sensor iets ziet het linkerwiel een paar seconden achteruit rijd en daarna weer gewoon vooruit rijd. en dit alles ook met de rechterkant.

ik ga voor iedere h-brug 2 I/O poorten gebruiken en voor iedere IR-sensor 1 I/O poort, in totaal dus 6 poorten.

Maar de rest zou ik echt niet weten.
kunnen jullie me helpen met ideeën links (het liefst NL) enz.

Danny

p.s.
ik weet dat dit alles ook kan met b.v. een NE 555 maar ik wil het toch graag kunnen veranderen en uitbreiden dus ga ik voor de 16F84.

Ik durf het bijna niet te vragen, maar heb je de tutorial op deze site al gezien?

En voor voorbeelden kun je via google een heleboel projecten vinden.

[Bericht gewijzigd door Bastiaan op ]

Op za 02-11-2002 19:51:30 schreef Bastiaan:
Ik durf het bijna niet te vragen, maar heb je de tutorial op deze site al gezien?

En voor voorbeelden kun je via google een heleboel projecten vinden.

ik heb die tutorial al doorgelezen (het is een vrij duidelijke) en ik zat met name te kijken naar die lus in het politieproject of ik daarmee iets kon, maar die lus begreep ik ook niet helemaal.
ik heb ook al gekeken naar de topics van anderen maar daar werd ik ook niet wijzer van.

(ik heb google net ook even geprobeert maar ik vondt zo snel geen bruikbare pagina's)

maar hoe kan ik dit nu het beste aan pakken??

Danny

das toch niet zo moeilijk. Ik wil anders wel een keer wat voor je schrijven. Maar nu zit ik middenin een repwek dusss.

wat jij wilt is egt heel erg makkelijk...
voor de ir sensor kan je een IS471F van sharp nemen... heel makkelijk.. verkrijbbaar bij conrad.

die lus is toch niet zo moeilijk. Hij heeft gewoon een dubbele loop in elkaar verwerkt. Ik snapte t ook niet op het eerste gezicht. Gewoon nog een keertje goed doorlezen en je snapt t.
o en de allerbeste link is deze: www.circuitsonline.net :P

[Bericht gewijzigd door Bernd op ]

Op 2 november 2002 20:47:27 schreef Bernd:
das toch niet zo moeilijk. Ik wil anders wel een keer wat voor je schrijven. Maar nu zit ik middenin een repwek dusss.

hoi,

ik nog eens gezocht op het internet maar kon eigenlijk niets vinden wat ik kon gebruiken.

maar zou Bernd (of iemand anders) voor mij een progje kunnen schijven zodat ik weer verder kan?

(want ik kom zo dus niet verder met m'n robot en het zou wel leuk zijn als hij het doet ;) )

alle hulp is welkom

Danny

Ik wil wel ff een progje schrijven
maar dan moet je mij ff wat info geven
h-brug
00 is stilstand
01 is rijden linksom
10 is rijden rechtsom
11 is vuurwerk
klopt dit?

Op 8 november 2002 21:30:05 schreef k.p.meinesz:
Ik wil wel ff een progje schrijven
maar dan moet je mij ff wat info geven
h-brug
00 is stilstand
01 is rijden linksom
10 is rijden rechtsom
11 is vuurwerk
klopt dit?

ja, klopt

en dit 2x dus (er zitten 2 motors op de robot)
bvd Danny

morgen ochtend ben je de eerste!!


trisa		equ	85h
trisb		equ	86h
porta		equ	05h
portb		equ	06h
status		equ	03h


;_______________________________
		org	00h
		goto	start
;_________________________________
portinit	movlw	00h
		movwf	porta
		movwf	portb
		bsf	03,5
		movlw	00h		;porta	output
		movwf	trisa
		movlw	0ffh		;portb	input
		movwf	trisb
		bcf	03,5
		return
;__________________________________
input		nop
		nop
		nop
		btfsc	portb,0	;sensor links
		call	drive1	;draairichting	rechts
		btfsc	portb,1	;sensor rechts
		call	drive2	;draairichting links
		movlw	00h
		subwf	portb,w	;beide sensoren niets dan
		btfsc	status,2
		call	drive	;vooruit
		goto	input
		
;___________________________________

drive1		btfsc	portb,1	;als sensor rechts=1
		goto	reverse	;dan achteruit
		movlw	b'00000110';anders rechterwiel achteruit
		movfw	porta
		return
;_________________________________
drive2		btfsc	portb,0	;als sensor links=1
		goto	reverse	;dan achteruit
		movlw	b'00001001';anders  linkerwiel achteruit
		movwf	porta
		return
;___________________________________
reverse		movlw	b'00000101' ;achteruit
		movwf	porta
		goto	input
;___________________________________
drive		movlw	b'00001010';vooruit
		movwf	porta
		return
;____________________________________
start		call	portinit
		bcf	portb,3
		movlw	00h
		movwf	portb
		goto	input				
;_________________________________
		end
;_________________________________
;input		b0	b1	output a3  a2  a1 a0
;		0	0		1  0   1  0
;		1	0		0  1   1  0
;		0	1		1  0   0  1
;		1	1		0  1   0  1
;_________________________________

;dit moet hem wezen
;niet gebruikte poorten van b via pulldown naar massa(0)
;anders	rijd je wagentje niet meer vooruit!!
;veel succes ermee.
;K.P.Meinesz

is iets anders als jij wou
zolang een sensor iets ziet zal hij een wiel terug laten draaien
zien beide sensoren iets rijd hij achteruit.

BEDANKT!!!

hiermee kom ik al een heel stuk verder :)

maar ik raak effe in de war bij het stukje input want als bv de linker sensor iets ziet gaat dan het linker of rechterwiel achteruit?? het moet dus de linker zijn.

want er staat:


	btfsc	portb,0	;sensor links		
        call	drive1	;draairichting	rechts

en zou je ook een aantal pinnen van poort b kunnen gebruiken als uitgang? want dan heb ik dus meer uitgangen om later bv leds of zo aan te sluiten.

en hoe zou ik er dan voor kunnen zorgen dat hij dus wel ongeveer 2 seconden achteruit rijd als hij iets ziet?

zou het een idee zijn om achter de IR-sensor een tor te hangen en dan aan de basis een condensator voor vertraging en daarachter de PIC?

Danny

[Bericht gewijzigd door Danny op ]

nee het linkerwiel is gekoppelt aan de rechter sensor
want anders rijd hij naar het objeckt toe
nu ontwijkt hij het

als je een pause tijd gebruikt weet je nooit hoeveel slagen je wiel maakt en kan het voorkomen dat hij dus gewoon 360 graden draait of eewig in deze lus blijft
wil je een pauze?

voeg dit dan toe:


teller1       equ   40h
teller2       equ   41h

pause        movlw  0ffh
             movwf  teller1
             movwf  teller2
dec1         decfsz teller1
             goto   dec1
             movlw  0ffh
             movwf  teller1
             decfsz teller2
             goto   dec1
             return

zet een CALL PAUZE in drive1,drive2,reverse
voor de RETURN
dan zal elke keer als je sensor iets ziet een draairichting omgerdraaid worden
en als de pause afgelopen is gaat hij pas verder.

kijk even naar het waarheids tabel onderin
je kunt dan zelf bepalen welke motor achteruit gaat

Ik ben geen voorstander van een pause maar het is wat jij wil

ja je kunt op b meer in en uitgangen maken voor andere functie maar dat vroeg je niet
je zult toch duidelijk moeten maken wat er op de uit-ingangen moet komen ander kun je nooit een werkend of soepel lopend progje schrijven.

[Bericht gewijzigd door k.p.meinesz op ]

Op 9 november 2002 12:55:07 schreef k.p.meinesz:
nee het linkerwiel is gekoppelt aan de rechter sensor
want anders rijd hij naar het objeckt toe
nu ontwijkt hij het

als je een pause tijd gebruikt weet je nooit hoeveel slagen je wiel maakt en kan het voorkomen dat hij dus gewoon 360 graden draait of eewig in deze lus blijft

ik dacht dat een pause wel handig was maar wat jij zegt daar heb je eigenlijk wel gelijk in. en het werkt denk ik idd wel beter zonder pauze.

en om de linker sensor aan het rechter wiel te hangen heb ik eigenlijk nooit aan gedacht. (weer wat geleerd ;) )

(maar dit is m'n eerste "echte" robot :) en weet dus nog niet alles)

ja je kunt op b meer in en uitgangen maken voor andere functie maar dat vroeg je niet
je zult toch duidelijk moeten maken wat er op de uit-ingangen moet komen ander kun je nooit een werkend of soepel lopend progje schrijven.

ik weet nog niet precies wat ik er nog bij aan wil hangen maar dat komt later wel

Danny

Danny ik heb ook nog nooit een robot gebouwd
ik denk alleen aan wat jij wilt en zie een robotje dat dingen ontwijkt en vertaal dat naar een proggrammatje dat dat doet.

veel susces ermee