Raspberry PI - C programozas - linkek

Megerkezett a Raspberry Pi. Szuksegem volt egy olyan platformra, amelyen meg tudom ismerni, tanulni az ARM cpu programozasat, beagyazott rendszer kesziteset, csupasz vas “bare metal” programozast es a real time programozast. (Bar egy kis tapasztalatom van beagyazott rendszer programozasban: 80C2051-es prociba keszitettem par firmware-t.. 128 byte ram :)

Ezt a csomagot rendeltem meg:

http://www.amazon.co.uk/Raspberry-Pi-Starter-bundle-IceBerry/dp/B00BG59…

Nem bantam meg, minden kabel, tapegyseg jo minosegu. A 8 GB-os kartyan levo NOOBS rendszert gyorsan felulirtam a legujabb Raspbian-al, ami 5 GiB helyet hagyott, szoval 4GiB-os kartya kicsi lett volna. Telepites pofon egyszeruen tortent az ajanlott programmal kiirtam a kepfajlt az sd kartyara. Kolcson kaptam egy billentyuzetet, azzal beallitottam az SSH-t, illetve h ne X-et inditson. Tapasztalatom szerint a teljesitmenye a rendszernek kicsit sovanyka a grafikus felulethez... na de nem is ahhoz vettem. Tobbet billenytuzet nem kell, ssh-t hasznalva programozok.

Programozasa: haat.. evekig QtCreator-t hasznaltam, egy kis Eclipse-el. Miutan meglattam a nano, vim parost egybol feltelepitettem a Qt Creatort. Arra gondoltam h inditok tavoli X-et a kis linux notimrol, illetve vnc kliens-t windows alol (eppen melyik gep szabad) de nem igazan volt meggyozo a teljesitmenye... szoval a vim-et valasztottam es nagyon nem bantam meg. Kicsit meg kellett szokni, beallitani.

Hasznos vim link:
http://www.cs.swarthmore.edu/help/vim/home.html

Elso korben egy ultrahangos szenzor-t akarok eletre kelteni, ehhez bizony merni kell az idot.
Szenzor: http://www.amazon.co.uk/HC-SR04-Ultrasonic-Distance-Rangefinder-Detecti…

Eleg olcso. Lehet belole sok mindent kesziteni, pl riasztot, ami a hozza kapcsolt kamera kepet elkuldi az email cimemre :) es egybol megkapom a telefonon.

Rengeteg pelda van az interneten hogyan kell egyszeru kernel modult kesziteni, majd a kovetkezo blog bejegyzesben kiterek par peldara, bar az alabbi linkeken talalunk peldat. (Mint kezdo Makefile iro, figyeljunk a tab-ok hasznalatara space helyett!)

Hasznos linkek:

A blogger jobb eredmenyt ert el megfelelo utemezo kivalasztasaval mint real time kernel hasznalataval:
http://linux.subogero.com/1261/linux-real-time-periodic/

Setitimer-rol bovebben:
(Description ful)
http://www.engineersgarage.com/embedded/raspberry-pi/how-to-use-timer-i…

2MHz-es jel eloallitasa soros port hasznalataval:
http://www.raspberrypi.org/phpBB3/viewtopic.php?f=33&t=50757

Interrupt handler hozzarendelese a GPIO-hoz:
http://raspberrypi.stackexchange.com/questions/8544/gpio-interrupt-debo…

700MHz-es szamlalo engedelyezese a user space programok szamara:
http://blog.regehr.org/archives/794

700 Mhz-es szamlalo inditasa es resetelese:
http://sandsoftwaresound.net/raspberry-pi/performance-counter-kernel-mo…

Ha tovabb jutottam a szenzorral (illetve megerkeztek a vezetekek a probapanelhez) akkor a forrast felteszem a blogba.

Hozzászólások

Sok sikert a projektekhez! :)

Én is ezt a szenzort használom, csak nekem a robotom távolságmérésére kell.
Arra azért vigyázz, hogy az echo láb nem köthető közvetlenül a GPIO portra.
De két ellenállás már megoldja a feszültség eltérést. Lásd kapcsolást

Koszonom a figyelmeztetest!

Bar en tudataban voltam ennek, de nem art tudatositani a kezdoket h a Raspberry Pi CMOS szintet hasznal a labain (ami meg egy LED meghajtasahoz sem eleg) ezert TTL meghajto IC-t kell ra tenni, v ellenallassal megoldani.

http://www.petervis.com/Raspberry_PI/CMOS_to_TTL_Logic_Level_Converter/…

Mielott megkerdeznem a muszeresz apamat, ezt talaltam a neten:

A maximum of 16mA per pin with the total current from all pins not exceeding 50mA[sic]
http://www.thebox.myzen.co.uk/Raspberry/Understanding_Outputs.html

Itt is figyelmeztetnek:
"The drivers will allow you to pull more current - the SoC might get warm - to the point of burning out the pin drivers or the entire SoC. I have pulled 35mA out of a single GPIO pin in the past - I feel I was lucky that day and got away with it."

http://www.raspberrypi.org/phpBB3/viewtopic.php?f=44&t=45151

Ha jol tudom egy led 20-30mA-t hasznal. Szoval ovatosan.

A CMOS-nak ehhez nem sok köze van, az a belső felépítésére utal.

Egy sima egyszerű lednek elég sok a 20 mA. 1 - 10 mA-el bőven elmegy. (Nyilván nem köthető rá közvetlenül a kimenetre, hanem előtét ellenállás kell!)
A magas/erős fényű LEDek-et már valószínűleg nem bír el közvetlenül, a teljesítmény LEDek meg egy egész más kategória.

CMOS-sal vagy TTL-lel leírni a maximális feszültséget amúgy se célszerű. CMOS is lehet 5V-os, TTL-ből is van 3.3-mas (LVTTL).
A CMOS/TTL nem a logikai magas maximumát határrozza meg, hanem azt, hogy hol van a logikai magas/logikai alacsony között a választóvonal.
Bocs a szőrszálhasogatásért.

Nem a led határozza meg az áramot, hanem az előtétellenállás (a led meghajtása áramgenerátoros, ha megfelelően hajtod, az ellenállása elhanyagolható). Ha 16mA-t szeretnél, akkor R=U/I=3.3V/0.016A=206.25Ohm. Beraksz egy 220-ast, és biztos nem lesz gond. De az ökölszabály általában az, hogy egy led áramát 10mA-re állítjuk be, ez a nem erősfényű ledek 99%-ának jó. Egyébként fura lenne, ha nem tudna 16mA meghajtani egy ledet, az atmega128rfa1 is 16mA-t tud leadni egy portján (8 lábán) alapból, mi ezzel simán meghajtunk 4 db 0603-mas, smd ledet (piros-zöld-sárga-kék).

Persze, igazad van. Sőt, a forward voltage szín függő
"Utoljara 20 eve csinaltam LED-es aramkort, akkor 20mA-rel hajtottuk meg azokat"
Belenéztem pár random datasheetbe, azokban is 20mA van specifikálva, de ez nem jelenti azt, hogy 5mA-el nem világít (és nem csak pislákol: világít).

Igazatok van h ratehetek olyan ellenallast amivel lekorlatozom a fenyerejet, igy eleg a 10 mA, de akkor halvany lesz.

"Most LEDs have their characteristics specified at a current of 20 mA. If you want really good reliability and you are not certain you don't have worse-than-average heat conductivity in your mounting, heat buildup in wherever you mount them, voltage/current variations, etc. then design for 15 milliamps. "

Masreszt az 50mA aramkorlatot nem latom cafolva lenni, ugyanis nem csak 1 LED-et akarok rakotni hanem mas dolgokat is, pl ultahangos tav merot illetve homerseklet erzekelot.

Most olvasom kisbetu irasat: "6 mA lesz. mai LED-ek azzal is szépen világítanak" akkor elnezest. Utoljara 20 eve csinaltam LED-es aramkort, akkor 20mA-rel hajtottuk meg azokat...

A fiokban talalt LED-ek nem a legujabb technologiat kepviselik. Valoban vilagitottak 4mA-rel bar eleg halovanyan.

Masreszt en inkabb a defenziv strategiat reszesitem elonyben, inkabb zarom veletlenul rovidre egy nand kapu labait mint a GPIO labait :)

Most eppen az ultrahangos tavmero-vel szorakozok, ki kell mernem miert nem mukodik. Sima pollingal csinaltam meg, de kesobb csinalok egy kernel driver-t interrupt kezelovel. A LED-es panelt meghagytam a lanyomnak.