Adafruits motorshield för Feather

Adafruits motorshield för Feather

Adafruit gör många roliga utvecklingskort och deras Feather-serie består av flera olika kort och shields som går att stapla på varandra.

Här har jag beställt deras ESP8266 (Wifi-kort) och en motorshield som kan driva upp till 4 DC-motorer eller 2 stegmotorer.

Genom att sätta ihop dessa två kort kan jag få en internet-uppkopplad motor-drivare. Det är rätt najs.

Jag har lite lödning att göra för att få på plintar och stift så att jag kan koppla ihop dem och sedan blir det programmering. ESP8266 har inbyggt wifi men också en egen processor och minne så det går att flasha in ett helt litet program i den. Jag är fortfarande lite insnöad på Arduinos miljö eftersom jag jobbat mest i den men det går att köra tex Lua på ESP8266. Man kan också hoppa över Arduino och köra ESPs ramverk istället.

Visa inlägget
Mäta lutning med en MPU6050, accelerometer + gyroskop

Mäta lutning med en MPU6050, accelerometer + gyroskop

Robotar som rör sig på något sätt, eller som blir förflyttade av omgivningen, kan dra nytta av att veta i vilken riktning eller vinkel de befinner sig. Genom att känna till accelerationen och lutningen kan tex en drönare blixtsnabbt justera kraften till de olika motorerna för att hålla sig plan i luften.

En MPU6050 är en mikrokontroller med accelerometer, gyroskop och temperatursensor. Den har också en processor för att förfina rådatan från sensorerna till högkvalitativ data som vi kan använda. Kombinationen av accelerometer och gyroskop gör att processorn kan filtrera ut brus från sensorerna och leverera en högre datakvalitet.

Att använda en MPU6050 är mycket enkelt. De sitter ofta monterade på ett kort med spänningsregulering mm. Sensorn på bilden hittade vi i en gammal gimbal för drönarfotografering. Det finns en massa olika varianter på kort med MPU6050, så det är bara att välja ett som passar det du vill ha den till.

Kommunikationen med MPU6050 sker över I2C som är en vanlig standard som de flesta plattformar kan prata. I det här exemplet använder jag en ESP8266 på ett NodeMCU-kort och Arduino-ramverket för att programmera den. Det jag behövde göra för att få igång sensorn var helt enkelt att koppla in GND till jord, 5V till spänning (jag använde 3,3 V för det är vad mitt kort går på och det verkar fungera fint men beror på vilket kort din MPU6050 sitter på), SDA till D1(?) och SDC till D2(?) på NodeMCU (standardpinnarna för I2C-kommunikation).

Det finns mängder av färdiga bibliotek till Arduino för att läsa av den här sensorn. Jag har dock hittat ett bibliotek som även kan räkna ut vilken vinkel kretsen befinner sig i. Alla bibliotek har inte det inbyggt utan ger bara acceleration och gyro-värden för respektive axel. Biblioteket som jag har hittat heter MPU6050_light.

Som du ser i exemplet så kan du anropa GetAngle för att få ut vinkeln på sensorn. Tänk på att om du vill ha ut Z-vinkeln (alltså rotation om du har monterat sensorn plant) måste du först kalibrera sensorn i ca en sekund. Detta är med i exempelkoden. Om du inte bryr dig om rotationen i Z-led kan du hoppa över kalibreringen.

Visa inlägget
Välja rätt motor till roboten

Välja rätt motor till roboten

Motorer finns överallt omkring oss och numera tar vi dem för givet. Det finns stora motorer som de i bilar och flygplan och små motorer som driver fläkten i datorn eller som snurrar på hårddisken.

Man skulle kunna tro att om man behöver en motor är det bara att välja en med rätt dimension och så är man klar. Motorer har funnits så länge att detta problem borde vara löst, men så är det verkligen inte.

Utvecklingen av motorer går fortfarande framåt, och tack vare mer avancerad styrning av elektriska motorer har nya typer av motorer dykt upp.

Vi håller just nu på att leta efter och välja bland en mängd motorer för vår kommande robot. Ju mer jag gräver i det här området desto mer förvånad blir jag över hur skevt utbudet av motorer för robotar är. Robotbygge är ingen stor marknad och det märks tyvärr på utbudet. Men det finns eldsjälar och duktiga ensamma innovatörer som med hjälp av Kina och internet har skapat fantastiska produkter. Mer om det senare.

Nu tänkte jag beskriva de fyra huvudtyperna av motorer jag hittat. Vi fokuserar bara på elmotorer här och bara sådana som passar att ha i robotar.

I en robot vill vi gärna ha ganska låg hastighet, hög precision, tillräckligt högt vridmoment, låg strömförbrukning och enkel styrning med en mikrokontroller. Det kan finnas undantag till det här, tex för flygande robotar som behöver en mycket hög hastighet på motorerna. Vårt fokus är dock på en robot med hjul som ska röra sig relativt långsamt.

Likströmsmotor (DC-motor)

Den vanligaste motorn bland enklare elektronikprojekt är helt klar likströmsmotorn med borstar. Detta är en klassiker som vi fått lära oss om i fysiken.

Motorn drivs genom att ström leds in i två elektromagneter som då blir magnetiska och vrider på motorn. ”Borstarna” är de kontakter som gör att strömmen hela tiden ändrar riktning och därmed får motorn att snurra.

Likströmsmotorn är enkel, billig och finns i mängder av storlekar och variationer. Dock är det svårt att köra en borstad motor i låga hastigheter. För att kunna köra långsamt måste motorn växlas ner med en växellåda. Även här finns det mängder av varianter och utväxlingar. Det finns till och med enkla motorer med växellåda helt i plast.

Växellådor är dock inte helt oproblematiska. Det är rörliga delar som kan gå sönder och de kan låta en hel del. Kugghjulen i en växellåda behöver utrymme vilket kan vara dyrbart i en robot.

Precisionen på en likströmsmotor är generellt ganska dålig. För att kunna säkerställa precision behövs ytterligare sensorer, tex en sk encoder som mäter antalet varv motorn snurrar.

Borstlös motor (brushless)

Borstlösa motorer är motorer som drivs med en 3-fasig växelström. Istället för borstar regleras elektromagnetismen med fasförskjutningen i växelströmmen.

Borstlösa motorer kräver därför en ganska avancerad motorkontrollkrets som kan skapa denna växelström. Inom hobbydrönarflygning har utvecklingen kommit långt och det finns numera många varianter av borstlösa motorer och sk ESC (Electronic Speed Control) för motorkontroll.

En av anledningarna till att de borstlösa motorerna blivit populära inom drönare är att de är mycket effektiva. Tack vare avsaknaden av borstar är det mycket liten friktion i motorn.

Borstlösa motorer är alltså effektivare och tystare, men de är dyrare och kräver mer avancerad styrning som också är dyr.

Servomotor

En servomotor är en motor som går att köra till en viss vinkel. Dessa kan användas till exempel för att styra en robotarm eller vrida på en kameramodul. Servomotorer går ofta ganska långsamt tack vare en inbyggd växellåda. Det är vanligt att servomotorer har ett begränsat rörelseområde, tex 180°, men det finns också kontinuerliga servomotorer som fungerar som en vanlig DC-motor med växellåda.

Servomotorer kan fungerar väldigt bra i robot-tillämpningar, men på grund av växellådan är de ofta ganska stora och klumpiga vilket gör att robotar som behöver många servon snabbt blir stora och tunga.

Om du är intresserad av servomotorer rekommenderar jag att titta på Dynamixels sortiment. Jag har inte testat dessa själv än, men de verkar hålla hög kvalitet och har dessutom inbyggt nätverk så att de går att koppla ihop i en kedja vilket gör att mycket kabeldragning kan undvikas.

Stegmotor (stepper motor)

En stegmotor är en mycket speciell typ av motor. Den har också elektromagneter men dessa är placerade i ett mycket fiffigt mönster som gör att motorn kan vridas i små, små steg och därmed med mycket stor precision.

En stegmotor används bäst i tillämpningar som kräver hög noggrannhet men inte så mycket vridmoment. 3D-skrivare är ett typiskt exempel på en maskin som fungerar bra med stegmotorer.

På grund av den komplicerade konstruktionen krävs det ganska avancerad motorkontroll för bra styrning av en stegmotor.

Sammanfattning

Här har jag gått igenom fyra av de vanligaste el-motorerna för robotar. Som du märker finns det för- och nackdelar med alla och valet av motor beror helt på hur din robot, eller annan tillämpning, ska fungera. Vissa tillämpningar behöver ha ett lågt pris, vissa behöver ha låg vikt, vissa behöver dra lite el. Motorn du väljer för ditt projekt kommer att påverka både de fysiska dimensionerna, kontrollsystemet, värmeutvecklingen och strömförsörjningen. Välj motor med omsorg!

Visa inlägget
Koppla upp dina IoT-prylar trådlöst, de 4 vanligaste sätten

Koppla upp dina IoT-prylar trådlöst, de 4 vanligaste sätten

Inför bygget av vår robot har jag undersökt vilka alternativ det finns för datakommunikation för IoT, Internet of Things, alltså uppkopplade prylar. I den här artikeln går jag igenom de fyra vanligaste sätten att koppla upp elektronik med omvärlden. Den här gången har jag enbart tittat på trådlös teknik. Varje teknik har sina för- och nackdelar och det finns ingen som är bäst på allt. Vilken teknik du ska välja för ditt projekt eller pryl beror på hur och var den ska användas.

1. Bluetooth

De flesta känner idag till Bluetooth, det finns i många prylar i hemmet, tex trådlösa hörlurar, mobilhögtalare, smarta klockor, osv. Det är ett radioöverföringsprotokoll för korta avstånd (upp till ca 10 meter).

Kommunikationen mellan två enheter är direkt, det finns ingen server, router eller gateway mellan enheterna. För att koppla ihop två enheter behöver de "paras", en ganska enkel process som i många fall upplevs som väldigt krånglig på grund av tillverkarnas olika lösningar. När enheterna är parade kan de skicka data till varandra med relativt hög hastighet och låg energiförbrukning.

Bluetooth har funnits länge och det har utvecklats olika protokoll för olika typer av data, tex för överföring av ljud som ju är ett vanligt användningsområde.

För dataöverföring mellan två enheter på korta avstånd är Bluetooth ett väldigt bra val. Typiska användningsområden är ljudöverföring från en mediaspelare till en högtalare, signaler från en fjärrkontroll till en mottager (tex handkontrollen till en spelkonsoll) eller att öppna bildörrarna med telefonen.

Bluetooth LE (Low Energy) är en variant med betydligt lägre energiförbrukning.

Det finns mängder med utvecklingskort och mikrocontrollers för Bluetooth och det är en mycket billig teknik.

2. WiFi

Alla känner nog till WiFi, det helt dominerande trådlösa nätverket för datorer i hemmet och på kontoret. Tekniken bygger på att enheter koppla upp sig till så kallade access-punkter (vanligtvis tillsammans med en router i hemmet). Access-punkterna är kopplade till trådburet nätverk, vanligtvis ethernet eller, via en omvandlare, till ett fibernät. Över nätet skickar enheterna IP-paket. Det går att bygga privata nät på det här sättet, men det vanligaste är att näten även är uppkopplade mot internet.

WiFi har utvecklats genom åren och de olika versionerna benämns med bokstäver. WiFi-standarden heter IEEE 802.11 och några av de vanligare versionerna heter 802.11a, 802.11b, 802.11g, 802.11n och 802.11ac. Enheten och basstationen behöver kunna kommunicera med varandra och därmed använda kompatibla protokoll. De flesta enheter och basstationer har dock stöd för flera protokoll samtidigt så detta är vanligtvis i praktiken inget stort problem.

Enheter som har behov av mycket snabba överföringshastigheter bör använda de senaste versionerna av protokollet, då i både enhet och basstation.

Räckvidden för WiFi är något längre än Bluetooth, uppemot 50-100 meter. Räckvidden påverkas negativt av väggar och andra hinder. Det finns flera olika tekniker för att öka räckvidden, tex kan enheter automatiskt välja den starkaste signalen bland flera basstationer som har samma nätverksnamn vilket gör det enkelt att utöka ett befintligt nätverk. På senare tid har det även blivit vanligt med mesh-teknik mellan basstationer så att det går att utöka nätverket trådlöst utan att behöva dra fram ytterligare ethernet-kabel. Det finns även access-punkter med starkare antenner och utomhusanpassade antenner.

För enheter som behöver uppkoppling mot internet kan WiFi vara ett mycket bra val. Det är en billig och enkel teknik (att använda) och det finns mängder av utvecklingskort som är förberedda för WiFi.

WiFi passar bäst för enheter i en begränsad och kontrollerad miljö. I dag kräver nästan alla access-punkter inloggning med lösenord vilket kan vara besvärligt att konfigurera i en pryl som saknar skärm och tangentbord. Ett vanligt sätt att komma runt detta är att även använda Bluetooth och en mobil-app för konfiguration av WiFi. Det finns försök att lösa detta även från tillverkarna genom WPS som är ett sätt koppla ihop enheter utan att använda lösenord. Istället trycker man på en knapp på access-punkten vilket öppnar upp den för osäkra anslutningar under en kort tid. Tekniken har fått kritik då den är osäker.

Det går även att göra om vissa enheter till access-punkter. På det sättet kan en enhet med WiFi ansluta till en annan enhet med WiFi utan att gå via en gemensam access-punkt. Detta kan även användas för konfiguration av enheter genom att enheten själv agerar access-punkt med ett förutbestämt nätverksnamn och lösenord. På detta sätt kan man med tex en mobiltelefon koppla upp sig till enheten, konfigurera den med hjälp av en tillhörande app och sedan koppla ner sig igen och låta enheten ansluta till det riktiga nätverket.

Den begränsade räckvidden på WiFi gör att tekniken passar bäst för begränsade ytor, tex ett hem eller ett kontor, eller utomhus på en begränsad yta. Den relativt komplicerade konfigurationen gör att tekniken passar bäst där man har kontroll över både enheter och basstationer.

3. Mobilnät: GSM, GPRS, 3G, 4G och 5G

Ytterligare en mycket känd teknik som kan lämpa sig bra för IoT är såklart mobilnätet. Ett trådlöst datanät som täcker nästan hela Sverige (och världen). Även mobilnätet har funnits mycket länge och utvecklats i flera versioner. Några av versionerna, som 3G, 4G och 5G, är, åtminstone till namn, kända av de flesta.

Mobilnät är konceptuellt ganska lika WiFi i och med att det är enheter som kopplar upp sig mot basstationer och därigenom får tillgång till internet. Enheterna kan byta basstation inom samma nätverk utan att behöva konfigureras om. Många nätverk har även hand over av kommunikationen så att den sömlöst kan fortsätta under ett basstationsbyte, vilket är vad som sker när du pratar i telefon samtidigt som du kör bil.

Konfigurationen av en enhet är både enklare och besvärligare än WiFi. Enheten som vill ansluta till nätverket behöver ett sk SIM-kort. Allt som behövs för att ansluta till nätverket finns på SIM-kortet vilket gör konfigurationen enkel. Det besvärliga är dock att SIM-korten tillhandahålls av operatörerna så de måste beställas genom dem och levereras och installeras fysiskt. För enstaka enheter är detta inget större problem, men för en större flotta av enheter kan det bli en del administration att hålla reda på att rätt SIM-kort kommer i rätt enhet. Vid service och reparation är det också viktigt att SIM-korten hamnar i rätt enhet.

Förutom SIM-korten är den andra stora nackdelen med mobilnätet att priset kan bli högt. Förr kunde man beställa SIM-kort med billiga abonnemang med rörlig kostnad vilket är bra för IoT då det ofta är väldigt lite data som behöver skickas och att andra tjänster som röst och SMS inte används alls. Nu har det dock blivit svårt att hitta billiga abonnemang för data eftersom det är vad folk vill ha. Även kontantkorten har begränsats mycket så att de måste laddas varje månad för att inte förfalla. Det är orimligt mycket administration för ett IoT-system.

Operatörerna känner till detta och har utvecklat SIM-kort med andra typer av abonnemang, just för IoT. Jag vet att man tidigare kunde köpa tex 50 SIM-kort och ha en gemensam datamängd för dessa. Det är svårt att hitta information om detta på operatörernas hemsidor, man måste nog prata med en säljare för att komma vidare. För oss som än så länge experimenterar är det inte aktuellt.

Jag har hittat två alternativ som kan fungera, dels har Comviq ett kontantkort som verkar gälla ett år (Standard bas) och som kostar 0,95 kr/MB. Dels kan man till sitt vanliga mobilabonnemang ofta beställa ett extra-kort för kanske 50-100 kr/mån. Ganska dyrt alltså, men kanske värt det för att enkelt ha ett extra SIM-kort under tiden man utvecklar.

Det pratas mycket om att 5G ska koppla upp alla prylar och därmed vara perfekt för IoT. Men tyvärr är både täckningen och operatörernas prissättning på 5G långt ifrån IoT-anpassat ännu. Men inom något år kommer vi nog se stor utveckling på detta. Om operatörerna lyckas lösa eSIM (så vi slipper fysiska SIM-kort) och dessutom ordnar vettig prissättning för IoT kan 5G bli den självklara och dominerande lösningen för IoT inom kort.

4. Radio: 433 MHz, LoRa, Sigfox

Slutligen har vi några olika radio-tekniker som kanske inte är lika kända som de första tre teknikerna i den här listan. 433 Mhz är en öppen frekvens som tex används av en del smarta-hem-prylar. Eftersom frekvensen är öppen (kräver inget tillstånd) är tekniken ganska enkel. Det finns mycket billiga sändare och mottagare för 433 MHz.

En öppen frekvens innebär också att vem eller vad som helst kan sända saker, när som helst. Det kan alltså bli mycket störningar. Det här radiobandet är ganska långsamt och eftersom det kan bli störningar kan det vara svårt att överföra större datamängder. Korta aktiveringssignaler, såsom att tända en lampa, eller sensordata går ganska bra att skicka och ta emot. Räkna dock med att du kan behöva skicka om datan om överföringen misslyckas.

LoRa står för Long Range och är radioteknik för överföring av mycket små datamängder på långa avstånd. Tekniken kan fungera upp till 1 mil. För vissa IoT-system kan detta vara en mycket lämplig teknik. LoRa har låg energiförbrukning, låg överföringshastighet och liten datamängd. Med en egen gateway kan du sätta upp ett kontrollerat radionätverk som täcker ett stort avstånd. Även LoRa ligger på en öppen frekvens som är fri att använda men som kan störas av annan användning.

LoRa WAN och Sigfox är nätverk av sådana här radionätverk. Operatörer sätter ihop flera nätverk och gateways för att det ska bli enklare att ansluta till dessa och för att minska behovet av att sätta upp egna gateways. Det här är ett spännande område som det händer mycket inom. Kolla tex in Sigfox täckningskarta, som nu börjar täcka in delar av Sverige.

Visa inlägget