Robot, Servo o ir

Robot, CNC, Pneumatik, Hydraulik, mm
Användarvisningsbild
gurgalof
EF Sponsor
Inlägg: 1311
Blev medlem: 18 februari 2004, 22:15:06
Ort: Göteborg
Kontakt:

Inlägg av gurgalof »

hur räknar du ut att
pr2 = 130 är 38kHz
samt duty cyclen
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

>> gurgalof
Jag kollar (som nybörjare) i databladet för PIC16F877A, läser igenom PWM-kapitlet, kliar mig i mitt obefintliga skägg, läser igen, knappar lite på miniräknaren, testar lite kod, mäter lite med oscilloskop, räknar lite till och upprepar tills jag får ett lyckat resultat.
Användarvisningsbild
Jine
Inlägg: 1794
Blev medlem: 21 juli 2004, 20:25:56
Skype: Jim.Nelin
Ort: Trångsund, Stockholm
Kontakt:

Inlägg av Jine »

Stiff, Har inte haft tid o testa koden/erna fören nyss, måste man loopa koden till irdioderna?

det händer nämligen inte ett skit..
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Ajfan. Det är taget direkt från koden till min robot i projektarbetet, och den funkade ju.
Det ska räcka med en puls om 1ms för att IR-sensorn ska reagera. Koppla in en vanlig lysdiod i serie med din(a) IR-LEDs och se om den lyser/blinkar.
Användarvisningsbild
Jine
Inlägg: 1794
Blev medlem: 21 juli 2004, 20:25:56
Skype: Jim.Nelin
Ort: Trångsund, Stockholm
Kontakt:

Inlägg av Jine »

:S Händer absolut inte ett dugg med den koden.. använder en pic16f877a o 20mhz kristall.. koden är:

Kod: Markera allt

'-----------------------------------
'38khz IR DIoder
'-----------------------------------
TRISC.2 = 0
CCP1CON = %00001100
T2CON = %00000100
PR2 = 130
CCPR1L = 65
'-----------------------------------
testat men vanliga leds :(

Men annars så kan jag säga att mer en fjärkontroll riktat mot ena dioden så svänger den, det fugerar..
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Mycket märkligt. Jag ser inget fel med koden. Möjligtvis kanske det krockar med något annat i ditt program...?
Användarvisningsbild
Jine
Inlägg: 1794
Blev medlem: 21 juli 2004, 20:25:56
Skype: Jim.Nelin
Ort: Trångsund, Stockholm
Kontakt:

Inlägg av Jine »

Jag tror de beror på att jag lånade 5v (trodde jag) från datorn, men det visade sig vara 12v :oops: brände 7 olika pic kretsar..

men sen bytte jag ut 16f877a mot en 16f627a och då TROR jag det fugerar..

Eftersom ir-led:en "lyser".. men jag tycker det är konstigt eftersom en ir i en fjärr "blinkar" ..


Däremot hajjar jag noll med koden till mottagarna.

Kod: Markera allt

main:
trisc.2 = 0      ' Set portc.2 to output
pause 1         ' Pause 1 ms
trisc.2 = 1      ' Set portc.2 to input 
if portc.2 then goto turn
goto main


turn:
high servon blaha blaha
goto main
är det inte rätt?
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Var har du kopplat in mottagarna? konfigurera den pinnen de är inkopplade till som ingång och läs av den. läser du en nolla så har mottagarna detekterat en IR-signal.
Användarvisningsbild
Jine
Inlägg: 1794
Blev medlem: 21 juli 2004, 20:25:56
Skype: Jim.Nelin
Ort: Trångsund, Stockholm
Kontakt:

Inlägg av Jine »

Dom är inkopplade på Portc.2 (ccpp1 PMWkanal 1)

Typ:


If vänstrair = 0 then vänster? eller räker det med ir vänsterir then?
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Du kan inte koppla in IR-mottagarna till utgången för IR-lysdioderna!
Koppla IR-mottagarna till en ledig port. På portc.2 ska det bara sitta lysdioder med serieresistor!
Användarvisningsbild
Jine
Inlägg: 1794
Blev medlem: 21 juli 2004, 20:25:56
Skype: Jim.Nelin
Ort: Trångsund, Stockholm
Kontakt:

Inlägg av Jine »

Kliiinggg!!! :idea:

Tack.. Tack tack..

Du sa nåt där ;) Inte de att dom ska kopplas på olika portar givetvis.. men däremot att jag har alltid använd en EXTRA Pic för ir dioderna..


Men däremot har jag NÄSTAN fått igång allt nu.. Har läst hela picbasic pro manualen o suttit o exprimenterat hela veckan..^


Tänkte bara dela med mig av MIN kod (fugerar nästan, Lite störningar, servorna hackkkar, den svänger lite fel osv :P)

Kod: Markera allt

'-----------------------------------------------------------------' 
'   Servo Controller (C) Copyright Jim Nelin                      ' 
'   All Rights Reserved     		                              ' 
'   Date: 2005-02-04                                              '
'                                                                 '
'                                                                 '
'                      Part: Servo/Ir Modules                     '
'                           PIC16F877A	                          ' 
'-----------------------------------------------------------------' 
DEFINE OSC 20					' Define 20 MHz
'-----------------------------------------------------------------'
'   Initiate PWM for IR-modulation (38kHz, 50% duty @ 20MHz OSC) 
'-----------------------------------------------------------------'
'-----------------------------------------------------------------'
TRISC.2 = 0     		 'Set Portc.2 output 
CCP1CON = %00001100  	 'Mode select = PWM 
T2CON = %00000100   	 'Timer2 ON + 1:1 prescale 
PR2 = 130      			 '38kHz PWM 
CCPR1L = 65      		 '50% duty cycle 

'--------------------------Variables------------------------------'  
L_IR		VAR		PORTB.3		' Portb.3 = L_IR
R_IR		VAR		PORTB.4		' Portb.4 = R_IR
L_Servo 	VAR		PORTB.5		' Portb5 = L_Servo
R_Servo		VAR		PORTB.6		' Portb.5 = R_Servo
'-----------------------------------------------------------------' 
'-----------------------End of Variables--------------------------'
'-----------------------------------------------------------------' 

Main:			' ..=--== Start Main Program! ==--=..

'-----------------------Pulse IR-Modules--------------------------' 
Output L_IR		' Set L_IR Output
Output R_IR		' Set R_IR Output
Pause 1			' Pause 1 ms 
Input L_IR		' Set L_IR Input
Input R_IR		' Set R_IR Input
'-----------------------------END---------------------------------' 
'-----------------------------------------------------------------' 
'------------------Read Inputs From IR-Modules--------------------'

IF L_IR = 0 Then Moveright		' Check if L_IR See something...
IF R_IR = 0 Then Moveleft		' Check if R_IR See something...
'-----------------------------------------------------------------' 
GoSub Nothing					' Goto Sub If IR failed
GoTo Main						' Loop
'-----------------------------------------------------------------' 
'-----------------------------------------------------------------' 

Nothing: 

High L_Servo					' High L_Servo
High R_Servo					' High R_Servo
Pause 1							' Pause 1 ms
Low L_Servo						' Low L_Servo
Low R_Servo						' Low R_Servo
Pause 20						' Pause 20 ms
Return							' Go back to main routine that called us..

'-----------------------------------------------------------------' 

Moveright:
High R_Servo					' High R_Servo
Pause 1							' Pause 1 ms
Low R_Servo						' Low R_Servo
Pause 20						' Pause 20 ms
GoTo Main

'-----------------------------------------------------------------' 

Moveleft:
High L_Servo					' High L_Servo
Pause 1							' Pause 1 ms
Low L_Servo						' Low L_Servo
Pause 20						' Pause 20 ms
GoTo Main

'-----------------------------------------------------------------' 
'-----------------------------------------------------------------'
'--------------------------END OF FILE----------------------------'
Användarvisningsbild
Jine
Inlägg: 1794
Blev medlem: 21 juli 2004, 20:25:56
Skype: Jim.Nelin
Ort: Trångsund, Stockholm
Kontakt:

Inlägg av Jine »

Vet itne varför nu men jag har sökt o sökt o sökt o nu känns det som jag kan jävla massa mer än innan.. jag skrotade allt jag hade kopplat o NU börjar jag om från början!! :D



Roboten kommer bestå av:


Pic16f877a x 2
Lite div kondingar
4st IR dioder 940nm
4st IR Mottagare 940nm 38khz
20mhz kristall
En liten Pizeo (stavning) summer för o tala om om nåt gick på tok
Max232
4st Servos (höger/vänster, pan/tilt)
Trådlös microkamera (kopplad till tvkort i datorn)
RF Sändare/mottagare (inte exakt bestämt)
4st pots (2st till justering av servorna, 2st till joysticken)
En sony fjärrkontroll (IR)

en jävla massa sladdar :P

2st 6xr6 batterier (6st r6 serie kopplade x2 parrell kopplade)

o lite annat smått o gått..


Mvh Jim o TACK FÖR ALL HJÄLP ALLA SÖTA O GLADA! :D
Senast redigerad av Jine 6 februari 2005, 15:27:09, redigerad totalt 1 gång.
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Oj, den kommer nog bli en kul apparat :)

Två 16F877A? Behövs väl inte egentligen, men jag ska inte säga för mycket, jag gjorde ju likadant själv när jag byggde min robot.

Jag tror inte det är så bra att parallellkoppla två 6xR6-pack. Om de har olika spänning kommer de kortsluta varandra tills de uppnår exakt samma spänning, kan vara mindre bra...
Två dioder löser iofs problemet, om du kan leva med spänningsfallet (runt 1 V ) över dem.
evert2
Inlägg: 2182
Blev medlem: 18 april 2004, 22:47:56
Ort: Jönköping

Inlägg av evert2 »

Jine.....använd 4 st lite fetare 1,5 V-batterier istället.
Edit....jag menar förstås 6 stlite fetare batteri istället
Användarvisningsbild
Jine
Inlägg: 1794
Blev medlem: 21 juli 2004, 20:25:56
Skype: Jim.Nelin
Ort: Trångsund, Stockholm
Kontakt:

Inlägg av Jine »

Stiff.. Tror det blir bäst med 2st.. Men jag ska inte avslöja mer.. ;)
O tack för tipset ang batterierna får väl smeta dit nåra dioder också.. ;)


evert2, Har 12st laddningsbara 1,2v batterier..


Dvs 1,2x6=7,2-1v= 6.2 så runt 6,5v (dom laddade batterierna är nästan alltid över 1.2 runt 1.4v)

2x 2300mA

Med andra ord bör jag alltså få en 6,5v/4amp strömkälla.. Sen ska jag filtrera,reglera spänningen till 5 Resp 6v (5v till elektroniken, 6v till servorna) O sen får jag inte glömma dioderna heller ;)

...

Herrejösses jag som alltid har trott att batterier och allt var den enklaste delen :P


----------------------------------------
Nog om det nu, Fick precis igång debugen till picen gissa om jag vart glad.. och åter igen TACK STIFF du vet vad du gav mig som hjälpte mig ;)


Därremot nån som vet varför mina servos inte ändrar riktning när jag pulsar 1ms, 1.5ms eller 2ms den bara går åt samma jävla håll :( (FEL HÅLL)

Mvh Jim
Skriv svar