Jump to content


Photo

Pic + NRF24L01, cod in mikroC


  • Please log in to reply
6 replies to this topic

#1 OFFLINE   Drk_alien

Drk_alien

    Membru

  • Membri
  • PipPip
  • 104 posts

Posted 07 April 2016 - 01:01 AM

Salutare,

Nu am postat de mult aici fiind ocupat cu alte treburi, ma bucur sa va regasesc si iata problema mea:

Doresc sa imi fac un avion cu telecomanda iar pt transmiter si receiver am decis sa folosesc module NRF24L01. 

In mikroC Pro exista deja o librarie care este special facuta pt acest modul dar eu m-am blocat la configurarea pinilor deoarece exemplul este pt un alt tip de Pic.

Eu voi folosi un Pic18F2580 atat pt transmiter cat si pt receiver.

Partea de cod pe care eu nu o inteleg si la care primesc eroare de compilare este aceasta: ( Syntax Error: 'b' expected,  but 'C5' found )

Eroarea o primesc atunci cand vreau sa inlocuiesc LATC.B7 de pe linia 2 cu LATC.C5 si TRISC.B7 cu TRISC.C5

M-as bucura daca cineva m-ar ajuta cu o explicatie.

sbit Irq_pin   at PORTB.B0; sfr;
sbit Mosi_pin  at LATC.B7;  sfr;
sbit Ce_pin    at LATA.B4;  sfr;
sbit Sclk_pin  at LATA.B3;  sfr;
sbit Csn_pin   at LATA.B2;  sfr;
sbit Miso_pin  at PORTC.B6; sfr;

sbit Irq_tris  at TRISB.B0; sfr;
sbit Mosi_tris at TRISC.B7; sfr;
sbit Ce_tris   at TRISA.B4; sfr;
sbit Sclk_tris at TRISA.B3; sfr;
sbit Csn_tris  at TRISA.B2; sfr;
sbit Miso_tris at TRISC.B6; sfr;

Ce nu inteleg eu aici este, sa luam de ex linia 2 in care Mosi e configurat cumva in registrul LATC.B7. Asta ce inseamna? B7 de unde vine?...nu ar trebuii sa fie un 'C' ? Trebuie neparat sa ma folosesc de registrul LATC, LATA...etc?

Pt Pic18f2580 am decis sa folosesc pinii asa:

 

RC2 - CE (NRF24L01)

RC1 - CSN (NRF24L01)

RC3 - SCLK (NRF24L01)

RC5 - MOSI (NRF24L01)

RB2 - IRQ (NRF24L01)

RC4 - MISO (NRF24L01)

 

Si de aceea am nevoie sa schimb aceste setari.

 

Sper ca am fost destul de explicit.

Multumesc mult.

 

 



Cu_reclama

Cu_reclama
  • Membri

#2 OFFLINE   thunderer

thunderer

    Mjölnir wielder

  • Membri
  • PipPipPipPip
  • 1,994 posts
  • Locatie:Québec (FR+EN)

Posted 07 April 2016 - 02:26 AM

LATB.B0 adica Port B, bit 0. LATC.C0 nu exista pentru ca dupa LATX (X e portul A, B, C...) vine mereu un B.Y (Y = 0 la 7 dupa cati pini ai port).

 

Ai grija cu NRF-ul la avioane, iti trebuie un modul puternic daca vrei sa controlezi avionul departe. Nicidecum modulele de pe eBay la 1-2$.


Si, da, la PIC 18 ai mereu LATX, nu PORTX.


PS: nu am verificat daca exemplul foloseste SPI hard sau soft. Daca e soft, nu conteaza pinii, daca e hard atunci nu va merge decat cu pinii dedicati conectati.


Chiar daca programul va compila corect.



#3 OFFLINE   Drk_alien

Drk_alien

    Membru

  • Membri
  • PipPip
  • 104 posts

Posted 07 April 2016 - 03:37 AM

Am reusit sa compilez cu success, mersi de informatie.

Stiu ca nu sunt module puternice dar eu fac asta din pasiune si orice success ma va entuziasma. Eu sunt programator PHP de meserie. Nu prea ma am cu electronica dar sunt ok la programare in C, pornind din scoala cu programarea in C++.

 

Maine am sa fac niste teste sa vad daca se trimit niste date.

Eventual o sa revin cu niste intrebari.



#4 OFFLINE   thunderer

thunderer

    Mjölnir wielder

  • Membri
  • PipPipPipPip
  • 1,994 posts
  • Locatie:Québec (FR+EN)

Posted 07 April 2016 - 10:51 AM

Mai toti suntem din entuziasm pe aici. Spor la treaba.

Ar fi interesant ce protocol (codare) folosesti ca sa transmiti semnalul RC la avion.

Faci o comunicatie in ambele sensuri sau doar catre avion?

Intreb si eu sa vad ce idei mai au ceilalti.

PS: Eu ma joc cu barcute.

Edited by thunderer, 07 April 2016 - 10:52 AM.


#5 OFFLINE   one

one

    Membru evoluat

  • Membri
  • PipPipPipPipPip
  • 2,984 posts
  • Locatie:Trento, Italia

Posted 07 April 2016 - 10:58 AM

Folosesti modulele NRF cu amplificare ?

Nu cumva sunt cam slabute pentru avion? Ai incercat Zigbee ?


Edited by one, 07 April 2016 - 11:07 AM.


#6 OFFLINE   Drk_alien

Drk_alien

    Membru

  • Membri
  • PipPip
  • 104 posts

Posted 07 April 2016 - 01:15 PM

Aseara mi-am comandat NRF cu antena externa de pe ebay pt un range mai mare. ( folosesc dinalea fara amplificare momentan )

Vor ajunge in cam 1 luna, deci o sa am destul timp sa ma folosesc de astea mai slabute pentru development.

Ideea e ca la un moment dat sa ii montez o camera ( nu stiu inca cum si de ce probleme ma pot lovi ) dar asta am in plan.

Am si un modul giroscop, o sa vad cum ma pot juca cu el mai tarziu ca avionul sa nu depinda in totalitate de telecomanda si de indemanarea mea.

 

Nu am incercat Zigbee, defapt eu nu am mai incercat comunicarea radio intre microcontrollere. :rade:  Am facut tot felul de chestii cu dispay Nokia 3310 + tastatura PS2...dar in principiu chestii simple.



Cu_reclama

Cu_reclama
  • Membri

#7 OFFLINE   bufferzone

bufferzone

    Nou venit

  • Membri
  • Pip
  • 20 posts

Posted 15 December 2016 - 04:28 PM

Salut Drk_alien,

Ai reusit cumva sa comunici folosind exemplul de mai sus? Eu incerc sa folosesc un PIC18F45K22 si un Arduino Mega si nu reusesc sa citesc nimic in Arduino. Daca cineva are un exemplu pe care l-a folosit cu succes in trimiterea datelor intre PIC si Arduino ve rog mult ajutat-ma si pe mine cu exemplu. Am incercat o multime de exemple existente pe internet insa nu reusesc sa trimit si sa primesc nimic. Folosesc 2 NRF-uri cu antena externa pe care le alimentez de la o sursa de calculator, am pus intre masa si + un condensator de 100nF si tot nimic. Nu stiu ce sa mai incerc sa reusesc sa transmit cativa biti catre arduino.

Multumesc mult pentru ajutor!






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users