# Roboti >  robota acis ->peles video kamera

## Epis

šitā domā par peles video kameru man neliek mieru jau vairākus mēnešus un tagat esu kautko sācis darīt lietas labā, 
man tagat ir ADNS2610 peles sensors kuram ir 18x18 pikseļu "acs"  ::  kopā sanāk 324 pikseļi un galvenais kad šitam sensoram ir laba dokumentācija (ka jau visām Agilent detaļām (ir firmas kas savu produktu dokumentāciju neliek internetā un man tās firmas riktīgi besī !) 
un pēc dokumenta kameras ātrums ir 1500 kadri sekundē, bet vienā kadrā var nolasīt tikai 1 pikseli (tas ir baigi sūdīgi!) bet domāju kad sākumā ar tādu ātrumu varētu pietikt lai atrastu līniju (tālumā!).
pagaidām esu uztaisījis kodu VGA draiveri un iztestējis uz VGA  LCD dispeja, kas ļaus iegūto peles video attēlu attēlot uz monitora ar peles izšķirtspēju 18X18. 
draivera darbības pincips ir tāds kad viņš visu laiku nolasa 8 bit pikseļu vērtību no iekšējas fpga RAM atmiņas bloka 4Kbiti jeb 8x512  un tākā šitie fpga ram atmiņas bloki atbalsta dual port režimu kad vienlaicīgi viņā var ierakstīt un arī nolasīt informāciju tad peles pikseļu vērtību saglabās pa taisno RAM atmiņā un VGA dispelja draiveris viņu pats autonomi nolasīs un attēlos, tākā par vizualizēšanas problēma ir atrisināta  :: .
aizmirsu pateikt kad vizualizēšanas fiču vaig tādēļ lai tam peles sensoram varētu pielikt klāt kādu optiku jo standartā pele ar savu optiku tālāk par 2mm neredz tākā ir doma paņemt optiku no savas Web kameras kur lēcu var regulēt manuāli  :: 

tālāk esu jau iesācis veidot to sensora nolasīšanas loģikas kodu kur ir jau gatavi serializeri un deserializeri tākā atliek uztaisīt state machine kas inicializēs peles sensoru un tad lasīs tos pikseļus, pie tā arī domāju tagat pastrādāt. 

kad dabūšu no peles sensora video attēlu tad beidzot varēs štukot par ideālās trajektorijas algoritmiem  ::  un citām fičām, jo bez video redzes tas praktiski nav iespējam.

----------


## Vikings

> kad dabūšu no peles sensora video attēlu tad beidzot varēs štukot par ideālās trajektorijas algoritmiem  un citām fičām, jo bez video redzes tas praktiski nav iespējam.


 Nu nu tas jau bišķi pa skaļu teikts.

----------


## Epis

protams teorētiski iespējams ir viss tādēļ arī teicu "praktiski nav iespējams"jo pagaidām neviens prakstiski neko tādu uz parastiem fototranzistoriem, diodēm nav reālizējis un kā viens no iemesliem ir tas kad priekš tādas ierīces vaig lielu sensoru skaitu lai vrētu noskanēt pietiekami lielu laukumu (robota priekšā) un to visslbāk var izdarīt video sensori kuriem tas pikseļu skaits ir jau pietiekami liels lai iegūtu normālu priekštatu par apkārtējo vidi + sensors ir kompakts un visu ko vaig lai viņu darbinātu (nolasītu ) ir 3 vadi pa seriālo linku, bet ja izmantotu kādus 30 fototranzistorus tad izmēri jau vien būtu milzīgi tādai platei nemaz nerunājot par vadu daudzumu un lodēšanas sarežģitību, tākā tīri praktiski izevīgāk ir paņemt kādu video sensoru kas ietaupa vietu, vadus un domāju kad arī enerģiju, + šito peles senoru varētu mierīgi izmatot kā lineāro enkoderi (priekš cnc agregāta  ::  vienkārši nolasot tās delta X,y vērtības jo piemēram man jaunai pelei ir 1000cpi izšķirtspēja kas ir 0,0254mm   ::   ja ņemtu jaunākās lāzerpeles ar 2000ipm tad būtu 0,0125mm gandrīz 0,01mm kas ir ļoti labi + ļoti lēti salīdzinot ar lineārā enkodera cenām tākā plānoju nošaut 2 zāķus viens priekš robota otrs priekš CNC.

vienīgā problēma ir ar to seriālo signālu jo peles sensoram signāli ir 5V bet man fpga ir 3,3V ir doma paņemt 74HCT244 buferi u ielikt starpā lai viņš pastiprinātu to 3,3V līdz 5 bet priekš ienākošā 5V samazināšanu līdz 3,3 izmantot parasto rezistoru dalītāju cerams kad šitāds variants strādās.

Nupat atklāju vēlvienu problēmu bet tā ir ar programmas rakstīšanu lieta tāda kad simulātors nemodelē seriālā interfeisa divvirzienu datu līniju, līdz šim nebīju saskāries ar divvirziena datu pāraidi, tagat būs arī šitā lieta jāpapēta tākā bišķi kodēšana ievilksies  ::

----------


## Vikings

Par HC244 runājot es tavā vietā par līmeņa pārveidotāju izmantotu CD4504 vai kādu analogu, kas tieši tam arī ir paredzēts. Ir pārbaudīts - strādā labi ceļot 3,3V uz augšu.

----------


## Andrejs

Lasu un brīnos - pamatus nezinām, bet peles sensoru "piešķilt" ir nieks...

Cien. Epi - no tukshas salmu kulšanas pārej pie darbiem. Līdz nākamajai Robotikai ir laika diezgan. Uztaisi tad kaut minimālu robotiņu un piedalies un tad stāsti savas idejas par ideālām trajektorijām un attēlu apstrādi.  Forumu lasa iesācēji un Tavi  "padomi" viņus var iedzīt strupceļā un dziļā depresijā  ::  
Tas nav uzbrauciens, bet veselīga kritika  ::  

Nezinu par konkrēto sensoru- bet pārsvarā viņiem vadība ir I2C veidīga un tas NAV tas pats kas RS232!



> sensoram varētu pielikt klāt kādu optiku


  - tas ir pavisam grūti! Daudz precīzu pāreju taisīšana un liela čakarēšanās lai bildi iefokusētu - esmu mēģinājis - rezultāts neapmierināja..
Lai ar ko tādu meklētu līniju, reālos apstākļos, objektīvam vajadzēs auto diafragmu (kura ,starpcitu, ari ir jāvada).
Peli ( ar standarta optiku) var labi izmantot robota kustības virziena un ātruma noteikšanai un nav jāslēdzās pie mikrenes, bet pie normāla ps2/usb kur tiek padoti jau gatavi un apstrādāti signāli. Tas ir aprakstīts un viegli iespējams realizēt uz mikroproča.

Nu un par attēla (pat ja izdotos viņu iegūt) apstrādi nemaz nekomentēšu  ::   ::   ::  

Ja nu kādam ļoti gribas "īstu" redzi, tad labāk sākt ar CMUcam vai AVRcam. Melnais darbs(dažu gadu garumā) tur jau  ir izdarīts.


Andrejs

----------


## karloslv

Andrej, pareizi Tu saki, bet manuprāt veltīgi...  ::

----------


## Epis

pamatus es švaki zinu tikai analogajai elektronikai, bet ar digitālo viss ir kārtībā, tādēļ arī man ir vieglāk paņemt kadu digitāli nolasāmu sensoru nekā analogo.
tavi Andrej minētie web kameru kiti man jau sen zināmi es tos visus uzraku un pieminēju tajā lielajā robotu topikā + arī savu web kamersas sensoru kuram ir švaki ar dokumentāciju un tas stūlbais USB, tādēļ arī kad ieraudzīju kas stāv manā pelē nolēmu pirmais iemēģināt to un tad redzēs ja neapmierinās tas tad ķersies klāt pie web kameras savējās vai tās nopērkamās kameras ar omnivision OV6620 sensoru, vieglāk jau būtu ar to OV6620, bet ja ņemu to USB kameras sensoru tad būs grūtāk, bet toties būšu to USB apguvis, + būšu spiest uztaisīt digitālo signālu oscilu, jo priekš tik lieliem ātrumiem man nekādu mērinstrumentu nav.

Es tomēr izmantošu priekš LVTTL pārveides uz TTL 74HCT244.

----------


## Andrejs

> tas stūlbais USB...


 
Tiešām  te teikt ko ir veltīgi...

Turpini dzīvot savā sapņu pasaulē.


Andrejs

p.s. Starpcitu, cik cien. Epim gadiņi?  Ja no 13 -20 tad vēl nekas nav zaudēts, ja drusku vairāk, tad laiks meklēt dakteri, ja vēl vairāk, tad nekas nepalīdzēs...

----------


## Vikings

> Es tomēr izmantošu priekš LVTTL pārveides uz TTL 74HCT244.


 Dari kā gribi, bet ši ir jau trešā reize, kad tev saku, ka HC244 nav līmeņa pārveidotājs, bet buferis, kas paredzēts, piemēram, vāju datu šinu buferēšanai uz lielākām slodzēm (piem, LED) vai garu vadu zudumu kompensēšanai...

----------


## Epis

Es jau pie šitā 74HCT244 esu pieradis, jo viņu esu izmantojis gan JTAG programmātorā un citur kur vaidzēja pārveidot no 3,3 uz 5V, cik lasīju google par līmeņu pārveidošanu tad šitā HCT sērija ir minēta kā labs variants jo viņai logiskais 1 sākās no 2V īdz ar to viņš to 3,3Vttl var saņemt un ārā izdod 5V TTL + viņam ir zems Vih šeit dokumentā ir tas minēts(paņemts no tabulas) :

VIH HIGH-state input voltage VCC = 4.5 V to 5.5 V     Min -> 2.0  V

+ šitam ir labākas Dinamiskās īpašības šeit no tabulas

 tPHL,tPLH propagation delay nAn to nYn      VCC = 4.5 V -> Typical 13  MAX  22 ns

salīdzinot ar CD4504 tas ir kādas 10X ātrāks jo tur tie rāditāji bīj virs 100ns un pat pie 200ns tākā pēc salīdzinājuma domāju kad labākais variants ir 74HCT244. 

kautkādies man tas seriālais interfeisa kods negrib iet, itkā atradu progas dokumentos kā divvirziena vadus simulātorā modelēt, bet nez kapēc simulātors neko nerāda, būs atsevišķi tas seriālā interfeisa kods jātestē un jāskatās kas par vainu, 
+ papildus jāapskatās Nios II proča SPI perifērijas kods. 

Andrej topiks tika veidtos lai apspriestu to kā dabūt pie dzīvības peles sensoru robota vajdzībām, ja nevari neko saistībā ar tēmu pateikt tad labāk nesaki !!

----------


## zzz

Man joprojaam ir ierosinaajums foruma administraacijai uztaisiit iipashu sadalju "epja bazaari" un vinja iespeejas posteet citaas teemaas limiteet liidz max 10 rindinjaam dienaa.

----------


## Epis

Tākā man tā arī neizdevās simulātorā to divvirziena IO signālu iztestēt tad uztaisīju test kodu priekš sava dev.kita kur es sūtu 8 bitus pa paralēlo datu līniju un tad es viņu serializēju izvadu uz divvirziena IO un no tā IO es to signālu nolasu un deserializēju tikai man sanāca deserializēt 7 bitus (jo kad kodēju jau aizmirsu cik tur bīj) un tad rezultātu iznesu uz zaļajām Led diodēm (priekš vizuālas pārbaudes jo simulātorā es neko neredzu!) un zaļās lampas dega tātad kods strādāja. 
 un zinot kad viss iet izdomāju kad priekš koda simulēšanas (jo simulēt viņu vienalga vaidzēs) izmantot papildus output IO un lai redzētu kā strādā un kādus datus saņemam tad savienošu to divvirziena vadu fpga mikrenes iekšienē kur simulātors tad rādīs kādi dati tiek saņemti. 

ja ir intrese tad šeit ir test kods. vienīgi es tur esu zimantojis jau gatavus Deserializeri un speciālu taimeri kuru var redzēt tikai to kā es viņus uztādu jo pats kods ir citā failā (lai būtu pārskatāmāks kods un mazāk jākodē)



```
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity SPI_test is
  port(CLOCK_24  : in std_logic;
--		,OE : in std_logic;
--		Data : in std_logic_vector( 7 downto 0);
--       SCK : out std_logic;
		SDIO : inout std_logic;
		LEDG : out std_logic_vector( 6 downto 0)
--	parallel_out : out std_logic_vector( 6 downto 0);
--	Serial_ouT,Ren_T,LD_T : out std_logic
		);
		
end SPI_test;

architecture SPI_test_arhitektura of SPI_test is
 signal timer,tmp :STD_logic_vector (7 downto 0);
	signal Timer_parallel : std_logic_vector ( 2 downto 0);
	signal Rdone,Timer_start, Timer_end, T_en,t_end, sdio_out, 
	sdio_in,Ren,Ld,clk : std_logic;
signal Data :  std_logic_vector( 7 downto 0):="10101010";
signal OE :  std_logic:='1';

component serial_paralel is
  port(CLOCK_16,Ren, SDIO  : in std_logic;
	parallel_out : out std_logic_vector( 6 downto 0));
end component;

component generic_interval_timer IS
Generic (n: positive:=11);
    PORT
    (clock, Enable : IN STD_LOGIC;
		compare : in std_logic_vector((n-1) downto 0);
        comp_out : OUT STD_LOGIC);
end component;

begin 

 clk<=CLOCK_24;

Timer_start<='1';

Test_timer : generic_interval_timer
generic map( n=>4) 
port map( clock=>clk,enable=> Timer_start,compare=>"0111", comp_out=>LD);

--LD_T<=LD;
--data<="00000111"; -- Pixel summ 0x07

process(clk)
begin
if rising_edge(clk) then
	if LD ='1' then 
tmp <=data;T_en<='1';
	else tmp(7 downto 1)<= tmp(6 downto 0);
	 end if;
	if T_en='1'then
	Timer_parallel<= timer_parallel +1;
	 if Timer_parallel ="111" then Ren<='1';T_en<='0'; Timer_parallel<="000";
	else Ren<='0';
	
	end if; end if;
end if;
end process;
Sdio_out<=tmp(7);

--Ren_T<=Ren;
--Serial_ouT<=tmp(7);

--Altera kods 
PROCESS (oe, SDIO)          -- Behavioral representation 
   BEGIN                    -- of tri-states.
        IF( oe = '0') THEN
			SDIO <='Z';
            sdio_in <= SDIO;
        ELSE
            SDIO <= sdio_out; 
            sdio_in <= SDIO;
        END IF;
    END PROCESS;
-- izlabots
Serial_in : serial_paralel 
  port map(CLOCK_16=> clk,Ren=>Ren,SDIO=>SDIO_in,parallel_out=>LEDG);


end SPI_test_arhitektura;
```

 Tagat kad ir skaidrība ar šito divvirzienu IO un viņu simulēšanu tad sākšu taisīt peles kameras nolasīšanas kodu (nekā sarežģita tur domāju kad nebūs)
Ā un es izdomāju izmantot dev,kita esošo P2/S portu un tad man nebūs jātaisa nekādi līmeņu pārveidotāji jo tur jau par visu ir padomāts  ::  tur viņi izmanto 2 tranzistorus un pāris rezistoru, bet es domāju kad ar 74hcT244 arī viss strādātu.

----------


## Vikings

1. Epi, 8bit tristate buferu kodi ir netā, cik atceros nekas ārprātā sarežģīts tas nav. Tāda pārveidošana taču ir ārprātīga koda un ātruma tērēšana. Apakšā koda piemērs kuru uz fikso atredu.
2. Tie pāris tranzistori un rezistori visdrīzāk ir atvērtā kolektora loģika priekš PS2 interfeisa, ja atmiņa neviļ, PS2 tāds bija nepieciešams, tā kā HC244 diez vai tur derēs.

----------


## Epis

šeit shēma no P2/S porta izrādās kad tie 2 elementi kurus es nosaucu par tranistoriem ir shotkey diodes, teikšu kā ir es nezinu kā tā shēma tur strādā, bet laikam ka visam tur ir jāstrādā  :: 



Tavs kods ir intresants, bet es to savējo atradu alteras lapā un tagat apskatījos Quartus handbook tur par tristate ir tāds paraugs


```
Example 6–38. VHDL Tri-State Signal
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_arith.ALL;
ENTITY tristate IS
PORT (
mybidir : INOUT STD_LOGIC;
myinput : IN STD_LOGIC;
myenable : IN STD_LOGIC
);
END tristate;
ARCHITECTURE rtl OF tristate IS
BEGIN
mybidir <= 'Z' WHEN (myenable = '0') ELSE myinput;
END rtl;
```

 alteras piemērs no kura ņēmu kodu ir šeit  http://www.altera.com/support/examples/ ... bidir.html


```
bidir.vhd (Tri-state bus implementation)

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;

ENTITY bidir IS
    PORT(
        bidir   : INOUT STD_LOGIC_VECTOR (7 DOWNTO 0);
        oe, clk : IN STD_LOGIC;
        inp     : IN STD_LOGIC_VECTOR (7 DOWNTO 0);
        outp    : OUT STD_LOGIC_VECTOR (7 DOWNTO 0));
END bidir;

ARCHITECTURE maxpld OF bidir IS
SIGNAL  a  : STD_LOGIC_VECTOR (7 DOWNTO 0);  -- DFF that stores 
                                             -- value from input.
SIGNAL  b  : STD_LOGIC_VECTOR (7 DOWNTO 0);  -- DFF that stores 
BEGIN                                        -- feedback value.
    PROCESS(clk)
    BEGIN
    IF clk = '1' AND clk'EVENT THEN  -- Creates the flipflops
        a <= inp;                    
        outp <= b;                  
        END IF;
    END PROCESS;    
-- Es paņēmu šito apakšējo koda daļu :)
    PROCESS (oe, bidir)          -- Behavioral representation 
        BEGIN                    -- of tri-states.
        IF( oe = '0') THEN
            bidir <= "ZZZZZZZZ";
            b <= bidir;
        ELSE
            bidir <= a; 
            b <= bidir;
        END IF;
    END PROCESS;
END maxpld;
```

 Man ir tādas aizdomas kad tas Tri state koda piemērs ko tu uz ātro atradi ir domāts priekš simulātora nevis priekš loģikas jo tur ir tie Delay norādīti 6,5,8ns, kurus compileris diez vai var pārvērst uz RTL vismaz tā neviens nekodē loģiku, ja vienīgi tas kods nav domāts priekš simulātora, es pagaidām tādus kodus priekš simulātoriem nerakstu (man pietiek ar .vwf)
 tākā tas laikam kods ir domāts priekš tristate kanāla testēšanas nevis loģikas izveides.

pielikums:
varu vēl ielikt bildi signāliem kurus tagat mēģinu uztaisīt, un līdz lūlkstens  15:50 esu uzkodējis SDIO signālu tagat atliek pielikt SCK ar 90 grādu fāzes nobīdi un salikt precīzus ieslēgšanās un izslēģšanās perjodus un tad būs nolasīto datu filtrs jo izrādās kad ne visa infromācija ko peles sensors man sūtīs būs pikseļu vērtība būs tā sauktie tukšie perjodi uz kuriem norādīs 6 Data_valid bits un tad tos kas būs īstie arī sūtīs uz VGA draivera RAM atmiņu lai tiktu vizualizēti + vaidzēs adrešu skaitītāju, un tas tad arī vis. 
šeit signālu foto kurus es tagat taisu

----------


## Epis

pabeidzu SCK līnikju kodēt un šitā tagat izskatās sūtāmie un saņemamie signāli simulātorā, domāju kad tur viss ir pēc dokumenta specifikācijām  ::  


Pele:  tā ir  galvenā STATE MACINE kas izpilda iekodētās instrukcijas lai tos visus signālus salāgotu un pieslīpētu pēc vajadzīgajiem parametriem  :: 
Ps2_clk ir peles SCK signāls
SDIO_outT ir Seriālā signāla outputs 
SDIO_input_test kā jau pēc nosaukuma ir ienākošais seriālais signāls (ko es pats uzliku uz dullo priekš testa)
Parallel_out ir signāls kādu ted mikrene būs saņēmusi no peles.
CLOCK_24: ir tikā domāts kā 24Mhz pūlkstens bet kodējot izrādījās kad man vaidzēts 2X augstākas frekvences pūlksteni tākā es ar PLL viņu celšu līdz 48Mhz un tad no tās frevkences varēs dabūt 2Mhz SCK signālu (kas ir MAX peles sensora SCK līnijas ātrums)

tagat atliek to saņemto datus ielikt buferī un pielodēt peles sensoram to P2/S porta vadus un testēt. testā es to SCK frekvenci laidīšu kautkur ap 200Khz lai pats varētu ar oscilu redzēt kas tur notiek.

----------


## Raimonds1

Es gan domāju, ka Epim aizkosties līdz analogās tehnikas fīčā'am aizņems apmēram tikpat laika, kā man līdz programmēšanas lietām. Katrā ziņā, cik esmu lasījis postus par to, kā kādu problēmu saprast, ko tas varētu nozīmēt programmai, tur viss ir OK. LV ir padaudz elektronikas pratēju, kuri ne pārāk ar programmēšanu uz tu un arī programmistu, kuri, kā Epis, ne pārāk orientējas visādos tur analogajos terminos un principos. Esmu runājis ar dažiem programmistiem kuri rūpīgi slēpj to, ka no analogajām lietām neko nesaprot un arī to, ka tehnisku attēla, skaņas, ento datčiku apstrādes principos pat uzdevumu uzstādi''sanas stadijā, ko tai mikrenei vajazētu veikt - nevar saprast. Bet augs'minētais personāžš nekaunas no savas nezināš'sanas un zina to, ka vin''s nezina un tas LV ir ne tik bieži sastopams.

Prasme izfantazēt kas būtu, ja būtu ir nepietiekami novērtēta..

----------


## zzz

> Prasme izfantazēt kas būtu, ja būtu ir nepietiekami novērtēta..


 Elektronikaa da i vispaar inzhenieru darbaa to, kas buutu, ja buutu, apreekjina un izanalizee, nevis izfantazee.

Tilti, kas buuveeti uz izfantazeeshanaam, tendeejas sabrukt.

----------


## Raimonds1

iz veestrures  --amerikaanis, kas organizeeja pirmo transatlantisko kabeli un Angliju tik maz jeedza no elektriibas un kugoshanas lietaam, ka uznjeemaas darbu  :: 

dazhas idejas arii fizikaa un matemaatikaa rodas taapeec, ka taas ir elegantas, skaistas, saskaniigas , vienkarshas un tikai peec tam apaug ar formulaam

un tas, ka Epis ir vieniigais publiski zinaamais programmists, kas atziist, ka maz jeedz no analogaas elektronikas un par spiiti tam ir kaut ko uzbuuveejis, kas straadaa, tas nekaadi  neparaada reaalo programmistu skaitiu, kam oms, vats un ampeers liekas lamuvaardi un iemesls banam.

----------


## Epis

vakar  salodēju pelei tos vadus. 
neko daudz es tur nelodēju vienkārši paņēmu jau peles esošā P2/S  vada SCK,SDIO vadus pielodēju pa taisno pie peles sensora apejot tur esošo logitech mikreni un pārrāvu vadus kas iet uz to logitech mikreni lai tā nemaisās, vienīgi es nezinu kā būs ar sarkano LED diodi vai viņa strādās vai nē itkā viņai vaidzētu automātiski ieslēgties kad peles sensors strādā 
itkā jau varētu nākošnedēl kautko mēģināt patestēt, vienīgi lodējot es aizmirsu pielodēt papildus vadus kur oscilātoru piespraust, lai varētu redzēt kas tur notiek.

ja runājam par domāšanu, fantazēšanau tad ir tā kad nosākuma rodās IDEJA kas ir vienkārša fantāzija tad turpinot fantazēšanu sāk noskaidroties jau sīkākas idejas detaļas un tas viss paliek jau skaidrāks un pēc tam kad fantāzijas līmenī liekās kad tas varētu būt reāli izdarām tad arī ķerās klāt pie apreiķiniem, teorijas lai tās savas fantāzijas varētu pierādīt ka viņas patiešām ir reālas, vai arī ja slinkums kalkulēt tad jāuztaisa kāds protatips un tad arī var redzēt vai tur kautkas ir vai nav. 

Takā viss sākās ar vienkāršu fantāziju, dažreiz viņas ir tādās nereālas bet laika gaitā daļa tomēr realizējās, un ja sākumā es fantazēju par veb kamerām (robota topikā) tad sākumā tas likās tā nereāli, bet jo dziļāk rok jo skaidrākas lietas paliek un tākā tā lieta bīj samērā grūti realizējama tad tika meklēta alternatīva un reku atradās  peles video kamera ar ko tad varētu sākt un ja šitas aizies tad varētu ķerties klāt kautkam sarežģītākam kā piemēram Kodak video 640x480 68fps sensoram, jo rokot dziļāk tajā peles sensora dokumentācijā izrādās kad var nolasīt tikai pikseļus pēc kārtas līdz pilnam kadram 324pikseļi un tas sanāk pie 1512fps var nolasīt 4,66 kadrus sekundē kas protams ir baigi maz, bet sākumā pietiks arī ar to.

----------


## Epis

nupat Notika Pirmais peles tests un tas bīj veiksmīgs. Video attēlu es vēl nedabūju bet varēju daļēji pārliecināties kad pele komunicējās ar manu fpga, priekš saņemto peles datu vizualizēšanas es zimantoju 8 zaļas Led diodes(katram bitam sava diode)  un pieslēdzu viņas pie saņemto datu serial-prallel izejošās 8 bit datu līnijas kas savu vērtību nomaina ik pēc 100us un kustinot peli pa melnbaltu papīru diožu spilgtums mainījās uz melna bīj spilgtākas uz balta tumšākas tākā var teikt kad pa datu līniju gāja peles pikseļu informācija bet intresanti ir tas kad pikseļu infromādija sastāv no 6 bitiem un šeit viss peles sūtītā baita bitu atšifrējums:

Bit       7         6         5      4    3     2    1    0
Field SOF Data_Valid PD5 PD4 PD3 PD2 PD1 PD0

SOF   Start of Frame
        0 = Not start of frame
        1 = Current pixel is number 1, start of frame
Data_Valid There is valid data in the frame grabber
PD5 – PD0 Six bit pixel data

intresanti bīj tas kad man uz plates LED 7 bīj visu laiku ieslēgts, bet Led 6 mirkogja konstantā frekvencē ļoti lēnu ar samērā mazu spilgtumu domāju kad tas varētu būt SOF bits jo ja peles sensors ietu ar 4 kadri sekunsē tad tam bitam vaidzētu arī iemirgoties 4 reizes 1 sekundē un to ar aci pamanīt jau var , tālāk 5 leds mirgoja konstantā frekvencē ar švaku spīdumu kas liek domāt kad tas varētu būt Data Valid bits un visi pārējie ledi mirgoja atkarīgā no baltā un melnā it sevišķi pēdējie 4, tākā tas man liek domāt kad vaidzētu programmā uztaisīt tādu kā aizturi seriālās informācijas nolasīšanai par 1 SCK ciklu tad bits 6 ie ietu 7 bita vietā un iespējamā kļūda būtu izlabota  :: 

pielikums: 
veicu kodā nelielas izmaiņas un tagat Led7 rāda SOF un var redzēt visus 6 pikseļu bitus  ::   var tekt kad puse darba lai dabūt peles veb kameras attēlu jau ir izdarīta pērējā koda daļa jau ir tīrais sīkums  ::

----------


## Raimonds1

taa ir ar taam idejaam, bez tam svariigs aspekts ir slinkums, jo daudzas idejas tek realizeetas, tieshi meeginot samazinaat darba apjomu

neesi domaajis par to bitu inverteeshanu, lai 1 ir 0 un otraadi tad var arshiim 2 veerttbam opereet?

----------


## Epis

Urā peles kamera strādā un es nupat redzēju pirmos video attēlus un peli es vilku pāri vienam svītru kodam un tur bij melnas un baltas līnijas un monitorā es varēju saskatīt melno līniju starp balto vienīgi krāsu toņi bīj tādi haotiski dēļ tā kad vaga draiverim ir 4 bitu krāsu izšķirtspēja un sanāca kad pirme 4 biti tika vienai pamatkrāsai un atlikušie 2 biti atkal otrai pamatkrāsai un tad tur sanāk tāda krāsu spēle kad viss mirgo haotiski bez nekāda iemesla bet pārējai fons kur lapas krāsa bija balta bija melns un tad mirgojošās krāsas attēloja melno lapas daļu. 
Bet nebīj tā kad viss gāja gludi, viena no problēmām bija tā peles sensora sarkanā Led diode kas apspīdina filmējamo mirsmu viņa nez kāpēc automātiski slēdzās ārā kad pele netika kustināta līdz ar to filmēšana perjodiski pārtrūka un rādījās melns ekrāns ar dažiem pikseļiem izīmētiem kas peldēja pa ekrānu (tāds dīvains skats). 

Tātad lai normāli pele strādātu jānoskaidro kas vada to LED diodi ! 
man liekās kad pele gāja ar kādiem 2-3 kadriem sekundē jo uz vga displeja varēja redzēt kā tiek mainītas jaunās pikseļu vērtības pret vecajām (pa lieliem blokiem) un VGA man iet ar 30fps.

----------


## Raimonds1

taa diode ko dod aaraa - vai nu visu laiku kaut kaadu frekvenci, taa jaanoskaidro, jaaauztaisa multivibrators un viss vai arii pastaaviigi nemainiigu gaismu - ta vienkaarshi japiesleedz caur rezistoru

----------


## Epis

es tagat salodēju diodi tā lai viņa visu laiku spīd  un saregulēju VGA draivera krāsas tagat man ir melns ekrāns un melno līniju attēlo zaļā krāsa kura ņem informāciju no pikseļa augšējiem 4 bitiem (biti 5,4,3,2) pēdējos 2 bitus es atmetu viņi neko tāpat tur neizšķir! 
+ atadu kļūdu savā displeja draiverī viņš bija uztaisīts kā 20x16 pikseļu attēlošanai līdz ar to tika nepareizi attēlots peles video kas ir 18x16 un tad es domāju kur labāk to korekciju veikt un uztaisīju to ekrāna samazināšu VGA draivera pikseļu adrešu skaitītājam kad vienā līnijā viņš tagat skaita tikai līdz 18 un pārējie 2 ir nulles (melns ekrāns) jo samazināt to ekrānu par 2 pikseļiem es nemāku ja mazina tad uzreiz sanāktu uz pusi mazāks pikseļu skaits rindā tie būtu 10 un tas ir pa maz un 2x vairāk 40 atkal pa daudz tākā atmetam 2 pikseļus no 20 un dabūnam 18, un tas pats arī ir ar vertikālo pikseļu līkni kur 18 rindu vietā es varu attēlot tikai 16 līdz ar to šeit es 2 rindas vienkārši neattēloju.

Ir tā kad tagat tā DIODE deg vislaik bet tas gļuks kas līdzinās sensora aizmigšanai vienalga eksistē un viņš pirmstam izslēdza LED diodes gaismu un es pagaidām nezinu kā lai viņu noņem. pamēģināšu uztaisīt video ar savu logitech web kameru ja atradīšu codeku tās kameras rakstīšanas formātam, ja nē tad paņemšu fotoaparātu un nofilmēšu  ::

----------


## Epis

lūk šeit vidaks ieliku viņu youtube 

http://www.youtube.com/watch?v=ICWzqklU6M0

pašā sākumā var redzēt kad iet tie zaļie punkti  tad laikam kad peles sensors guļ un kad viņu pakustina tad viss notiek varam redzēt kā tiek attēlots video attēlā melnā līnija kura attēlojās zaļa un es viņu kustināju par samērā liela izmēra svītru kodu. 

sūdīgi kad tas ātrums ir baigi lēnais un kustinot perjodiski tā pele nočakarējās un rādās tie stūlbie punkit iespējam kad pele aiziet gulēšanas režimā, peles dokumentā par to gulēšanu nekas daudz aprakstīts nav tikai kā uzstādīt to režimu un kā no viņa iziet bet par to automātisko izslēgšanos ne viena vārda (vismaz es pagaidām nekur neko par to nēsu atradis.  ::

----------


## Raimonds1

ko viš dara, la kustina gar melnu svitru?

----------


## Epis

> ko viš dara, la kustina gar melnu svitru?


 kā tajā youtube video var redzēt ta tad  kad peles sensors(acs) redz melnu līniju monitorā tā melnā līnija tiek attēlota kā Zaļa līnija (krāsu var pamainīt) un tas tad arī ir tas ko peles 18x18 pikseļu kamera filmē un kā redzams tad neko prātīgu no šitās peles kameras uztaisīt nevar jo tas filmēšans ātrums ir ļoti ļoti lēns (3-4kadri/s) 
vienīgi robotam derētu šitas sensors kā piemēram kustības āturma noteikšanai vai arī pārbaudīt vai robots brauc pa melno līniju jo kamera var nolasīt 1 pikseli 1/1500 sekundē. 

domāju kad kautkas sakarīgāks sanāks no kodak KAC-9647 VGA video sensora kuru es tagat nopirku no digikey, viņam ātrums ir 68 kadri sekundē + ja samazina filmējamo attēla laukumu (windowing) tad kadru ātrums pieaug vienīgi būs kādi pāris mēneši jāpagaida kamēr es tam sesnoram PCB plati uztaisīšu un kad SMD krāsns būs gatava.

----------


## abergs

Robots ar peles sensoru:

apraksts ar visu dokumentāciju:
http://www.iss.uni-linz.ac.at/pathfinder/
YouTube (gan citi roboti):
http://www.google.lv/url?q=http://ww...NsFd0yxeWxIwVA

----------


## Epis

Reku es paņēmu un šovakar salodēju savu Kodak video sensoru un uzliku web kameras Optiku  ::  
varbūt kautkad ap ziemassvētkiem, tad kad nebūs ko darīt, uzkodēšu draiveri priekš šīs video kameras  :: 
Ja kas man ir vēlviens video sensors vienīgi tam nav optikas, ja šitā kamera strādās tad būs jānopērk kāda cita lētā Web kamera un jāizņem ārā optika no tās tad man būs 2 kameras ( stereo attēls  ::  )
[attachment=0:3b3b49f4]Kodak_sensors2.JPG[/attachment:3b3b49f4]
[attachment=1:3b3b49f4]Kodak_sensors1.JPG[/attachment:3b3b49f4]

----------

