Cubieboard GPIO és szenzorok

Hello!

Szeretnék egy kis segítséget kérni, van egy A10es (első generációs) Cubieboard-om. Ezen szeretnék pár szenzort működtetni, de készen letölthető szoftver ehhez nincs (mint pl az Adafruit pyhonban írt rpi-hez letölthető cuccai). A GPIO-k működnek (multiméterrel mérhető), de persze az Adafruit szoftvere nem ott keresi a GPIO-t, ahol az van. Jelenleg elsősorban DHT22-vel szeretném ha működne.

Minden segítséget előre is köszönök!

Hozzászólások

Gondolom jon majd valaki ugyis, aki mar latott ilyen boardot, de en a kovetkezo lehetosegeket latom:
-irsz hozza ilyen libet/drivert
-keresel egy mar letezot, es portolod ra
-kitalalsz valami mast

Ha szeretsz ilyenekkel szorakozni, akkor gondolom az 1-2 tokeletes, de akkor valoszinuleg nem itt kerdeznel. A DHT protokollja viszonylag kenyes az idozitesekre, a Cubie-t nem ismerem, de tippre trukkozesek nelkul nehez dolgod lesz. Ha inkabb megkerulod a problemat, Arduinohoz van mukodo DHT library (bar csak 11-essel teszteltem), pl. USB-n vagy UARTon csatlakoztathato, es nem nagy befektetes egy nano/mini klon (elobbin van USB, utobbin nincs). Nekem par perc volt osszerakni, es mukodesre birni..
Teny, ez egy kicsit B-terv szeru, de mukodik.

--
Is that a banana in your pocket, or are you just happy to see me?
Neither, it's my new iPhone.

Egy nano klón bruttó ezres itt, ennyi "befektetéssel" szerintem sok szívást megspórolsz magadnak.

Illetve ha a hőmérsékletmérés elég, akkor talán a dallas 1wire cuccokkal könnyebben megoldható: http://docs.cubieboard.org/tutorials/cb1/customization/ds18b20_via_1-wi…
Én openwrt +usbserial +ds18b20 cuccot használok, azt gyerekjáték volt összerakni.

A DHT22 alias AM2302 egy kötöttebb 1-Wire szerű (de nem az) protokollal szólítható meg.
Ebben a leírásban, kb. 3,5 oldal terjedelemben megtalálod a protokollt. Van időzítés, folyamatábra, stb.
Az eszköznek nincs címe, ezért nem lehet "megtalálni", és ugyanezért egy vezetékre csak egyet tudsz kötni.
Az adatlap alapján nem bonyolult megírni. Mintának használhatod pl. ezt a libet.

Köszönöm szépen, valójában ez már a fele a cucc-nak és valamiért én ezt a leírást nem is találtam meg (mondjuk a lényegi info egy másik lib-ben kommentben ott volt, de azért az mégsem egy doksi).
A cubie viszont több, mint egy mikrokontroller, így a már említett Adafruit kódot szerintem egyszerűbb lenne átírni (https://github.com/adafruit/Adafruit_Python_DHT), illetve igazából, ahogy a kódot nézem inkább hozzáírni, hogy ne csak az 1-es, 2-es Rpi-n és a beaglebone black-en menjen. Ez egyébként magát a kommunikációt jól kell, hogy csinálja (ezért sem keresgéltem olyan sokat a protokoll leírását).

FathoM

Igen, sajnos ez egy hátrány, mondjuk (fingom sincs ARM-re van-e), de ezt egy real-time kernel talán megoldhatja. Viszont annyira nem probléma, mivel ha nem jó az eredményt, azt elég jól lehet érzékelni, így megismételni a mérést, illetve összevonni a legutóbbi 10et mondjuk és alapján tenni valami. Nem kritikus alkalmazásban lesz, így ha rpi-vel megy viszonylag használhatóan, akkor nincs baj (márpedig a kölcsön rpi-n simán megy, 30-40 mérésből 1-nél történik valamilyen baj).

FathoM

Azért megy az Rpi-vel elfogadhatóan, mert az említett git repóban lévő common_dht_read.c-ben megemelik a prioritást:

"// Use FIFO scheduler with highest priority for the lowest chance of the kernel context switching."

________________________________________
https://sites.google.com/site/eutlantis/

Ecceruen nem RPi-re valo a 1-wire-os szenzoros meres: az RPi-n ez esetben _kolonckent_ ott csucsul a Linux.

Irtak mar itt: a merest egy uC-rel illik vegezni, aztan a RPi-be be lehet kuldozgetni, pl. soros vonalon ecceruen.

Peldaul ATtiny85 (2x4-es DIL tokban, mert konnyu vele dolgozni, es kiskoromnyi aprosag a DIL-ek kozt); hely sen kell neki sok, jol belefer egy RPi-hazba.

UART-ja nincs de szoftveresen nem nagy kihivas:

#include <SoftwareSerial.h>

A tiny flashenek 80%-at viszi el a kod, es ebben benne van a paratartalom es a homerseklet atkuldese is.

A tiny ~500 Ft, ha 2,7 voltnal nem kell lejjebb merulni; marpedig nem kell, mert a tapot az RPi adja. Ha nem az RPi-be megy "bele", hanem gombelemre "ra", akkor a kicsit dragabbat erdemes valasztani, de cserebe 1,8 voltig mukodik (meg persze csak 10MHz-ig, de ez nem problema).

Tehat en maradnek az RPi-nel, mert tok jo, hogy van rajta egy komplett op.rendszer (Rasbian), de az RPi csak egy szenzor-HUB, meg kommunikacios kozpont, meg a banat tudja, hogy meg mi, de a piszkos munkat csak es kizarolag microcontrollerek vegzik; itt a meret attol fugg, hogy mekkora a kod, amit belejuk kell tolteni.

Ha tudsz jol forrasztani, akkor az ATmega328P 600 Ft, es van benne sok minden, pl. UART-is:

http://www.tme.eu/hu/details/atmega328p-au/atmel-avr-smd-mikrovezerlok/…

Ha nem megy jol a forrasztas, akkor DIL-ben, de az "hatalmas" (meg picivel dragabb):

http://www.tme.eu/hu/details/atmega328-pu/atmel-avr-tht-mikrovezerlok/a…

_

A 328P DIL tokban 600-ert nem draga, de persze lehet venni kinait par szazzal olcsobban,

http://www.aliexpress.com/item/Free-shipping-20-pcs-lot-DIP-28-ATMEGA32…

csak hat a _hamisitvany_ neha nem ugy viselkedik, ahogy az "adatlapon" fel van tuntetve; egyik erdekes produkcioja a kinai 328-nak, amikor a wd-t beallitva elreseteli magat a csip, aztan a resetpinje sem billenti ki az elszallt allapotbol. Ilyenkor aramtalanitani kell peldaul...

Szoval hasznalok en is a kinait, de fel kell keszulni az ilyen es hasonlo mukodesbeli elteresekre; nekem a 600 Ft az eredeti amerikai csomagolasu ATmega328P-ert nem tunik soknak, kifejezetten nem veszek DIL-tokosbol kinait, mert ekkora meretben nem azon a 200 forintrol szol a vasarlas.

+++

A nano nem 328-as, tehat inkabb a pro mini, a 3,3 voltos verzio, mert sok eszkoz 3,3V-os, peldal a radiok. A Pro Minin nincs usb, de nem is hianyzik; programozni lehet SPI-n (vagy soros vonalon bootloaderrel, ha nem gond a loader altal evitt terulet).

Pro Mini 3,3 voltos olcson beszerezheto kinabol, kb. 500 Ft, de ujra: ez kinai cucc, nem eredeti Atmel!!!

http://www.aliexpress.com/store/product/Free-Shipping-10PCS-LOT-Pro-Min…

Igen, ezen be kell forrasztani a tuskesort, de akinek ez gond, az nem is mikrokontrollerezik igazabol, legfeljebb Arduinozik, ami nem teljesen azonos tevekenyseg, de legalabb elvezetes forrasztgatas nelkul is egy breadboardba dugdosni a szenzorokat, csak hat termekkent nem lehet odaadni senkinek egy breadboardba bedugott arduinot, egy szenzort, meg ezekkel osszedugott RPi-t.

_

Nah annyira értenék az elektronikához, amennyire te... De sajna nem, persze ezen lehet változtatni. Viszont jelenleg fontosabb lenne a konkrét eredmény, mint az, hogy ezt el lehet-e adni (ami amúgy a jövőben még talán reális is lehet).
Amúgy a cubie 1wire kapcsolási lehetősége nagyon is jónak tűnik, amit fentebb ajánlottak és szerencsére fillérekért lehet kapni (csak a város szélén így nem ma megyek ki érte).

FathoM

A DS18B20-assal is ugyanaz lesz a bjod, mint a DHT csaladdal, a 1wire is idoziteskritikus. Ha meg akrod uszni, akkor ugye ott vannak az Arduino klonok (nem veletlenul ajanlottam/ajanlottuk). A masik lehetoseg, hogy olyan erzekelot valasztasz, amihez van hardware tamogatas a Cubie-n. Nem ismerem azt a boardot, de pl. szokott lenni I2C meg SPI is ezeken, es vannak ilyen interface-u szenzorok is.
Nemtom neked homerseklet vagy paratartalom kell-e igazan, a DHT nagyon pontatlanul meri a homersekletet, de legalabb van rajta paramero (az ujabbak pontosabbak). A DS18B20 nem mer parat, de nagyon pontos a homersekletfelbontasa. Vannak egyeb szenzorok is, pl. a BMP085/BMP180 csalad I2C-n megy, homersekletet es legnyomast mer (parat pont nem tud), de elvileg vannak I2C-s paramerok is (nekem epp nincs, de amit emlitettem, azzal mar jatszottam Arduinoval).
SPI szinten jo, az meg kulon hardware tamogatas nelkul is lekezelheto, mert te adod az orajelet. Gyakorlatilag olyan, mint ha shift-regiszterbe tolnal be adatot, ill. olvasnal vissza.

(Ja, ne tevesszen meg, az Atmel-ek TWI-nek hivjak az I2C-t (mint two-wire-interface).)

--
Is that a banana in your pocket, or are you just happy to see me?
Neither, it's my new iPhone.

Jatekra teljesen jo a kinai klon is. Amugy az en nano klonjaimba 328P-t tettek a kinaiak, minibol van 168-as (a 328-asok mellett).
Nanot $1.99-ert lehet rendelni, a mini pro 400 ft korul van, ezresert mar microt kapsz.

Van valami listad a watchdogon kivul, hogy miben ter el a ketto? Erdekelne, hogy mire figyeljek..

--
Is that a banana in your pocket, or are you just happy to see me?
Neither, it's my new iPhone.

Eddig nem futottam bele masba, de ez eleg durva hiba, es csak jozan paraszti esszel gondolom, ha egy ilyen fontos funkciot nem sikerult normalisan leklonozniuk, akkor a tobbi reszenel sem lehettek tulzottan pontosak.

+++

A nano nem hasznaltam, raneztem egyre kepen, aztan lattam egy csipet rajta: ebbol kovetkezett, hogy nem 328 van rajta; de az van, csak nem lattam alulnezetbol, mert ott van rajta egy ftdi.

A cc-es lapon az aljat is mindjart megmutatjak

https://www.arduino.cc/en/Main/ArduinoBoardNano

Ebbol az is kovetkezik, hogy a kinai _duplan_ szart gyart, mert az ftdi-os csipet 100%, hogy hamisitja (egy eredeti ftdi-os ft323 _nem_jon_ki_ 500 forintbol...), ami azt jelenti, hogy az ftdi altal kiadott windowsos drajverrel nem fog menni...

Ezert is valtott az Arduino stab el az ftdi hasznalatarol mert _draga_, es inkabb olyan Atmega uC-t tettek a 328 ele peldaul az Arduino UNO R3-on, amin van usb tamogatas.

Kina nem rossz csak olcso. En kinaibol csak a Pro Mini utanzatot hasznalok, a mar emlitett problemaval egyutt elve: wd funkcionalitast egy _kulon_ tiny latja el. Egy rendszer wd nelkul nem sok szart er, plane, ha kinai cuccokbol van osszeepitve; de ha eredeti rajta minden, akkor is kell wd, mert csak: kiteszel valahova egy szenzoros egyseget, ahova havonta egyszer mesz ki, akkor csak azert nem akarsz kimaszni a puszta kozepere vagy egy toronyba fel, mert ujra kellene inditani a szaros szenzoregyseget, mert valami elszallt rajta.

+++

A micro miert eri meg, ill. miert jo microt hasznalni?

A legtobb klonra nem FTDI kerul (es nem is a klonja), hanem CH340G. Tokeletesen ellatja a feladatat, eddig minden rendszer talalt hozza magatol drivert is. FTDI-okkal szivtam korabban, ezzel nem, es arban sem rossz.

Az teny, hogy a WD fontos, bar van olyan nanom, ami honapok ota megy problema nelkul. Amugy ha a nyakon elfer, valoszinuleg arban is jobban jarsz egy kulon tiny-val, mint az eredeti vs. klon arkulonbseggel. Raadasul mas, egyszeru feladatot is kiszervezhetsz ra, ha bizol magadban.

szerk: a Micro 32U4 alapu, van hardware-es USB kezeles, szoval megy pl. eger/bill paroskent, vagy amit szeretnel. Illetve az USB-TTL chip nem foglalja le a soros vonalat, szoval ha valamivel szeretnel ugy kommunikalni, es nem eleg a SW serial, akkor hasznos. Fejleszteshez szinten jo, egyszerubb megcsinalni a programot ugy, hogy kozben debug uzeneteket/vezerlest kuldesz USB-n, es ha kesz, attolod pl. nanora/minire.

--
Is that a banana in your pocket, or are you just happy to see me?
Neither, it's my new iPhone.

Marmint FTDI klonokkal szivtal, nem FTDI-okkal, nem?

Google keresojebe csak ennyit irtam be: CH340G
Erdekes a talalati lista; mindjart az elejen: How to use cheap Chinese Arduinos that come with with CH340G

+++

Igen, ezert hasznalok kinai Pro Mini utanzatot es melle megy egy ATtiny85, mert a wd funkcio mellett meg fer ra kod is; szerintem is nagyon jo parositas.

400 Ft http://www.tme.eu/hu/details/attiny85-20pu/atmel-avr-tht-mikrovezerlok/…
700 Ft http://www.tme.eu/hu/details/attiny85v-10pu/atmel-avr-tht-mikrovezerlok…

(5-osevel vesszuk, afat visszaigenyeljuk; a 700-asnak jobb a merulesi szintje)

+++

A 328-on van UART, tehat nem ertem a szoftveres serial megjegyzesed.
_

Kicsit félreérthetően fogalmaztam: drága ahhoz képest, hogy erre a feladatra (egy DHT22/DS18B20 lekérdezése lenne a feladata) bőven alkalmas egy működő arduino klón is, és mindezt forrasztgatás és egyebek nélkül, majdnem OOTB tudja.

A nano v3 328-as, a klónjai is azok (felirat szerint legalábbis), viszont 5 V-os. 5V-on elmegy a DHT22 és a 18B20 is. A rádiók igénye nem igazán szempont ha egy hőmérő lekérdezése a feladat, szempont viszont hogy milyen feszültségszinten kommunikál a cubie-val, már ha I2C/SPI összeköttetésről van szó, márpedig a cubie szerintem bőven 5V alatti jelszintet kezel, szóval illeszteni kell.
De van usb port a cubie-n és a nano-on is, ahol "soros porton" keresztül szépen el tudnak beszélgetni egymással.

A nanot beneztem (nem hasznaltam, egy csipet lattam rajta, es nem neztem ala, amibol az kovetkezett, hogy 328-as nem lehet).

A radiozas igenye meg szempont, mert van, ahol radioval kell atkuldeni az adatokat; jobban szeretek egy rendszerre raallni, es azt rakni oda is, ahol nem kell radioval kapcsolodnia a uC-nek, mert igy egyszerubb az elet.

A Pro Mini olcsobb is, mint a Nano, most hirtelen ezt talaltam:

http://www.aliexpress.com/item/ProMini-ATmega328P-3-3V-Compatible-for-A…

De ehhez meg hozza kell rakni egy wd-t, amire en egy ATtiny85-ot szoktam elhasznalni; a kinai sajnos hamisitvany szokott lenni, es nekem meg egyikkel sem sikerult a 328-as sajt wd-jevel sikeres resetet vegrehajtatni.

_

Nanoból a v3 előttiek 168-assal vannak szerelve, szóval annyira nem nézted be.

A rádiózás igénye _ennél a feladatnál_ nem szempont, fathom egy arm-os SBC GPIO portjain akar(t?) hőmérő szenzort olvasni, erre javasoltuk hogy inkább egy uC kezelje a szenzort és rajta keresztül kapja a cubie az adatokat.

A pro mini olcsóbb, persze.

Amúgy van néhány arduino klónom, erre a wd reset-re adnál kódot hogy pontosan mi az ami nem megy? Ha ráérek kipróblnám.