Don't know much about it, but may be useful with a Plus 1 or 2.
http://www.amazon.co...e/dp/B00E00C70C
http://slickdeals.ne...free-on-amazon?
  | ||||||||||||||
The Netduino forums have been replaced by new forums at community.wildernesslabs.co.
This site has been preserved for archival purposes only
and the ability to make new accounts or posts has been turned off.
baxter's ContentThere have been 63 items by baxter (Search limited from 05-May 23) #59740 Servers Ultimate Pro Free Android App from AmazonPosted by baxter on 16 August 2014 - 07:15 PM in General Discussion Don't know much about it, but may be useful with a Plus 1 or 2. http://www.amazon.co...e/dp/B00E00C70C #60115 Netduino 2 and Dfrobot GSM/GPS ShieldPosted by baxter on 14 September 2014 - 06:25 PM in Netduino 2 (and Netduino 1) I just bought a discounted Seeed Gprs at Radio Sack,
The serial setup is different from yours, but I think they are doing the same thing. I have mine with the jumpers set to hardware. The shield is plugged in to the Netduino and Netduino is directly talking to the module via COM1. If you want to talk to the module from a PC terminal, configure yours for hardware, but don't plug it in to the Netduino.and take power externally. Then connect a USB-TTL cable to D0, D1 on the shield. The USB to RS232 cable you linked is wrong for this application. You might look at these depending upon the versatility you want ( you can get a cheaper USB to TTL adapter on ebay),
https://www.sparkfun.../products/12977 https://www.sparkfun.../products/11736
My driver in VB seems to working ok with simple commands, SeeedGprs.SendReceiveCmd("AT") 'can communicate Debug.Print("CmdSent: " & SeeedGprs.CmdSent) Debug.Print("CmdAnswer: " & SeeedGprs.CmdResponse) Thread.Sleep(400) SeeedGprs.SendReceiveCmd("AT+COPS?", , 400) 'Carrier info Debug.Print("CmdSent: " & SeeedGprs.CmdSent) Debug.Print("CmdAnswer: " & SeeedGprs.CmdResponse) Thread.Sleep(400) SeeedGprs.SendReceiveCmd("AT(+CSQ)") 'signal quality Debug.Print("CmdSent: " & SeeedGprs.CmdSent) Debug.Print("CmdAnswer: " & SeeedGprs.CmdResponse) CmdSent: AT CmdAnswer: OK CmdSent: AT+COPS? CmdAnswer: PS: 0,0,"T-Mobile" OK CmdSent: AT(+CSQ) CmdAnswer: OR To go much further, I need an activated SIM card. The phones I have use a micro SIM and these modules take a standard size. I guess the answer is to just use the carrier for a micro SIM in in an activation kit.
#62108 Serial Port read dataPosted by baxter on 14 April 2015 - 05:57 PM in Netduino Plus 2 (and Netduino Plus 1) I was using this with an ESP8266 AT command set driver (since abandonded in favor of the Lua firmware). Just instantiate the port without an event handler and then receive serial in a wait loop. Public Sub New(ByVal ComPort As String, _ Optional ByVal baud As Integer = 9600) Port = New SerialPort(ComPort, baud, Parity.None, 8, StopBits.One) With Port 'note no event handler .Handshake = Handshake.None .WriteTimeout = 200 .ReadTimeout = 200 .Open() End With InputString = String.Empty 'need to change if not 9600 If (baud <> _DefaultBaud) Then '9600 is default baud rate of ESP8266 firmware (0.9.2.2) _Baud = baud End If End Sub --------------- Public Function GetFromESP(Eot As String) As String 'this is the main reader for ESP responses. It will wait for the expected Eot or 'a socket exception will be thrown if the response contains, ERROR or Unlink Dim n As Integer = 0 Dim response As String = String.Empty InputString = String.Empty While (True) If (Port.BytesToRead > 0) Then Dim buff = New Byte(Port.BytesToRead - 1) {} n = Port.Read(buff, 0, Port.BytesToRead) Thread.Sleep(200) InputString &= New String(Encoding.UTF8.GetChars(buff)) 'Debug.Print("Inputstring: " & InputString) If (Contains(InputString, Eot)) Then 'expected return Exit While 'Trap for socket connect to inactive server ElseIf (Contains(InputString, "CIPSTART") And _ (Contains(InputString, "ERROR") _ Or Contains(InputString, "Unlink"))) Then response = InputString InputString = String.Empty Throw (New ESPexception("Socket can't connect: GetFomESP returned ERROR Unlink")) End If Thread.Sleep(50) 'need this delay (maybe more) End If End While response = InputString InputString = String.Empty Return response End Function #62970 Unique device IDPosted by baxter on 29 May 2015 - 04:27 PM in Netduino Plus 2 (and Netduino Plus 1) See post #8, #59735 Netduino Mini $10Posted by baxter on 16 August 2014 - 02:02 AM in Netduino Mini Thanks ... Great price, bought one. #60332 Scheme-itPosted by baxter on 03 October 2014 - 12:56 AM in General Discussion There's easyEDA,
It was free when I signed up, but I haven't used it much. Also, LTspice IV, #59169 New Modules Seen in the WildPosted by baxter on 11 July 2014 - 09:27 PM in Netduino Go
Mine also #59577 Serial port issuesPosted by baxter on 06 August 2014 - 02:29 AM in Netduino 2 (and Netduino 1) You need to add, using System.IO.Ports; #58925 convert data types to byte[] and back for streamingPosted by baxter on 27 June 2014 - 05:47 AM in General Discussion I previously confronted this issue and found a couple of references, I copied the structure serialize code (near the bottom of the page) from the second reference and it compiles Imports Microsoft.SPOT Imports Microsoft.SPOT.Hardware Imports SecretLabs.NETMF.Hardware Imports SecretLabs.NETMF.Hardware.NetduinoMini Imports System.Reflection Imports System.Runtime.InteropServices Imports Microsoft.VisualBasic.Constants Imports System.Text Imports System.Threading Imports System.Collections Module Module1 Sub Main() Dim s As Struct = New Struct Dim ms As MyStruct = New MyStruct With {.el1 = 1, .el2 = 2, .el3 = 3} Dim sb() As Byte = Struct.Convert(ms) End Sub <StructLayout(LayoutKind.Sequential, Pack:=1, Size:=12)> Private Structure MyStruct Dim el1 As Byte Dim el2 As Int16 Dim el3 As Byte End Structure Public Class Struct 'Charles Law 'http://bytes.com/topic/visual-basic-net/answers/357098-convert-structure-byte-array Public Shared Function Convert(ByVal MyStruct As Object) As Byte() Dim al As ArrayList Dim Fields As FieldInfo() = MyStruct.GetType.GetFields al = New ArrayList For Each fld As FieldInfo In Fields If fld.FieldType.Equals(GetType(Byte)) Then ' Add byte to array list al.Add(CByte(fld.GetValue(MyStruct))) ElseIf fld.FieldType.Equals(GetType(Int16)) Then ' Add 16-bit value to array list Dim i16 As Int16 i16 = CType(fld.GetValue(MyStruct), Int16) al.Add(CByte(i16 >> 8)) al.Add(CByte(i16 And &HFF)) Else Throw New Exception("Cannot convert type.") End If Next fld Return DirectCast(al.ToArray(GetType(Byte)), Byte()) End Function End Class Public Function PrintArray(title As String, ByVal Arr() As Byte) As String Dim s As String = title & vbCrLf For i = 0 To Arr.Length - 1 s &= "i = " & i.ToString & " " & "Byte = " & Arr(i).ToString("X2") & vbCrLf Next Return s.Trim End Function End Module I didn't run it for this post because my Mini is in storage. I lost interest in this because I found for my purposes it was easier to just convert the data type to a string and then convert the string to bytes and then reverse this to go back to the data type (not too efficient, but it works) #59981 Safe code to convert byte[4] to floatPosted by baxter on 04 September 2014 - 01:06 AM in General Discussion Here is some VB code to go from an IEEE 754 single to 4 bytes and back to a single. It is indeed the hard way to do it. I wrote this before the "unsafe" bitconverter appeared on the scene, but now use the unsafe BC and have never had problems with it. Imports Microsoft.SPOT Imports Microsoft.SPOT.Hardware Imports SecretLabs.NETMF.Hardware 'Imports SecretLabs.NETMF.Hardware.NetduinoPlus Imports SecretLabs.NETMF.Hardware.Netduino Imports System.IO Imports System.Text Imports System.Collections Imports System.Diagnostics Imports System.Text.RegularExpressions Imports System.Math Module Module1 Sub Main() Dim buf() As Byte Dim sing As Single Dim svalue As Single = 44411.5625 buf = SingleToFourByte(svalue) sing = FourByteToSingle(buf) Debug.Print("value - sing = " & (svalue - sing).ToString) '--> 0 End Sub End Module Public Function FourByteToSingle(ByVal ByteArray() As Byte) As Single Dim bin As String = String.Empty Dim denormalized As Boolean = False Dim exp, start, coeff As Integer Dim mantissa As String Dim sum As Double Dim TwoPow As Integer = 1 Dim mult As Double = 1 'Convert 4 byte array to binary in reverse order '(assumes given array came from a 32bit little-endian integer) '-------------------------------------------------------------- For i As Integer = ByteArray.Length - 1 To 0 Step -1 bin &= IntToBin(ByteArray(i)) Next 'Split apart the binary string. Assumes IEEE 754 single format '------------------------------------------------------------- Dim sign As Integer = If(bin.Chars(0) = "1", -1, 1) 'leading bit Dim expt As Integer = CInt(BinToInt(bin.Substring(1, 8))) 'biased exponent Dim fraction As String = bin.Substring(9) 'fractional part Dim TempFraction As Integer = CInt(BinToInt(fraction)) 'integer for testing 'Test for special cases (zero, denormalized, +/-infinity, NaN) 'a good reference for thes cases: http://steve.hollasch.net/cgindex/coding/ieeefloat.html '---------------------------------------------------------------------------------------- If (expt = 0 And TempFraction = 0) Then Return 0 If (expt = 0 And TempFraction <> 0) Then denormalized = True If (expt = 255 And TempFraction = 0) Then Return CSng(If(sign = 1, 1 / 0, -1 / 0)) If (expt = 255 And TempFraction <> 0) Then Return 0 / 0 If (denormalized) Then exp = -126 mantissa = fraction start = 0 sum = 0 Else exp = expt - 127 mantissa = "1" & fraction start = 1 sum = 1 'implied bit End If 'Convert mantissa to single using double arithmetic to keep full precision '------------------------------------------------------------------------- For i As Integer = start To mantissa.Length - 1 TwoPow = 2 * TwoPow coeff = If(mantissa.Chars(i) = "0", 0, 1) If (coeff = 0) Then Continue For sum = sum + 1.0 / TwoPow Next 'scale the power of 2: 2^exp --> [(2^exp)*(10^-pow10)]*(10^pow10) '---------------------------------------------------------------- 'Constant to scale away exponent power of 2 'log(2)/log(10) = 0.30102999566398119521373889472449 'reqd power of 10 = (power of 2)*(log(2)/log(10)) Dim ReqPowerOf10Const As Double = 0.3010299956639812 Dim Pow10 As Integer = CInt(exp * ReqPowerOf10Const) Dim Pow2 As Integer = exp - Pow10 'reduce the power of 2 exponent [10^pow10 = (2^pow10)*(5^pow10)] mult = (2 ^ Pow2 / 5 ^ Pow10) * 10 ^ Pow10 Return CSng(sign * sum * mult) End Function Public Function SingleToFourByte(ByVal singl As Single) As Byte() Dim byts(3) As Byte Dim test As UInt32 = CUInt(singl) Dim SingnOf As Integer = Sign(singl) ' = -1 if negative Dim FracPart As Single Dim IntPart As UInt32 = CUInt(Floor(Abs(singl))) 'integer part FracPart = CSng(Abs(singl) - CSng(IntPart)) ' fractional part Dim FracPartBin As String = String.Empty Dim IntPartBin As String = String.Empty FracPartBin = DecFracToBin(FracPart) IntPartBin = DecIntToBin(IntPart) 'Normalize Dim BinExpt As Integer = IntPartBin.Length - 1 'Highest bit set -1 Dim Exponent As UInteger = CUInt(BinExpt + 127) ' Biased exponent Dim BiasedExpt As String = DecIntToBin(Exponent) 'Remove most significant bit IntPartBin = IntPartBin.TrimStart({"1"c}) 'concatenate the mantissa and pad to 23 bits if necesary Dim Mantissa As String = IntPartBin & FracPartBin Dim LenMant As Integer = Mantissa.Length Dim Pad As String = String.Empty Do Until (LenMant = 23) Mantissa = Mantissa & "0" LenMant = Mantissa.Length Loop Dim IEEE754 As String = If((SingnOf = -1), "1", "0") & BiasedExpt & Mantissa Dim LenIEEE As Integer = IEEE754.Length Utility.InsertValueIntoArray(byts, 0, 4, BinToInt(IEEE754)) Dim k As Integer Dim substr As String = String.Empty Return byts End Function Function IntToBin(ByVal byt As Byte) As String 'Convert a byte to a binary string Dim temp As Byte = byt Dim binval As String = String.Empty Dim count As Integer = 0 Do binval = CStr(temp Mod 2) & binval temp = CByte(temp \ 2) count += 1 Loop Until count = 8 'pad leading zeros Return binval End Function Public Function BinToInt(bin As String) As UInteger 'Horner's method to evaluate polynomial '01110110 msb, msb-1, ... 0 (e.g. msb to lsb, left to right) Dim len As Integer = bin.Length Dim temp As UInteger = CUInt(If(bin.Chars(0) = "0", 0, 1)) For i As Integer = 1 To len - 1 temp = CUInt(temp * 2 + If(bin.Chars(i) = "0", 0, 1)) Next Return temp End Function Public Function DecFracToBin(frac As Single) As String Dim BinFrac As String = String.Empty Dim temp As Single Dim carry As Integer While frac <> 0 temp = frac * 2 carry = CInt(Floor(temp)) BinFrac = CStr(carry) & BinFrac frac = temp - carry End While Return BinFrac End Function Function DecIntToBin(ByVal Intgr As UInteger) As String Dim temp As UInteger = Intgr Dim binval As String = String.Empty Dim count As Integer = 0 Do binval = CStr(temp Mod 2) & binval temp = CUInt(temp \ 2) count += 1 Loop Until (temp = 0) Return binval End Function #59332 change ip address netduinoPosted by baxter on 21 July 2014 - 05:48 PM in General Discussion Look under: C:\Program Files(x86)\Microsoft .NET Micro Framework\v4.2\Tools\MFDeploy.exe #60188 RS-232 PinsPosted by baxter on 22 September 2014 - 07:12 PM in Netduino Mini Question 1 is yes, but cross connect them TX-RX, RX-TX and GND. You do need a TTL/RS232 adapter for COM1 if you want to use your RS232 cable for both ports.
#60193 RS-232 PinsPosted by baxter on 22 September 2014 - 09:39 PM in Netduino Mini http://www.amazon.co...i/dp/B004CT1ZUE #60509 Function for a curve?Posted by baxter on 22 October 2014 - 07:15 PM in General Discussion Here is a nice sequential mean and variance estimator, Just sample the analog input or distance for X ms and you have the mean value together with the error estimate. #58971 Bitconverter class causing crash/irresponsiveness.Posted by baxter on 02 July 2014 - 12:48 AM in Netduino Plus 2 (and Netduino Plus 1) You can also use, byte B = 0xac; String S = B.ToString("X2"); Debug.Print(S); //--> AC #59340 change ip address netduinoPosted by baxter on 22 July 2014 - 06:57 AM in General Discussion #59416 IE support with this forum software - copy and paste doesn't workPosted by baxter on 27 July 2014 - 04:28 PM in Netduino Plus 2 (and Netduino Plus 1) This has been frustrating for me also. Maybe it is both an IE11 and a Forum problem. If I login with Chrome, pasting this this message from Notepad into a Reply box works just fine. #60498 Function for a curve?Posted by baxter on 22 October 2014 - 01:36 AM in General Discussion I have a Sharp GP2Y0A02YK0F 20-150 cm Distance Sensor. I get good results with the attached function relative to a known distance. I am sorry I don't have the attribution for the curve fit. I think it comes from the Arduino forum. If you search for "Sharp ir distance sensor curve fit", other fits will turn up others with varying degrees of approximation. The functional relationship accurately describes the curve. Your sensor may yield different constants. Just pick some points off of the curve and do a curve fit for the constants in Excel. You might also want to do some smoothing on the measurements because they are noisy with this sensor. 'enable Sharp Analog GP2Y0A02YK0F 20-150 cm Distance Sensor Friend SharpSensor As AnalogInput = New AnalogInput(Cpu.AnalogChannel.ANALOG_0) 'Netduino Plus 1 analog pin 0 SensorVal = distance(SharpSensor.Read() * 3.3) 'in inches Public Function distance(Volts As Double) As Double Dim result As Double Dim A As Double = 0.008271 Dim B As Double = 939.6 Dim C As Double = -3.398 Dim D As Double = 17.339 Dim one As Double = 1.0 result = (A + B * Volts) / (one + C * Volts + D * Volts * Volts) Return result / 2.54 'inches End Function #60853 Which Micro SD Cards will workPosted by baxter on 03 December 2014 - 06:42 PM in Netduino Plus 2 (and Netduino Plus 1) I recall that Chris recommended a 2GB kingston from Amazon, #58765 Sound Sensor, Wifi Shield and BreadBoardPosted by baxter on 18 June 2014 - 05:55 PM in Netduino Plus 2 (and Netduino Plus 1) Google is your friend, You can buy breadboards anywhere; Mouser, Adafruit ... #58657 NetDuino Plus 2 + Spark.io ?Posted by baxter on 10 June 2014 - 03:50 AM in Netduino Plus 2 (and Netduino Plus 1) I don't think the Spark Core is Micro Framework compatible. You may have a bit of trouble connecting the hardware to a Netduino Plus 2. Maybe you could talk to it over the serial interface. Or perhaps, give your Netduino a wireless interface with an ethernet to wireless adapter , #59155 Can anyone recommend a rock-solid LCD display?Posted by baxter on 10 July 2014 - 11:38 PM in Netduino Plus 2 (and Netduino Plus 1) I have been using the BPI-216N/L Serial Text LCD for years. The COM port interface is about as simple as you can get.
I have the older version of this module and it is a very readable display. #58584 Starts in boot mode always after flashPosted by baxter on 06 June 2014 - 03:48 AM in Netduino Mini
Here is the link for Mini firmware 4.2.0.1, both RS232 and TTL #58926 NetDuino Plus 2 + Spark.io ?Posted by baxter on 27 June 2014 - 06:53 AM in Netduino Plus 2 (and Netduino Plus 1) I bought a Spark Core and it looks to be a nice companion to provide WiFi capability for a Mini or a Netduino 1 or 2 by talking over the serial port as EnergySmithe noted. There are two serial ports, serial and serial1. The former is the regular Arduino debug port to be used with a serial terminal and the latter would be used to talk to a Netduino. The IDE is cloud based with the same buttons as the Arduino IDE, verify, flash ... They also have an Android App to work with the pins and configure the core for your network. I found the following sample code for a webserver and it works like a charm. The only problem I see with it vs Netduino is shifting gears to program an Arduino. TCPClient webClient; TCPServer webServer = TCPServer(80); char myIpAddress[24]; int LED = D7; void setup() { pinMode(D7,OUTPUT); // Turn on the D7 led so we know it's time digitalWrite(D7,HIGH); // to open the Serial Terminal. Serial.begin(9600); // Now it's ok to open your serial terminal software, and connect to the // available COM port. The following line effectively pauses your // application waiting for a character to be received from the serial // terminal. While it's waiting it processes the background tasks to // keep your Core connected to the Cloud. Press ENTER in your // serial terminal to start your application. while(!Serial.available()) SPARK_WLAN_Loop(); Spark.variable("ipAddress", myIpAddress, STRING); IPAddress myIp = Network.localIP(); sprintf(myIpAddress, "%d.%d.%d.%d", myIp[0], myIp[1], myIp[2], myIp[3]); Serial.print("Spark Core connected to IP: "); Serial.println(myIp); digitalWrite(D7,LOW); // Turn off the D7 led ... your serial is serializing! webServer.begin(); } void loop() { if (webClient.connected() && webClient.available()) { serveWebpage(); } else { webClient = webServer.available(); } } void serveWebpage() { //TODO: read in the request to see what page they want: //TODO: retrieve larger content from flash? webClient.println("<html>Hello I'm serving a webpage!</html>\n\n"); webClient.flush(); webClient.stop(); delay(100); } #58787 Sound Sensor, Wifi Shield and BreadBoardPosted by baxter on 19 June 2014 - 06:51 PM in Netduino Plus 2 (and Netduino Plus 1) I don't think there any Netduino specific WiFi shields. Look for an Arduino shield. Here is one,
If you want a stack arrangement,, just get a protoshield and affix the Edimax to it. The Edimax will fit exactly between the headers without any modification.
| ||||||||||||||
|
||||||||||||||
This webpage is licensed under a Creative Commons Attribution-ShareAlike License. | ||||||||||||||