- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Magga: PLEX: multimédia az egész lakásban
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Gurulunk, WAZE?!
- Kempingezés és sátrazás
- Viber: ingyen telefonálás a mobilodon
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
-
LOGOUT
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
válasz
Dißnäëß #12862 üzenetére
Én bezzeg nem kapok ilyen cuccokat ajándékba.
Hát van, amiben jobb mint egy AVR, van amiben rosszabb. Utóbbi jóval kevesebb: nincs annyi lába, analóg bemenetből csak egy van rajta, az is sz*r.
Nem tudom előny-e vagy hátrány, de a CPU 3,3V-ot igényel, és bár a lábai 5V toleránsak, a beépített flash miatt elég háklis a tápfeszültségre, 3,6V már ki tudja nyírni. A linkelt lap tartalmaz némi védelmet és konvertert is, hogy usb-ről / 5V-ról működtethesd.
Előnye viszont annál több van:
Sokkal gyorsabb CPU, beépített flash memória (4MB), amit rengeteg dologra tudsz használni, és persze a wifi. De erről majd János250 kolléga többet fog írni, Ő az illetékes ESP ügyben.
A beépített flash miatt képes akár önálló webszerverként is üzemelni, olyan szinten, hogy sqlite adatbázist is lehet rajta használni. (A php azért nem fog rajta futni)
-
válasz
Dißnäëß #12859 üzenetére
Az arduino-ról ne tápold semmi esetre se, mert egy ilyen relé ha jól tudom 80mA körül vesz fel bekapcsolva, 8x80 az 640mA, az arduino onboard regulátora, vagy pláne, ha usb-ről működteted a lapot, nem nagyon fogja bírni. Inkább arra a külső 5V tápra kösd az arduino-t is, amire a relé board-ot.
-
válasz
Janos46 #12858 üzenetére
Teljességgel elfogadhatatlan!
Nemcsak azért, mert a Vin - mint a neve is mutatja - bemenet, tehát kifelé nem jön onnan semmi, de azért is, mert ha mégis kijönne onnan, abba a modul bele is pusztulna. A Vin-re 7-12V-ot szokás kapcsolni, amit a lap átalakít magának az onboard regulátorral 5V-ra. A DS3231 pedig 5V-ot szeretne kapni, úgyhogy kösd csak az 5V lábra, függetlenül attól, hogy egyébként honnan táplálod a lapot magát, azon 5V fog megjelenni, ami egy ilyen modulnak valószínűleg elég energiát tud biztosítani.
-
válasz
mardal84 #12854 üzenetére
Szia!
Ha a 9-es gombot helyettesíted húzókapcsolóval, akkor mondjuk így:// Simple example application that shows how to read four Arduino
// digital pins and map them to the USB Joystick library.
//
// Ground digital pins 9, 10, 11, and 12 to press the joystick
// buttons 0, 1, 2, and 3.
//
// NOTE: This sketch file is for use with Arduino Leonardo and
// Arduino Micro only.
//
// by Matthew Heironimus
// 2015-11-20
//--------------------------------------------------------------------
#include <Joystick.h>
Joystick_ Joystick;
void setup() {
// Initialize Button Pins
pinMode(9,
INPUT_PULLUP);
pinMode(10,
INPUT_PULLUP);
pinMode(11,
INPUT_PULLUP);
pinMode(12,
INPUT_PULLUP);
// Initialize Joystick Library
Joystick.begin();
}
// Constant that maps the phyical pin to the joystick button.
const int pinToButtonMap = 9;
// Last state of the button
int lastButtonState[4] = {
0, 0, 0, 0
};
void loop() {
// Read pin values
for (int index = 0; index < 4; index++) {
int currentButtonState = !digitalRead(index + pinToButtonMap);
if ((currentButtonState != lastButtonState[index]) && index == 0 ) { // 0 index = a húzókapcsoló a 9-es pinre kötve
lastButtonState[index] = currentButtonState;
Joystick.setButton(index, 1);
delay(10); // vár 10ms-ot, hogy a program észlelje a gombnyomást
Joystick.setButton(index, 0);
}
else if (currentButtonState != lastButtonState[index]) {
Joystick.setButton(index, currentButtonState);
lastButtonState[index] = currentButtonState;
}
}
delay(50);
}Ha másik gombra szeretnéd, akkor az index == 0 helyett 1,2 stb kell.
A kód azt csinálja, hogy minden húzás után 10ms-ig gombnyomás küld, majd elengedi. Ha ez kevés lenne, növeld a delay(10) értékét. -
válasz
tonermagus #12843 üzenetére
Esp32-re gondolt.
De egy Esp8266 is megtenné, nodemcu vagy wemos d1 mini, kb nano méretű, de sokkal gyorsabb és okosabb mindkettő.
Az említett pin kiosztás nincs összefüggésben a problémáddal, mert tudtommal egyik sem használt hardveres funkciókat. Nálad az egymással versengő megszakítások okozzák a problémát.
Milyen motorról van szó?
-
válasz
tonermagus #12840 üzenetére
"Az 5050-nek van valami hátulütője?"
A külön beépítendő feteken kívül annyi lehet még, hogy a pwm meghajtás ugyanúgy timer-t igényel, mint a szervó vezérlés, emiatt nem kötheted bárhová a ledeket. Nemtom írtad-e, hogy milyen lap lesz a vezérlő, de pl. UNO-n a servo lib a timer1-et foglalja le, tehát a 9-10 pineket nem használhatod pwm-re, csak a 3,5,6,11-et. -
válasz
tonermagus #12835 üzenetére
"a LED szalag R-G-B lábai azok GND vagy +12V-ként értelmezhetőek?"
Az attól függ, hogy a LED szalagod közös anódos, vagy közös katódos. Közös anódnál (szerintem a tiéd is ilyen) a szalagon "+ R G B" jelölések vannak, ez esetben a + a +12V, a többi lábat GND-re kötve világít. Ez esetben12V-ot és400mA-t kellene egy kimenetnek elviselnie. (illetve hülyeséget írtam, nem tudom mennyi V-ot, mert a LEDeken és a szalagon lévő áramkorlátozó ellenálláson esik a nagy része, a kimenetre nem jutna 5V sem, így ez nem jelentene problémát, csak a nagy áram miatt sülne meg)"elkövethetem-e az a merényletet, hogy egy MOSFET középső lábára midkét LED szalag egy színét ráköthetem?"
Ha mindkét szalag egyforma színű lesz, akkor minden további nélkül. -
válasz
tonermagus #12833 üzenetére
Ok, erre gondoltam.
Ha nem szeretnél 6db mosfet-nek helyet találni, esetleg meg lehetne oldani 1db ULN2003A darlington IC-vel, ezt használják az 5V-os stepper motorok meghajtására. Egy IC 7 kimenetet tartalmaz, kimenetenként 500mA terhelhetőséggel. Ezen viszont - a fetekkel ellentétben - 1,2V feszültségeséssel kell számolni. -
válasz
tonermagus #12831 üzenetére
Csak egy kérdés, mielőtt a többire válaszolnék: ugye nem egyenként szeretnéd majd a LEDek színét programozni?
A fet-ek a szintillesztés miatt kellenek, mivel ha az 5V-os mikrokontroller kimeneteire közvetlenül rákötöd a 12V-ot, a kontroller halk sikoltás és némi füst kíséretében kileheli a lelkét. Ugyanez a helyzet, ha 40mA-nél több áramot szeretnél elnyeletni az egyes kimenetekkel.
A 2*10db LED az valójában 2*10*3db, azaz 60db LED, mondjuk legyen 20mA/LEDdel számolva átlag 1,2A áram, az jócskán túllépi a 3x40mA korlátot (meg a 80mA/kontroller limitet is). -
válasz
Janos250 #12828 üzenetére
Örülök, ha tudtam segíteni!
Nagyon jó cucc ez a processing, már több egyszerű játékot is írtam vele. A p5js és az android közt mondjuk éppen pont nincs közvetlen átjárhatóság, de a sima asztali gépen működő java-s processing programokat minimális módosítással androidos telefonon is lehet futtatni, natív kódot fordít belőle az IDE. -
válasz
Dißnäëß #12823 üzenetére
"Tápot az Arduino viszont nem a Pi-ről vesz, hanem a hozzá adott USB átkötő kábelen keresztül, tehát Pi4 egyik USB portjára rádugom, majd a micro-USB végét az Arduino shield-re és akkor indul be."
Ennek így nagyon nincs értelme! A hozzá adott kábel szerintem csak programfeltöltésre lenne való, minden mást a gpio-n keresztül kellene kapjon, különben mi a franc értelme van a gpio tűsoros csatlakozónak? Biztos, hogy jól van rajta? Nincs egy kapcsoló rajta, ami a tápellátást átkapcsolja? Egy fotót küldhetnél az aljáról, kíváncsi vagyok rá.
-
válasz
Dißnäëß #12818 üzenetére
Szia!
1. Elvileg csak egyféleképpen lehet és szabad rátenni az arduino lapot a pi-re, különben tönkre tudod tenni, sajnos a pi gpio soron egymás mellett van az 5V, a 3,3V és a GND, nem jól tolerálja a pi a rövidzárlatot. Gondolom úgy gyártották le az arduino-t, hogy összedugva illeszkedjenek egymáshoz, de azért nézd meg, nincs-e valamilyen jelölés (a képen és az oldalon sajnos a lap alja nem látszik). Valószínűleg eleve csak az 5V, a 3,3V, a GND és a soros RX/TX lábak vannak összekötve, a többi tű nincs is bekötve, így nem számít, ha nincsenek összedugva.
2. Jóféle gyártó, nekem is van tőlük pár alkatrészem, pár évvel ezelőtt vettem, ezek szerint jól kinőtték magukat. Jó minőségű dolgokat gyártanak (szerintem full kínai a cég).
3. Elvileg az összes "B+" jelölésű pi-vel kompatibilisnek kell lenni, még a zero-kkal is. Talán még az "A"-kkal is, de ehhez látni kéne a lapot.
4. Bármilyen nyelven programozhatod a pi-t, amivel képes vagy soros kapcsolaton keresztül kommunikálni a lappal. A python az ilyen alap eszköz, gyárilag tartalmazza az összes disztó, és közkedvelt nyelv is (és speciel utálom), ezért adja magát, hogy mindenki ezt használja.
5. Az egymás alatt lévő két zöld sor ugyanaz, az alsó (mama) csatlakozó sztenderd arduino header, a felső pedig ahogy írod, GND/VCC/SIG, akár egy servo-t, vagy tetszőleges szenzorokat rá tudsz dugni mindegyikre anélkül, hogy forrasztani kellene, mivel alapból két 5V, két vagy három GND láb van a header-ön, és ezek sem egymás mellett, ez egy kényelmes megoldás. -
válasz
tonermagus #12793 üzenetére
max(a,b)-min(a,b)
elég elegáns?
Vagya>b?a-b:b-a
De a legelegánsabb aabs(a-b)
-
Nem írtad, hogy milyen lapot használsz, de ha pl. UNO-val szeretnéd használni, amin 1db hardveres serial található, akkor a kódfeltöltés során gondot fog okozni, ha a 0,1 tx/rx lábakra kötöd a modult. Feltöltés előtt vagy le kell mindig húzni a csatlakozót, vagy SoftwareSerial-t kell használni (másik i/o lábakon). Ezt elfelejtettem az előbb írni.
-
Ok, kérdezz inkább.
A hc-05 modul úgy működik, mintha egy virtuális soros összeköttetés lenne (ugyanez létesül, amikor usb kábellel a pc-re kötsz egy arduino uC-t). A uC rx/tx lábaira kell kötni, és a beépített Serial.read() Serial.write() stb függvényeket kell használni, mintha az arduino ide serial monitorra akarnál vele írni (olvasni). Amivel össze szeretnéd kapcsolni (pc, telefon) ismernie kell a" Bluetooth serial" szolgáltatást. Pc-nél egyszerű, összepárositod, ezután létrejön egy COM port, amire akár az arduino serial monitorral rá tudsz kapcsolódni. Telefonra kell egy program, ami ezt tudja kezelni, de elég sok arduino BT controller app van például a play áruházban, csak rá kell keresni.
A hc-05 gyárilag 38400 baud-ra van beállítva, ezért a aketch-benSerial.begin(38400);
sorral kell csatlakozni, valamint a fogadó oldalon is ezt kell beállítani. Ha erről eltérő sebességet szeretnél, akkor uart-on keresztül rá kell kapcsolódni és AT parancsokkal átállítani. -
Ha a default 38400baud sebesség megfelelő a célra, akkor nincs más dolgod, mint a serial rx/tx lábakra kötöd, és a Serial függvényeket használod, mintha kábel lenne rá kötve.
Ha át kell konfigurálni, akkor csak annyival bonyolódik a dolog, hogy az AT parancsokat át kell neki valahogy küldeni, de azt is csak egyszer kell elvégezni. Azután úgy viselkedik, mint egy virtuális soros kábel. -
A $ jelekkel ne foglalkozz, a PHP ezzel jelzi a változókat. Nem típusos nyelv, a változókat nem kell deklarálni, csak értéket adsz egy $valami nevű változónak, és onnantól deklarálva van. Kb úgy, mint a javascript, egy változó bármikor átváltozhat pl. int/float típusból string-gé. Nagyon fejlett string kezelő függvények vannak a nyelvben.
Mindent futtat, ami <?php ?> tag-ek közt van, ami ezen kívül van, azt simán kiírja a kimenetre. Pl.fájl eleje, ezt kiírja
<?php
echo "ezt lefuttatja\r\n";
?>
ezt is csak úgy kiírjaNem objektum-orientált, hanem függvényeket használ, mint a sima C nyelv (remélem nem írtam hülyeséget), de lehet benne class-okat definiálni és használni, például az általad linkelt oldalon a
$conn->query($sql);
a mysqli class egy példányának a query() eljárását használja.Ennyi, a https://www.php.net/ oldalon találsz részletes dokumentációt, példakódokkal.
Ha konkrét kérdésed van, írj privát üzenetet. -
válasz
gyapo11 #12761 üzenetére
133 órajel, egy utasítás attól függően, hogy mit csinál, 1-4 órajel, legrosszabb esetben is 33 utasítás, hát, ennél azért lehet jobban is optimalizálni a feladatot.
Nemrég elmerültem mélyebben az AVR assembly-ban, egy for ciklust port piszkálással együtt körülményektől függően negyed ennyi, vagy még kevesebb idő alatt meg lehet oldani.
-
válasz
Volkov #12757 üzenetére
Egy UNO 16MHz órajelen egy órajelciklus 0,0625μs. Egy interrupt triggerelése 3-4 órajel, a regiszterek mentése ha 20 órejelen belül megvan (márpedig szerintem simán megvan), simán el kell tudnod kapni az impulzusokat.
Még könnyebb úgy, ha csak az első órajelet próbálod elkapni, és ezután a megszakításban maradsz, megvárod a következő hét impulzust, mented az adatot és kész.
Szerk: ahogy látom János250 pont ugyanezt írta le a pszeudokóddal. -
"ez így megoldható azzal a feltétellel, hogy a periódusnak azonosnak kell lennie, csupán az összehasonlítási értékek különbözhetnek, amikkel a kitöltési tényezőt állítom."
Ugyan nem ismerem az STM32 uC-eket, de ez az AVR-eknél is így van, hogy egy timer azonos frekvencia mellett két különböző kitöltési tényezőt tud két külön lábra, gondolom ennél is hasonló lehet. De szerintem itt is 2-2 van, vagyis összesen 4, nem timer-enként 4. -
válasz
Janos250 #12726 üzenetére
De Te abban a tévedésben vagy, hogy ő választja meg az alkatrészeket, ő írja a programot. Miközben valójában a szimulátorban van egy beépített megoldás, előre megírt és lefordított arduino sketch-el, amiben UNO és a fent említett Adafruit motor shield szerepel. Pont.
Rádugja az összerakott hardvert, a szimulátor soros porton átnyomja a programot a board-ra és utána használja.
Gondolom valami módosított firmata firmware lehet előre lefordítva, még az is lehet, hogy megvan valahol a forráskód és át lehetne írni úgy, hogy egy fettel (Vettel?!) is működjön. -
válasz
Mosqu!to #12721 üzenetére
Neked nem erre van szükséged? [link]
Arduino motor shield v2 vagy adafruit motor shield v2 keresőszavakkal 5-6$ környékén van, én is vettem ilyet (vagy 3 éve), nagyon jó. TB6612 motorvezérlő van rajta, viszont i2c-n kommunikál a board-dal, ezért nem tudod bármivel helyettesíteni, csak azzal, amit a korábban linkelt videón látható program támogat. A rátöltött fw-ről is ha jól látom a szimulátor gondoskodik, tehát ebbe sajnos nincs beleszólásod, csak ha van hozzá forráskód, ami módosítható a hardver függvényében. -
válasz
KFORboy #12683 üzenetére
De lehet, avrdude-dal, illetve legkönnyebben avrdudess-el. ISP header-ön keresztül tudsz hozzájutni, ha van ilyen programozód, ha nincs, egy másik UNO-ból is tudsz építeni könnyen. Az így kinyert hex fájlt aztán ugyanezen módon vissza is tudod írni!
A kinyert hex fájlt aztán lehet disassembler-rel visszafejteni assembly kódra, ez ugyan nem C program, de vissza lehet belőle következtetni a program működését, ebben talán tudok segíteni. -
válasz
KFORboy #12653 üzenetére
Ha nem kell túl nagy pontosság, akkor
for (i=10800;i>0;i--){
//valamit csinálsz, ha kell
delay(1000);
}
//3 óra múlva ideér a kódHa pontosság kell, akkor RTC modul.
Első módszer mindentől függ, a belső kristály pontosságától, a szoba hőmérsékletétől, és persze attól, mit csinálsz még a cikluson belül.
A kettő közt van valahol, ha timert használsz. -
válasz
Djstefan1848 #12647 üzenetére
Szerintem jól látszik az ismétlődés a kódban:
servo1pos+=step1*irany1;
if(servo1pos>179)irany1=-1;
if(servo1pos<1)irany1=1;
servo1.write(servo1pos);
Ebből annyit teszel be, amennyit nem szégyellsz.
És persze a kód elején ne felejtsd el definiálni a hozzájuk tartozó változókat (servo3pos, step3 stb).
Nem tudom honnan táplálod a szervókat egyébként, de egy UNO usb-ről és Vin-ről sem bír el kettőnél több szervót (Vin-ről inkább csak egyet). Ha külső tápra kötöd a szervókat, a vezérlő jel mellett a GND-t is össze kell kötni a lappal.A delay-t és az egyes szervókhoz tartozó értékeket úgy számold ki, hogy mindenhol egész számok jöjjenek ki, különben kínos meglepetések érhetnek.
Ha ez nem lehetséges,
int
helyettfloat
változókat használj mindenhol. -
válasz
Djstefan1848 #12644 üzenetére
Mert egyáltalán nem azt csináltad, amit írtam.
int servo1pos=0;
int servo2pos=0;
ínt irany1=1;
int irany2=1;
int step1=1;
int step2=2;
void loop (){
servo1pos+=step1*irany1;
if(servo1pos>179)irany1=-1;
if(servo1pos<1)irany1=1;
servo1.write(servo1pos);
servo2pos+=step2*irany2;
if(servo2pos>179)irany2=-1;
if(servo2pos<1)irany2=1;
servo2.write(servo2pos);
delay(10);
}Javítottam.
-
válasz
Djstefan1848 #12639 üzenetére
Miért várnák be? Max érték elérésekor előjelet váltasz és azonnal indulhatsz az ellenkező irányba.
-
Később megnézem gépről a két kódot, most telefonról vagyok. A newping lib-en belül lesz vmi konfigurációs eltérés.
distance = sonar.ping_cm();
vs.fullDist = (sonar.ping_median() / US_ROUNDTRIP_CM);
Nézd meg a ping_cm függvényt, biztos van benne kompenzáció. A második a nyers adatból számol. -
válasz
Djstefan1848 #12634 üzenetére
Több loop-ot futtatni nincs lehetőséged, viszont a problémát egyszerű megoldani. A servo motornál ugye sebességet nem tudsz megadni, csak fordulási szöget, a sebességet pedig az adja, hogy adott idő alatt mekkora szöget fordul. Mind 3 szervónál kiszámolod, hogy pl 10ms alatt hány fokot kell neki fordulni, és minden ciklusban annyit adsz hozzá/vonsz le a korábbi értékből. Legyen pl a leglassabb motor 1, akkor a másik kettő 1,5 és 2, akkor az első 1,8mp alatt ér egyik végállásból a másikba, a másik 1,35 és 0,9mp alatt.
-
A wemos d1 mini tartalmaz CH340G-t, ezért is javasoltam.
Igaz, hogy az esp32 újabb, több kimenete van, és okosabb, de azért nem mindenben jobb, mint az esp8266: utóbbinak 5V toleránsak a kimenetei, és sokkal több/kiforrottabb library, oktatási anyag, közösségi támogatás van hozzá, mint az esp32-höz. Például a SPIFFS támogatás erősen béta állapotú volt az esp32-höz, mikor legutóbb néztem. -
Egy 12V-os autós akksiról tovább üzemelne, mint amennyi idő alatt az akksi az önkisüléstől magától lemerülne. Csak ahhoz kellene egy 5V voltage regulator, vagy egy stepdown converter, ami rontja a hatásfokot.
Én 1db Li-ion cellára gondoltam, ami 4.2V-3.0V-ig szolgáltat tápot (3V alá nem szabad meríteni), vagy 3db ceruza elemre, ami kb 4.8V-tól ameddig működnek a rá kötött dolgok, vagy 3db ceruza akkumulátor, 4.5-4.2V és lemerülés közt. Utóbbi megoldásokban az a jó, hogy nem kell hozzájuk regulátor, mert az AVR-ek 5.5V-2.5V közt bármiről elmennek, utóbbihoz alacsonyabb órajel szükséges.Janos250: ez utóbbi tulajdonsága miatt szeretem, akkumulátoros dolgokat lehet vele tervezni baromi egyszerűen, ha 1MHz-es órajelre állítom, kis túlzással két lemerült ceruzaelemről is elmegy, vagy egy 3V-os gombelemről, vagyis nemcsak önmagában pici, de semmi nem kell mellé, se kristály, se regulátor, csak direkbe kötöm rá az elemeket és kész. Ráadásul lehet vele usb eszközöket emulálni (most éppen egy midi billentyűzetet építek a fiamnak itthoni gyakorlás céljára digispark-ból).
Ráadásul miután kaptam helyette egy maréknyi attiny12-t, amit megtanultam assembly-ban programozni, már egészen értem a 8bites AVR-ek lelki világát is, egyszerűen imádni való az egyszerűségük. -
Itt azt írják, hogy elmegy 3db ceruzaelemről is egy ilyen led stripe, akár 3 voltról is.
Parkolás után kézi kikapcsolás helyett lehetne mélyalvásba vinni (akkus táplálás esetén), mondjuk percenként egyszer felébreszteni, hogy ott áll-e még az autó, úgysem életszerű 1 percen belül kiállni a kocsival meg vissza. -
Jól hangzik. Ha én csinálnám, én megpróbálnám elemes/akkus táplálásra tervezni, pl egy attiny85-tel (mostanában ez a kedvencem, pedig rém elavult már
) feszültség konverter és egyéb árampazarló perifériák nélkül. Kérdés, hogy a ledszalagnak mekkora az a minimum tápfeszültség, aminél még működőképes.
-
Ehhez viszont nemigen kell wifi, egy attiny85 is el tudja végezni a feladatot.
Arra számíts, hogy az ultrahang szenzorra hiába írja, hogy 5m a hatótávja (wtf?!), max másfél méter távolságra fogod tudni használni, azt is csak úgy, ha az autó valamely függőleges felületére lövöd be.
Hogy lesz megtáplálva? Mit fog csinálni a jelzőfény, amíg benn áll a kocsi a hatósugárban (parkol)? -
Gyakorlatilag magasabb szinten (setup, loop, változók kezelése stb. ) ugyanazt a kódot tudod futtatni, de például a i/o portok, időzítők kezelése teljesen más a két architektúrán, ezért ezeket ha közvetlenül próbálod kezelni, akkor át kell írni, de ha lib-eken keresztül, akkor a megfelelő lib-et kell csak hozzá letölteni (pl. dht11_esp8266), és akkor maga a program ugyanaz marad. Sokszor a lib-ek eleve úgy vannak megírva, hogy le tudják kezelni a különböző hardvereket, vagy a fordító automatikusan a saját architektúrához tartozó lib-et használja, ilyenkor semmi dolgod nincs.
Remélem érthetően írtam.
Ebben az esetben ajánlom az esp8266-ot, pl. wemos d1 mini, mert azon minden rajta van, ami a működéshez szükséges, és komplett webszervert tudsz rá tenni, rákapcsolódsz az otthoni routerre és a telefonodon tudsz vele kommunikálni.
Arra figyelj még, hogy míg az uno, nano stb 5V tápot kérnek, az esp-k 3.3V-ot (a wemos d1 mini ezt onboard konverterrel elő tudja magának állítani usb 5v-ból), ez a szenzorokkal való összeköttetést is meghatározza. Van, ami gyárilag el van látva szintillesztéssel, van, hogy anélkül is működik gond nélkül, de néha Neked kell megoldani. Ez utóbbi velem egyszer fordult csak elő. -
Az attól függ, hogy mire szeretnéd majd használni. Pl hc-05 Bluetooth modul, ami soros portot képez az uno és a gép/telefon közt, sima Serial könyvtárral tudod használni. Vagy ha wifi kell, akkor valamelyik esp (esp8266-> wemos d1 mini vagy esp32->lolin32) modul, de akkor a felhasználás céljától függően érdemes az egész programot eleve magán az esp-n futtatni.
-
válasz
haxiboy #12581 üzenetére
Ha jól tudom, az STM32 uC-eken kifejezetten meg lehet tiltani a firmware kiolvasását, és 99,9%, hogy a gyártó ezt meg is tette. Reverse engineering-re lesz szükség, indítanod kell magad ellen egy MITM támadást
és lehallgatni a köztes kommunikációt.
És úgy látnék neki, hogy ha wifis a cucc, egy ESP32 vagy ESP8266-ra írnék egy programot, ami az egész kommunikációt átküldi soros porton számítógépre. -
válasz
Victoryus #12574 üzenetére
Erre teremtette az Úr a Raspberry Pi-t.
1 perces Google keresés eredményei: [1. projekt] [2. projekt] -
Sziasztok! Dolgozott már valaki MCP23017 ic-vel? Mennyire megbízható? Lenne egy projektem, ahol egy meglévő 5V-os μC-t szeretnék lecserélni valamire, amit én magam tudok programozni, és van rajta wifi. A nehéz benne az, hogy összesen 20db I/O portot kellene tudnia kezelni. ESP8266+MCP23017 port extenderre gondoltam, mert az ESP32 portjai ha jól tudom nem 5V toleránsak, a 8266 portjai meg igen. Szóba jöhetne még egy arduino nano firmata fw-el + ESP8266, de az nem sokban különbözne attól, mint ha MCP23017-t használnék, illetve arduino nano + esp csak wifi kapcsolatra AT parancsokkal, de ez utóbbi nem túl szimpatikus.
Van olyan Arduino IDE kompatibilis μC, ami egyben tud 20 I/O portot, wifit, és 5V-ról működik? -
válasz
gyapo11 #12562 üzenetére
"én pl. a kapcsos zárójelet üres sorba teszem elöl-hátul. "
Én miután Kínából egy csomó hamisított attiny85-öt kaptam, amik belül attiny12-k voltak, bosszantott a dolog, és beleástam magam az AVR assembly-ba (mert ram hiányában nem támogatja a C fordító) hogy tudjam őket valamire használni. Eléggé egyszerű és szerethető dolog, már írtam benne servo motor kezelést, serial kommunikációt is.
úgyhogy ezentúl valószínű a nagyobb lapokhoz is fogom használni az assembly-t az időzítés-érzékeny dolgokra. Ha esetleg kérdésed lenne ezzel kapcsolatban, talán tudok segíteni. -
válasz
gyapo11 #12549 üzenetére
Én meg zenész vagyok, első - félig-meddig - sikeres építésem egy gitártorzító kapcsolás volt. Egy kartonlapra forrasztottam fel a cuccokat, és pár percig működött, aztán ki tudja miért soha többet.
Én igazából programozni szeretek, minden más (külső elektronika) csak szükséges rossz.
-
válasz
gyapo11 #12538 üzenetére
Én igazából ott vagyok leragadva, hogy a tranzisztor árammal vezérelt, és áramerősítést végez, tehát miért jelenik meg az emitteren ugyanaz a feszültség - 0.7V?Mire ezt leírtam, rájöttem, hogy a bázis-emitter ez esetben diódaként viselkedik. Viszont a 90Ohm elég bázisvédő ellenállásnak? Nem hiányzik onnan egy nagyobb értékű ellenállás? Vagy az emitteren a feszültségosztó úgyis korlátozza az áramot? Ha az osztó korlátozza a bázisáramot, nem ugyanannyi áram "folyik el" a mért körből? -
válasz
Nyirike #12531 üzenetére
Nagyon nem kell számolni, nem tudom milyen ellenállást vettél, de ha az eredeti rajzon szereplő 1k és 330 Ohm-ot akarod behelyettesíteni, akkor az 1k helyére 3M, a 330 helyére 1M, és próbáld ki, hogy mennyire lesz zajos az analogread, ha nagyon, akkor próbáld arányosan csökkenteni az értékeket (pl 1M és 330k, 100k és 33k stb) amíg nem kapsz megfelelő pontosságot.
-
-
válasz
Nyirike #12517 üzenetére
Köss az arduino és a jel közé egy nagy értékű ellenállást (>MOhm). Gondolom analóg bemenetre kötöd, ami feszültséget olvas, elvileg működnie kell. Ha túl zajos a jel, csökkentsd az ellenállás értékét addig, amíg nem zavarja láthatóan a műszert, és persze próbáld minél közelebb hozni az arduino-t a jelhez, meg árnyékolni, amit lehet.
A jel egyébként 0 és 12V közt változik? Mert akkor kelleni fog egy feszültségosztó is. Gondolom most is használsz. A nagy értékű ellenállást az osztó és a jel közé tedd. -
válasz
JozsBiker #12507 üzenetére
Ha a problémát is beírod ide, meglehet, hogy választ is kapsz rá itt helyben.
Egyébiránt, ha android programot szeretnél írni és kicsit is jóban vagy a java nyelvvel (és ha arduino-t programozol C++-ban, miért ne lennél), akkor ajánlom a nyögvenyelős app inventor helyett a processing-et: én mindenféle androidos háttértudás nélkül több játékot is írtam vele androidra. Majdnem gyerekjáték. Az app inventorral még nem sikerült használható eredményre jutnom... -
válasz
gyapo11 #12487 üzenetére
Ha ilyen dolgokat kell csak állítani, hogy 1 perc helyett 2 percig világítson a lámpa, akkor esetleg egy olcsó keypad+LCD shield is lehetne megoldás, és a paramétereket menüből módosítani, hozzáadni-letiltani előre definiált perifériákat (pl szivattyú, lámpa stb) az előre definiált portokon, ami szintén hülyeálló megoldás. Ha i2c megoldás, akkor csak 2 lábat foglal (és nem csak uno-hoz lehet használni), a keypad pedig 1db analóg lábat. Így lehet menet közben is változtatni.
A beállított paramétereket elmented eeprom-ba/spiffs-re, és egy véletlen reset után is megmarad minden. -
válasz
gyapo11 #12479 üzenetére
A LEGO grafikus felülete sajnos nem nyílt forráskódú, a National Instruments csinálta neki, de nekem is ez volt az alap ötletem, hasonló ökoszisztémát létrehozni arduino-val, amit ugyanúgy lehet grafikusan programozni.
Elég sokat kutattam a témában, és a legjobb fejlesztői környezet, amit erre készen találtam a http://snap4arduino.rocks, szerintem ezt vedd alaposan szemügyre, a lényege, hogy saját blokkokat lehet benne létrehozni, pl csinálhatsz benne "szivattyú" blokkot, minden paraméterét legördülő listából lehet állítani, gyakorlatilag egy óvodás is tud benne működő programot csinálni. Azt hiszem Arduino forráskódot is tud csinálni, de ha ez nem is, akkor a tinkercad oldalon lévő hasonló blokkos környezet viszont igen. Sőt, igaz, hogy ez attiny85-höz lett készítve és ha jól látom már egy ideje nem fejlesztik, de esetleg a cocomake7 pc-s programját is nézd meg, ez is tud arduino kódot létrehozni és XML-ben programot menteni, szintén gyerekjáték a használata. -
válasz
gyapo11 #12476 üzenetére
Erre a feladatra viszont a legjobban ajánlott téma a blockly/scratch típusú grafikus nyelvek! Az elsős gyerekem játékot írt benne, mondjuk alapból is okos gyerek.
Van, ami rögtön arduino kódot generál, van, ami a firmata fw-en keresztül vezérli a lapot. Mindegyik tud XML-ben kódot exportálni, nyílt forrású, az XML-ből megpróbálhatsz byte kódot generálni a saját parser-edhez.
Vagy amit én csináltam, robohw kolléga programnyelvéhez hasonló byte kódos robot vezérlő nyelvet találtam ki, hasonló a harvard architektúrához, csak nagyon szűkített utasításkészlettel (15 utasítás). Ehhez hasonló robotot akartam építeni a gyerekeimnek, de csak a parser lett kész, a frontend még nem készült el eddig. -
válasz
Imre077 #12462 üzenetére
Írj egy kicsit többet a projektről, mivel van összekötve, milyen módon, milyen uC van benne stb.
Ha egy bizonyos hangfrekvenciára szeretnél reagálni, csinálhatsz egy céláramkört, mikrofon+előerősítő, sávszűrővel, ami csak egy digitális jelet adna magából. Esetleg ugyanezt infraleddel, 38kHz-el modulálva, a karkötő bemenete pedig egy ir receiver lenne. (Én ezt csinálnám, mert akkor az adót közvetlenül a pc hangkimenetére lehetne kötni és nem lennének zavaró vezetékek+a karkötő súlyát sem növeli.)
Vagy usb-vel a gépre kötve egy arduino pro micro vagy egy digispark gamepad emulációval a force feedback-et használni a pc saját gamepad driver-én keresztül, bár ezt nem tudom támogatja-e a gamepad emuláció.Úgy látom a joystick library nem támogatja a force feedback-et. -
válasz
Szakbarbár #12451 üzenetére
Értem. Akkor viszont nem értem, miért nem 434MHz-nek rövidítik/kerekítik, ha már.
A garázsnyitót lehet, hogy nem véletlenül nem látja, talán szándékosan olyan protokollt használnak, hogy ne lehessen ilyen olcsó eszközökkel olvasni a kommunikációt. -
válasz
Szakbarbár #12449 üzenetére
Én ezt nem látom problémának... Az adó-vevő nem véletlenül van párban, egymás jelét kell fogniuk, más (zavaró) jelet pedig figyelmen kívül hagyni. Az is lehet, hogy fogja a jeleket, csak figyelmen kívül hagyja őket. És/vagy egyéni protokollt használnak, nem azt, amit a Te adó/vevőd.
Ezen kívül pedig a 433,92MHz az nem 433MHz. -
válasz
Melorin #12443 üzenetére
- A szalagon nincs zárlat?
- Működik a két pórul járt lap?
A második esetet nem pontosan értem: másodszor külső adaptert kötöttél rá, és a szalagot a Vin-re kötötted? Milyen adapter volt az?
Az arduino és a szalag közt csak a gnd és a data lábakat szabad összekötni, a V+-t nem. -
válasz
Melorin #12441 üzenetére
Ilyen kevés információ alapján elég sok mindent.
- Ugyanarra a lapra dugtad másodszor is?
- Először mivel lett megtáplálva, usb-ről vagy a hordó csatlakozó/Vin felől külső táppal?
- 100%, hogy nem cserélted fel a polaritást? A szalagot is meg kell nézni, hogy a csatlakozó biztosan a képen látható módon van-e bekötve.
- Ha külső adaptert használtál, annak biztosan jó volt a polaritása?
- Maga a lap túlélte a manővert? Ha az 5V regulátor sült meg, még van esély, hogy a uC túlélte, nekem is van egy ilyen lapom. Ilyenkor már csak az 5V vagy az usb irányából tudod megtáplálni -
Úgy látom még nem esett szó róla, de most fedeztem fel, hogy a tinkercad.com-on arduino uno és attiny programokat és hozzájuk kapcsolódó áramköröket lehet tervezni és emulálni is működés közben.
-
De melyiket? És miért pont ezzel?
Egy hátulütője lehet ennek a megoldásnak, és az maga az attiny44, amit az usb-s kommunikációra használ, éspedig azért, mert nincs benne natív usb támogatás, csak szoftveres emuláció (v-usb), ami elég érzékeny arra, mibe van dugva, legalábbis ha úgy működik, mint a digispark (attiny85), amit csak akkor ismer fel a gép, ha kihúzom az összes többi usb eszközt, illetve egy bizonyos usb hub-ra dugva is működik.
Új hozzászólás Aktív témák
Hirdetés
- One otthoni szolgáltatások (TV, internet, telefon)
- Samsung Galaxy A56 - megbízható középszerűség
- Kormányok / autós szimulátorok topikja
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Autós topik
- Xbox Series X|S
- Parkside szerszám kibeszélő
- Counter-Strike: Global Offensive (CS:GO) / Counter-Strike 2 (CS2)
- Nintendo Switch
- További aktív témák...
- BESZÁMÍTÁS! MSI B450M R5 5500 16GB DDR4 512GB SSD GTX 1080Ti 11GB Rampage SHIVA Chieftec 700W
- Telefon felvásárlás!! Honor 400 Lite, Honor 400, Honor 400 Pro
- LG 27CN650N-6A - Felhő Monitor - 1920x1080 FHD - 75Hz 5ms - USB Type-C - Quad Core - BT + WiFi
- Samsung Galaxy A14 64GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 15 Pro Max 512GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest