Hirdetés
- Fejhallgató erősítő és DAC topik
- Bambu Lab 3D nyomtatók
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- TCL LCD és LED TV-k
- Milyen videókártyát?
- Computex 2025: Rakétasebességgel száguld a Kingston Fury
- Vezeték nélküli fülhallgatók
- Computex 2025: sok kilowattos táp a Seasonic standján
- OLED TV topic
- Mini-ITX
-
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
Wolfram #18248 üzenetére
Mi többszöröződik??
AliExpressről már jó ideje áfával küldenek mindent, standard AliExpress shippinggel kell rendelni és semmi meglepetés nem fog érni, legfeljebb sokat kell rá várni.
Én ha itthonról veszek bármit, a hestore-ból szoktam vásárolni, magyar szinten korrekt árakkal dolgoznak. -
-
Amit szeretnél az egyrészt már eléggé scifibe hajlik, másrészt GDPR illetve személyiségi jogokat sért(het).
Szoba szinten automatikusan működő és olcsó jeladó/vevő szerintem infravörös alapokon lehetne megvalósítható, esetleg Bluetooth LE, mert az zsebből is működik, míg az IR optikai rálátást igényel. De legjobb, ha router szinten próbáljátok megoldani, ahogy fentebb javasolták.Illetve még egy eszembe jutott, ha minden laptop wifivel kapcsolódik, egy esp (wemos) figyelhetné a közelben lévő laptopok/eszközök Mac címét.
-
pbl
csendes tag
válasz
ReFleXx #18237 üzenetére
Igen, az iroda valós kihasználtságának a mérése is célja az asztalfoglalási rendszernek.
Csak érdeklődtem, hogy valaki esetleg találkozott-e már olyan megoldással, ami érzékel egy előre beregisztrált mágneses bankkártya szerű eszközt az adott embernél, mondjuk az irodában szobaszinten, amivel nem kell foglalkozni a továbbiakban, nem kell lehúzni, csipogtatni, stb., automatikusan működik és persze olcsón meg lehet csinálni
-
#70211840
törölt tag
válasz
#70211840 #18244 üzenetére
Storno, közben sikerült megoldanom
(csak úgy tessék-lássék módon)
Test.ino
WireScanner.h
WireScanner.cpp -
#70211840
törölt tag
-
#70211840
törölt tag
Nem tudom mennyire illik a topicba (bár szerepel a címben), kezdőként programozási kérdésem volna.
Szóljatok, ha off és menjek át a C++ programozás topicba.Elakadtam egy referencia átadásnál, nem értem miért nem csinálja meg.
Egy egyszerű I2C Scan a példa, aminél a main-ben hoznék létre és indítanék a TwoWire-t és egy másik osztályban szeretném ezt használni.
Viszont egyetlen eszközt sem talál, míg visszapakolva a loop()-ba a WireScanner::scanI2C tartalmát, rendben fut és listázza az eszközök címeit.Mit rontok el?
Test.ino
#include <Wire.h>
#include "WireScanner.h"
TwoWire wirePort(PB11, PB10); // STM32F103 I2C_2
WireScanner ws(wirePort);
void setup() {
Serial.begin(9600);
wirePort.begin();
}
void loop() {
ws.scanI2C();
delay(5000); // wait 5 seconds for next scan
}
WireScanner.h
#ifndef WireScanner_h
#define WireScanner_h
#include <Wire.h>
class WireScanner {
public:
WireScanner(TwoWire& i2cPort);
void scanI2C(void);
};
#endif
WireScanner.cpp
#include "WireScanner.h"
TwoWire _i2cPort;
WireScanner::WireScanner(TwoWire& i2cPort) {
_i2cPort = i2cPort;
}
void WireScanner::scanI2C(void) {
byte error, address;
int nDevices;
Serial.println("Scanning...");
nDevices = 0;
for (address = 1; address < 127; address++) {
_i2cPort.beginTransmission(address);
error = _i2cPort.endTransmission();
if (error == 0) {
Serial.print("I2C device found at address 0x");
if (address < 16)
Serial.print("0");
Serial.println(address, HEX);
nDevices++;
} else if (error == 4) {
Serial.print("Unknown error at address 0x");
if (address < 16)
Serial.print("0");
Serial.println(address, HEX);
}
}
if (nDevices == 0)
Serial.println("No I2C devices found");
else
Serial.println("done");
}
-
ViZion
félisten
igen, ezt találtam, kiosk mode browser.
Wolfram: magyar boltok, amiket próbáltam és megbízhatóak:
https://www.microcontroller.hu/termekkategoria/mikrokontrollerek/
https://modulshop.hu/
https://www.elektrobot.hu/ itt kevés ESP cucc van
https://www.wireless-bolt.hu/ itt se sok az ESP, de néha van brutál ócó bármi
https://www.hestore.hu/ mindenhez van adatlapEzeken túl is vannak, pl. conrad, rs online, emag, stb... de drágábbak.
-
Wolfram
aktív tag
Hol lehet venni manapság legolcsóbban arduino lapokat? Uno, nano?
Legtöbb helyen hiánycikk, vagy aranyáron adják. -
-
pbl
csendes tag
Sziasztok,
Köszönöm a válaszokat.
Igen, viszont van olyan eshetőség is, amikor le van foglalva az asztal és a dolgozó nem megy be az irodába.
Így az iroda kihasználtsága nincs pontosan mérve.
@Aryes hasonló megoldás lenne a végcél, bár egy sima webalkalmazás + egy jól beállított routeren lehet a Mac-address szerint szűrni a felhasználókat is, így lehetne mérni, hogy valóban használva volt-e az asztalfoglalás az irodában. -
ViZion
félisten
Régi androidos tablet érintőkijelzőjét nem lehet valahogy ráhackelni Wemosra, vagy vmi más kütyüre?
Sajnos rootolni sem tudtam, pedig elvileg vmi linux is mehetne a tabletre. Mondjuk 1 GB ram-al meg a harmatos procival kb. semmire nem jó már. -
Szia!
Én talán értem, hogy mire gondolsz, de az ebben a formában nem foglalási rendszer, hanem foglaltsági.
Amire te gondolsz, az az rfid olvasó+rfid kártya, vagy valamilyen chipkártya, esetleg vonalkódos kártya. Ember jön, leül az asztalhoz, lehúzza a kártyát, ez megjelenik egy központi adatbázisban, amikor elmegy, újra lehúzza, vagy kihúzza. Meg lehet csinálni, de tök felesleges pénzkidobás lenne szerintem. Ráadásul ebben a rendszerben nem lehetne előre foglalni. Nem is tudom milyen use-case esetében lenne ez jó megoldás. -
ReFleXx
addikt
nem igazan ertem a kerdest. mire kellene a szenzor vagy minek?
ha most van egy weboldal ahol lefoglalhato az asztal akkor igazabol mi is hianyzik?elmondom nalunk hogy nez ki ez, van egy weboldal amin mint egy terkep megjelenik az iroda az asztalokkal, mar ott latni hogy melyik asztal foglalt es melyik szabad, ember raklikkel az altala valasztott asztalra es lefoglalja, odamegy es leül dolgozni. ennyi.
-
pbl
csendes tag
Sziasztok,
A jelenlegi cég kiírt egy pályázatot cégen belül. Ezt végül meg is nyert már valaki, tehát csak elméleti szinten érdeklődöm, hogy milyen más megoldás létezhet.
A cél egy asztalfoglalási rendszer felépítése, ahol lehet asztalt foglalni az irodába.A web (frond-end) kivételével ezt meg lehet-e oldani microcontrollerrel?
Két webshopot megnéztem, hogy milyen szenzorok is vannak, viszont nem találtam olyan megoldást, ami nekem tetszett.
Az általam elképzelt megoldás egy bankkártya szerű eszköz, amit magánál hordhat az ember, amit egy microcontroller rádiójellel tud azonosítani. Így az előre lefoglalt asztalt és a nem lefoglalt asztalt is az irodában azonosítani tudja a webes felület a microcontolleren keresztül.Létezik ilyen ? Milyen más megoldás létezhet, ami még kivitelezhető ?
-
#70211840
törölt tag
válasz
Janos250 #18224 üzenetére
Tetszik ez a logikai analizátor. Lehet beruházok egyre, jól jöhet.
Sajnos csak 1 csatornás "játék" szkópom van, amivel ~50kHz lehet érdemben vizsgálódni.Arra gondoltam, hogy valamit elnézhettem a bekötésnél, de ugyanez swpar8-al működik.
Illetve más library-val megy a hardveres par8 is. Szóval kizárólag ennél a library-nál jön elő a hiba.
A készítő nem is tesztelte stm32-n, mert nincs neki, szóval "elméletileg" kellene működnie.A TFT display természetesen par8, nem spi. Valami ilyesmi: [link]
-
Janos250
őstag
válasz
#70211840 #18223 üzenetére
Közben még más is eszembe jutott:
a ILI9225 , az ahogy a neten nézem, egyértelműen SPI. Rosszul nézem?
Mert, ha SPI, akkor az soha nem fog menni párhuzamos porttal.
Rosszul látom?http://www.lcdwiki.com/2.2inch_Arduino_SPI_Module_ILI9225_SKU:MAR2201
-
Janos250
őstag
válasz
#70211840 #18223 üzenetére
Ha lefordul, akkor sehol.
a gpio_def.h-ban van más néven gyakorlatilag ugyanaz a struktúra:
typedef struct gpio_dev {
gpio_reg_map *regs; /**< Register map */
rcc_clk_id clk_id; /**< RCC clock information */
/**
* @brief (Deprecated) External interrupt port.
* Instead of dev->exti_port, use gpio_exti_port(dev).
*/
exti_cfg exti_port;
} gpio_dev;És a gpio_reg_map is az STM32F4 sorozathoz.
(Én az STM32F1 sorozathoz néztem korábban)Vagyis ő ugyanezt a struktúrát gpio_dev -nek nevezi
Továbbá:
extern const gpio_dev gpioa;
#define GPIOA (&gpioa)Vagyis ez valóban a helyes címe lesz, nem kell a GPIO_TypeDef.
Viszont, hogy haArduino_STM32PAR8(int8_t dc, int8_t cs, int8_t wr, int8_t rd, GPIO_TypeDef* port)
-ban aGPIO_TypeDef* port
szerepel, akkor miért fogadja el szintaktikailag a
GPIOA-t, mint címet is, az számomra nem világos, ehhez a C++ -t jobban ismerők kellenének.
Én úgy tudom, hogy ha a "GPIO_TypeDef* port"
szerepel a konstruktorban, akkor nem kéne elfogadnia csak úgy, egy mással definiált címet, de ezek szerint rosszul tudom.Miért üres a képernyő?
Hát ezt hardver nélkül meg nem mondom.
Itt jön elő az a technika, amit mindenkinek javasolni szoktam:
https://www.aliexpress.com/item/4000192339928.html
Kár, hogy az ára felment a csillagos egekbe, mert én még 2000 Ft alatt vettem, ma már háromszorosa. :-(Közben ebay-en találtam olcsóbbat is:
https://www.ebay.com/itm/393578549978
Tehát ilyenkor az ember a következőt teszi:
Ráakasztja ezt a szerkentyűt a használt lábakra, és megnézi, mi jön ki/megy be. Szépen grafikusan is, meg dekódolva is látszik. Aztán összehasonlítja a dokumentációban leírtakkal, hogy minek kellene, és akkor már tudja igazítani. -
#70211840
törölt tag
válasz
Janos250 #18222 üzenetére
Köszönöm, hogy ránéztél.
Jelenleg egy BlackPill (STM32F401CCU) van egy ILI9225 PAR8-ra kötve, azzal próbáltam ki ismét a dolgot.
Jelenleg így néz ki a program eleje nálam:#define ARDUINO_ARCH_STM32
#include <SrcWrapper.h>
#include <Arduino_GFX_Library.h>
#include <databus/Arduino_STM32PAR8.h>
#define GFX_BL DF_GFX_BL // default backlight pin, you may replace DF_GFX_BL to actual backlight pin
Arduino_DataBus* bus = new Arduino_STM32PAR8(PB8, PB9, PB2, PB1, GPIOA);
Arduino_GFX *gfx = new Arduino_ILI9225(bus, PB0 /* RST */);
A "GPIOA" az aktuálisan kiválasztott chip A-port kezdőcímét jelenti, ahogy a PBx is.
A "typedef struct"-ot hol kellene megadnom? Csak azért, mert ha megadom, akkor hibába futok.
Jelen állapotában fordul a program viszont ugyancsak fehér képernyő fogad.
-
Janos250
őstag
válasz
#70211840 #18129 üzenetére
Most volt egy kis időm, és ismét belenéztem ebbe az óra programba, ami le se fordult.
Lefordulni lefordul, de hardver hiányában persze kipróbálni nem tudom.
A tapasztalatok:A programban a legelején ki kell választani valamelyik stm32-t.
#define ARDUINO_ARCH_STM32F1
nem jó, mert a Arduino_STM32PAR8.h elején csak azARDUINO_ARCH_STM32 szerepel
ezért:#define ARDUINO_ARCH_STM32
includolni kell a Arduino_STM32PAR8.h-t
#include <databus\Arduino_STM32PAR8.h>
Az Arduino_STM32PAR8.h-ban szerepel a GPIO_TypeDef típus, de sehol nincs megadva. Meg kell adni!
typedef struct
{
__IO uint32_t CRL;
__IO uint32_t CRH;
__IO uint32_t IDR;
__IO uint32_t ODR;
__IO uint32_t BSRR;
__IO uint32_t BRR;
__IO uint32_t LCKR;
} GPIO_TypeDef;A .ino-ban:
#define ARDUINO_ARCH_STM32
#include <Arduino_GFX_Library.h>
#include <databus\Arduino_STM32PAR8.h>
#define GFX_BL DF_GFX_BL // default backlight pin, you may replace DF_GFX_BL to actual backlight pin
#if defined(DISPLAY_DEV_KIT)
Arduino_GFX *gfx = create_default_Arduino_GFX();
#else /* !defined(DISPLAY_DEV_KIT) */
;
GPIO_TypeDef * ENPORTOM = (GPIO_TypeDef *) 0x42010800 ;
//ENPORTOM=0x42010800 ez az STM32 A portja
Arduino_DataBus* bus = new Arduino_STM32PAR8(1, 2, 3, 4, ENPORTOM);
// csak probara 1, 2, 3, 4,-et irtam be
/*
Az egyes portok kezdőcímei:
#define PERIPH_BB_BASE ((uint32_t)0x42000000)
#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)
#define GPIOA_BASE (APB2PERIPH_BASE + 0x0800)
#define GPIOB_BASE (APB2PERIPH_BASE + 0x0C00)
#define GPIOC_BASE (APB2PERIPH_BASE + 0x1000)
#define GPIOD_BASE (APB2PERIPH_BASE + 0x1400)
#define GPIOE_BASE (APB2PERIPH_BASE + 0x1800)
#define GPIOF_BASE (APB2PERIPH_BASE + 0x1C00)
#define GPIOG_BASE (APB2PERIPH_BASE + 0x2000)
*/
Arduino_GFX *gfx = new Arduino_ILI9341(bus, DF_GFX_RST, 0 /* rotation */, false /* IPS */); -
#70211840
törölt tag
válasz
Janos250 #18220 üzenetére
Közben megoldódott:
TwoWire myWire1(PB7, PB6);
TwoWire myWire2(PB11, PB10);
Kicsit ugyan bele kell majd nyúlnom a library-ba, hogy átadjam melyik portot kell használnia és ne simán a Wire-t használja.
Viszont az i2c scan most szépen fut és mindkét porton folyamatosan írogatja a megtalált 1-1 eszköz címét.(Ehh, de kényelmetlen, hogy a Sloeber-el nem megy a közvetlen feltöltés. Folyton kézzel kell az elkészült bin-t a "Release" könyvtárból feltöltenem.)
-
#70211840
törölt tag
válasz
Janos250 #18218 üzenetére
Köszönöm, kipróbálom majd.
Most egy drasztikusabb megoldással csinálom egyelőreMás:
Akadt egy olyan problémám, hogy egy "Blue Pill"-re 2db I2C eszköz van kötve, de mindegyik külön porton.
Van egy oled kijelző, ez az első i2c porton van. (sda1, scl1)
Van egy hőmérséklet szenzor, ez a második i2c porton van. (sda2, scl2)A kijelző simán működik, nincs vele teendőm. A library csinálja a Wire.begin(); hívást.
A szenzor csak akkor működik, ha átállítom a Wire sda-t és scl-t még a begin előtt.Wire.setSDA(PB11);
Wire.setSCL(PB10);
Wire.begin();
Ez viszont azt eredményezi, hogy a második port és a szenzor működik tovább, az első port és az oled kijelző nem.
Hogyan lehetne párhuzamosan használni a kettőt?
Nem lehetne valahogyan a "Wire"-ból egy másik példányt csinálni, mondjuk wire2 néven és annak állítanám be a fenti értékeket? -
válasz
#70211840 #18211 üzenetére
De, szerintem jól gondolod. Az IO pinek közvetlenül a chipre vannak vezetve, ami 3,3V-ot kap, valószínűleg visszafelé nem fog 5V menni egyiken se.
A touch részét viszont majd faragni kell, mert a library az UNO analóg bemenetére van megírva, ami 10bites, 0-5V közt 0-1023 értéket ad vissza, ebből ugye csak a 0-3,3V közti értékeket használja ki, ami 0-675 közti értékeket jelent, az ESP-n viszont 12bites az analóg bemenet, ami azt jelenti, hogy a 3,3V jelszint 4095 értéket fog jelenteni. 6tal osztani kell majd mindent.
-
#70211840
törölt tag
Persze, lib-et hozzáigazítom majd, ha szükséges.
Ezen a képen nézve a TFT 5V pin mintha közvetlenül a 3.3V fesz.stabhoz menne.
Ha ez tényleg így van és máshol nem jelenik meg a shield-en, akkor szerintem nem lehet gond akkor sem, ha esetleg megjelenik az ESPduino-32 pinen az 5V.
Vagy nem jól gondolom? -
válasz
#70211840 #18205 üzenetére
Lábkiosztásban csak akkor, ha a D0-D13 A0-A5 lábakat értelmezni tudja / lefordítja automatikusan IO26, IO25 stb lábakra, ellenkező esetben át kell írnod a library-ben a lábak nevét.
Jelszintben van rá esély, hogy az alapvetően 5V jelszintre felkészített shield működni fog 3,3V jelszintről is konverzió nélkül is, de lehet vele probléma, ez csak teszteléssel derül ki.
Viszont arra vigyázni kell, hogy ha az ESPduino-32 5V pinjén megjelenik az 5V, akkor azt megkapja a shield, és azon keresztül esetleg megjelenhet valamelyik I/O pinen is, amit az ESP32 nem szeret. Ezt adott esetben füstjelekkel adhatja tudomásodra. -
ViZion
félisten
válasz
Izeka82 #18201 üzenetére
Szia! Mivel használod? ESPEasy, vagy Arduino-ból írtad és töltötted fel a programot? Kijelző folyamatos üzemben van, vagy ki-be kapcsolod? Mindkettő I2C busz, lehet ott néha beakad a dolog. Próbáld másik táppal, de erős a toippem, h inkább kijelző nélkül, hogy úgy is fagyogat-e.
-
Izeka82
csendes tag
Sziasztok!
Van egy Wemos D1 minim, amire egy AM2320 hőmérő, és egy 0.96-os kijelző van kötve. Wifin MQTT-n 5 percenként küldi a hőmérséklet adatokat. Egy régi Samsung telefontöltő a tápja. Olyan gondom van vele, hogy véletlen időnként teljesen kifagy. Van, hogy napokig-hetekig megy gond nélkül, de van, hogy akár naponta megáll. Ez lehet a táp hibája? Esetleg lehet vele kezdeni valamit, vagy keressek valami új tápot hozzá? Jelenleg nem tudom mással kipróbálni.
Új hozzászólás Aktív témák
Hirdetés
- Samsung Galaxy A04 128GB, Kártyafüggetlen, 1 Év Garanciával
- Samsung Galaxy A13 64GB, Kártyafüggetlen, 1 Év Garanciával
- Samsung Galaxy A23 128GB, Kártyafüggetlen, 1 Év Garanciával
- Telefon felvásárlás!! Apple Watch Series 6/Apple Watch Series 7/Apple Watch Series 8
- 0% THM részletfizetés, beszámítás! Gamer PC, notebook, konzol, Apple termék, hardver KAMATMENTESEN!
Állásajánlatok
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest