Hirdetés
(használd a CYBSEC25PH kuponkódot további 20 ezer ft kedvezményért!)
-
PROHARDVER!
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
gyapo11 #13063 üzenetére
Egy tetszőleges attiny vagy 555 ic is pont megfelelő lenne a feladatra, csak az az egy probléma, hogy a tsop nem alkalmas folyamatos jelfogadásra, ezáltal optokapunak sem! Az adatlapja (ez éppen a tsop31238 adatlapján olvasható, mert az volt épp kéznél) szerint
"• Burst length should be 10 cycles/burst or longer.
• After each burst which is between 10 cycles and 70
cycles a gap time of at least 14 cycles is necessary.
• For each burst which is longer than 1.8 ms a corre-
sponding gap time is necessary at some time in the
data stream. This gap time should be at least 4 times
longer than the burst.
• Up to 800 short bursts per second can be received
continuously.
"Egyébként egy attiny85 + cr2032 elem + IR LED + ellenállás kombó távolságtól függően teljesen jól ellátná a feladatát, de csak ha nem kell nagy sebességű mozgást érzékelni.
-
Én a lencsés módszerrel, közvetlenül uC lábról (kb. 20 mA) hajtva simán átvittem a 10 métert. Kísérleteztem vele sokat, és próbáltam 1A csúcsárammal is meghajtani, de alig befolyásolta a hatótávot. Ami igazán segít, az a lencsés fókuszálás.
A tsop sorozattal rengeteget játszottam, és én pont azt tapasztaltam, hogy a várttal ellentétben 10kHz-70kHz-ig szinte minden frekvencián vesz, kivéve egy-egy keskenyebb sávot, ha jól emlékszem 25kHz és 50kHz környékén. És 20-25% körüli kitöltési tényezőnél a legjobb az átvitel, erre sem találtam magyarázatot, hogy miért nem 50% a legoptimálisabb.
-
válasz
atesss #13053 üzenetére
A lézerdióda ... ne legyen veszélyes a szemre (plusz gyerekek is vannak). Illetve ha komolyabban látszik, az sem szerencsés.
Kizártnak tartom, hogy a lézerfénybe csúszás közben bele tudjon nézni bárki elég ideig ahhoz, hogy veszélyes legyen, főleg, ha süllyesztve van és csak egy bizonyos szögből látszik, de még ekkor is lejjebb lehet venni a teljesítményét. De az infra valóban jobb, mert nem látszik, nem vonja magára a figyelmet.
A nagyító lencse is lehetne, bár az azért már átmérőben nagyobb.
Lehet bármekkora, ha egy 10mm lyukon kívül helyezed el, pont elég fényt fog a lyukon átküldeni.
Ennyiben lenne jobb egy még erősebb infraled. Aminek nem a sugárzási szöge nagyon kicsi, hanem a teljesítménye nagyobb
Hidd el, hogy egy mezei infra diódával, ami a távirányítókban is van, 20mA árammal 10m-re adatot is tudok sugározni megbízhatóan. A fókuszt pedig ne úgy képzeld el, mint a lézer pointer tűhegyes vetítési képét, nem kell azzal olyan pontosan célozni, kb 5°-ban nyílik a sugár. [kép]
-
válasz
atesss #13048 üzenetére
A PIR burkolata a mozgásérzékelő rendszer szerves része, ha azt eltávolítod, nem fog működni. Nagyjából azt csinálja, hogy váltakozó világos-sötét zónákat vetít a szobára, és utána az ebben történő változást érzékeli. Szerintem nem alkalmas arra, amire szeretnéd használni, ahhoz túl lassú. Mindenképp optokapuval kellene megoldani! Ha nagy a távolság, akkor vagy lézerdióda + fotocella kombinációval, vagy a sima infrás optokaput kiegészíteném a kínai boltokban kapható filléres, projektoros zseblámpából kiszerelt nagyító lencsével! Én most ilyennel készítek egyedi lasertag fegyvert, ha jól van a fókusz beállítva, 10-15m-re simán el lehet világítani vele.
+1 ötlet: mivel emberek fognak lecsúszni a csúszdán, valamilyen kapacitív-, illetve súlyérzékelő is szóba jöhetne!
-
válasz
Dißnäëß #13024 üzenetére
"Csak tudnám, mire használjak egy 320x240-es touchscreen-t. "
Én személy szerint egy ilyet építek most. Nagyjából megvannak az alkatrészek, már csak össze kellene pakolni. -
válasz
Dißnäëß #12972 üzenetére
" kulon topicban erdemes lenne"
Én meg úgy gondolom, hogy igenis helye van itt az ilyen jellegű tudásnak (annyira, hogy a topik összefoglalóba is betenném), mert bár nem kapcsolódik szorosan az arduino eszközök programozásához, de elég sokan használják az arduino-t IoT eszközök készítésére: ha visszaolvasol, a redőny- és garázsajtó mozgató automatikától kezdve a parkolássegítő rendszeren át a fűtésrendszerek ellenőrzéséig sokminden készült már itt házilag, és nem ártana, ha szem előtt lenne ez is a tervezéskor.
-
válasz
Dißnäëß #12966 üzenetére
Elgondolkodtató, amiket írsz. Én sem vagyok barátja annak a gondolatnak, hogy minden eszköz közvetlenül a netre kapcsolódjon, ezért nálam egy pi2 látja el a biztonsági funkciókat openvpn szerver formájában. Ugyanezen fut egy octoprint szerver és egy kodi, mert a tv-re van kötve az egész.
Csak a vpn szerver van kiengedve a routeren a külvilág felé, azon keresztül tudom piszkálgatni az itthoni eszközeimet. Az egész gyenge pontja egy Asus AC57U router, ami egy év alatt semmilyen frissítést nem kapott, pedig viszonylag új konstrukció (az elődje is Asus router volt, az vagy 5 évig kapott fw frissítéseket, azért is vettem újra Asus-t... Mindegy, ez már itt nagyon off)
-
válasz
Dißnäëß #12963 üzenetére
1. minek kell folyton frissíteni, ami működik?
2. hogyan tervezted arduino-ra kötni? Tudtommal az USB host funkció nem túl gyakori az arduino-k közt. Gondolom az USB mögött SPI vagy i2c csatoló lehet, esetleg az USB megkerülésével lehetne kommunikálni a display chippel, ha van hozzá library, akkor azzal, ha nincs, jöhet a reverse engineering...
3. mit szeretnél rajta kijelezni arduino-val, ami megéri az egész hercehurcát?Inkább vegyél egy másik kijelzőt, ezt meg add nekem, ha nem kell.
-
válasz
DrojDtroll #12961 üzenetére
"Ilyen célra milyen nagyobb olcsó kijelző alternatíva van még?"
Van egy felesleges kedei 2.8" színes TFT érintőkijelző + sd kártya shield-em, nem találtam neki jó projektet. Asszem 320x240-es, de sajnos párhuzamos adatbusza van, így egy UNO gyakorlatilag összes pin-jét elfoglalja.De mondjuk egy Mega boarddal akár vmi értelmes dologra is lehet használni. Ha érdekel és tudod használni, szólj.
-
válasz
Dißnäëß #12947 üzenetére
Nagy vonalakban:
ESP32
- újabb
- 2 magos CPU, valódi multithreading, FreeRTOS
- sokkal több I/O kimenetESP8266
- régebbi, ezért kiforrottabb az arduino integráció, nagyobb támogatás, rengeteg lib és példakód található hozzá
- 5V toleráns portok: néha jól jön, ha vmi szenzort/perifériát szintillesztés nélkül lehet rákötniEgy ilyen ismertetőt (a leggyakoribb AVR, ESP stb lapokról, összehasonlítás) lehetne tenni a topik összefoglalóba, nem? Időnként előjön a téma. Persze nem én írnám, illetve nem egyedül. Segít benne valaki?
-
válasz
atesss #12939 üzenetére
Igen, serial van rajta gyárilag, és van olyan board, amin integrált FTDI chip van az egyszerűbb kódfeltöltés érdekében.
Másrészt van lehetőség OTG firmware feltöltésre, ennél először USB-n (vagy serial-on külső FTDI kábellel) fel kell tölteni a megfelelő OTG firmware-t, onnantól kezdve wifi-n keresztül tudod frissíteni. -
Hűha... Elég sok helyen félre tud csúszni egy ilyen projekt, mindenekelőtt jó lenne, ha látnánk a pontos bekötést (rajz és/vagy fotó) és a forráskódot (töltsd fel például a pastebin-re, és onnan linkeld be).
A bekötés jó, ahogy írtad, de kérdés, hogy az rx lábat az rx-szel kötötted-e össze, vagy a tx-szel? Mert keresztbe kell, rx-tx, tx-rx. A legnagyobb odafigyelés ellenére is előfordul, hogy a két vezetéket fordítva dugom össze, első körben cseréld meg.
Annyi lehet még, hogy a modul gyárilag nem 38400, hanem 9600baud-ra van állítva, esetleg még ezt megpróbálhatod átírni a programban, de általában ha a sebesség rosszul van beállítva, vmi garbage ki szokott jönni a másik oldalon, amiből látható, hogy zajlik a kommunikáció, csak rosszul van beállítva (persze van, amikor semmi sem megy át).
A gépen, miután összepárosítottad a modullal, kellett kapnod két virtuális COM portot. Az egyiket állítsd be az arduino ide serial monitorban, válaszd ki a 38400baud sebességet, onnantól látnod kell vmiféle kommunikációt. Ha nem, akkor válaszd a másik COM portot.
Többet akkor tudok mondani, ha láttam a kódot.Janos250, gyapo11: köszi a megerősítést. A forrófejű kolléga úgy látom kapott pár napot, hogy más fórumon találjon megfelelő, hozzáértő segítséget, úgy látszik vki olyat is kioktatott, akit nem kellett volna.
-
válasz
KFORboy #12911 üzenetére
Egyik kritikád sem jogos, ok nélkül vagy felháborodva, és kioktató stílust is tőled olvastam először a beszélgetés során...
A válasz pontosan annyira volt konkrét, mint a kérdésed. Mindkét esetben.1. "Nem akarok semmi komolyat.
Egy nagyjábóli 3 óra leszámlálását."
Egyetlen szó sem volt arról, hogy közben valami más taskot is végeznél. Kaptál rá egy kész kódot. Hogy véletlenül nem működött? Na bumm. Ez benne van a pakliban, ha vki tesztelés és anélkül ír kódot, hogy birtokában lenne a célplatform. Nem is feltétlenül az volt a cél, hogy rögtön működjön, lehet az egy pszeudokód, aminek a lényege egy feladat megoldásának a megmutatása. Ilyenkor vagy megkeresed a hibát, vagy adsz egy feedback-et, és megkeressük a hibát együtt . Te egy betűt nem írtál rá, nem csak hiba jelzést, de annyit se, hogy "köszönöm".2. "Ha void setupban egyszer analog kiolvasok értéket egy pinről amit egy integerre definiálok akkor az rögzül, vagy az amúgy egyszeri kiolvasás után az visszaáll nullára és később nem marad meg az integeren az az érték, azaz nem tudok vele dolgozni mondjuk void loopban mint egy változó érték amit hozzáadnék a másik értékhez ?
Ha nem, akkor hogy tudnám ezt megoldani ?"
VS.
"másképp hogy is tenném ? épp ez a lényeg, hogy van egy integer aminek lesz egy értéke ha kiolvasok analogreaddel pinről, de aztán annyi, többször nem is kell, és azt utána oda felpakolja... majd a void loop dolgozhat vele az arra megírt process mint egy extra érték ami hozzáadódik egy bázis értékhez..."
Forráskód? Miért nem szúrod be a kódot, ami nem működik, találjuk ki látatlanban, mit írtál (el/rosszul)? A kolléga leírta az egyetlen olyan hibalehetőséget általánosságban, ami meggátolja, hogy a setup()-ban definiált változó értéke a loop()-ban olvasható legyen. Vagy mi lett volna a kérdés értelme? Te magad írtad, hogy most kezdted a kódolást, nyilván ilyenkor az ember olyan alap dolgokra is felhívja a figyelmet, ami egy rutinos kódolónál nem fordulna elő. Ad abszurdum, a kérdésből az jött le, hogy nem igazán vagy tisztában a változók működésével/láthatósági szabályokkal.
Kiegészítés:
"Ehelyett megint választottam a magam útját, napestig bújtam a netet, olvasgattam, tanultam és megtaláltam a megfejtést ami az orrom előtt volt"Fórumra akkor megy az ember, ha olyan kérdése van, amit egyedül nem tud megoldani. A fórumtárs azért tapsikolt, mert
1. Kaptál egy kulcsrakész kódot. Hogy volt-e benne hiba, azt most hagyjuk. Szerintem a kód jó. Legfeljebb nem azt csinálja, amit nem írtál le, de gondoltál rá.
2. A kód tökéletesen azt csinálta, amit a specifikációban írtál. Se többet, se kevesebbet.
3. A kolléga megértette a specifikációdat, nekem nem sikerült, pedig nem vagyok hülye gyerek... -
válasz
Dißnäëß #12895 üzenetére
Nyugodtan fárassz vele, mindig szívesen tanulok új trükköket.
Ez tényleg nem olyan drága, úgy látszik én régen vettem.Az infra egyik előnye az egyik hátránya is, tudniillik szórt fény, nem irányított, mint a lézer. Ezért a távolsággal négyzetesen csökken az átvitt teljesítmény, 10-15m az átvihető távolság, direkt napfényben jóval kevesebb. Az eső fogalmam sincs mennyire zavarja, sosem esett még idebent, amikor használtam.
De mivel a víz átlátszó és szórja a fényt, nem hiszem, hogy sokat zavar. A hó annál inkább.
Az infra és a wifi közt azért van még pár megoldás, egyrészt a Bluetooth, másrészt a 433MHz-es RF transzmitter, ami elég olcsó és akár nagy távolságot is lehet vele áthidalni.
-
válasz
Dißnäëß #12891 üzenetére
De nem kell optikai kábel sem, csak nagyjából ráirányítasz egy infra LED-et egy Tsop1838 vagy hasonló vevőre, és kész. Van hozzá library is. Még közvetlen rálátás sem feltétlenül kell, mert jól visszaverődik a jel a falakról, tárgyakról.
(Hogy tudtad egy mondatba tenni az "olcsó" és az "optikai kábel" szavakat?
)
-
válasz
instantwater #12890 üzenetére
Nem értelek, hiszen pont a megoldást írtam le. Már több USB HID eszközt csináltam, gamepad-et, billentyűzetet, legutóbb egy midi keyboard-ot. PS2 egérhez is csináltam már drivert még megboldogult legény koromban, csak azt nem arduino-val, hanem még pic-kel. Pont ilyet, így együtt speciel még nem.
-
válasz
Dißnäëß #12885 üzenetére
Én személyesen nem ismerek ilyet, de a google igen.
Én személy szerint nem szívesen játszanék a 230V-tal, bár az sem jó, ha tele van az egész lakás wifis eszközökkel...
Esetleg ha olyan helyen vannak az eszközök, hogy alkalmas a környezet (nincs tv/hifi/más infrás eszköz, tűző napfény, az eszközök fizikailag "látják" egymást), esetleg infrakommunikáció is szóba jöhet! Egy infra led + ir receiver filléres alkatrész és 5 sorból megoldható vele az adatatvitel. -
válasz
instantwater #12877 üzenetére
Szia! Kelleni fog az USB HID emulációhoz egy Leonardo/Pro Micro. A PS/2 kapcsolatot elég könnyű felépíteni, kösd rá a touchpadot és serial-on keresztül írasd ki a gépen, hogy miket kommunikál, mikor két ujjal görgetsz. Valószínűleg ugyanazt küldi, amit egy PS/2 egér kereke.
-
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.
Új hozzászólás Aktív témák
- Android alkalmazások - szoftver kibeszélő topik
- Battlefield 6
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- One mobilszolgáltatások
- Trollok komolyan
- VR topik (Oculus Rift, stb.)
- Linux Mint
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Óra topik
- OLED monitor topic
- További aktív témák...
- GYÖNYÖRŰ iPhone 14 Pro Max 256GB Deep Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3419
- Apple iPhone SE 2020 64GB, Kártyafüggetlen, 1 Év Garanciával
- LG 27GR95QE - 27" OLED / QHD 2K / 240Hz & 0.03ms / NVIDIA G-Sync / FreeSync Premium / HDMI 2.1
- GYÖNYÖRŰ iPhone 12 mini 256GB Red -1 ÉV GARANCIA -Kártyafüggetlen, MS3627
- BESZÁMÍTÁS! Asus A620M R5 7600X 32GB DDR5 1TB SSD RTX 3080 10GB Zalman M4 A-Data 750W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest